void 0.20.3 → 0.21.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/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-CzwquNiP.mjs → auth-cmd-g_ymMkUe.mjs} +5 -5
- package/dist/{auth-link-ElDTgF7j.mjs → auth-link-DFvxIyZi.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-BpJe6boP.mjs → build-cmd-wJAv808h.mjs} +6 -4
- package/dist/{cache-D98YTqeE.mjs → cache-Be0Fu5Ka.mjs} +6 -4
- package/dist/{cancel-deploy-CPbEQLMG.mjs → cancel-deploy-BgmyOwhe.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 +944 -0
- package/dist/cli/cli.mjs +60 -38
- package/dist/cli/env-schema-probe.mjs +3 -3
- package/dist/client-DAAivdid.mjs +2 -0
- package/dist/{client-BQBrZoCX.mjs → client-PdAJ-F0t.mjs} +6 -12
- 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-WCQZ_u3m.mjs → connect-LnvW4HKx.mjs} +8 -6
- package/dist/{create-project-D0oXA090.mjs → create-project-BZBl_gQ0.mjs} +8 -23
- package/dist/create-project-JV9-6ICF.mjs +2 -0
- package/dist/database-provider-Cx525bwX.mjs +6 -0
- package/dist/database-provider.mjs +1 -5
- package/dist/{db-DJ-9qs3S.mjs → db-Mzv88E1C.mjs} +48 -44
- package/dist/{delete-BZ4-WaGm.mjs → delete-Ri6JemSU.mjs} +6 -4
- package/dist/deploy-DAH2-m_-.mjs +2 -0
- package/dist/{deploy-BAhhcg5q.mjs → deploy-DEsMVrCY.mjs} +796 -198
- 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-BxAyhxXN.mjs → domain-BA37Ye7T.mjs} +7 -5
- package/dist/{route-types-Da-DpyUp.mjs → drizzle-Beb2Am5S.mjs} +1 -280
- package/dist/{email-Bj7Cvdwp.mjs → email-C5NsxrQG.mjs} +14 -12
- package/dist/{email-Ce6SQq-i.mjs → email-C5kaZXzJ.mjs} +2 -2
- package/dist/{entry-DU3oDoQ3.mjs → entry-DdRFGK0y.mjs} +2 -2
- package/dist/{env-DBKmK4vc.mjs → env-DX_v-Q-v.mjs} +1 -1
- package/dist/{env-DP_EErve.mjs → env-U_ohASB0.mjs} +9 -7
- 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-B87rlalt.mjs +2 -0
- package/dist/{gen-B_wPnVTK.mjs → gen-pg-Ojg8Y.mjs} +13 -11
- package/dist/{generate-RTK8_kK1.mjs → generate-C0VY6RVf.mjs} +2 -2
- package/dist/{github-cmd-C-z_xRrQ.mjs → github-cmd-DsrkweIl.mjs} +6 -4
- 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-B403BLBB.mjs +2 -0
- package/dist/{help-CwOX-zmI.mjs → help-sBhFH6pi.mjs} +17 -12
- package/dist/index.d.mts +2 -20
- package/dist/index.mjs +116 -60
- package/dist/{init-BGktCXgA.mjs → init-C--Yyj1b.mjs} +49 -50
- package/dist/{link-D2kbqhWb.mjs → link-BC-mNG9-.mjs} +7 -5
- package/dist/{list-CvkK_G7k.mjs → list-DHU1Wj6c.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-BwiopVdg.mjs +2 -0
- package/dist/{login-WIjNc77c.mjs → login-jKe_0QZL.mjs} +6 -11
- package/dist/{logs-dLUFCapG.mjs → logs-BG11f5PR.mjs} +6 -4
- package/dist/migrate-BV8qHiCb.mjs +285 -0
- package/dist/migrate-BXY3B3m7.mjs +2 -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-CKJ7xIRs.mjs → operator-cmd-BwAS2XZt.mjs} +6 -6
- package/dist/output-CCH48AMM.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-CdVWRRJr.mjs → platform-auth-config-C-hv-_Ok.mjs} +6 -6
- package/dist/{platform-auth-protection-Drl0qhrn.mjs → platform-auth-protection-DjTE5Hj-.mjs} +7 -5
- package/dist/{platform-auth-recovery-CmKEWpDo.mjs → platform-auth-recovery-Cr0r8TEb.mjs} +6 -5
- package/dist/{platform-cmd-5q_k56xS.mjs → platform-cmd-0tEh2ZtA.mjs} +8 -5
- package/dist/platform-cmd-DE6dw45v.mjs +2 -0
- package/dist/{platform-domain-4GiDlcqx.mjs → platform-domain-B_7x6Iqx.mjs} +4 -3
- package/dist/platform-lifecycle-Dhx9Pnub.mjs +2 -0
- package/dist/{platform-lifecycle-R9xAxvtG.mjs → platform-lifecycle-Di0LbhPM.mjs} +208 -37
- package/dist/platform-management-B9LUtMt9.mjs +2 -0
- package/dist/{platform-management-BfWsXHEW.mjs → platform-management-eaiaU3uM.mjs} +8 -5
- package/dist/{platform-recovery-CbK-I1FB.mjs → platform-recovery-BxfA8E5C.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-D4CkM3_v.mjs +2 -0
- package/dist/{prepare-blNRQvQl.mjs → prepare-_T-Haxrr.mjs} +3 -2
- 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-CTdmnzvc.mjs → project-cmd-DrnRJdep.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-CGxsQe3_.mjs → project-team-CzRbO_kA.mjs} +6 -4
- package/dist/{project-token-Cirx7uwZ.mjs → project-token-Bwxjf4y6.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-4Nq59hOr.mjs → requests-DwrqUQZ8.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-Dr7u0Ljx.mjs → rollback-B4tFWmkN.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/response.mjs +1 -29
- package/dist/runtime/sandbox.mjs +1 -1
- 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-AcPi-FoA.mjs → secret-UtrRjhEO.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-BuGYkAkC.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 +6 -4
- 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 +8 -15
- 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 +60 -66
- package/skills/void/docs/guide/env-migration.md +1 -1
- package/skills/void/docs/guide/index.md +15 -41
- package/skills/void/docs/guide/pages-routing/head.md +1 -1
- package/skills/void/docs/guide/platform/administration/access.md +13 -5
- package/skills/void/docs/guide/platform/administration/projects.md +3 -1
- package/skills/void/docs/guide/platform/installation/ci.md +3 -0
- package/skills/void/docs/guide/platform/installation/credentials.md +15 -5
- package/skills/void/docs/guide/platform/installation/prerequisites.md +2 -0
- package/skills/void/docs/guide/platform/installation/setup.md +1 -1
- package/skills/void/docs/guide/quickstart.md +11 -78
- package/skills/void/docs/guide/remote-dev.md +2 -2
- package/skills/void/docs/guide/sandboxes.md +1 -1
- package/skills/void/docs/guide/ssg.md +1 -1
- package/skills/void/docs/guide/websockets.md +1 -1
- package/skills/void/docs/index.md +17 -17
- package/skills/void/docs/integrations/cloudflare.md +91 -96
- 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 +21 -4
- package/skills/void/docs/reference/cli.md +40 -25
- package/skills/void/docs/reference/config.md +58 -35
- package/skills/void/docs/reference/structure.md +2 -2
- package/dist/validate-tBBN_dXH.mjs +0 -505
|
@@ -40,6 +40,7 @@ export default defineConfig({
|
|
|
40
40
|
ssr: true,
|
|
41
41
|
nitro: {
|
|
42
42
|
preset: 'cloudflare-module',
|
|
43
|
+
cloudflareDev: { configPath: './.void-wrangler.jsonc' },
|
|
43
44
|
modules: ['nitro-cloudflare-dev'],
|
|
44
45
|
alias: {
|
|
45
46
|
// Nitro has its own bundler that doesn't use Vite aliases.
|
|
@@ -53,16 +54,20 @@ export default defineConfig({
|
|
|
53
54
|
});
|
|
54
55
|
```
|
|
55
56
|
|
|
56
|
-
### 4. Create `
|
|
57
|
+
### 4. Create `void.config.ts`
|
|
57
58
|
|
|
58
|
-
|
|
59
|
+
Void generates the Cloudflare config used by Analog's development runtime:
|
|
59
60
|
|
|
60
|
-
```
|
|
61
|
-
{
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
61
|
+
```ts
|
|
62
|
+
import { defineConfig } from 'void/config';
|
|
63
|
+
|
|
64
|
+
export default defineConfig({
|
|
65
|
+
cloudflare: {
|
|
66
|
+
name: 'my-app',
|
|
67
|
+
compatibility_date: '2026-02-24',
|
|
68
|
+
compatibility_flags: ['nodejs_compat', 'nodejs_als'],
|
|
69
|
+
},
|
|
70
|
+
});
|
|
66
71
|
```
|
|
67
72
|
|
|
68
73
|
`nodejs_compat` is required for Nitro's Cloudflare runtime. `nodejs_als` is required for `void/*` runtime helpers (e.g. `void/db`, `void/kv`).
|
|
@@ -127,7 +132,7 @@ import { eventHandler } from 'h3';
|
|
|
127
132
|
import { ai } from 'void/ai';
|
|
128
133
|
|
|
129
134
|
export default eventHandler(async () => {
|
|
130
|
-
return ai.run('@cf/meta/llama-3.
|
|
135
|
+
return ai.run('@cf/meta/llama-3.3-70b-instruct-fp8-fast', {
|
|
131
136
|
prompt: 'Summarize the latest news',
|
|
132
137
|
});
|
|
133
138
|
});
|
|
@@ -35,23 +35,27 @@ import cloudflare from '@astrojs/cloudflare';
|
|
|
35
35
|
import { voidPlugin } from 'void';
|
|
36
36
|
|
|
37
37
|
export default defineConfig({
|
|
38
|
-
adapter: cloudflare(),
|
|
38
|
+
adapter: cloudflare({ configPath: './.void-wrangler.jsonc' }),
|
|
39
39
|
vite: { plugins: [voidPlugin()] },
|
|
40
40
|
});
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
By default, Astro's Cloudflare runtime and `voidPlugin()` migrations share local state at `.wrangler/state/v3`, so no extra persistence configuration is required.
|
|
44
44
|
|
|
45
|
-
### 4. Create `
|
|
45
|
+
### 4. Create `void.config.ts`
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
Void uses this config for the Cloudflare adapter during development and deployment:
|
|
48
48
|
|
|
49
|
-
```
|
|
50
|
-
{
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
49
|
+
```ts
|
|
50
|
+
import { defineConfig } from 'void/config';
|
|
51
|
+
|
|
52
|
+
export default defineConfig({
|
|
53
|
+
cloudflare: {
|
|
54
|
+
name: 'my-app',
|
|
55
|
+
compatibility_date: '2026-02-24',
|
|
56
|
+
compatibility_flags: ['nodejs_als'],
|
|
57
|
+
},
|
|
58
|
+
});
|
|
55
59
|
```
|
|
56
60
|
|
|
57
61
|
`nodejs_als` is required for `void/*` runtime helpers (for example `void/db`, `void/kv`) in Astro.
|
|
@@ -126,7 +130,7 @@ import type { APIRoute } from 'astro';
|
|
|
126
130
|
import { ai } from 'void/ai';
|
|
127
131
|
|
|
128
132
|
export const POST: APIRoute = async () => {
|
|
129
|
-
const result = await ai.run('@cf/meta/llama-3.
|
|
133
|
+
const result = await ai.run('@cf/meta/llama-3.3-70b-instruct-fp8-fast', {
|
|
130
134
|
prompt: 'Summarize the latest news',
|
|
131
135
|
});
|
|
132
136
|
return Response.json(result);
|
|
@@ -32,6 +32,7 @@ import { voidPlugin } from 'void';
|
|
|
32
32
|
export default defineNuxtConfig({
|
|
33
33
|
nitro: {
|
|
34
34
|
preset: 'cloudflare-module',
|
|
35
|
+
cloudflareDev: { configPath: './.void-wrangler.jsonc' },
|
|
35
36
|
alias: {
|
|
36
37
|
// Nitro has its own bundler that doesn't use Vite aliases.
|
|
37
38
|
// Duplicate @schema here so Nitro can resolve it.
|
|
@@ -44,16 +45,20 @@ export default defineNuxtConfig({
|
|
|
44
45
|
|
|
45
46
|
By default, Nuxt's Cloudflare development runtime and `voidPlugin()` migrations share local state at `.wrangler/state/v3`, so no extra persistence configuration is required.
|
|
46
47
|
|
|
47
|
-
### 4. Create `
|
|
48
|
+
### 4. Create `void.config.ts`
|
|
48
49
|
|
|
49
|
-
|
|
50
|
+
Void generates the Cloudflare config used by Nuxt's development runtime:
|
|
50
51
|
|
|
51
|
-
```
|
|
52
|
-
{
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
52
|
+
```ts
|
|
53
|
+
import { defineConfig } from 'void/config';
|
|
54
|
+
|
|
55
|
+
export default defineConfig({
|
|
56
|
+
cloudflare: {
|
|
57
|
+
name: 'my-app',
|
|
58
|
+
compatibility_date: '2026-02-24',
|
|
59
|
+
compatibility_flags: ['nodejs_compat', 'nodejs_als'],
|
|
60
|
+
},
|
|
61
|
+
});
|
|
57
62
|
```
|
|
58
63
|
|
|
59
64
|
### 5. Deploy
|
|
@@ -111,7 +116,7 @@ export default defineEventHandler(async () => {
|
|
|
111
116
|
import { ai } from 'void/ai';
|
|
112
117
|
|
|
113
118
|
export default defineEventHandler(async () => {
|
|
114
|
-
return ai.run('@cf/meta/llama-3.
|
|
119
|
+
return ai.run('@cf/meta/llama-3.3-70b-instruct-fp8-fast', {
|
|
115
120
|
prompt: 'Summarize the latest news',
|
|
116
121
|
});
|
|
117
122
|
});
|
|
@@ -45,29 +45,32 @@ With `voidPlugin()` added to the framework's Vite config, frameworks get most of
|
|
|
45
45
|
- **Auth:** Void-managed auth is not supported in framework mode yet. For now, use Better Auth's official integration for your framework.
|
|
46
46
|
- **Cron jobs:** scheduled handlers via the `crons/` directory.
|
|
47
47
|
- **Queue consumers:** typed producers and consumers via the `queues/` directory.
|
|
48
|
-
- **Revalidation and prerendering:** configure them with [`routing.revalidate`](../../guide/edge/revalidation.md) and [`routing.prerender`](../../guide/edge/prerendering.md) in `void.
|
|
48
|
+
- **Revalidation and prerendering:** configure them with [`routing.revalidate`](../../guide/edge/revalidation.md) and [`routing.prerender`](../../guide/edge/prerendering.md) in `void.config.ts`. Void apps can also set these per page in component files.
|
|
49
|
+
|
|
50
|
+
For framework apps, Void revalidation caches public HTML document responses with both `void deploy` and `void deploy --platform cloudflare`. Client data requests continue to use the framework's own behavior. A response with `Set-Cookie` or `Cache-Control: private`, `no-store`, or `no-cache` is never shared.
|
|
49
51
|
|
|
50
52
|
Frameworks can also access bindings directly via the framework's own mechanisms (e.g. `platform.env` in SvelteKit, `event.context.cloudflare.env` in Nuxt, `env` from `cloudflare:workers` in Analog, `Astro.locals.runtime.env` in Astro).
|
|
51
53
|
|
|
52
54
|
## Configuration
|
|
53
55
|
|
|
54
|
-
### `void.
|
|
56
|
+
### `void.config.ts`
|
|
57
|
+
|
|
58
|
+
Most configuration is inferred automatically. Use `void.config.ts` to override defaults or fine-tune behavior:
|
|
55
59
|
|
|
56
|
-
|
|
60
|
+
```ts
|
|
61
|
+
import { defineConfig } from 'void/config';
|
|
57
62
|
|
|
58
|
-
|
|
59
|
-
{
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
export default defineConfig({
|
|
64
|
+
inference: {
|
|
65
|
+
build: 'nuxt build',
|
|
66
|
+
scanDirs: ['src', 'server', 'lib'],
|
|
67
|
+
bindings: { db: 'MY_DB' },
|
|
68
|
+
},
|
|
69
|
+
routing: {
|
|
70
|
+
prerender: ['/', '/about', '/pricing'],
|
|
71
|
+
revalidate: 60,
|
|
65
72
|
},
|
|
66
|
-
|
|
67
|
-
"prerender": ["/", "/about", "/pricing"],
|
|
68
|
-
"revalidate": 60
|
|
69
|
-
}
|
|
70
|
-
}
|
|
73
|
+
});
|
|
71
74
|
```
|
|
72
75
|
|
|
73
76
|
| Field | Purpose |
|
|
@@ -81,22 +84,25 @@ Most configuration is inferred automatically. Use `void.json` to override defaul
|
|
|
81
84
|
|
|
82
85
|
See [Configuration](../../reference/config.md) for the full reference.
|
|
83
86
|
|
|
84
|
-
###
|
|
87
|
+
### Cloudflare settings
|
|
85
88
|
|
|
86
|
-
Frameworks that use Cloudflare's dev runtime
|
|
89
|
+
Frameworks that use Cloudflare's dev runtime need their adapters pointed at Void's generated `.void-wrangler.jsonc`. Their setup guides show the adapter options. Define your Cloudflare settings in `void.config.ts`:
|
|
87
90
|
|
|
88
|
-
```
|
|
89
|
-
{
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
91
|
+
```ts
|
|
92
|
+
import { defineConfig } from 'void/config';
|
|
93
|
+
|
|
94
|
+
export default defineConfig({
|
|
95
|
+
cloudflare: {
|
|
96
|
+
name: 'my-app',
|
|
97
|
+
compatibility_date: '2026-02-24',
|
|
98
|
+
compatibility_flags: ['nodejs_compat'],
|
|
99
|
+
},
|
|
100
|
+
});
|
|
95
101
|
```
|
|
96
102
|
|
|
97
|
-
Existing bindings are preserved.
|
|
103
|
+
Existing bindings are preserved. D1, KV, and R2 use local placeholder IDs until deployment. For a project connected directly to Cloudflare, importing `void/ai` adds a remote Workers AI binding during development; [Cloudflare login](../../guide/ai.md#local-development) is required to use it. Direct deployments also include the inferred AI binding.
|
|
98
104
|
|
|
99
|
-
|
|
105
|
+
Void combines these settings with inferred bindings and records provisioned resource IDs in `void.lock.json`. Commit both files.
|
|
100
106
|
|
|
101
107
|
## Deploy Pipeline
|
|
102
108
|
|
|
@@ -109,7 +115,7 @@ void deploy
|
|
|
109
115
|
│ Reads package.json → determines framework + output conventions
|
|
110
116
|
│
|
|
111
117
|
├─ 2. Build
|
|
112
|
-
│ Runs framework's build command (or void.
|
|
118
|
+
│ Runs framework's build command (or void.config.ts `build` override)
|
|
113
119
|
│ SvelteKit: vite build → .svelte-kit/cloudflare/
|
|
114
120
|
│ Nuxt: nuxt build → .output/
|
|
115
121
|
│ Analog: vite build → dist/analog/
|
|
@@ -117,10 +123,10 @@ void deploy
|
|
|
117
123
|
│
|
|
118
124
|
├─ 3. Analyze
|
|
119
125
|
│ ├─ Locate worker entry + static assets from known output paths
|
|
120
|
-
│ ├─ Infer bindings from source or read from void.
|
|
126
|
+
│ ├─ Infer bindings from source or read from void.config.ts
|
|
121
127
|
│ ├─ Collect migrations from db/migrations/*.sql
|
|
122
128
|
│ ├─ Detect cron and queue handlers
|
|
123
|
-
│ └─ Read
|
|
129
|
+
│ └─ Read void.config.ts Cloudflare settings
|
|
124
130
|
│
|
|
125
131
|
├─ 4. Wrap (if needed)
|
|
126
132
|
│ If crons or queues are configured:
|
|
@@ -87,7 +87,7 @@ export async function loader() {
|
|
|
87
87
|
import { ai } from 'void/ai';
|
|
88
88
|
|
|
89
89
|
export async function action() {
|
|
90
|
-
return ai.run('@cf/meta/llama-3.
|
|
90
|
+
return ai.run('@cf/meta/llama-3.3-70b-instruct-fp8-fast', {
|
|
91
91
|
prompt: 'Summarize the latest news',
|
|
92
92
|
});
|
|
93
93
|
}
|
|
@@ -21,53 +21,56 @@ cd my-app
|
|
|
21
21
|
npm install -D @sveltejs/adapter-cloudflare void
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
### 3. Configure `
|
|
25
|
-
|
|
26
|
-
```js
|
|
27
|
-
import adapter from '@sveltejs/adapter-cloudflare';
|
|
28
|
-
import { withVoidTSConfig } from 'void/sveltekit';
|
|
29
|
-
|
|
30
|
-
export default {
|
|
31
|
-
kit: {
|
|
32
|
-
adapter: adapter(),
|
|
33
|
-
typescript: {
|
|
34
|
-
config: withVoidTSConfig(),
|
|
35
|
-
},
|
|
36
|
-
},
|
|
37
|
-
};
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
### 4. Add `voidPlugin()` to `vite.config.ts`
|
|
24
|
+
### 3. Configure `vite.config.ts`
|
|
41
25
|
|
|
42
26
|
```ts
|
|
27
|
+
import adapter from '@sveltejs/adapter-cloudflare';
|
|
43
28
|
import { sveltekit } from '@sveltejs/kit/vite';
|
|
44
29
|
import { voidPlugin } from 'void';
|
|
30
|
+
import { withVoidTSConfig } from 'void/sveltekit';
|
|
45
31
|
import { defineConfig } from 'vite';
|
|
46
32
|
|
|
47
33
|
export default defineConfig({
|
|
48
|
-
plugins: [
|
|
34
|
+
plugins: [
|
|
35
|
+
voidPlugin(),
|
|
36
|
+
sveltekit({
|
|
37
|
+
adapter: adapter({
|
|
38
|
+
config: './.void-wrangler.jsonc',
|
|
39
|
+
platformProxy: { configPath: './.void-wrangler.jsonc' },
|
|
40
|
+
}),
|
|
41
|
+
typescript: {
|
|
42
|
+
config: withVoidTSConfig(),
|
|
43
|
+
},
|
|
44
|
+
}),
|
|
45
|
+
],
|
|
49
46
|
});
|
|
50
47
|
```
|
|
51
48
|
|
|
52
|
-
|
|
49
|
+
If your project already configures SvelteKit in `svelte.config.js`, keep that file and add `typescript.config: withVoidTSConfig()` under its `kit` options instead. SvelteKit ignores `svelte.config.js` when options are passed directly to `sveltekit()`.
|
|
53
50
|
|
|
54
|
-
|
|
51
|
+
### 4. Create `void.config.ts`
|
|
55
52
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
53
|
+
Point SvelteKit's adapter at Void's generated Cloudflare config as shown above. Add your Cloudflare settings to `void.config.ts`:
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
import { defineConfig } from 'void/config';
|
|
57
|
+
|
|
58
|
+
export default defineConfig({
|
|
59
|
+
cloudflare: {
|
|
60
|
+
name: 'my-app',
|
|
61
|
+
compatibility_date: '2026-02-24',
|
|
62
|
+
compatibility_flags: ['nodejs_compat'],
|
|
63
|
+
},
|
|
64
|
+
});
|
|
62
65
|
```
|
|
63
66
|
|
|
64
67
|
By default, SvelteKit's Cloudflare adapter, `voidPlugin()` migrations, and `void db` commands share local state at `.wrangler/state/v3`, so no extra `platformProxy.persist` configuration is required.
|
|
65
68
|
|
|
66
|
-
###
|
|
69
|
+
### 5. Configure `tsconfig.json`
|
|
67
70
|
|
|
68
71
|
SvelteKit generates `.svelte-kit/tsconfig.json` and expects your root config to extend it. Void generates `.void/tsconfig.json` for project-specific aliases such as `void/db` and `@schema`.
|
|
69
72
|
|
|
70
|
-
Do not add Void's `compilerOptions.paths` to the root `tsconfig.json`; SvelteKit warns because root-level paths override its generated aliases. The `withVoidTSConfig()` hook
|
|
73
|
+
Do not add Void's `compilerOptions.paths` to the root `tsconfig.json`; SvelteKit warns because root-level paths override its generated aliases. The `withVoidTSConfig()` hook merges Void's generated files and aliases into SvelteKit's generated config instead.
|
|
71
74
|
|
|
72
75
|
```json
|
|
73
76
|
{
|
|
@@ -80,7 +83,7 @@ Do not add Void's `compilerOptions.paths` to the root `tsconfig.json`; SvelteKit
|
|
|
80
83
|
|
|
81
84
|
Run `void prepare` after a fresh clone or before typechecking in CI so `.void/tsconfig.json` exists before SvelteKit syncs its config.
|
|
82
85
|
|
|
83
|
-
###
|
|
86
|
+
### 6. Deploy
|
|
84
87
|
|
|
85
88
|
```bash
|
|
86
89
|
void auth login
|
|
@@ -132,7 +135,7 @@ import { ai } from 'void/ai';
|
|
|
132
135
|
|
|
133
136
|
export const actions = {
|
|
134
137
|
summarize: async () => {
|
|
135
|
-
return ai.run('@cf/meta/llama-3.
|
|
138
|
+
return ai.run('@cf/meta/llama-3.3-70b-instruct-fp8-fast', {
|
|
136
139
|
prompt: 'Summarize the latest news',
|
|
137
140
|
});
|
|
138
141
|
},
|
|
@@ -92,7 +92,7 @@ import { createServerFn } from '@tanstack/react-start';
|
|
|
92
92
|
import { ai } from 'void/ai';
|
|
93
93
|
|
|
94
94
|
const summarize = createServerFn().handler(async () => {
|
|
95
|
-
return ai.run('@cf/meta/llama-3.
|
|
95
|
+
return ai.run('@cf/meta/llama-3.3-70b-instruct-fp8-fast', {
|
|
96
96
|
prompt: 'Summarize the latest news',
|
|
97
97
|
});
|
|
98
98
|
});
|
|
@@ -4,7 +4,7 @@ outline: deep
|
|
|
4
4
|
|
|
5
5
|
# Node.js, Bun, and Deno
|
|
6
6
|
|
|
7
|
-
Set `target` in `void.
|
|
7
|
+
Set `target` in `void.config.ts` to build for Node.js, Bun, or Deno. You can run the resulting server on your own machine, in a container, or with a hosting provider.
|
|
8
8
|
|
|
9
9
|
```json
|
|
10
10
|
{ "target": "node" }
|
|
@@ -25,7 +25,7 @@ All three produce the same project structure and use the same Hono-based routing
|
|
|
25
25
|
### 1. Configure the target
|
|
26
26
|
|
|
27
27
|
```json
|
|
28
|
-
// void.
|
|
28
|
+
// void.config.ts
|
|
29
29
|
{ "target": "node" }
|
|
30
30
|
```
|
|
31
31
|
|
|
@@ -140,7 +140,7 @@ Inbound [email handlers](../guide/email.md#inbound) in `email/` need Cloudflare
|
|
|
140
140
|
|
|
141
141
|
### Ignored config fields
|
|
142
142
|
|
|
143
|
-
Void warns and ignores these Cloudflare-specific `void.
|
|
143
|
+
Void warns and ignores these Cloudflare-specific `void.config.ts` fields on other targets:
|
|
144
144
|
|
|
145
145
|
- `inference.bindings`: Cloudflare binding configuration
|
|
146
146
|
- `remote`: remote binding proxy
|
|
@@ -166,11 +166,11 @@ my-app/
|
|
|
166
166
|
hello.ts
|
|
167
167
|
package.json
|
|
168
168
|
vite.config.ts
|
|
169
|
-
void.
|
|
169
|
+
void.config.ts
|
|
170
170
|
```
|
|
171
171
|
|
|
172
172
|
```json
|
|
173
|
-
// void.
|
|
173
|
+
// void.config.ts
|
|
174
174
|
{ "target": "node" }
|
|
175
175
|
```
|
|
176
176
|
|
|
@@ -10,7 +10,7 @@ This page is the source of truth for user-facing `void` exports. Use it when you
|
|
|
10
10
|
|
|
11
11
|
### `voidPlugin(options?)`
|
|
12
12
|
|
|
13
|
-
Named export from `"void"`. Returns an array of Vite plugins that set up file-based routing, migration support, and the Cloudflare Workers runtime. Application-level configuration is read from [`void.
|
|
13
|
+
Named export from `"void"`. Returns an array of Vite plugins that set up file-based routing, migration support, and the Cloudflare Workers runtime. Application-level configuration is read from [`void.config.ts`](./config.md); the optional `options` object controls Vite/Cloudflare plugin behavior.
|
|
14
14
|
|
|
15
15
|
```ts
|
|
16
16
|
import { voidPlugin } from 'void';
|
|
@@ -25,6 +25,23 @@ export default defineConfig({
|
|
|
25
25
|
| `persistTo` | `string` | Directory path for persisting local dev state (D1, KV, R2). Defaults to `.void/` in the project root. |
|
|
26
26
|
| `auxiliaryWorkers` | `AuxiliaryWorkerConfig[]` | Additional workers to run inside the same Miniflare instance during dev. Passed through to `@cloudflare/vite-plugin`. Useful for running multiple workers that share bindings (e.g. a separate API worker alongside a dashboard). |
|
|
27
27
|
|
|
28
|
+
## Project configuration
|
|
29
|
+
|
|
30
|
+
### `defineConfig(config)`
|
|
31
|
+
|
|
32
|
+
Import from `void/config` in the root `void.config.ts`. It returns the config with editor completion and TypeScript checking. Void validates the result when loading it, including values computed at runtime.
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
import { defineConfig } from 'void/config';
|
|
36
|
+
|
|
37
|
+
export default defineConfig({
|
|
38
|
+
cloudflare: { name: 'my-app' },
|
|
39
|
+
routing: { revalidate: 60 },
|
|
40
|
+
});
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
See the [config reference](./config.md) for all fields.
|
|
44
|
+
|
|
28
45
|
## Handlers
|
|
29
46
|
|
|
30
47
|
Imported from `"void"` or `"void/handler"`.
|
|
@@ -278,7 +295,7 @@ function defineHead<P = Record<string, unknown>>(
|
|
|
278
295
|
|
|
279
296
|
## Rewrites
|
|
280
297
|
|
|
281
|
-
URL rewrites re-dispatch a request at a different internal path without changing the browser's URL. `c.rewrite()`, `c.originalUrl()`, and `c.isRewritten()` are available on every Hono `Context` the Void runtime hands you. See the [Rewrites guide](../guide/edge/rewrites.md) for the full overview, including static `routing.rewrites` / `routing.fallbacks` in [`void.
|
|
298
|
+
URL rewrites re-dispatch a request at a different internal path without changing the browser's URL. `c.rewrite()`, `c.originalUrl()`, and `c.isRewritten()` are available on every Hono `Context` the Void runtime hands you. See the [Rewrites guide](../guide/edge/rewrites.md) for the full overview, including static `routing.rewrites` / `routing.fallbacks` in [`void.config.ts`](./config.md#routing).
|
|
282
299
|
|
|
283
300
|
### `c.rewrite(destination)`
|
|
284
301
|
|
|
@@ -345,7 +362,7 @@ import type { RewriteDestination } from 'void/routes';
|
|
|
345
362
|
Union of the exact route patterns from your generated `RouteMap` plus a `string` fallback (`RouteName | (string & {})`). Known route patterns (e.g. `/posts/[id]`) are offered as autocomplete entries in your editor, while the `string` branch keeps the type assignable from concrete runtime paths like `` `/posts/${id}` `` — there is no `:id` template-literal resolution at the type level. Used as:
|
|
346
363
|
|
|
347
364
|
- The parameter type of [`c.rewrite()`](#c-rewrite-destination).
|
|
348
|
-
- The type of `destination` entries in `routing.rewrites` and `routing.fallbacks` in [`void.
|
|
365
|
+
- The type of `destination` entries in `routing.rewrites` and `routing.fallbacks` in [`void.config.ts`](./config.md#routing).
|
|
349
366
|
|
|
350
367
|
Like [`RouteMap`](#routemap), `RewriteDestination` lives in the virtual `void/routes` module and is refreshed whenever routes change.
|
|
351
368
|
|
|
@@ -752,7 +769,7 @@ Typed AI client for Cloudflare AI models and provider-native AI Gateway requests
|
|
|
752
769
|
```ts
|
|
753
770
|
import { ai } from 'void/ai';
|
|
754
771
|
|
|
755
|
-
const result = await ai.run('@cf/meta/llama-3.
|
|
772
|
+
const result = await ai.run('@cf/meta/llama-3.3-70b-instruct-fp8-fast', {
|
|
756
773
|
messages: [{ role: 'user', content: 'Summarize this release note.' }],
|
|
757
774
|
});
|
|
758
775
|
|