void 0.20.2 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/agents-gni4eqBu.mjs +111 -0
- package/dist/auth-3sGB0zJ1.mjs +22 -0
- package/dist/{auth-DPl6kck4.mjs → auth-B9_D6ygs.mjs} +6 -241
- package/dist/auth-CAw7zHqj.mjs +2 -0
- package/dist/auth-client-BWBT8HLp.mjs +6 -0
- package/dist/auth-client-Bawdj38n.d.mts +7 -0
- package/dist/auth-client-react-7GFffu8R.d.mts +7 -0
- package/dist/auth-client-react-CMLwT2xI.mjs +6 -0
- package/dist/auth-client-solid-DyTFL4cq.d.mts +7 -0
- package/dist/auth-client-solid-UoreJWZG.mjs +6 -0
- package/dist/auth-client-svelte-Cv_WvrRk.mjs +6 -0
- package/dist/auth-client-svelte-zetW0KIH.d.mts +7 -0
- package/dist/auth-client-vue-CFk7Xbv3.mjs +6 -0
- package/dist/auth-client-vue-bChShbQP.d.mts +7 -0
- package/dist/{auth-cmd-gniL2fNt.mjs → auth-cmd-MkBG2u1f.mjs} +5 -5
- package/dist/{auth-link-NZdjCmSc.mjs → auth-link-Devmv96E.mjs} +5 -5
- package/dist/{better-auth-shared-DSCeohOK.d.mts → better-auth-shared-BoVwA5Vm.d.mts} +1 -6
- package/dist/{better-auth-shared-CYw1T3k4.mjs → better-auth-shared-syGYYmnY.mjs} +1 -1
- package/dist/{build-cmd-sI18tX_O.mjs → build-cmd-DsBGwtfs.mjs} +6 -4
- package/dist/{cache-IHn5MwBC.mjs → cache-BMw8eMyF.mjs} +6 -4
- package/dist/{cancel-deploy-C5qTOdLi.mjs → cancel-deploy-B3_s9NIN.mjs} +5 -3
- package/dist/cf-access-rAZxzMkL.mjs +181 -0
- package/dist/cf-build-output-CTdlo6Rt.mjs +520 -0
- package/dist/cli/cf-compat.d.mts +1 -0
- package/dist/cli/cf-compat.mjs +934 -0
- package/dist/cli/cli.mjs +61 -38
- package/dist/cli/env-schema-probe.mjs +3 -3
- package/dist/client-DAAivdid.mjs +2 -0
- package/dist/{client-dHfSJvAN.mjs → client-PdAJ-F0t.mjs} +148 -89
- package/dist/{cloudflare-auth-6M5llVPC.mjs → cloudflare-auth-BCmTc1X_.mjs} +13 -44
- package/dist/{cloudflare-cmd-4RPGN3KB.mjs → cloudflare-cmd-D6PrKn7o.mjs} +4 -7
- package/dist/{cloudflare-connect-t1UU5svD.mjs → cloudflare-connect-DloREDlc.mjs} +6 -6
- package/dist/cloudflare-operations-BHNJVDbN.mjs +2 -0
- package/dist/{cloudflare-operations-BzWnlC1_.mjs → cloudflare-operations-CPEdHYhM.mjs} +37 -39
- package/dist/cloudflare-user-output-Q-k0QoNQ.mjs +20 -0
- package/dist/collect-DAUItMDS.mjs +2 -0
- package/dist/collect-DXHNWHcT.mjs +48 -0
- package/dist/config--T87TD8T.mjs +2 -0
- package/dist/{config-NOG_U1aK.mjs → config-BSe70f4T.mjs} +4 -6
- package/dist/config-DDIFxQYx.mjs +2 -0
- package/dist/{config-uNGuFsI2.mjs → config-Dxr6cTXn.mjs} +22 -37
- package/dist/config-DywxBLQC.d.mts +185 -0
- package/dist/config-entry.d.mts +6 -0
- package/dist/config-entry.mjs +7 -0
- package/dist/config-uP7ZDtVZ.mjs +21 -0
- package/dist/config-write-y3CBI_ux.mjs +60 -0
- package/dist/{connect-Bfk31O_8.mjs → connect-BvC9kolB.mjs} +8 -6
- package/dist/{create-project-Bk9Z0-Jg.mjs → create-project-C9lQhRzj.mjs} +9 -25
- package/dist/create-project-CI-17RVJ.mjs +2 -0
- package/dist/database-provider-Cx525bwX.mjs +6 -0
- package/dist/database-provider.mjs +1 -5
- package/dist/{db-BkRoptAt.mjs → db-R7IQgOv5.mjs} +48 -44
- package/dist/{delete-DouASY9P.mjs → delete-CghI_NXn.mjs} +6 -4
- package/dist/deploy-CYPymbtG.mjs +2 -0
- package/dist/{deploy-DTaWUS1S.mjs → deploy-H968Lo4T.mjs} +765 -197
- package/dist/discover-BBzDZe_o.mjs +2 -0
- package/dist/{discover-xvfrgJeo.mjs → discover-C4O6YxVS.mjs} +3 -8
- package/dist/{dist-BrsS7cai.mjs → dist-4WkAWhWx.mjs} +1 -15
- package/dist/{dist-m40_XgNh.mjs → dist-Bn8Kodjp.mjs} +1 -1
- package/dist/dist-C5fND3R0.mjs +2 -0
- package/dist/dist-D7-nEOXi.mjs +2 -0
- package/dist/{output-B0cfNSx5.mjs → dist-Dn6nn2IU.mjs} +3 -926
- package/dist/{domain-1RhhOVrC.mjs → domain-CITt8lC-.mjs} +7 -5
- package/dist/{route-types-Da-DpyUp.mjs → drizzle-Beb2Am5S.mjs} +1 -280
- package/dist/{email-Ce6SQq-i.mjs → email-C5kaZXzJ.mjs} +2 -2
- package/dist/{email-C-lGh51B.mjs → email-_8VmyX7V.mjs} +14 -12
- package/dist/{entry-DU3oDoQ3.mjs → entry-DdRFGK0y.mjs} +2 -2
- package/dist/{env-DJHsPE7Z.mjs → env-DV4r3nHz.mjs} +9 -7
- package/dist/{env-DBKmK4vc.mjs → env-DX_v-Q-v.mjs} +1 -1
- package/dist/env-Yz4HcvHs.mjs +78 -0
- package/dist/env-helpers--wFmQ_5Q.mjs +136 -0
- package/dist/{env-types-BNPhro-M.mjs → env-types-CWDtqHgw.mjs} +6 -2
- package/dist/{env-validation-CF6KvTRf.mjs → env-validation-BsFEXps5.mjs} +19 -28
- package/dist/env-validation-DIDGM7h4.mjs +2 -0
- package/dist/fetch-CXDChK7B.mjs +18 -0
- package/dist/fetch-_SeGZao9.d.mts +57 -0
- package/dist/fetch-stream-AOByI7Ki.mjs +81 -0
- package/dist/fetch-stream-Bjf0hoZb.d.mts +49 -0
- package/dist/gen-BBiIZw6g.mjs +2 -0
- package/dist/{gen-B_wPnVTK.mjs → gen-CFOEEc-t.mjs} +13 -11
- package/dist/{generate-RTK8_kK1.mjs → generate-C0VY6RVf.mjs} +2 -2
- package/dist/{github-cmd-PW7ZnWTp.mjs → github-cmd-jYjha2LO.mjs} +18 -22
- package/dist/{handler-D1hLsObx.d.mts → handler-BXJTXd02.d.mts} +6 -1
- package/dist/handler-DghKr6dU.mjs +150 -0
- package/dist/head-D_QRR5Yd.mjs +112 -0
- package/dist/head-client-DzmJGN4C.mjs +90 -0
- package/dist/{headers-BAHwgHdW.mjs → headers-B_HBMgi0.mjs} +2 -2
- package/dist/{help-CwOX-zmI.mjs → help-C46mnlUS.mjs} +17 -12
- package/dist/help-CS_nAsWu.mjs +2 -0
- package/dist/index.d.mts +2 -20
- package/dist/index.mjs +116 -60
- package/dist/{init-BWZ7q5Z4.mjs → init-CSXmvxKu.mjs} +49 -50
- package/dist/{link-Rmvu2Wl_.mjs → link-DxMOALXk.mjs} +7 -5
- package/dist/{list-DEE2S6mY.mjs → list-0wQs0oYg.mjs} +7 -5
- package/dist/live-CB1y5IuC.mjs +411 -0
- package/dist/live-CKiJilLr.d.mts +105 -0
- package/dist/local-d1-DzykTWY8.mjs +104 -0
- package/dist/{login-Uvferzmm.mjs → login-CKk5NX4d.mjs} +6 -11
- package/dist/login-Ch9cgWRF.mjs +2 -0
- package/dist/{logs-27FenuiC.mjs → logs-hxWBSoej.mjs} +6 -4
- package/dist/migrate-CLty4mZR.mjs +2 -0
- package/dist/migrate-DcW8F2W8.mjs +285 -0
- package/dist/migration-handler-DM4clYj5.d.mts +51 -0
- package/dist/{neon-DHwd2zvC.mjs → neon-n74ta1Pr.mjs} +1 -1
- package/dist/{node-Ez5KW5rn.mjs → node-Cupyf7-s.mjs} +6 -6
- package/dist/{operator-auth-B3e08unv.mjs → operator-auth-BkVgJqv-.mjs} +2 -2
- package/dist/{operator-client-LUZnlnYk.mjs → operator-client-A0iex2yi.mjs} +2 -1
- package/dist/{operator-cmd-CjOTmAYE.mjs → operator-cmd-BEUYhaHB.mjs} +6 -6
- package/dist/output-urU86XeT.mjs +146 -0
- package/dist/{package-json-CPoWX79C.mjs → package-json-iCbMg5XF.mjs} +1 -1
- package/dist/pages/client.d.mts +5 -2
- package/dist/pages/client.mjs +5 -3
- package/dist/pages/head-client.mjs +1 -89
- package/dist/pages/head.mjs +1 -111
- package/dist/pages/index.d.mts +2 -3
- package/dist/pages/index.mjs +7 -7
- package/dist/pages/islands-plugin.mjs +2 -2
- package/dist/pages/prefetch.d.mts +2 -30
- package/dist/pages/prefetch.mjs +1 -89
- package/dist/pages/protocol.d.mts +2 -2
- package/dist/pages/protocol.mjs +3 -3
- package/dist/pages/serialize.d.mts +2 -9
- package/dist/pages/serialize.mjs +1 -13
- package/dist/plan-BEZ8VJW0.mjs +256 -0
- package/dist/plan-DpuOr14e.mjs +2 -0
- package/dist/{platform-auth-config-DrbQXXiW.mjs → platform-auth-config-Df6yVw-e.mjs} +6 -6
- package/dist/{platform-auth-protection-Bhtvp0B_.mjs → platform-auth-protection-Jb0yftay.mjs} +7 -5
- package/dist/{platform-auth-recovery-CeOKGVeJ.mjs → platform-auth-recovery-DmRyIfW0.mjs} +6 -5
- package/dist/platform-cmd-C9Vt7m-d.mjs +2 -0
- package/dist/{platform-cmd-BFhieCdV.mjs → platform-cmd-DRxCOTwy.mjs} +8 -5
- package/dist/{platform-domain-C74PULqV.mjs → platform-domain-IjiXgrXJ.mjs} +4 -3
- package/dist/{platform-lifecycle-BwAIgz-t.mjs → platform-lifecycle-BquAaU-5.mjs} +263 -56
- package/dist/platform-lifecycle-CuJIZNvA.mjs +2 -0
- package/dist/{platform-management-COogu_Se.mjs → platform-management-CCQKGsq4.mjs} +12 -7
- package/dist/platform-management-Cgyed0WY.mjs +2 -0
- package/dist/{platform-recovery-ewqLefp1.mjs → platform-recovery-DS8ih1SW.mjs} +3 -3
- package/dist/platform-registry-BJbgZLS1.mjs +431 -0
- package/dist/{plugin-inference-BDRfZngg.mjs → plugin-inference-DsvtJLll.mjs} +4 -4
- package/dist/prefetch-Bsc_Pb6c.mjs +90 -0
- package/dist/prefetch-Ce6la4EI.d.mts +31 -0
- package/dist/{prepare-blNRQvQl.mjs → prepare-CaUxODOU.mjs} +3 -2
- package/dist/prepare-D4CkM3_v.mjs +2 -0
- package/dist/{prepare-CtDJjoOj.mjs → prepare-pcWcxSCh.mjs} +13 -11
- package/dist/prerender-render-Cf_WDE9W.mjs +111 -0
- package/dist/prerender-render.mjs +1 -110
- package/dist/{preset-lAy0B0BQ.mjs → preset-Dowh9tTt.mjs} +16 -118
- package/dist/project-BEBFDFLz.mjs +2 -0
- package/dist/project-CWNIPoXc.mjs +209 -0
- package/dist/{project-cmd-DmZK9Hxf.mjs → project-cmd-2lN--YAX.mjs} +18 -16
- package/dist/{project-paths-SK8nMHPp.mjs → project-paths-CKQ-Q5JS.mjs} +47 -14
- package/dist/project-slug-23TpquG4.mjs +8 -0
- package/dist/project-slug-DofjTFd-.mjs +2 -0
- package/dist/{project-team-D8jOJMUJ.mjs → project-team-Dapn9HZn.mjs} +9 -5
- package/dist/{project-token-DA34bf-C.mjs → project-token-C90v9SJK.mjs} +6 -4
- package/dist/{project-tsconfig-Ql2XsSQp.mjs → project-tsconfig-CwfqUnVp.mjs} +2 -2
- package/dist/{protocol-C-pqYJjE.d.mts → protocol-ZH3jP4a7.d.mts} +1 -1
- package/dist/providers-BNKRacMr.d.mts +7 -0
- package/dist/provision-CNgEBkVA.mjs +3 -0
- package/dist/{provision-CSJOjjQk.mjs → provision-Cck2m3jJ.mjs} +11 -25
- package/dist/queues-BWKt1Xo4.d.mts +7 -0
- package/dist/{requests-CUExwGQQ.mjs → requests-CzX46I0i.mjs} +5 -3
- package/dist/resolve-project-BTotl8Nn.mjs +2 -0
- package/dist/{resolve-project--Vxawf7z.mjs → resolve-project-Xvis70DG.mjs} +2 -8
- package/dist/response-Tn7rU0MV.mjs +30 -0
- package/dist/{rollback-CDNGU1gr.mjs → rollback-BEeyc73H.mjs} +6 -4
- package/dist/{rolldown-runtime-rQ84J-ij.mjs → rolldown-runtime-DXIUcv95.mjs} +1 -10
- package/dist/route-types-Id82-veQ.mjs +280 -0
- package/dist/{local-d1-D2I6Ox5F.mjs → runner-BGVsGgkb.mjs} +6 -114
- package/dist/runner-CQs_cDSG.mjs +2 -0
- package/dist/runner-mysql-1o47achK.mjs +2 -0
- package/dist/{runner-mysql-7BPUNGmL.mjs → runner-mysql-BhwMk2Bm.mjs} +2 -9
- package/dist/{runner-pg-BkEza-dX.mjs → runner-pg-CJ_JeGF6.mjs} +2 -9
- package/dist/runner-pg-D7z01mQS.mjs +2 -0
- package/dist/runtime/ai.mjs +1 -1
- package/dist/runtime/auth-client-react.d.mts +2 -6
- package/dist/runtime/auth-client-react.mjs +1 -5
- package/dist/runtime/auth-client-solid.d.mts +2 -6
- package/dist/runtime/auth-client-solid.mjs +1 -5
- package/dist/runtime/auth-client-svelte.d.mts +2 -6
- package/dist/runtime/auth-client-svelte.mjs +1 -5
- package/dist/runtime/auth-client-vue.d.mts +2 -6
- package/dist/runtime/auth-client-vue.mjs +1 -5
- package/dist/runtime/auth-client.d.mts +2 -6
- package/dist/runtime/auth-client.mjs +1 -5
- package/dist/runtime/auth.mjs +1 -21
- package/dist/runtime/better-auth-mysql.d.mts +1 -1
- package/dist/runtime/better-auth-mysql.mjs +1 -1
- package/dist/runtime/better-auth-pg.d.mts +1 -1
- package/dist/runtime/better-auth-pg.mjs +1 -1
- package/dist/runtime/better-auth.d.mts +1 -1
- package/dist/runtime/better-auth.mjs +1 -1
- package/dist/runtime/client-react.d.mts +3 -3
- package/dist/runtime/client-react.mjs +3 -3
- package/dist/runtime/client-solid.d.mts +3 -3
- package/dist/runtime/client-solid.mjs +3 -3
- package/dist/runtime/client-svelte.d.mts +3 -3
- package/dist/runtime/client-svelte.mjs +3 -3
- package/dist/runtime/client-vue.d.mts +3 -3
- package/dist/runtime/client-vue.mjs +3 -3
- package/dist/runtime/client.d.mts +3 -3
- package/dist/runtime/client.mjs +3 -3
- package/dist/runtime/db.mjs +1 -1
- package/dist/runtime/durable.mjs +1 -1
- package/dist/runtime/email/testing.mjs +1 -1
- package/dist/runtime/env-helpers.mjs +1 -135
- package/dist/runtime/env-public-client.mjs +1 -1
- package/dist/runtime/env-public.mjs +2 -2
- package/dist/runtime/env.mjs +1 -77
- package/dist/runtime/fetch-stream.d.mts +2 -49
- package/dist/runtime/fetch-stream.mjs +2 -80
- package/dist/runtime/fetch.d.mts +2 -57
- package/dist/runtime/fetch.mjs +2 -17
- package/dist/runtime/handler.d.mts +1 -1
- package/dist/runtime/handler.mjs +1 -149
- package/dist/runtime/kv.mjs +1 -1
- package/dist/runtime/live-client.d.mts +1 -1
- package/dist/runtime/live-server.mjs +2 -2
- package/dist/runtime/live.d.mts +2 -104
- package/dist/runtime/live.mjs +1 -410
- package/dist/runtime/migration-handler-mysql.d.mts +1 -1
- package/dist/runtime/migration-handler-pg.d.mts +1 -1
- package/dist/runtime/migration-handler.d.mts +2 -50
- package/dist/runtime/queues.d.mts +2 -6
- package/dist/runtime/queues.mjs +1 -1
- package/dist/runtime/remote/index.mjs +49 -8
- package/dist/runtime/response.mjs +1 -29
- package/dist/runtime/sandbox.d.mts +4 -56
- package/dist/runtime/sandbox.mjs +82 -221
- package/dist/runtime/sse.mjs +1 -171
- package/dist/runtime/storage.mjs +1 -1
- package/dist/runtime/validator.d.mts +1 -1
- package/dist/runtime/validator.mjs +1 -71
- package/dist/runtime/ws-server.d.mts +2 -2
- package/dist/runtime/ws-server.mjs +2 -2
- package/dist/runtime/ws.d.mts +2 -121
- package/dist/{scan-CpK-57ug.mjs → scan-DJbooZm2.mjs} +3 -3
- package/dist/{scan-BMH4rzlv.mjs → scan-DdDvRCU1.mjs} +8 -26
- package/dist/{secret-Bzzi2e9E.mjs → secret-wnTel5Yw.mjs} +8 -6
- package/dist/serialize-BPvnNQuA.mjs +14 -0
- package/dist/serialize-CfSwWfF2.d.mts +10 -0
- package/dist/{skills-C0RvGjeE.mjs → skills-B-690E7h.mjs} +3 -2
- package/dist/sse-BaC1jXko.mjs +172 -0
- package/dist/{subcommand-prompt-Bmyn5Rlc.mjs → subcommand-prompt-Gj3VzLIh.mjs} +2 -1
- package/dist/sveltekit.d.mts +2 -1
- package/dist/sveltekit.mjs +3 -2
- package/dist/validate-DqJ33oHj.mjs +2 -0
- package/dist/validate-qNhV00PD.mjs +180 -0
- package/dist/validator-BTOu0fB0.mjs +72 -0
- package/dist/{wrangler--imS8n0d.mjs → wrangler-D01qs6VB.mjs} +259 -71
- package/dist/ws-BwcqizuH.d.mts +122 -0
- package/dist/{yarn-pnp-DxSInkzL.mjs → yarn-pnp-CVEc3gE7.mjs} +1 -1
- package/package.json +19 -8
- package/skills/void/SKILL.md +7 -5
- package/skills/void/docs/guide/ai.md +3 -3
- package/skills/void/docs/guide/app-types.md +12 -11
- package/skills/void/docs/guide/auth.md +2 -2
- package/skills/void/docs/guide/database/d1.md +1 -1
- package/skills/void/docs/guide/database/mysql.md +1 -1
- package/skills/void/docs/guide/database/postgresql.md +3 -3
- package/skills/void/docs/guide/deployment.md +16 -16
- package/skills/void/docs/guide/durable-state.md +2 -2
- package/skills/void/docs/guide/edge/headers.md +3 -3
- package/skills/void/docs/guide/edge/prerendering.md +1 -1
- package/skills/void/docs/guide/edge/redirects.md +4 -4
- package/skills/void/docs/guide/edge/revalidation.md +6 -6
- package/skills/void/docs/guide/edge/rewrites.md +28 -27
- package/skills/void/docs/guide/edge/static-assets.md +1 -1
- package/skills/void/docs/guide/email.md +27 -25
- package/skills/void/docs/guide/env-migration.md +1 -1
- package/skills/void/docs/guide/index.md +1 -1
- package/skills/void/docs/guide/pages-routing/head.md +1 -1
- package/skills/void/docs/guide/platform/administration/access.md +171 -0
- package/skills/void/docs/guide/platform/administration/email.md +121 -0
- package/skills/void/docs/guide/platform/administration/operations.md +97 -0
- package/skills/void/docs/guide/platform/administration/projects.md +56 -0
- package/skills/void/docs/guide/platform/development/local.md +119 -0
- package/skills/void/docs/guide/platform/development/runtime.md +124 -0
- package/skills/void/docs/guide/platform/development/schema-ci.md +95 -0
- package/skills/void/docs/guide/platform/installation/ci.md +58 -0
- package/skills/void/docs/guide/platform/installation/credentials.md +90 -0
- package/skills/void/docs/guide/platform/installation/domains.md +68 -0
- package/skills/void/docs/guide/platform/installation/first-deployment.md +82 -0
- package/skills/void/docs/guide/platform/installation/maintenance.md +137 -0
- package/skills/void/docs/guide/platform/installation/prerequisites.md +88 -0
- package/skills/void/docs/guide/platform/installation/setup.md +169 -0
- package/skills/void/docs/guide/platform/installation/uninstall.md +54 -0
- package/skills/void/docs/guide/platform-administration.md +6 -414
- package/skills/void/docs/guide/platform-development.md +5 -316
- package/skills/void/docs/guide/project-collaboration.md +1 -1
- package/skills/void/docs/guide/remote-dev.md +2 -2
- package/skills/void/docs/guide/sandboxes.md +10 -25
- package/skills/void/docs/guide/self-hosted-platform.md +11 -694
- package/skills/void/docs/guide/ssg.md +1 -1
- package/skills/void/docs/guide/websockets.md +1 -1
- package/skills/void/docs/integrations/cloudflare.md +86 -84
- package/skills/void/docs/integrations/frameworks/analog.md +14 -9
- package/skills/void/docs/integrations/frameworks/astro.md +14 -10
- package/skills/void/docs/integrations/frameworks/nuxt.md +14 -9
- package/skills/void/docs/integrations/frameworks/overview.md +35 -29
- package/skills/void/docs/integrations/frameworks/react-router.md +1 -1
- package/skills/void/docs/integrations/frameworks/sveltekit.md +33 -30
- package/skills/void/docs/integrations/frameworks/tanstack-start.md +1 -1
- package/skills/void/docs/integrations/nodejs-bun-deno.md +5 -5
- package/skills/void/docs/reference/api.md +55 -38
- package/skills/void/docs/reference/cli.md +60 -34
- package/skills/void/docs/reference/config.md +57 -34
- package/skills/void/docs/reference/resource-inference.md +10 -10
- package/skills/void/docs/reference/structure.md +2 -2
- package/dist/validate-tBBN_dXH.mjs +0 -505
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import "./types-CKWnYgfy.mjs";
|
|
2
|
+
import { t as VoidAuthProvider } from "./providers-BNKRacMr.mjs";
|
|
3
|
+
import { t as HeadConfig } from "./head-Do8P4puT.mjs";
|
|
4
|
+
import { RewriteDestination } from "void/routes";
|
|
5
|
+
//#region src/sandbox/config.d.ts
|
|
6
|
+
type SandboxInstanceType = "dev" | "lite" | "basic" | "standard" | "standard-1" | "standard-2" | "standard-3" | "standard-4";
|
|
7
|
+
type SandboxConfig = {
|
|
8
|
+
binding?: string;
|
|
9
|
+
className?: string;
|
|
10
|
+
containerName?: string;
|
|
11
|
+
image?: string;
|
|
12
|
+
imageBuildContext?: string;
|
|
13
|
+
platformImage?: string;
|
|
14
|
+
instanceType?: SandboxInstanceType;
|
|
15
|
+
maxInstances?: number;
|
|
16
|
+
};
|
|
17
|
+
//#endregion
|
|
18
|
+
//#region src/config.d.ts
|
|
19
|
+
/** Redirect destination — string (302) or object with explicit status. */
|
|
20
|
+
type RedirectDestination = string | {
|
|
21
|
+
to: string;
|
|
22
|
+
status?: 301 | 302 | 303 | 307 | 308;
|
|
23
|
+
};
|
|
24
|
+
/** Curated Worker fields accepted in the legacy void.json config. */
|
|
25
|
+
type WranglerConfig = {
|
|
26
|
+
compatibility_date?: string;
|
|
27
|
+
compatibility_flags?: Array<string>;
|
|
28
|
+
vars?: Record<string, string>;
|
|
29
|
+
limits?: {
|
|
30
|
+
cpu_ms?: number;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* How the asset layer answers a request that matched no asset and no worker
|
|
35
|
+
* route. Mirrors Cloudflare's `assets.not_found_handling`.
|
|
36
|
+
*/
|
|
37
|
+
type NotFoundHandling = "single-page-application" | "404-page" | "none";
|
|
38
|
+
/** Routing configuration — headers, redirects, rewrites, fallbacks, revalidation, prerendering. */
|
|
39
|
+
type RoutingConfig = {
|
|
40
|
+
/** Disable ISR and edge prerendering, including per-page policies. Static output is unaffected. */
|
|
41
|
+
isr?: boolean;
|
|
42
|
+
revalidate?: number | Record<string, number>;
|
|
43
|
+
revalidateQueryAllowlist?: Record<string, Array<string>>;
|
|
44
|
+
prerender?: Array<string>;
|
|
45
|
+
headers?: Record<string, Array<string>>;
|
|
46
|
+
redirects?: Record<string, RedirectDestination>;
|
|
47
|
+
rewrites?: Record<string, RewriteDestination>;
|
|
48
|
+
fallbacks?: Record<string, RewriteDestination>;
|
|
49
|
+
/**
|
|
50
|
+
* Override the inferred `not_found_handling` for the asset layer.
|
|
51
|
+
*
|
|
52
|
+
* Void infers `single-page-application` whenever the worker does not own HTML
|
|
53
|
+
* routing, because a real SPA needs `/index.html` served for deep links. An
|
|
54
|
+
* app whose assets were emitted by a static site generator (VitePress,
|
|
55
|
+
* Docusaurus, …) wants the opposite: unknown URLs should serve the generator's
|
|
56
|
+
* own `404.html` with a real HTTP 404, not `index.html` with a 200. Nothing in
|
|
57
|
+
* a built asset tree distinguishes the two, so this is an explicit opt-in.
|
|
58
|
+
*
|
|
59
|
+
* Only `not_found_handling` is affected — `run_worker_first` is unchanged, so
|
|
60
|
+
* API routes, auth, and `/__void/*` still reach the worker first.
|
|
61
|
+
*/
|
|
62
|
+
notFound?: NotFoundHandling;
|
|
63
|
+
};
|
|
64
|
+
/** Inference configuration — bindings, scanDirs, build, outputDir, appType. */
|
|
65
|
+
type InferenceConfig = {
|
|
66
|
+
bindings?: {
|
|
67
|
+
db?: boolean | string;
|
|
68
|
+
kv?: boolean | string;
|
|
69
|
+
storage?: boolean | string;
|
|
70
|
+
ai?: boolean | string;
|
|
71
|
+
email?: boolean;
|
|
72
|
+
};
|
|
73
|
+
scanDirs?: ReadonlyArray<string>;
|
|
74
|
+
build?: string;
|
|
75
|
+
outputDir?: string;
|
|
76
|
+
appType?: "spa" | "static" | "void" | "framework";
|
|
77
|
+
};
|
|
78
|
+
/** Auth configuration — high-level provider selection for Better Auth defaults. */
|
|
79
|
+
type AuthConfig = {
|
|
80
|
+
providers?: Array<VoidAuthProvider>;
|
|
81
|
+
};
|
|
82
|
+
/** AI configuration — the Cloudflare AI Gateway used by `ai.provider().fetch()` on self-hosted deploys (Workers AI `ai.run`/`ai.image` use the `env.AI` binding directly). */
|
|
83
|
+
type AiConfig = {
|
|
84
|
+
gateway?: string;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Email configuration. `from` is the default sender for `sendEmail()` — one
|
|
88
|
+
* address, optionally with a display name (`Acme <noreply@mail.acme.com>`) —
|
|
89
|
+
* and, on `void deploy --platform cloudflare`, its host is the domain the CLI
|
|
90
|
+
* sets Email Routing and Email Sending up on.
|
|
91
|
+
*/
|
|
92
|
+
type EmailConfig = {
|
|
93
|
+
from?: string;
|
|
94
|
+
};
|
|
95
|
+
/** Cloudflare Worker configuration passed through to the native deploy artifact. */
|
|
96
|
+
type CloudflareField<T> = T & Record<string, unknown>;
|
|
97
|
+
type CloudflareConfig = Record<string, unknown> & {
|
|
98
|
+
account_id?: string;
|
|
99
|
+
name?: string;
|
|
100
|
+
main?: string;
|
|
101
|
+
compatibility_date?: string;
|
|
102
|
+
compatibility_flags?: Array<string>;
|
|
103
|
+
workers_dev?: boolean;
|
|
104
|
+
preview_urls?: boolean;
|
|
105
|
+
vars?: Record<string, unknown>;
|
|
106
|
+
routes?: Array<string | CloudflareField<{
|
|
107
|
+
pattern: string;
|
|
108
|
+
zone_name?: string;
|
|
109
|
+
zone_id?: string;
|
|
110
|
+
}>>;
|
|
111
|
+
route?: string | CloudflareField<{
|
|
112
|
+
pattern: string;
|
|
113
|
+
zone_name?: string;
|
|
114
|
+
zone_id?: string;
|
|
115
|
+
}>;
|
|
116
|
+
d1_databases?: Array<CloudflareField<{
|
|
117
|
+
binding: string;
|
|
118
|
+
database_name?: string;
|
|
119
|
+
database_id?: string;
|
|
120
|
+
migrations_dir?: string;
|
|
121
|
+
migrations_table?: string;
|
|
122
|
+
}>>;
|
|
123
|
+
kv_namespaces?: Array<CloudflareField<{
|
|
124
|
+
binding: string;
|
|
125
|
+
id?: string;
|
|
126
|
+
preview_id?: string;
|
|
127
|
+
}>>;
|
|
128
|
+
r2_buckets?: Array<CloudflareField<{
|
|
129
|
+
binding: string;
|
|
130
|
+
bucket_name?: string;
|
|
131
|
+
preview_bucket_name?: string;
|
|
132
|
+
}>>;
|
|
133
|
+
hyperdrive?: Array<CloudflareField<{
|
|
134
|
+
binding: string;
|
|
135
|
+
id?: string;
|
|
136
|
+
}>>;
|
|
137
|
+
queues?: CloudflareField<{
|
|
138
|
+
producers?: Array<CloudflareField<{
|
|
139
|
+
binding: string;
|
|
140
|
+
queue: string;
|
|
141
|
+
}>>;
|
|
142
|
+
consumers?: Array<CloudflareField<{
|
|
143
|
+
queue: string;
|
|
144
|
+
max_batch_size?: number;
|
|
145
|
+
max_batch_timeout?: number;
|
|
146
|
+
max_retries?: number;
|
|
147
|
+
dead_letter_queue?: string;
|
|
148
|
+
}>>;
|
|
149
|
+
}>;
|
|
150
|
+
assets?: CloudflareField<{
|
|
151
|
+
directory?: string;
|
|
152
|
+
binding?: string;
|
|
153
|
+
not_found_handling?: "single-page-application" | "404-page" | "none";
|
|
154
|
+
run_worker_first?: boolean | Array<string>;
|
|
155
|
+
}>;
|
|
156
|
+
triggers?: CloudflareField<{
|
|
157
|
+
crons?: Array<string>;
|
|
158
|
+
}>;
|
|
159
|
+
send_email?: Array<CloudflareField<{
|
|
160
|
+
name: string;
|
|
161
|
+
destination_address?: string;
|
|
162
|
+
allowed_destination_addresses?: Array<string>;
|
|
163
|
+
allowed_sender_addresses?: Array<string>;
|
|
164
|
+
}>>;
|
|
165
|
+
addresses?: Array<string>;
|
|
166
|
+
};
|
|
167
|
+
/** Shape of the Void project config. All fields optional. */
|
|
168
|
+
type VoidConfig = {
|
|
169
|
+
sourceDir?: string;
|
|
170
|
+
target?: "cloudflare" | "node" | "bun" | "deno";
|
|
171
|
+
output?: "server" | "static";
|
|
172
|
+
auth?: AuthConfig;
|
|
173
|
+
head?: HeadConfig;
|
|
174
|
+
routing?: RoutingConfig;
|
|
175
|
+
inference?: InferenceConfig;
|
|
176
|
+
sandbox?: boolean | SandboxConfig;
|
|
177
|
+
remote?: boolean;
|
|
178
|
+
worker?: WranglerConfig;
|
|
179
|
+
cloudflare?: CloudflareConfig;
|
|
180
|
+
database?: "pg" | "mysql";
|
|
181
|
+
ai?: AiConfig;
|
|
182
|
+
email?: EmailConfig;
|
|
183
|
+
};
|
|
184
|
+
//#endregion
|
|
185
|
+
export { VoidConfig as t };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { t as VoidConfig } from "./config-DywxBLQC.mjs";
|
|
2
|
+
//#region src/config-entry.d.ts
|
|
3
|
+
/** Define a typed Void project configuration without loading the Vite plugin. */
|
|
4
|
+
export declare function defineConfig<const T extends VoidConfig>(config: T): T;
|
|
5
|
+
//#endregion
|
|
6
|
+
export type { VoidConfig };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { n as readProjectPaths } from "./project-paths-CKQ-Q5JS.mjs";
|
|
2
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
3
|
+
import { pathToFileURL } from "node:url";
|
|
4
|
+
//#region src/auth/config.ts
|
|
5
|
+
function isVoidAuthConfigSource(code) {
|
|
6
|
+
return /\bfrom\s+["']void\/auth["']/.test(code);
|
|
7
|
+
}
|
|
8
|
+
function findVoidAuthConfig(root, paths = readProjectPaths(root)) {
|
|
9
|
+
for (const absPath of paths.authConfigCandidates) {
|
|
10
|
+
if (!existsSync(absPath)) continue;
|
|
11
|
+
if (isVoidAuthConfigSource(readFileSync(absPath, "utf-8"))) return absPath;
|
|
12
|
+
}
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
async function loadVoidAuthConfig(configPath) {
|
|
16
|
+
if (!configPath) return;
|
|
17
|
+
const mod = await import(pathToFileURL(configPath).href);
|
|
18
|
+
return mod.default ?? mod.auth ?? mod.config;
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
export { loadVoidAuthConfig as n, findVoidAuthConfig as t };
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { a as join } from "./dist-4WkAWhWx.mjs";
|
|
2
|
+
import { o as TYPED_CONFIG_FILE, s as loadTypedVoidConfigFile } from "./project-paths-CKQ-Q5JS.mjs";
|
|
3
|
+
import { g as validateConfig } from "./config-Dxr6cTXn.mjs";
|
|
4
|
+
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
5
|
+
import { parse } from "acorn";
|
|
6
|
+
//#region src/config-write.ts
|
|
7
|
+
const GENERATED_MARKERS = [
|
|
8
|
+
"// Generated by void migrate.",
|
|
9
|
+
"// Generated from void.json by void migrate.",
|
|
10
|
+
"// Generated by void init."
|
|
11
|
+
];
|
|
12
|
+
function renderVoidConfig(config, marker = GENERATED_MARKERS[0]) {
|
|
13
|
+
return `${marker}\nimport { defineConfig } from 'void/config';\n\nexport default defineConfig(${JSON.stringify(config, null, 2)});\n`;
|
|
14
|
+
}
|
|
15
|
+
function isStaticValue(node) {
|
|
16
|
+
if (!node) return false;
|
|
17
|
+
if (node.type === "Literal") return node.value === null || [
|
|
18
|
+
"string",
|
|
19
|
+
"number",
|
|
20
|
+
"boolean"
|
|
21
|
+
].includes(typeof node.value);
|
|
22
|
+
if (node.type === "UnaryExpression") return node.operator === "-" && node.argument?.type === "Literal" && typeof node.argument.value === "number";
|
|
23
|
+
if (node.type === "ArrayExpression") return node.elements?.every(isStaticValue) ?? false;
|
|
24
|
+
if (node.type !== "ObjectExpression") return false;
|
|
25
|
+
return node.properties?.every((property) => property.type === "Property" && property.kind === "init" && !property.computed && !property.method && (property.key?.type === "Identifier" || property.key?.type === "Literal") && isStaticValue(property.value)) ?? false;
|
|
26
|
+
}
|
|
27
|
+
function isGeneratedStaticConfig(source) {
|
|
28
|
+
if (!GENERATED_MARKERS.some((marker) => source.startsWith(marker))) return false;
|
|
29
|
+
const comments = [];
|
|
30
|
+
let program;
|
|
31
|
+
try {
|
|
32
|
+
program = parse(source, {
|
|
33
|
+
ecmaVersion: "latest",
|
|
34
|
+
sourceType: "module",
|
|
35
|
+
onComment: (_block, comment) => comments.push(comment.trim())
|
|
36
|
+
});
|
|
37
|
+
} catch {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
if (comments.length !== 1 || !GENERATED_MARKERS.includes(`// ${comments[0]}`)) return false;
|
|
41
|
+
const [importDeclaration, exportDeclaration] = program.body ?? [];
|
|
42
|
+
const call = exportDeclaration?.declaration;
|
|
43
|
+
return program.body?.length === 2 && importDeclaration?.type === "ImportDeclaration" && importDeclaration.source?.value === "void/config" && importDeclaration.specifiers?.length === 1 && importDeclaration.specifiers[0]?.imported?.name === "defineConfig" && importDeclaration.specifiers[0]?.local?.name === "defineConfig" && exportDeclaration?.type === "ExportDefaultDeclaration" && call?.type === "CallExpression" && call.callee?.name === "defineConfig" && call.arguments?.length === 1 && isStaticValue(call.arguments[0]);
|
|
44
|
+
}
|
|
45
|
+
function canRewriteVoidProjectConfig(root) {
|
|
46
|
+
const path = join(root, TYPED_CONFIG_FILE);
|
|
47
|
+
return !existsSync(path) || isGeneratedStaticConfig(readFileSync(path, "utf8"));
|
|
48
|
+
}
|
|
49
|
+
/** Update CLI-owned static config without silently rewriting authored TypeScript. */
|
|
50
|
+
function writeVoidProjectConfig(root, config) {
|
|
51
|
+
validateConfig(config, TYPED_CONFIG_FILE);
|
|
52
|
+
const path = join(root, TYPED_CONFIG_FILE);
|
|
53
|
+
if (existsSync(path)) {
|
|
54
|
+
if (!isGeneratedStaticConfig(readFileSync(path, "utf8"))) throw new Error(`config: ${TYPED_CONFIG_FILE} contains authored TypeScript or comments. Update it directly and rerun the command.`);
|
|
55
|
+
validateConfig(loadTypedVoidConfigFile(path), TYPED_CONFIG_FILE);
|
|
56
|
+
}
|
|
57
|
+
writeFileSync(path, renderVoidConfig(config, "// Generated by void init."));
|
|
58
|
+
}
|
|
59
|
+
//#endregion
|
|
60
|
+
export { writeVoidProjectConfig as n, canRewriteVoidProjectConfig as t };
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { t as
|
|
1
|
+
import { f as readPlatformToken } from "./auth-B9_D6ygs.mjs";
|
|
2
|
+
import { o as listPlatformConnections, s as normalizePlatformApiUrl } from "./platform-registry-BJbgZLS1.mjs";
|
|
3
|
+
import { i as readDeploymentPlatform, l as writeDeploymentPlatform, u as writePlatformSelection } from "./project-CWNIPoXc.mjs";
|
|
4
|
+
import { I as select, W as isCancel, j as log } from "./dist-Dn6nn2IU.mjs";
|
|
5
|
+
import { i as isExpiredTokenError, n as PlatformClient } from "./client-PdAJ-F0t.mjs";
|
|
6
|
+
import { t as promptForLoginToken } from "./login-CKk5NX4d.mjs";
|
|
7
|
+
import { i as saveDiscoveredPlatform, n as promptPlatformUrl, t as discoverPlatform } from "./platform-cmd-DRxCOTwy.mjs";
|
|
8
|
+
import { t as connectCloudflare } from "./cloudflare-connect-DloREDlc.mjs";
|
|
7
9
|
//#region src/cli/connect.ts
|
|
8
10
|
async function selectVoidPlatform(interactive) {
|
|
9
11
|
if (!interactive) throw new Error("connect: Supply a Void platform URL in non-interactive mode.");
|
|
@@ -1,20 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
MAX_SLUG_LENGTH: () => 56,
|
|
9
|
-
validateProjectSlug: () => validateProjectSlug
|
|
10
|
-
});
|
|
11
|
-
function validateProjectSlug(value) {
|
|
12
|
-
const slug = (value ?? "").trim();
|
|
13
|
-
if (slug.length === 0) return "Project slug is required.";
|
|
14
|
-
if (!(slug.length === 1 ? /^[a-z0-9]$/.test(slug) : /^[a-z0-9][a-z0-9-]*[a-z0-9]$/.test(slug))) return "Slug must be lowercase alphanumeric with dashes.";
|
|
15
|
-
if (slug.length > 56) return `Slug must be at most 56 characters (it forms the email sender <slug>+noreply@).`;
|
|
16
|
-
}
|
|
17
|
-
//#endregion
|
|
1
|
+
import { c as import_picocolors } from "./output-urU86XeT.mjs";
|
|
2
|
+
import { s as getSiteDomain } from "./auth-B9_D6ygs.mjs";
|
|
3
|
+
import { d as writeProjectConfig, t as attachSelectedPlatform } from "./project-CWNIPoXc.mjs";
|
|
4
|
+
import { B as text, E as confirm, I as select, T as cancel, W as isCancel, j as log } from "./dist-Dn6nn2IU.mjs";
|
|
5
|
+
import { t as PlatformApiError } from "./client-PdAJ-F0t.mjs";
|
|
6
|
+
import { t as validateProjectSlug } from "./project-slug-23TpquG4.mjs";
|
|
7
|
+
import { n as inferDefaultSlug } from "./resolve-project-Xvis70DG.mjs";
|
|
18
8
|
//#region src/cli/prompt.ts
|
|
19
9
|
async function promptProjectSetupAction(message = "Set up a Void project:", options = {}) {
|
|
20
10
|
const result = await select({
|
|
@@ -79,11 +69,6 @@ async function promptProjectSlug(defaultSlug) {
|
|
|
79
69
|
}
|
|
80
70
|
//#endregion
|
|
81
71
|
//#region src/cli/create-project.ts
|
|
82
|
-
var create_project_exports = /* @__PURE__ */ __exportAll({
|
|
83
|
-
createProjectWithSlugRetry: () => createProjectWithSlugRetry,
|
|
84
|
-
isRetryableCreateError: () => isRetryableCreateError,
|
|
85
|
-
promptAndCreateProject: () => promptAndCreateProject
|
|
86
|
-
});
|
|
87
72
|
/**
|
|
88
73
|
* Prompts for a slug and calls `client.createProject`, re-prompting whenever
|
|
89
74
|
* the server rejects with a retryable error (e.g. free-plan short-slug 403,
|
|
@@ -105,8 +90,7 @@ async function createProjectWithSlugRetry(client, initialDefaultSlug, promptSlug
|
|
|
105
90
|
return project;
|
|
106
91
|
} catch (error) {
|
|
107
92
|
if (error instanceof PlatformApiError && isRetryableCreateError(error)) {
|
|
108
|
-
|
|
109
|
-
log.error(`project: Could not create project '${slug}': ${reason}.`);
|
|
93
|
+
log.error(`project: ${error.message}`);
|
|
110
94
|
defaultSlug = slug;
|
|
111
95
|
continue;
|
|
112
96
|
}
|
|
@@ -137,4 +121,4 @@ function isSlugRelatedError(error) {
|
|
|
137
121
|
return `${error.code ?? ""} ${error.body ?? ""}`.toLowerCase().includes("slug");
|
|
138
122
|
}
|
|
139
123
|
//#endregion
|
|
140
|
-
export {
|
|
124
|
+
export { promptProjectSetupAction as a, promptProjectSelection as i, isRetryableCreateError as n, promptAndCreateProject as r, createProjectWithSlugRetry as t };
|