void 0.22.0 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS_TEMPLATE.md +1 -1
- package/README.md +5 -1
- package/dist/{account-cmd-CjyxcGkM.mjs → account-cmd-vJhh5lrb.mjs} +5 -5
- package/dist/{scan-ClYmX3sa.mjs → application-analysis-BVsVqc11.mjs} +135 -18
- package/dist/application-routing-B7QEjqSR.mjs +27 -0
- package/dist/{auth-DLNN0D3Z.mjs → auth-CQkSDS50.mjs} +26 -96
- package/dist/auth-DX3JURcX.mjs +2 -0
- package/dist/{auth-link-BLO4ptzo.mjs → auth-link-D75t9wO2.mjs} +5 -5
- package/dist/{auth-router-ZUg9MF_U.mjs → auth-router-ClfhL1J7.mjs} +7 -7
- package/dist/{better-auth-shared-rsBGBvWJ.mjs → better-auth-shared-hy6RPh9W.mjs} +13 -2
- package/dist/{build-cmd-BxR5FROK.mjs → build-cmd-zMi1iFnS.mjs} +21 -9
- package/dist/{cache-D0sWhgKI.mjs → cache-ZtQmyxVV.mjs} +5 -5
- package/dist/{cancel-deploy-D4NUqFbi.mjs → cancel-deploy-Box0kkEV.mjs} +5 -5
- package/dist/{cf-access-P0iZnu0q.mjs → cf-access-BGe5sWXF.mjs} +4 -48
- package/dist/{cf-access-DRsQRe6k.mjs → cf-access-TWNzXltp.mjs} +3 -11
- package/dist/{cf-build-output-BJ6yGEIS.mjs → cf-build-output-BPqOT964.mjs} +2 -1
- package/dist/cf-build-output-_0HNWysu.mjs +2 -0
- package/dist/cli/cli.mjs +89 -461
- package/dist/cli/{cf-compat.mjs → cloudflare-operation-process.mjs} +454 -424
- package/dist/cli/env-schema-probe.d.mts +2 -1
- package/dist/cli/env-schema-probe.mjs +4 -4
- package/dist/client-B9UBI03V.mjs +2 -0
- package/dist/{client-BTZ3XkrB.mjs → client-DKAsFA4X.mjs} +161 -24
- package/dist/{cloudflare-auth-DQkqoMYa.mjs → cloudflare-auth-Qdc7tw8F.mjs} +41 -38
- package/dist/{cloudflare-cmd-BKlfGHAy.mjs → cloudflare-cmd-CmY8dGkd.mjs} +6 -6
- package/dist/cloudflare-config-Bktvwtpf.mjs +182 -0
- package/dist/{cloudflare-connect-Ctmrw579.mjs → cloudflare-connect-IiR3ZieC.mjs} +4 -4
- package/dist/{cloudflare-operations-BT6OWFBk.mjs → cloudflare-operations-BCdXSsmo.mjs} +1 -1
- package/dist/{cloudflare-operations-B9tzgjmf.mjs → cloudflare-operations-DzH-A966.mjs} +116 -172
- package/dist/{preset-UHj9ARyP.mjs → cloudflare-process-B-wekeR6.mjs} +93 -6
- package/dist/{config-VavjpDnp.d.mts → config-BMHb8RCj.d.mts} +1 -0
- package/dist/config-C_XRIPx2.mjs +89 -0
- package/dist/config-entry.d.mts +1 -1
- package/dist/{connect-Dg-WkW-C.mjs → connect-B-usTnlF.mjs} +9 -9
- package/dist/{create-project-l9J7pbtm.mjs → create-project-CYOOAYcn.mjs} +12 -12
- package/dist/{create-project-DdoqwFLF.mjs → create-project-FWbf5Olo.mjs} +1 -1
- package/dist/{db-gp2sCXyN.mjs → db-Ck2eZ2iB.mjs} +26 -26
- package/dist/{delete-TTedbH6B.mjs → delete-sK56qtzZ.mjs} +5 -5
- package/dist/{deploy-CH-o2CaZ.mjs → deploy-gCVaiJbS.mjs} +984 -616
- package/dist/{deploy-B19L2Bra.mjs → deploy-irP5q0-x.mjs} +1 -1
- package/dist/{domain-JRF59P_r.mjs → domain-DFfQE8jg.mjs} +6 -6
- package/dist/{email-Bo6G9LOZ.mjs → email-CdnhUHvJ.mjs} +15 -30
- package/dist/{env-BYOrWQnv.mjs → env-DmGdHi5i.mjs} +8 -8
- package/dist/{env-public-BxU_0yTL.d.mts → env-public-BX_r8HR6.d.mts} +1 -1
- package/dist/{env-types-C2_bIk_b.mjs → env-types-D5kds_OZ.mjs} +1 -1
- package/dist/{env-validation-BB4GkLxn.mjs → env-validation-C_8tPdhs.mjs} +20 -73
- package/dist/{env-validation-BXge7uyK.mjs → env-validation-zZOCcQVZ.mjs} +1 -1
- package/dist/{fetch-CXDChK7B.mjs → fetch-BIZJh7vR.mjs} +2 -2
- package/dist/{fetch-stream-AOByI7Ki.mjs → fetch-stream-IvCYKyQL.mjs} +24 -4
- package/dist/{gen-sCtlCOdA.mjs → gen-CshAkukR.mjs} +4 -4
- package/dist/gen-DvQTWzDU.mjs +2 -0
- package/dist/{github-cmd-0-7PexDq.mjs → github-cmd-DftuEvIt.mjs} +13 -13
- package/dist/{handler-HEcZsaij.d.mts → handler-CZ4nAylQ.d.mts} +1 -1
- package/dist/{headers-DWi2IXWx.mjs → headers-2rKda9Y6.mjs} +1 -1
- package/dist/{help-GKtwl07I.mjs → help-Dotbf6iz.mjs} +236 -750
- package/dist/help-mabuIV98.mjs +2 -0
- package/dist/{inbound-aVHEUhKo.mjs → inbound-fRkqcXaC.mjs} +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +299 -1517
- package/dist/info-B97bTX9N.mjs +113 -0
- package/dist/{init-FZx3Elvz.mjs → init-BTQEZZGJ.mjs} +61 -27
- package/dist/limits-Bq5LG8Id.d.mts +27 -0
- package/dist/limits-Cjuk2VPm.mjs +68 -0
- package/dist/{link-BrQfb_CU.mjs → link-B46sYH0K.mjs} +6 -6
- package/dist/{list-D44jmIAM.mjs → list-BnPrIsU_.mjs} +6 -6
- package/dist/{live-CKJlvlNp.d.mts → live-Chw1eIMv.d.mts} +1 -1
- package/dist/{local-d1-Bg9OzEEO.mjs → local-d1-2CMnpuW_.mjs} +2 -2
- package/dist/log-vqY3pqwI.mjs +29 -0
- package/dist/{login-CAsAsQ-_.mjs → login-BuiMyUrx.mjs} +8 -8
- package/dist/login-DIy9Sb-U.mjs +2 -0
- package/dist/{logs-BjKvFnVM.mjs → logs-CZG9d-ic.mjs} +10 -11
- package/dist/migrate-BCiJ8w0f.mjs +2 -0
- package/dist/{migrate-BPITvDJN.mjs → migrate-q4_njtaW.mjs} +4 -3
- package/dist/{node-Dt7z256D.mjs → node-BkyRWRx8.mjs} +1 -1
- package/dist/operator-args-B3BTmSoi.mjs +697 -0
- package/dist/{operator-auth-8KnOVXVd.mjs → operator-auth-7erYc6Lt.mjs} +2 -2
- package/dist/{operator-client-DUwumHpQ.mjs → operator-client-CpHjTd0t.mjs} +3 -3
- package/dist/{operator-cmd-BK5CCiT9.mjs → operator-cmd-DGqPJUD3.mjs} +70 -24
- package/dist/{output-Dm_A4Tbv.mjs → output-CbM85T4k.mjs} +18 -10
- package/dist/pages/client.d.mts +34 -2
- package/dist/pages/client.mjs +59 -3
- package/dist/pages/index.d.mts +1 -1
- package/dist/pages/index.mjs +2 -2
- package/dist/pages/islands-plugin.mjs +1 -1
- package/dist/pages/protocol.d.mts +2 -2
- package/dist/pages/protocol.mjs +2 -308
- package/dist/{parse-filename-DioPHiR9.mjs → parse-filename-CUbj-1MP.mjs} +35 -1
- package/dist/plan-D1Q5rf-r.mjs +2 -0
- package/dist/plan-NPpwZ_kc.mjs +58 -0
- package/dist/platform-args-3k8X9-H_.mjs +514 -0
- package/dist/platform-args-DdnM6WIf.mjs +2 -0
- package/dist/{platform-auth-config-BlN8xTdD.mjs → platform-auth-config-DDrxUy4m.mjs} +6 -6
- package/dist/{platform-auth-protection-7d5aV2Jg.mjs → platform-auth-protection-BLadnnct.mjs} +8 -8
- package/dist/{platform-auth-recovery-Dxij8ZbR.mjs → platform-auth-recovery-CmCzX2Fl.mjs} +6 -6
- package/dist/{platform-cmd-B3hwKrFK.mjs → platform-cmd-DMDEc9uS.mjs} +29 -8
- package/dist/{platform-cmd-E0FuL212.mjs → platform-cmd-pMTRhvYs.mjs} +1 -1
- package/dist/{platform-domain-D6Xcy9ZX.mjs → platform-domain-Di6EYrQl.mjs} +5 -5
- package/dist/{platform-lifecycle-k0E0xoxx.mjs → platform-lifecycle-BBoNzojY.mjs} +1541 -572
- package/dist/{platform-lifecycle-DMh_qrry.mjs → platform-lifecycle-BFdSi9Qt.mjs} +1 -1
- package/dist/{platform-management-Brz_BDiT.mjs → platform-management-CWOQOWXm.mjs} +10 -7
- package/dist/{platform-management-DOtss0BN.mjs → platform-management-DG47jys8.mjs} +1 -1
- package/dist/platform-plans-config-Vl9BP3H4.mjs +359 -0
- package/dist/{platform-recovery-BvtcXON5.mjs → platform-recovery-BJnQJEtQ.mjs} +4 -4
- package/dist/{platform-registry-QBa4DK32.mjs → platform-registry-DkPPXfp_.mjs} +2 -2
- package/dist/{plugin-inference-BMfKRSqE.mjs → plugin-inference-CXWnn79A.mjs} +174 -64
- package/dist/{prepare-C-6YZyyg.mjs → prepare-CBLT3CHH.mjs} +3 -3
- package/dist/prepare-CnjcTV2s.mjs +2 -0
- package/dist/{prepare-CRhJbVrG.mjs → prepare-DnaKBi--.mjs} +5 -21
- package/dist/{project-C0Fqu05O.mjs → project-DKG5Ra8p.mjs} +15 -82
- package/dist/project-DsblYifa.mjs +2 -0
- package/dist/{project-cmd-BZLCqOqw.mjs → project-cmd-DxnXstAq.mjs} +19 -19
- package/dist/{project-team-BvgM0WoX.mjs → project-team-BmHcaALJ.mjs} +5 -5
- package/dist/{project-token-l5DqK6Az.mjs → project-token-GionZlBI.mjs} +5 -5
- package/dist/{project-zero-trust-v6Mvpp8y.mjs → project-zero-trust-JLCjVQA7.mjs} +5 -5
- package/dist/prompts-2TGE6oXx.mjs +2 -0
- package/dist/prompts-BNUoTiaf.mjs +2044 -0
- package/dist/{protocol-BBa6cstI.d.mts → protocol-CjF_iI9X.d.mts} +2 -2
- package/dist/protocol-U7bfjHmA.mjs +331 -0
- package/dist/{provision-Fr9pRqce.mjs → provision-CVku1JFU.mjs} +1 -1
- package/dist/{provision-C4IGqkBf.mjs → provision-CaoxO_U7.mjs} +90 -199
- package/dist/{requests-DN-BbNiM.mjs → requests-BOjIVAeF.mjs} +5 -5
- package/dist/resource-name-C7LVpcRm.mjs +11 -0
- package/dist/{rollback-D7rzSaZM.mjs → rollback-CwR3pLj3.mjs} +6 -6
- package/dist/route-url-CG7U-cRN.mjs +15 -0
- package/dist/{runner-B8wXwWlo.mjs → runner-CXA9Fh8h.mjs} +1 -1
- package/dist/{runner-p-dMs2UN.mjs → runner-Ol0TNjk6.mjs} +2 -2
- package/dist/runtime/ai.d.mts +12 -8
- package/dist/runtime/ai.mjs +87 -22
- package/dist/runtime/better-auth-mysql.mjs +1 -1
- package/dist/runtime/better-auth-pg.mjs +1 -1
- package/dist/runtime/better-auth.mjs +1 -1
- package/dist/runtime/client-react.mjs +2 -2
- package/dist/runtime/client-solid.mjs +2 -2
- package/dist/runtime/client-svelte.mjs +2 -2
- package/dist/runtime/client-vue.mjs +2 -2
- package/dist/runtime/client.mjs +2 -2
- package/dist/runtime/durable.d.mts +3 -1
- package/dist/runtime/durable.mjs +4 -1
- package/dist/runtime/email/testing.mjs +2 -2
- package/dist/runtime/email.mjs +1 -1
- package/dist/runtime/env-public.d.mts +1 -1
- package/dist/runtime/fetch-stream.mjs +1 -1
- package/dist/runtime/fetch.mjs +1 -1
- package/dist/runtime/handler.d.mts +1 -1
- package/dist/runtime/kv.mjs +0 -1
- package/dist/runtime/limits.d.mts +2 -0
- package/dist/runtime/limits.mjs +2 -0
- package/dist/runtime/live-client.d.mts +1 -1
- package/dist/runtime/live-server.mjs +25 -16
- package/dist/runtime/live.d.mts +1 -1
- package/dist/runtime/migration-handler.mjs +62 -42
- package/dist/runtime/remote/index.mjs +2 -2
- package/dist/runtime/route-url.d.mts +4 -0
- package/dist/runtime/route-url.mjs +2 -0
- package/dist/runtime/routing.d.mts +180 -0
- package/dist/runtime/routing.mjs +1082 -0
- package/dist/runtime/sandbox-container.d.mts +1 -1
- package/dist/runtime/sandbox-container.mjs +1 -1
- package/dist/runtime/sandbox.d.mts +3 -3
- package/dist/runtime/sandbox.mjs +75 -45
- package/dist/runtime/sse.mjs +1 -1
- package/dist/runtime/validator.d.mts +1 -1
- package/dist/runtime/ws-server.d.mts +4 -2
- package/dist/runtime/ws-server.mjs +27 -2
- package/dist/runtime/ws.d.mts +2 -2
- package/dist/runtime/ws.mjs +8 -6
- package/dist/{sandbox-qpNBT8a3.d.mts → sandbox-XZAqzFlG.d.mts} +11 -8
- package/dist/{sandbox-container-DdNEBfCc.d.mts → sandbox-container-Bo0eiFKz.d.mts} +2 -1
- package/dist/{sandbox-container-4fdqLnyb.mjs → sandbox-container-C6ItmVuN.mjs} +4 -2
- package/dist/{scan-4tfN-PSn.mjs → scan-C7okrLyM.mjs} +4 -35
- package/dist/{secret-BOtOl_cb.mjs → secret-ByWJWBUG.mjs} +7 -7
- package/dist/{skills-D1II1Juz.mjs → skills-C1PlclPt.mjs} +1 -1
- package/dist/{sse-BaC1jXko.mjs → sse-CQNaDFFV.mjs} +6 -3
- package/dist/{subcommand-prompt-CY1C4fvl.mjs → subcommand-prompt-klFCfcor.mjs} +40 -32
- package/dist/validate-Dq_L3s0S.mjs +2 -0
- package/dist/{validate-CIUwFpjB.mjs → validate-ctOrgiS3.mjs} +2 -1
- package/dist/{wrangler-DQF1vKyf.mjs → wrangler-7K-bW_DL.mjs} +8 -239
- package/dist/{ws-BoY7vQML.d.mts → ws-CL1w7GXU.d.mts} +13 -2
- package/package.json +16 -10
- package/skills/migrate-vite-cloudflare-to-void/SKILL.md +34 -157
- package/skills/void/SKILL.md +55 -135
- package/skills/void/docs/guide/ai.md +94 -84
- package/skills/void/docs/guide/app-types.md +3 -32
- package/skills/void/docs/guide/auth.md +12 -116
- package/skills/void/docs/guide/database/d1.md +9 -54
- package/skills/void/docs/guide/database/mysql.md +1 -1
- package/skills/void/docs/guide/database/postgresql.md +5 -26
- package/skills/void/docs/guide/database.md +23 -75
- package/skills/void/docs/guide/deployment.md +48 -112
- package/skills/void/docs/guide/durable-state.md +43 -18
- package/skills/void/docs/guide/edge/headers.md +4 -48
- package/skills/void/docs/guide/edge/prerendering.md +5 -20
- package/skills/void/docs/guide/edge/redirects.md +11 -64
- package/skills/void/docs/guide/edge/revalidation.md +5 -18
- package/skills/void/docs/guide/edge/rewrites.md +56 -284
- package/skills/void/docs/guide/edge/static-assets.md +22 -72
- package/skills/void/docs/guide/email/domains.md +116 -0
- package/skills/void/docs/guide/email/receiving.md +139 -0
- package/skills/void/docs/guide/email/sending.md +231 -0
- package/skills/void/docs/guide/email.md +13 -619
- package/skills/void/docs/guide/env-migration.md +11 -11
- package/skills/void/docs/guide/env-vars.md +9 -29
- package/skills/void/docs/guide/index.md +0 -15
- package/skills/void/docs/guide/jobs.md +3 -18
- package/skills/void/docs/guide/kv.md +5 -11
- package/skills/void/docs/guide/live.md +5 -56
- package/skills/void/docs/guide/pages-routing/actions-and-forms.md +78 -125
- package/skills/void/docs/guide/pages-routing/head.md +10 -10
- package/skills/void/docs/guide/pages-routing/islands.md +6 -36
- package/skills/void/docs/guide/pages-routing/layouts.md +6 -128
- package/skills/void/docs/guide/pages-routing/loaders.md +3 -19
- package/skills/void/docs/guide/pages-routing/markdown.md +13 -171
- package/skills/void/docs/guide/pages-routing/overview.md +7 -17
- package/skills/void/docs/guide/pages-routing/view-transitions.md +1 -1
- package/skills/void/docs/guide/platform/administration/access.md +1 -4
- package/skills/void/docs/guide/platform/administration/email.md +35 -8
- package/skills/void/docs/guide/platform/administration/operations.md +26 -4
- package/skills/void/docs/guide/platform/administration/plans.md +126 -0
- package/skills/void/docs/guide/platform/administration/projects.md +5 -2
- package/skills/void/docs/guide/platform/administration/zero-trust.md +49 -160
- package/skills/void/docs/guide/platform/development/runtime.md +3 -13
- package/skills/void/docs/guide/platform/development/schema-ci.md +0 -58
- package/skills/void/docs/guide/platform/installation/ci.md +1 -1
- package/skills/void/docs/guide/platform/installation/credentials.md +15 -6
- package/skills/void/docs/guide/platform/installation/domains.md +35 -2
- package/skills/void/docs/guide/platform/installation/first-deployment.md +4 -2
- package/skills/void/docs/guide/platform/installation/maintenance.md +15 -1
- package/skills/void/docs/guide/platform/installation/prerequisites.md +24 -18
- package/skills/void/docs/guide/platform/installation/setup.md +88 -14
- package/skills/void/docs/guide/platform-administration.md +1 -0
- package/skills/void/docs/guide/queues.md +7 -9
- package/skills/void/docs/guide/quickstart.md +38 -37
- package/skills/void/docs/guide/remote-dev.md +5 -10
- package/skills/void/docs/guide/sandboxes.md +29 -21
- package/skills/void/docs/guide/server-routing.md +9 -72
- package/skills/void/docs/guide/sse.md +4 -18
- package/skills/void/docs/guide/ssg.md +3 -15
- package/skills/void/docs/guide/ssr.md +14 -62
- package/skills/void/docs/guide/storage.md +9 -4
- package/skills/void/docs/guide/type-safety.md +3 -14
- package/skills/void/docs/guide/typed-fetch.md +3 -7
- package/skills/void/docs/guide/websockets.md +68 -40
- package/skills/void/docs/integrations/agents.md +3 -3
- package/skills/void/docs/integrations/cloudflare.md +85 -316
- package/skills/void/docs/integrations/frameworks/analog.md +5 -64
- package/skills/void/docs/integrations/frameworks/astro.md +4 -73
- package/skills/void/docs/integrations/frameworks/nuxt.md +5 -62
- package/skills/void/docs/integrations/frameworks/overview.md +11 -54
- package/skills/void/docs/integrations/frameworks/react-router.md +5 -60
- package/skills/void/docs/integrations/frameworks/sveltekit.md +6 -65
- package/skills/void/docs/integrations/frameworks/tanstack-start.md +4 -62
- package/skills/void/docs/integrations/nodejs-bun-deno.md +5 -69
- package/skills/void/docs/reference/api/auth.md +156 -0
- package/skills/void/docs/reference/api/client.md +87 -0
- package/skills/void/docs/reference/api/database.md +95 -0
- package/skills/void/docs/reference/api/durable.md +46 -0
- package/skills/void/docs/reference/api/env.md +50 -0
- package/skills/void/docs/reference/api/handlers.md +254 -0
- package/skills/void/docs/reference/api/pages.md +241 -0
- package/skills/void/docs/reference/api/plugin.md +39 -0
- package/skills/void/docs/reference/api/resources.md +109 -0
- package/skills/void/docs/reference/api/rewrites.md +76 -0
- package/skills/void/docs/reference/api/types.md +92 -0
- package/skills/void/docs/reference/api.md +56 -1218
- package/skills/void/docs/reference/cli/auth.md +89 -0
- package/skills/void/docs/reference/cli/database.md +128 -0
- package/skills/void/docs/reference/cli/deploy.md +105 -0
- package/skills/void/docs/reference/cli/domains.md +41 -0
- package/skills/void/docs/reference/cli/email.md +129 -0
- package/skills/void/docs/reference/cli/generate.md +116 -0
- package/skills/void/docs/reference/cli/github.md +189 -0
- package/skills/void/docs/reference/cli/platform-config.md +92 -0
- package/skills/void/docs/reference/cli/platform-email.md +81 -0
- package/skills/void/docs/reference/cli/platform-installation.md +142 -0
- package/skills/void/docs/reference/cli/platform-operations.md +90 -0
- package/skills/void/docs/reference/cli/platform-users.md +89 -0
- package/skills/void/docs/reference/cli/platform-zero-trust.md +59 -0
- package/skills/void/docs/reference/cli/platform.md +70 -0
- package/skills/void/docs/reference/cli/project.md +214 -0
- package/skills/void/docs/reference/cli/secrets.md +76 -0
- package/skills/void/docs/reference/cli/setup.md +70 -0
- package/skills/void/docs/reference/cli.md +32 -1682
- package/skills/void/docs/reference/config.md +12 -18
- package/skills/void/docs/reference/resource-inference.md +3 -58
- package/skills/void/docs/reference/structure.md +14 -41
- package/dist/auth-CZuiVsFh.mjs +0 -2
- package/dist/canonical-json-DuDiiUsQ.mjs +0 -13
- package/dist/client-Czz8o5jP.mjs +0 -2
- package/dist/dist-BuDuKZJv.mjs +0 -2
- package/dist/dist-CTBk70IR.mjs +0 -1310
- package/dist/gen-CNJ62MM7.mjs +0 -2
- package/dist/help-CmZzxUba.mjs +0 -2
- package/dist/log-ChfPKsVd.mjs +0 -26
- package/dist/login-CGcRKEoi.mjs +0 -2
- package/dist/migrate-CYfbKkXh.mjs +0 -2
- package/dist/plan-BEZ8VJW0.mjs +0 -256
- package/dist/plan-DpuOr14e.mjs +0 -2
- package/dist/prepare-Bm3iq-u4.mjs +0 -2
- package/dist/project-BuUwfj6f.mjs +0 -2
- package/dist/validate-EKmJWxmy.mjs +0 -2
- /package/dist/cli/{cf-compat.d.mts → cloudflare-operation-process.d.mts} +0 -0
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { a as join, l as relative, n as dirname, u as resolve } from "./dist-BVqXeR_h.mjs";
|
|
2
2
|
import { n as readProjectPaths } from "./project-paths-GgcMozYz.mjs";
|
|
3
|
-
import { i as readPackageJson, n as hasPackageDependency, t as getPackageDependencies } from "./package-json-DXfiT1jV.mjs";
|
|
4
3
|
import { i as hasSsrEntry, r as getSsrServerEntryPath } from "./entry-CF5wvH4w.mjs";
|
|
4
|
+
import { i as readPackageJson, n as hasPackageDependency, t as getPackageDependencies } from "./package-json-DXfiT1jV.mjs";
|
|
5
5
|
import { existsSync } from "node:fs";
|
|
6
6
|
import { fileURLToPath } from "node:url";
|
|
7
|
+
import { spawnSync } from "node:child_process";
|
|
7
8
|
//#region src/cli/preset.ts
|
|
8
9
|
/**
|
|
9
10
|
* Known output conventions for SSGs.
|
|
@@ -133,12 +134,12 @@ function shellQuoteExecutable(value) {
|
|
|
133
134
|
return `'${value.replace(/'/g, "'\\''")}'`;
|
|
134
135
|
}
|
|
135
136
|
/** Resolve the bundled cf transport without consulting project dependencies. */
|
|
136
|
-
function
|
|
137
|
+
function resolveCloudflareOperationArgv(_root) {
|
|
137
138
|
const directory = dirname(fileURLToPath(import.meta.url));
|
|
138
139
|
const entry = [
|
|
139
|
-
join(directory, "
|
|
140
|
-
join(directory, "
|
|
141
|
-
join(directory, "cli", "
|
|
140
|
+
join(directory, "cloudflare-operation-process.ts"),
|
|
141
|
+
join(directory, "cloudflare-operation-process.mjs"),
|
|
142
|
+
join(directory, "cli", "cloudflare-operation-process.mjs")
|
|
142
143
|
].find((candidate) => existsSync(candidate));
|
|
143
144
|
if (!entry) throw new Error(`Void's bundled Cloudflare tooling is unavailable. Reinstall the project's dependencies from its trusted lockfile, then retry.`);
|
|
144
145
|
return [process.execPath, entry];
|
|
@@ -300,4 +301,90 @@ function hasBackendFiles(root) {
|
|
|
300
301
|
return false;
|
|
301
302
|
}
|
|
302
303
|
//#endregion
|
|
303
|
-
|
|
304
|
+
//#region src/cli/cloudflare-process.ts
|
|
305
|
+
/** Operations contain public targets only. Secret values travel through stdin. */
|
|
306
|
+
function encodeCloudflareOperation(operation) {
|
|
307
|
+
return [JSON.stringify(operation)];
|
|
308
|
+
}
|
|
309
|
+
/** Decode the private process envelope once, retaining cancellation provenance. */
|
|
310
|
+
function decodeCloudflareOperationResult(result) {
|
|
311
|
+
if (result.signal || result.error || result.status === null) return result;
|
|
312
|
+
if (!result.stdout.trim() && result.status !== 0) return result;
|
|
313
|
+
try {
|
|
314
|
+
const value = JSON.parse(result.stdout);
|
|
315
|
+
if (!value || typeof value !== "object" || Array.isArray(value) || !("operationResult" in value) || value.operationResult !== 1) throw new Error("Invalid operation envelope.");
|
|
316
|
+
const envelope = value;
|
|
317
|
+
if (envelope.output !== void 0 && typeof envelope.output !== "string" || envelope.signal != null && typeof envelope.signal !== "string" || envelope.error != null && typeof envelope.error !== "string" || envelope.errorCode !== void 0 && !Number.isSafeInteger(envelope.errorCode) || envelope.failure !== void 0 && ![
|
|
318
|
+
"not-found",
|
|
319
|
+
"durable-migration",
|
|
320
|
+
"containers-unavailable"
|
|
321
|
+
].includes(envelope.failure) || envelope.errors !== void 0 && (!Array.isArray(envelope.errors) || envelope.errors.some((error) => !error || typeof error !== "object" || typeof error.message !== "string" || error.code !== void 0 && !Number.isSafeInteger(error.code)))) throw new Error("Invalid operation envelope fields.");
|
|
322
|
+
if (envelope.signal || envelope.error) return {
|
|
323
|
+
...result,
|
|
324
|
+
status: 1,
|
|
325
|
+
stdout: "",
|
|
326
|
+
signal: envelope.signal,
|
|
327
|
+
error: envelope.error
|
|
328
|
+
};
|
|
329
|
+
return {
|
|
330
|
+
...result,
|
|
331
|
+
stdout: envelope.output ?? "",
|
|
332
|
+
data: envelope.data,
|
|
333
|
+
errorCode: envelope.errorCode,
|
|
334
|
+
errors: envelope.errors,
|
|
335
|
+
failure: envelope.failure
|
|
336
|
+
};
|
|
337
|
+
} catch {
|
|
338
|
+
return {
|
|
339
|
+
...result,
|
|
340
|
+
status: 1,
|
|
341
|
+
stdout: "",
|
|
342
|
+
stderr: [result.stderr, "Cloudflare tooling returned an invalid operation response."].filter(Boolean).join("\n")
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
function createCloudflareProcessRunner(options) {
|
|
347
|
+
const [command, ...prefix] = resolveCloudflareOperationArgv(options.root);
|
|
348
|
+
return (operation, run) => {
|
|
349
|
+
const streaming = !run.capture && (operation.type === "auth.login" || operation.type === "tail");
|
|
350
|
+
const env = typeof options.env === "function" ? options.env() : options.env ?? process.env;
|
|
351
|
+
const result = spawnSync(command, [...prefix, ...encodeCloudflareOperation(operation)], {
|
|
352
|
+
cwd: run.cwd ?? options.root,
|
|
353
|
+
env: {
|
|
354
|
+
...env,
|
|
355
|
+
...options.accountId ? { CLOUDFLARE_ACCOUNT_ID: options.accountId } : {},
|
|
356
|
+
...options.apiBaseUrl ? { CLOUDFLARE_API_BASE_URL: options.apiBaseUrl } : {}
|
|
357
|
+
},
|
|
358
|
+
input: run.input,
|
|
359
|
+
encoding: "utf8",
|
|
360
|
+
shell: false,
|
|
361
|
+
windowsHide: true,
|
|
362
|
+
maxBuffer: 33554432,
|
|
363
|
+
stdio: streaming ? [
|
|
364
|
+
"inherit",
|
|
365
|
+
"inherit",
|
|
366
|
+
"inherit"
|
|
367
|
+
] : [
|
|
368
|
+
"pipe",
|
|
369
|
+
"pipe",
|
|
370
|
+
"pipe"
|
|
371
|
+
]
|
|
372
|
+
});
|
|
373
|
+
const raw = {
|
|
374
|
+
status: result.status ?? 1,
|
|
375
|
+
stdout: result.stdout ?? "",
|
|
376
|
+
stderr: result.stderr ?? "",
|
|
377
|
+
signal: result.signal,
|
|
378
|
+
error: result.error?.message
|
|
379
|
+
};
|
|
380
|
+
if (streaming) return raw;
|
|
381
|
+
const decoded = decodeCloudflareOperationResult(raw);
|
|
382
|
+
if (!run.capture) {
|
|
383
|
+
if (decoded.stdout) process.stdout.write(decoded.stdout);
|
|
384
|
+
if (decoded.stderr) process.stderr.write(decoded.stderr);
|
|
385
|
+
}
|
|
386
|
+
return decoded;
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
//#endregion
|
|
390
|
+
export { detectPreset as a, resolveCloudflareOperationArgv as c, FRAMEWORK_PRESETS as i, resolveProjectCommand as l, decodeCloudflareOperationResult as n, formatProjectCommand as o, encodeCloudflareOperation as r, hasBackendFiles as s, createCloudflareProcessRunner as t };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import "./types-CKWnYgfy.mjs";
|
|
2
2
|
import { t as VoidAuthProvider } from "./providers-BNKRacMr.mjs";
|
|
3
3
|
import { t as HeadConfig } from "./head-Do8P4puT.mjs";
|
|
4
|
+
import "@void/deploy-core";
|
|
4
5
|
import { RewriteDestination } from "void/routes";
|
|
5
6
|
//#region src/sandbox/config.d.ts
|
|
6
7
|
type SandboxInstanceType = "lite" | "standard-1" | "standard-2" | "standard-3" | "standard-4";
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { a as join, i as isAbsolute } from "./dist-BVqXeR_h.mjs";
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
3
|
+
import { isSandboxRegistryImage } from "@void/deploy-core";
|
|
4
|
+
//#region src/sandbox/config.ts
|
|
5
|
+
const DEFAULT_SANDBOX_BINDING = "SANDBOX";
|
|
6
|
+
const DEFAULT_SANDBOX_CLASS_NAME = "SandboxV1";
|
|
7
|
+
const SANDBOX_MIGRATION_TAG = "void-sandbox-v2";
|
|
8
|
+
function isSandboxEnabled(config) {
|
|
9
|
+
return config.sandbox !== void 0 && config.sandbox !== false;
|
|
10
|
+
}
|
|
11
|
+
function getDefaultSandboxImage() {
|
|
12
|
+
return fileURLToPath(new URL("../../sandbox.Dockerfile", import.meta.resolve("void/sandbox")));
|
|
13
|
+
}
|
|
14
|
+
function getDefaultSandboxPlatformImage() {
|
|
15
|
+
return "cloudflare/debian-trixie";
|
|
16
|
+
}
|
|
17
|
+
function isLocalSandboxImage(image) {
|
|
18
|
+
const lowerImage = image.toLowerCase();
|
|
19
|
+
return isAbsolute(image) || image.startsWith("./") || image.startsWith("../") || lowerImage === "dockerfile" || lowerImage.includes("dockerfile") || lowerImage.endsWith("/dockerfile") || lowerImage.endsWith("\\dockerfile");
|
|
20
|
+
}
|
|
21
|
+
function requiresSandboxPlatformImage(config) {
|
|
22
|
+
if (typeof config.sandbox !== "object" || config.sandbox === null) return false;
|
|
23
|
+
return typeof config.sandbox.image === "string" && isLocalSandboxImage(config.sandbox.image) && config.sandbox.platformImage === void 0;
|
|
24
|
+
}
|
|
25
|
+
function resolveSandboxConfig(config, root = process.cwd()) {
|
|
26
|
+
const raw = typeof config.sandbox === "object" ? config.sandbox : {};
|
|
27
|
+
const image = raw.image ?? getDefaultSandboxImage();
|
|
28
|
+
const imageBuildContext = raw.imageBuildContext;
|
|
29
|
+
const platformImage = raw.platformImage ?? (raw.image && !isLocalSandboxImage(raw.image) ? raw.image : getDefaultSandboxPlatformImage());
|
|
30
|
+
if (!isLocalSandboxImage(image) && !isSandboxRegistryImage(image)) throw new Error("sandbox.image must be a Dockerfile or a digest-pinned Cloudflare registry image (registry.cloudflare.com/<account>/<image>@sha256:<digest>).");
|
|
31
|
+
if (platformImage !== getDefaultSandboxPlatformImage() && !isSandboxRegistryImage(platformImage)) throw new Error("sandbox.platformImage must be a digest-pinned Cloudflare registry image (registry.cloudflare.com/<account>/<image>@sha256:<digest>).");
|
|
32
|
+
return {
|
|
33
|
+
binding: raw.binding ?? "SANDBOX",
|
|
34
|
+
className: raw.className ?? "SandboxV1",
|
|
35
|
+
containerName: raw.containerName ?? "void-sandbox-v1",
|
|
36
|
+
image: resolveSandboxImage(image, root),
|
|
37
|
+
platformImage,
|
|
38
|
+
...imageBuildContext && { imageBuildContext: isAbsolute(imageBuildContext) ? imageBuildContext : join(root, imageBuildContext) },
|
|
39
|
+
...raw.instanceType && { instanceType: raw.instanceType }
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function resolveSandboxImage(image, root) {
|
|
43
|
+
if (!isLocalSandboxImage(image) || isAbsolute(image)) return image;
|
|
44
|
+
return join(root, image);
|
|
45
|
+
}
|
|
46
|
+
function sandboxContainerConfig(sandbox) {
|
|
47
|
+
return {
|
|
48
|
+
name: sandbox.containerName,
|
|
49
|
+
class_name: sandbox.className,
|
|
50
|
+
scheduling_policy: "durable_object",
|
|
51
|
+
images: { default: isLocalSandboxImage(sandbox.image) ? {
|
|
52
|
+
dockerfile: sandbox.image,
|
|
53
|
+
...sandbox.imageBuildContext && { build_context: sandbox.imageBuildContext }
|
|
54
|
+
} : { image: sandbox.image } }
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/** Resolve the final local storage kind without recreating a renamed or deleted class. */
|
|
58
|
+
function resolveSandboxMigrationStorage(migrations, className) {
|
|
59
|
+
const storage = /* @__PURE__ */ new Map();
|
|
60
|
+
for (const migration of migrations) {
|
|
61
|
+
for (const name of migration.new_classes ?? []) storage.set(name, "legacy-kv");
|
|
62
|
+
for (const name of migration.new_sqlite_classes ?? []) storage.set(name, "sqlite");
|
|
63
|
+
for (const rename of migration.renamed_classes ?? []) {
|
|
64
|
+
const sqlite = storage.get(rename.from);
|
|
65
|
+
storage.delete(rename.from);
|
|
66
|
+
storage.set(rename.to, sqlite ?? "unknown");
|
|
67
|
+
}
|
|
68
|
+
for (const transfer of migration.transferred_classes ?? []) storage.set(transfer.to, "unknown");
|
|
69
|
+
for (const name of migration.deleted_classes ?? []) storage.delete(name);
|
|
70
|
+
}
|
|
71
|
+
return storage.get(className);
|
|
72
|
+
}
|
|
73
|
+
function hasSandboxSqliteMigration(migrations, className) {
|
|
74
|
+
return resolveSandboxMigrationStorage(migrations, className) === "sqlite";
|
|
75
|
+
}
|
|
76
|
+
/** Refuse namespace reuse before either uploader can change a live Worker. */
|
|
77
|
+
function assertSandboxNamespaceConfig(config, sandbox) {
|
|
78
|
+
const containers = Array.isArray(config.containers) ? config.containers : [];
|
|
79
|
+
const durable = config.durable_objects;
|
|
80
|
+
const binding = durable?.bindings?.find((entry) => entry.name === sandbox.binding);
|
|
81
|
+
if (binding && (binding.script_name !== void 0 || binding.environment !== void 0)) throw new Error(`sandbox: binding '${sandbox.binding}' must reference the local '${sandbox.className}' class. Choose another sandbox.binding name to preserve the existing external Durable Object.`);
|
|
82
|
+
const migrations = Array.isArray(config.migrations) ? config.migrations : [];
|
|
83
|
+
const storage = resolveSandboxMigrationStorage(migrations, sandbox.className);
|
|
84
|
+
if (storage === "legacy-kv" || storage === "unknown") throw new Error(`sandbox: class '${sandbox.className}' needs SQLite storage, but its existing namespace has ${storage} storage. Preserve the existing migration history and choose a fresh Worker name or a new sandbox.className and sandbox.binding.`);
|
|
85
|
+
if (storage !== "sqlite" && migrations.some((migration) => migration.tag === "void-sandbox-v2")) throw new Error(`sandbox: migration tag '${SANDBOX_MIGRATION_TAG}' is already configured for another class. Keep the existing history and choose a fresh Worker for Sandbox.`);
|
|
86
|
+
if (containers.some((container) => container.class_name === sandbox.className && container.scheduling_policy !== "durable_object") || durable?.bindings?.some((binding) => binding.name === sandbox.binding && binding.class_name !== sandbox.className)) throw new Error("Sandbox SDK 1.0 needs a new Durable Object namespace. Back up existing Sandbox data and deploy to a fresh Worker name with the new Sandbox configuration; remove legacy Sandbox bindings, containers, and migrations from that new Worker configuration. See https://developers.cloudflare.com/containers/guides/migrate-to-durable-object-scheduling-policy/.");
|
|
87
|
+
}
|
|
88
|
+
//#endregion
|
|
89
|
+
export { hasSandboxSqliteMigration as a, resolveSandboxConfig as c, assertSandboxNamespaceConfig as i, sandboxContainerConfig as l, DEFAULT_SANDBOX_CLASS_NAME as n, isSandboxEnabled as o, SANDBOX_MIGRATION_TAG as r, requiresSandboxPlatformImage as s, DEFAULT_SANDBOX_BINDING as t };
|
package/dist/config-entry.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as VoidConfig } from "./config-
|
|
1
|
+
import { t as VoidConfig } from "./config-BMHb8RCj.mjs";
|
|
2
2
|
//#region src/config-entry.d.ts
|
|
3
3
|
/** Define a typed Void project configuration without loading the Vite plugin. */
|
|
4
4
|
export declare function defineConfig<const T extends VoidConfig>(config: T): T;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { i as isExpiredTokenError, n as PlatformClient } from "./client-
|
|
6
|
-
import { t as promptForLoginToken } from "./login-
|
|
7
|
-
import { i as saveDiscoveredPlatform, n as promptPlatformUrl, t as discoverPlatform } from "./platform-cmd-
|
|
8
|
-
import { t as connectCloudflare } from "./cloudflare-connect-
|
|
1
|
+
import { o as listPlatformConnections, s as normalizePlatformApiUrl } from "./platform-registry-DkPPXfp_.mjs";
|
|
2
|
+
import { c as writePlatformSelection, n as readDeploymentPlatform, s as writeDeploymentPlatform } from "./project-DKG5Ra8p.mjs";
|
|
3
|
+
import { d as readPlatformToken } from "./auth-CQkSDS50.mjs";
|
|
4
|
+
import { K as select, L as log, tt as isCancel } from "./prompts-BNUoTiaf.mjs";
|
|
5
|
+
import { i as isExpiredTokenError, n as PlatformClient } from "./client-DKAsFA4X.mjs";
|
|
6
|
+
import { t as promptForLoginToken } from "./login-BuiMyUrx.mjs";
|
|
7
|
+
import { i as saveDiscoveredPlatform, n as promptPlatformUrl, t as discoverPlatform } from "./platform-cmd-DMDEc9uS.mjs";
|
|
8
|
+
import { t as connectCloudflare } from "./cloudflare-connect-IiR3ZieC.mjs";
|
|
9
9
|
//#region src/cli/connect.ts
|
|
10
10
|
async function selectVoidPlatform(interactive) {
|
|
11
11
|
if (!interactive) throw new Error("connect: Supply a Void platform URL in non-interactive mode.");
|
|
@@ -71,7 +71,7 @@ async function runConnectCommand(root, args, interactive = Boolean(process.stdin
|
|
|
71
71
|
if (!args.noLogin) await authenticateConnection(root, discovery, interactive);
|
|
72
72
|
saveDiscoveredPlatform(discovery);
|
|
73
73
|
const envUrl = process.env.VOID_API_URL;
|
|
74
|
-
const selected = Boolean(envUrl && normalizePlatformApiUrl(envUrl) !== discovery.apiUrl
|
|
74
|
+
const selected = Boolean(envUrl && normalizePlatformApiUrl(envUrl) !== discovery.apiUrl) ? false : writePlatformSelection(root, discovery);
|
|
75
75
|
log.success(`Connected to ${discovery.displayName} at ${discovery.apiUrl}.`);
|
|
76
76
|
if (!selected) log.info("Saved the connection. The current project link or environment still selects its existing destination.");
|
|
77
77
|
if (args.noLogin) log.info("Connection saved without login. Run `void account login` in a project using this platform when ready.");
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { t as PlatformApiError } from "./client-
|
|
5
|
-
import { c as import_picocolors, l as sanitizeTerminalText } from "./output-
|
|
1
|
+
import { l as writeProjectConfig, t as attachSelectedPlatform } from "./project-DKG5Ra8p.mjs";
|
|
2
|
+
import { s as getSiteDomain } from "./auth-CQkSDS50.mjs";
|
|
3
|
+
import { A as confirm, K as select, L as log, O as cancel, X as text, tt as isCancel } from "./prompts-BNUoTiaf.mjs";
|
|
4
|
+
import { t as PlatformApiError } from "./client-DKAsFA4X.mjs";
|
|
5
|
+
import { c as import_picocolors, l as sanitizeTerminalText } from "./output-CbM85T4k.mjs";
|
|
6
6
|
import { t as validateProjectSlug } from "./project-slug-23TpquG4.mjs";
|
|
7
7
|
import { n as inferDefaultSlug } from "./resolve-project-BG5ORGID.mjs";
|
|
8
8
|
//#region src/cli/prompt.ts
|
|
@@ -14,7 +14,7 @@ async function promptProjectSetupAction(message = "Set up a Void project:", opti
|
|
|
14
14
|
label: "Create a new project"
|
|
15
15
|
}, ...options.includeLink === false ? [] : [{
|
|
16
16
|
value: "link",
|
|
17
|
-
label: "Link an existing project"
|
|
17
|
+
label: options.link === false ? "Use an existing project" : "Link an existing project"
|
|
18
18
|
}]]
|
|
19
19
|
});
|
|
20
20
|
if (isCancel(result) || typeof result === "symbol") {
|
|
@@ -43,7 +43,7 @@ async function promptProjectSelection(projects, message = "Select a project:", r
|
|
|
43
43
|
if (result === "__create__") return { action: "create" };
|
|
44
44
|
const project = projects.find((p) => p.id === result);
|
|
45
45
|
if (options.confirmExisting) {
|
|
46
|
-
const confirmed = await confirm({ message: project.role === "reader" ? `Link to ${project.slug} with read-only access? Deploying requires collaborator access or higher.` : `Linking to an existing project. Running \`void deploy\` will overwrite the current deployment of
|
|
46
|
+
const confirmed = await confirm({ message: project.role === "reader" ? `Link to ${project.slug} with read-only access? Deploying requires collaborator access or higher.` : (options.link === false ? "This deployment will overwrite the current deployment of " : `Linking to an existing project. Running \`void deploy\` will overwrite the current deployment of `) + `${project.url ?? `${project.slug}.${getSiteDomain(root)}`}. Continue?` });
|
|
47
47
|
if (isCancel(confirmed) || !confirmed) {
|
|
48
48
|
cancel("Project link cancelled.");
|
|
49
49
|
process.exit(0);
|
|
@@ -57,9 +57,9 @@ async function promptProjectSelection(projects, message = "Select a project:", r
|
|
|
57
57
|
async function promptProjectSlug(defaultSlug) {
|
|
58
58
|
const result = await text({
|
|
59
59
|
message: "Choose a slug for your new Void project:",
|
|
60
|
-
placeholder:
|
|
61
|
-
|
|
62
|
-
validate: validateProjectSlug
|
|
60
|
+
placeholder: defaultSlug,
|
|
61
|
+
defaultValue: defaultSlug,
|
|
62
|
+
validate: (value) => validateProjectSlug(value || defaultSlug)
|
|
63
63
|
});
|
|
64
64
|
if (isCancel(result) || typeof result === "symbol") {
|
|
65
65
|
cancel("Deploy cancelled.");
|
|
@@ -102,14 +102,14 @@ async function createProjectWithSlugRetry(client, initialDefaultSlug, promptSlug
|
|
|
102
102
|
function reportProjectCreationWarnings(project) {
|
|
103
103
|
for (const warning of project.warnings ?? []) log.warn(sanitizeTerminalText(warning));
|
|
104
104
|
}
|
|
105
|
-
async function promptAndCreateProject(root, client) {
|
|
105
|
+
async function promptAndCreateProject(root, client, options = {}) {
|
|
106
106
|
const project = await createProjectWithSlugRetry(client, inferDefaultSlug(root), async (defaultSlug) => promptProjectSlug(defaultSlug));
|
|
107
107
|
if (!project) throw new Error("Project creation cancelled.");
|
|
108
108
|
const config = {
|
|
109
109
|
projectId: project.id,
|
|
110
110
|
slug: project.slug
|
|
111
111
|
};
|
|
112
|
-
writeProjectConfig(root, attachSelectedPlatform(root, config, client.apiUrl));
|
|
112
|
+
if (options.link !== false) writeProjectConfig(root, attachSelectedPlatform(root, config, client.apiUrl));
|
|
113
113
|
if (project.owner_email_destination) {
|
|
114
114
|
const { address } = project.owner_email_destination;
|
|
115
115
|
log.info(`Registering ${address} as a recipient for this project. Cloudflare emails it a verification link unless it is already verified — \`void email destinations\` shows the state.`);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as createProjectWithSlugRetry } from "./create-project-
|
|
1
|
+
import { t as createProjectWithSlugRetry } from "./create-project-CYOOAYcn.mjs";
|
|
2
2
|
export { createProjectWithSlugRetry };
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { a as join, l as relative, r as extname, t as basename, u as resolve } from "./dist-BVqXeR_h.mjs";
|
|
2
|
+
import { r as detectFramework } from "./plugin-inference-CXWnn79A.mjs";
|
|
2
3
|
import { n as readProjectPaths } from "./project-paths-GgcMozYz.mjs";
|
|
3
|
-
import { t as cfAccessHeaders } from "./cf-access-DRsQRe6k.mjs";
|
|
4
|
-
import { c as getToken, o as getProxyUrl } from "./auth-DLNN0D3Z.mjs";
|
|
5
|
-
import { i as isCloudflareAccessChallenge, n as ensurePlatformAccessToken, r as ensurePlatformProxyAccess } from "./cf-access-P0iZnu0q.mjs";
|
|
6
|
-
import { i as readDeploymentPlatform, o as readProjectConfig } from "./project-C0Fqu05O.mjs";
|
|
7
4
|
import { h as resolveBindingNames, m as readConfig, u as getDatabaseDialect } from "./config-Br_JZD6u.mjs";
|
|
8
|
-
import { r as detectFramework } from "./plugin-inference-BMfKRSqE.mjs";
|
|
9
5
|
import { i as writeJournal, n as readJournal, r as stripSqlExt, t as collectMigrations } from "./collect-DiTn9yr6.mjs";
|
|
10
|
-
import { t as
|
|
6
|
+
import { t as cfAccessHeaders } from "./cf-access-TWNzXltp.mjs";
|
|
7
|
+
import { i as isCloudflareAccessChallenge, n as ensurePlatformAccessToken, r as ensurePlatformProxyAccess } from "./cf-access-BGe5sWXF.mjs";
|
|
8
|
+
import { n as readDeploymentPlatform, r as readProjectConfig } from "./project-DKG5Ra8p.mjs";
|
|
9
|
+
import { c as getToken, o as getProxyUrl } from "./auth-CQkSDS50.mjs";
|
|
10
|
+
import { t as resolveLocalD1Target } from "./local-d1-2CMnpuW_.mjs";
|
|
11
11
|
import { a as loadLocalEnv } from "./env-_v349JBd.mjs";
|
|
12
|
-
import {
|
|
13
|
-
import { i as validateMigrations, r as listDrizzleArtifacts, t as assertJournalCoherence } from "./validate-
|
|
14
|
-
import { n as PlatformClient, t as PlatformApiError } from "./client-
|
|
15
|
-
import { a as dim, c as import_picocolors, r as cliTitle } from "./output-
|
|
16
|
-
import { n as formatTimestamp } from "./gen-
|
|
12
|
+
import { A as confirm, H as outro, L as log, N as intro, tt as isCancel } from "./prompts-BNUoTiaf.mjs";
|
|
13
|
+
import { i as validateMigrations, r as listDrizzleArtifacts, t as assertJournalCoherence } from "./validate-ctOrgiS3.mjs";
|
|
14
|
+
import { n as PlatformClient, t as PlatformApiError } from "./client-DKAsFA4X.mjs";
|
|
15
|
+
import { a as dim, c as import_picocolors, r as cliTitle } from "./output-CbM85T4k.mjs";
|
|
16
|
+
import { n as formatTimestamp } from "./gen-CshAkukR.mjs";
|
|
17
17
|
import { createRequire } from "node:module";
|
|
18
18
|
import { existsSync, readFileSync, readdirSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
19
19
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
@@ -273,7 +273,7 @@ async function runConnect(root, dialect, args) {
|
|
|
273
273
|
if (result.dashboardUrl) log.info(`Dashboard: ${result.dashboardUrl}`);
|
|
274
274
|
}
|
|
275
275
|
if (!connectionString) {
|
|
276
|
-
const { text: promptText, isCancel: isCancelCheck } = await import("./
|
|
276
|
+
const { text: promptText, isCancel: isCancelCheck } = await import("./prompts-2TGE6oXx.mjs");
|
|
277
277
|
const answer = await promptText({
|
|
278
278
|
message: `Enter your ${dialect === "mysql" ? "MySQL" : "PostgreSQL"} connection string:`,
|
|
279
279
|
placeholder: dialect === "mysql" ? "mysql://user:pass@host:3306/database" : "postgresql://user:pass@host:5432/database"
|
|
@@ -318,7 +318,7 @@ async function runPush(root, dialect) {
|
|
|
318
318
|
outro("Done.");
|
|
319
319
|
}
|
|
320
320
|
async function runGenerate(root, dialect) {
|
|
321
|
-
const { prepareProject } = await import("./prepare-
|
|
321
|
+
const { prepareProject } = await import("./prepare-CnjcTV2s.mjs");
|
|
322
322
|
const { writeDrizzleConfig } = await import("./config-0acf1oys.mjs");
|
|
323
323
|
await prepareProject(root);
|
|
324
324
|
const authSchemaPath = join(root, ".void", "better-auth-schema.ts");
|
|
@@ -384,7 +384,7 @@ async function runStatus(root, dialect) {
|
|
|
384
384
|
localApplied = [];
|
|
385
385
|
}
|
|
386
386
|
else {
|
|
387
|
-
const { getAppliedMigrations } = await import("./runner-
|
|
387
|
+
const { getAppliedMigrations } = await import("./runner-CXA9Fh8h.mjs");
|
|
388
388
|
const { databasePath: dbPath } = getLocalD1Target(root);
|
|
389
389
|
localApplied = await getAppliedMigrations(dbPath);
|
|
390
390
|
}
|
|
@@ -399,7 +399,7 @@ async function runStatus(root, dialect) {
|
|
|
399
399
|
applied_at: ""
|
|
400
400
|
}));
|
|
401
401
|
} else {
|
|
402
|
-
const { readCloudflareD1Migrations, resolveCloudflareD1Context } = await import("./cloudflare-operations-
|
|
402
|
+
const { readCloudflareD1Migrations, resolveCloudflareD1Context } = await import("./cloudflare-operations-BCdXSsmo.mjs");
|
|
403
403
|
remoteApplied = (await readCloudflareD1Migrations(resolveCloudflareD1Context(root, resolveBindingNames(readConfig(root).inference?.bindings)?.d1 ?? "DB"))).map((name) => ({
|
|
404
404
|
name,
|
|
405
405
|
applied_at: ""
|
|
@@ -480,7 +480,7 @@ async function resetDatabase(root, dialect) {
|
|
|
480
480
|
}
|
|
481
481
|
return migrations.length;
|
|
482
482
|
}
|
|
483
|
-
const { runMigrations } = await import("./runner-
|
|
483
|
+
const { runMigrations } = await import("./runner-CXA9Fh8h.mjs");
|
|
484
484
|
const { databasePath: dbPath } = getLocalD1Target(root);
|
|
485
485
|
rmSync(dbPath, { force: true });
|
|
486
486
|
rmSync(dbPath + "-wal", { force: true });
|
|
@@ -515,7 +515,7 @@ async function runSeed(root, file, dialect) {
|
|
|
515
515
|
outro("Done.");
|
|
516
516
|
return;
|
|
517
517
|
}
|
|
518
|
-
const { openSqliteDatabase } = await import("./runner-
|
|
518
|
+
const { openSqliteDatabase } = await import("./runner-CXA9Fh8h.mjs");
|
|
519
519
|
const { databasePath: dbPath } = getLocalD1Target(root);
|
|
520
520
|
const db = await openSqliteDatabase(dbPath);
|
|
521
521
|
try {
|
|
@@ -641,7 +641,7 @@ async function runExecute(root, command, file, dialect, remote) {
|
|
|
641
641
|
process.exit(0);
|
|
642
642
|
}
|
|
643
643
|
if (dialect === "sqlite") {
|
|
644
|
-
const { executeCloudflareD1Sql, resolveCloudflareD1Context } = await import("./cloudflare-operations-
|
|
644
|
+
const { executeCloudflareD1Sql, resolveCloudflareD1Context } = await import("./cloudflare-operations-BCdXSsmo.mjs");
|
|
645
645
|
const rows = await executeCloudflareD1Sql(resolveCloudflareD1Context(root, resolveBindingNames(readConfig(root).inference?.bindings)?.d1 ?? "DB"), sql);
|
|
646
646
|
if (rows.length > 0) printTable(rows);
|
|
647
647
|
else log.success("Executed successfully.");
|
|
@@ -746,7 +746,7 @@ async function runExecute(root, command, file, dialect, remote) {
|
|
|
746
746
|
outro("Done.");
|
|
747
747
|
return;
|
|
748
748
|
}
|
|
749
|
-
const { openSqliteDatabase } = await import("./runner-
|
|
749
|
+
const { openSqliteDatabase } = await import("./runner-CXA9Fh8h.mjs");
|
|
750
750
|
const { databasePath: dbPath } = getLocalD1Target(root);
|
|
751
751
|
if (!existsSync(dbPath)) {
|
|
752
752
|
log.error("No local database found. Run `void dev` first.");
|
|
@@ -846,7 +846,7 @@ async function runMigrate(root, dialect, remote) {
|
|
|
846
846
|
outro("Done.");
|
|
847
847
|
return;
|
|
848
848
|
}
|
|
849
|
-
const { applyCloudflareD1Migrations, readCloudflareD1Migrations, resolveCloudflareD1Context } = await import("./cloudflare-operations-
|
|
849
|
+
const { applyCloudflareD1Migrations, readCloudflareD1Migrations, resolveCloudflareD1Context } = await import("./cloudflare-operations-BCdXSsmo.mjs");
|
|
850
850
|
const binding = resolveBindingNames(readConfig(root).inference?.bindings)?.d1 ?? "DB";
|
|
851
851
|
const context = resolveCloudflareD1Context(root, binding);
|
|
852
852
|
const remoteBefore = new Set(await readCloudflareD1Migrations(context));
|
|
@@ -862,7 +862,7 @@ async function runMigrate(root, dialect, remote) {
|
|
|
862
862
|
log.error(getErrorMessage(error));
|
|
863
863
|
process.exit(1);
|
|
864
864
|
}
|
|
865
|
-
const { checkWranglerMigrationApplySet, parseRootWranglerConfig } = await import("./deploy-
|
|
865
|
+
const { checkWranglerMigrationApplySet, parseRootWranglerConfig } = await import("./deploy-irP5q0-x.mjs");
|
|
866
866
|
const applySet = await checkWranglerMigrationApplySet(context.operation.configPath, parseRootWranglerConfig(context.operation.configPath), binding, context.migrationsDir, rawMigrations);
|
|
867
867
|
if (!applySet.ok) {
|
|
868
868
|
log.error(applySet.reason);
|
|
@@ -980,7 +980,7 @@ async function runMigrate(root, dialect, remote) {
|
|
|
980
980
|
outro("Done.");
|
|
981
981
|
return;
|
|
982
982
|
}
|
|
983
|
-
const { getAppliedMigrations, runMigrations } = await import("./runner-
|
|
983
|
+
const { getAppliedMigrations, runMigrations } = await import("./runner-CXA9Fh8h.mjs");
|
|
984
984
|
const { databasePath: dbPath } = getLocalD1Target(root);
|
|
985
985
|
try {
|
|
986
986
|
const existingRows = await getAppliedMigrations(dbPath);
|
|
@@ -1290,7 +1290,7 @@ async function runRenameMigrations(root, dialect) {
|
|
|
1290
1290
|
process.exit(1);
|
|
1291
1291
|
}
|
|
1292
1292
|
else {
|
|
1293
|
-
const { openSqliteDatabase } = await import("./runner-
|
|
1293
|
+
const { openSqliteDatabase } = await import("./runner-CXA9Fh8h.mjs");
|
|
1294
1294
|
const { databasePath: dbPath } = getLocalD1Target(root);
|
|
1295
1295
|
if (existsSync(dbPath)) try {
|
|
1296
1296
|
const db = await openSqliteDatabase(dbPath);
|
|
@@ -1442,7 +1442,7 @@ async function runExport(root, args, dialect) {
|
|
|
1442
1442
|
} else process.stdout.write(output);
|
|
1443
1443
|
return;
|
|
1444
1444
|
}
|
|
1445
|
-
const { openSqliteDatabase } = await import("./runner-
|
|
1445
|
+
const { openSqliteDatabase } = await import("./runner-CXA9Fh8h.mjs");
|
|
1446
1446
|
const { databasePath: dbPath } = getLocalD1Target(root);
|
|
1447
1447
|
if (!existsSync(dbPath)) {
|
|
1448
1448
|
log.error("No local database found. Run `void dev` first.", errOut);
|
|
@@ -1524,7 +1524,7 @@ async function runSetUrl(root) {
|
|
|
1524
1524
|
log.error("No project linked. Run `void deploy` first or link a project.");
|
|
1525
1525
|
process.exit(1);
|
|
1526
1526
|
}
|
|
1527
|
-
const { text: promptText, isCancel: isCancelCheck } = await import("./
|
|
1527
|
+
const { text: promptText, isCancel: isCancelCheck } = await import("./prompts-2TGE6oXx.mjs");
|
|
1528
1528
|
const connectionString = await promptText({
|
|
1529
1529
|
message: `Enter your ${dialect === "mysql" ? "MySQL" : "PostgreSQL"} connection string:`,
|
|
1530
1530
|
placeholder: dialect === "mysql" ? "mysql://user:pass@host:3306/dbname" : "postgresql://user:pass@host:5432/dbname",
|
|
@@ -1611,7 +1611,7 @@ async function runSeedModule(root, seedPath, dialect) {
|
|
|
1611
1611
|
return;
|
|
1612
1612
|
}
|
|
1613
1613
|
const { drizzle } = await import("drizzle-orm/better-sqlite3");
|
|
1614
|
-
const { openSqliteDatabase } = await import("./runner-
|
|
1614
|
+
const { openSqliteDatabase } = await import("./runner-CXA9Fh8h.mjs");
|
|
1615
1615
|
const { databasePath: dbPath } = getLocalD1Target(root);
|
|
1616
1616
|
const sqlite = await openSqliteDatabase(dbPath);
|
|
1617
1617
|
try {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { c as
|
|
3
|
-
import { B as
|
|
4
|
-
import { n as PlatformClient } from "./client-
|
|
5
|
-
import { i as createSpinner, r as cliTitle } from "./output-
|
|
1
|
+
import { a as removeProjectConfig, r as readProjectConfig } from "./project-DKG5Ra8p.mjs";
|
|
2
|
+
import { c as getToken } from "./auth-CQkSDS50.mjs";
|
|
3
|
+
import { B as note, H as outro, L as log, N as intro, O as cancel, X as text, tt as isCancel } from "./prompts-BNUoTiaf.mjs";
|
|
4
|
+
import { n as PlatformClient } from "./client-DKAsFA4X.mjs";
|
|
5
|
+
import { i as createSpinner, r as cliTitle } from "./output-CbM85T4k.mjs";
|
|
6
6
|
import { r as resolveProjectBySlug } from "./resolve-project-BG5ORGID.mjs";
|
|
7
7
|
//#region src/cli/delete.ts
|
|
8
8
|
async function runDeleteCommand(root, slug, options) {
|