[{"data":1,"prerenderedAt":1556},["ShallowReactive",2],{"navigation_docs":3,"-docs-deploy-cloudflare":493,"-docs-deploy-cloudflare-surround":1551},[4,46,135,218,257,292,355,377,420],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":45},"Getting Started","i-lucide-rocket","\u002Fdocs\u002Fgetting-started","docs\u002F01.getting-started",[10,15,20,25,30,35,40],{"title":11,"path":12,"stem":13,"icon":14},"What is Heximon?","\u002Fdocs\u002Fgetting-started\u002Fintroduction","docs\u002F01.getting-started\u002F01.introduction","i-lucide-info",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F01.getting-started\u002F02.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Quick Start","\u002Fdocs\u002Fgetting-started\u002Fquick-start","docs\u002F01.getting-started\u002F03.quick-start","i-lucide-zap",{"title":26,"path":27,"stem":28,"icon":29},"Core Concepts","\u002Fdocs\u002Fgetting-started\u002Fcore-concepts","docs\u002F01.getting-started\u002F04.core-concepts","i-lucide-shapes",{"title":31,"path":32,"stem":33,"icon":34},"Examples","\u002Fdocs\u002Fgetting-started\u002Fexamples","docs\u002F01.getting-started\u002F05.examples","i-lucide-library",{"title":36,"path":37,"stem":38,"icon":39},"Where Next?","\u002Fdocs\u002Fgetting-started\u002Fwhere-next","docs\u002F01.getting-started\u002F06.where-next","i-lucide-signpost",{"title":41,"path":42,"stem":43,"icon":44},"Troubleshooting","\u002Fdocs\u002Fgetting-started\u002Ftroubleshooting","docs\u002F01.getting-started\u002F07.troubleshooting","i-lucide-life-buoy",false,{"title":47,"icon":48,"path":49,"stem":50,"children":51,"page":45},"Essentials","i-lucide-boxes","\u002Fdocs\u002Fessentials","docs\u002F02.essentials",[52,56,61,66,71,76,81,86,91,96,101,105,110,115,120,125,130],{"title":53,"path":54,"stem":55,"icon":48},"Modules & DI","\u002Fdocs\u002Fessentials\u002Fmodules-and-di","docs\u002F02.essentials\u002F01.modules-and-di",{"title":57,"path":58,"stem":59,"icon":60},"Controllers","\u002Fdocs\u002Fessentials\u002Fcontrollers","docs\u002F02.essentials\u002F02.controllers","i-lucide-route",{"title":62,"path":63,"stem":64,"icon":65},"Validation & DTOs","\u002Fdocs\u002Fessentials\u002Fvalidation","docs\u002F02.essentials\u002F03.validation","i-lucide-shield-check",{"title":67,"path":68,"stem":69,"icon":70},"Contracts","\u002Fdocs\u002Fessentials\u002Fcontracts","docs\u002F02.essentials\u002F04.contracts","i-lucide-file-signature",{"title":72,"path":73,"stem":74,"icon":75},"REST Client","\u002Fdocs\u002Fessentials\u002Fclient","docs\u002F02.essentials\u002F05.client","i-lucide-plug",{"title":77,"path":78,"stem":79,"icon":80},"Database","\u002Fdocs\u002Fessentials\u002Fdatabase","docs\u002F02.essentials\u002F06.database","i-lucide-database",{"title":82,"path":83,"stem":84,"icon":85},"Drizzle ORM","\u002Fdocs\u002Fessentials\u002Fdrizzle","docs\u002F02.essentials\u002F07.drizzle","i-lucide-database-zap",{"title":87,"path":88,"stem":89,"icon":90},"Persistence & Transactions","\u002Fdocs\u002Fessentials\u002Fpersistence","docs\u002F02.essentials\u002F08.persistence","i-lucide-database-backup",{"title":92,"path":93,"stem":94,"icon":95},"Migrations","\u002Fdocs\u002Fessentials\u002Fmigrations","docs\u002F02.essentials\u002F09.migrations","i-lucide-git-branch",{"title":97,"path":98,"stem":99,"icon":100},"Authentication","\u002Fdocs\u002Fessentials\u002Fauthentication","docs\u002F02.essentials\u002F10.authentication","i-lucide-key-round",{"title":102,"path":103,"stem":104,"icon":65},"Permissions & scopes","\u002Fdocs\u002Fessentials\u002Fpermissions","docs\u002F02.essentials\u002F11.permissions",{"title":106,"path":107,"stem":108,"icon":109},"Error Handling","\u002Fdocs\u002Fessentials\u002Ferrors","docs\u002F02.essentials\u002F12.errors","i-lucide-triangle-alert",{"title":111,"path":112,"stem":113,"icon":114},"Testing a Heximon App","\u002Fdocs\u002Fessentials\u002Ftesting","docs\u002F02.essentials\u002F13.testing","i-lucide-flask-conical",{"title":116,"path":117,"stem":118,"icon":119},"Test app harness","\u002Fdocs\u002Fessentials\u002Fcreatetestapp","docs\u002F02.essentials\u002F14.createtestapp","i-lucide-test-tube",{"title":121,"path":122,"stem":123,"icon":124},"Logging & Observability","\u002Fdocs\u002Fessentials\u002Flogging","docs\u002F02.essentials\u002F17.logging","i-lucide-scroll-text",{"title":126,"path":127,"stem":128,"icon":129},"Context & Lifecycle","\u002Fdocs\u002Fessentials\u002Fcontext-and-lifecycle","docs\u002F02.essentials\u002F18.context-and-lifecycle","i-lucide-radio",{"title":131,"path":132,"stem":133,"icon":134},"Project Structure","\u002Fdocs\u002Fessentials\u002Fproject-structure","docs\u002F02.essentials\u002F19.project-structure","i-lucide-folder-tree",{"title":136,"icon":137,"path":138,"stem":139,"children":140,"page":45},"Capabilities","i-lucide-sparkles","\u002Fdocs\u002Fcapabilities","docs\u002F03.capabilities",[141,145,150,155,160,164,169,174,179,184,188,193,198,203,208,213],{"title":142,"path":143,"stem":144,"icon":137},"Overview","\u002Fdocs\u002Fcapabilities\u002Foverview","docs\u002F03.capabilities\u002F01.overview",{"title":146,"path":147,"stem":148,"icon":149},"Events","\u002Fdocs\u002Fcapabilities\u002Fevents","docs\u002F03.capabilities\u002F02.events","i-lucide-radio-tower",{"title":151,"path":152,"stem":153,"icon":154},"Queue","\u002Fdocs\u002Fcapabilities\u002Fbackground-jobs","docs\u002F03.capabilities\u002F03.background-jobs","i-lucide-list-ordered",{"title":156,"path":157,"stem":158,"icon":159},"Scheduled Work","\u002Fdocs\u002Fcapabilities\u002Fscheduled-jobs","docs\u002F03.capabilities\u002F04.scheduled-jobs","i-lucide-clock",{"title":161,"path":162,"stem":163,"icon":85},"Caching","\u002Fdocs\u002Fcapabilities\u002Fcaching","docs\u002F03.capabilities\u002F05.caching",{"title":165,"path":166,"stem":167,"icon":168},"Key\u002FValue Storage","\u002Fdocs\u002Fcapabilities\u002Fkey-value","docs\u002F03.capabilities\u002F06.key-value","i-lucide-hard-drive",{"title":170,"path":171,"stem":172,"icon":173},"Blob Storage","\u002Fdocs\u002Fcapabilities\u002Fblob","docs\u002F03.capabilities\u002F07.blob","i-lucide-folder-open",{"title":175,"path":176,"stem":177,"icon":178},"Health & Readiness","\u002Fdocs\u002Fcapabilities\u002Fhealth","docs\u002F03.capabilities\u002F08.health","i-lucide-heart-pulse",{"title":180,"path":181,"stem":182,"icon":183},"Notifications","\u002Fdocs\u002Fcapabilities\u002Fnotifications","docs\u002F03.capabilities\u002F09.notifications","i-lucide-mail",{"title":185,"path":186,"stem":187,"icon":65},"Idempotency","\u002Fdocs\u002Fcapabilities\u002Fidempotency","docs\u002F03.capabilities\u002F10.idempotency",{"title":189,"path":190,"stem":191,"icon":192},"Security Hardening","\u002Fdocs\u002Fcapabilities\u002Fsecurity","docs\u002F03.capabilities\u002F11.security","i-lucide-shield",{"title":194,"path":195,"stem":196,"icon":197},"Observability & Tracing","\u002Fdocs\u002Fcapabilities\u002Fobservability","docs\u002F03.capabilities\u002F12.observability","i-lucide-activity",{"title":199,"path":200,"stem":201,"icon":202},"OpenAPI","\u002Fdocs\u002Fcapabilities\u002Fopenapi","docs\u002F03.capabilities\u002F13.openapi","i-lucide-book-marked",{"title":204,"path":205,"stem":206,"icon":207},"MCP Server","\u002Fdocs\u002Fcapabilities\u002Fmcp","docs\u002F03.capabilities\u002F14.mcp","i-lucide-bot",{"title":209,"path":210,"stem":211,"icon":212},"Schema DTOs","\u002Fdocs\u002Fcapabilities\u002Fschema","docs\u002F03.capabilities\u002F15.schema","i-lucide-file-json",{"title":214,"path":215,"stem":216,"icon":217},"Branded IDs","\u002Fdocs\u002Fcapabilities\u002Fbranded-ids","docs\u002F03.capabilities\u002F16.branded-ids","i-lucide-tag",{"title":219,"icon":220,"path":221,"stem":222,"children":223,"page":45},"Architecture","i-lucide-building","\u002Fdocs\u002Farchitecture","docs\u002F04.architecture",[224,227,232,237,242,247,252],{"title":142,"path":225,"stem":226,"icon":220},"\u002Fdocs\u002Farchitecture\u002Foverview","docs\u002F04.architecture\u002F01.overview",{"title":228,"path":229,"stem":230,"icon":231},"Domain-Driven Design","\u002Fdocs\u002Farchitecture\u002Fddd","docs\u002F04.architecture\u002F02.ddd","i-lucide-hexagon",{"title":233,"path":234,"stem":235,"icon":236},"CQRS","\u002Fdocs\u002Farchitecture\u002Fcqrs","docs\u002F04.architecture\u002F03.cqrs","i-lucide-split",{"title":238,"path":239,"stem":240,"icon":241},"Repository Pattern","\u002Fdocs\u002Farchitecture\u002Frepository-pattern","docs\u002F04.architecture\u002F04.repository-pattern","i-lucide-archive",{"title":243,"path":244,"stem":245,"icon":246},"Integration Events","\u002Fdocs\u002Farchitecture\u002Fintegration-events","docs\u002F04.architecture\u002F05.integration-events","i-lucide-send-horizontal",{"title":248,"path":249,"stem":250,"icon":251},"Saga Orchestration","\u002Fdocs\u002Farchitecture\u002Fsagas","docs\u002F04.architecture\u002F06.sagas","i-lucide-hourglass",{"title":253,"path":254,"stem":255,"icon":256},"Durable Workflows","\u002Fdocs\u002Farchitecture\u002Fworkflows","docs\u002F04.architecture\u002F07.workflows","i-lucide-workflow",{"title":258,"icon":259,"path":260,"stem":261,"children":262,"page":45},"Realtime","i-lucide-cable","\u002Fdocs\u002Frealtime","docs\u002F05.realtime",[263,266,270,274,279,284,288],{"title":142,"path":264,"stem":265,"icon":259},"\u002Fdocs\u002Frealtime\u002Foverview","docs\u002F05.realtime\u002F01.overview",{"title":267,"path":268,"stem":269,"icon":129},"WebSockets","\u002Fdocs\u002Frealtime\u002Fwebsockets","docs\u002F05.realtime\u002F02.websockets",{"title":271,"path":272,"stem":273,"icon":70},"WebSocket Contracts","\u002Fdocs\u002Frealtime\u002Fwebsocket-contracts","docs\u002F05.realtime\u002F03.websocket-contracts",{"title":275,"path":276,"stem":277,"icon":278},"Server-Sent Events","\u002Fdocs\u002Frealtime\u002Fserver-sent-events","docs\u002F05.realtime\u002F04.server-sent-events","i-lucide-rss",{"title":280,"path":281,"stem":282,"icon":283},"Typed Clients","\u002Fdocs\u002Frealtime\u002Ftyped-clients","docs\u002F05.realtime\u002F05.typed-clients","i-lucide-plug-zap",{"title":285,"path":286,"stem":287,"icon":259},"AsyncAPI","\u002Fdocs\u002Frealtime\u002Fasyncapi","docs\u002F05.realtime\u002F06.asyncapi",{"title":289,"path":290,"stem":291,"icon":80},"Durable Objects","\u002Fdocs\u002Frealtime\u002Fdurable-objects","docs\u002F05.realtime\u002F07.durable-objects",{"title":293,"icon":294,"path":295,"stem":296,"children":297,"page":45},"Deploy","i-lucide-cloud-upload","\u002Fdocs\u002Fdeploy","docs\u002F06.deploy",[298,301,306,311,316,321,326,331,336,341,345,350],{"title":142,"path":299,"stem":300,"icon":6},"\u002Fdocs\u002Fdeploy\u002Foverview","docs\u002F06.deploy\u002F01.overview",{"title":302,"path":303,"stem":304,"icon":305},"Node","\u002Fdocs\u002Fdeploy\u002Fnode","docs\u002F06.deploy\u002F02.node","la:node-js",{"title":307,"path":308,"stem":309,"icon":310},"Cloudflare","\u002Fdocs\u002Fdeploy\u002Fcloudflare","docs\u002F06.deploy\u002F03.cloudflare","simple-icons:cloudflare",{"title":312,"path":313,"stem":314,"icon":315},"Vercel","\u002Fdocs\u002Fdeploy\u002Fvercel","docs\u002F06.deploy\u002F04.vercel","ri:vercel-fill",{"title":317,"path":318,"stem":319,"icon":320},"Netlify","\u002Fdocs\u002Fdeploy\u002Fnetlify","docs\u002F06.deploy\u002F05.netlify","i-simple-icons-netlify",{"title":322,"path":323,"stem":324,"icon":325},"AWS Lambda","\u002Fdocs\u002Fdeploy\u002Faws-lambda","docs\u002F06.deploy\u002F06.aws-lambda","hugeicons:aws-lambda",{"title":327,"path":328,"stem":329,"icon":330},"Deno Deploy","\u002Fdocs\u002Fdeploy\u002Fdeno-deploy","docs\u002F06.deploy\u002F07.deno-deploy","simple-icons:denodeploy",{"title":332,"path":333,"stem":334,"icon":335},"Nitro","\u002Fdocs\u002Fdeploy\u002Fnitro","docs\u002F06.deploy\u002F08.nitro","i-unjs-nitro",{"title":337,"path":338,"stem":339,"icon":340},"Nuxt","\u002Fdocs\u002Fdeploy\u002Fnuxt","docs\u002F06.deploy\u002F09.nuxt","i-devicon-nuxt",{"title":342,"path":343,"stem":344,"icon":236},"Mixed-runtime split","\u002Fdocs\u002Fdeploy\u002Fmixed-runtime-split","docs\u002F06.deploy\u002F10.mixed-runtime-split",{"title":346,"path":347,"stem":348,"icon":349},"Hosts","\u002Fdocs\u002Fdeploy\u002Fhosts","docs\u002F06.deploy\u002F11.hosts","i-lucide-map",{"title":351,"path":352,"stem":353,"icon":354},"Cross-service events","\u002Fdocs\u002Fdeploy\u002Fcross-service-events","docs\u002F06.deploy\u002F12.cross-service-events","i-lucide-network",{"title":356,"icon":357,"path":358,"stem":359,"children":360,"page":45},"CLI","i-lucide-terminal","\u002Fdocs\u002Fcli","docs\u002F07.cli",[361,365,369,373],{"title":362,"path":363,"stem":364,"icon":357},"The heximon CLI","\u002Fdocs\u002Fcli\u002Foverview","docs\u002F07.cli\u002F01.overview",{"title":366,"path":367,"stem":368,"icon":137},"Create a New App","\u002Fdocs\u002Fcli\u002Fcreate","docs\u002F07.cli\u002F02.create",{"title":370,"path":371,"stem":372,"icon":95},"Migrations from the CLI","\u002Fdocs\u002Fcli\u002Fmigrations","docs\u002F07.cli\u002F03.migrations",{"title":374,"path":375,"stem":376,"icon":6},"Deploying a Heximon app","\u002Fdocs\u002Fcli\u002Fdeploy","docs\u002F07.cli\u002F04.deploy",{"title":378,"icon":379,"path":380,"stem":381,"children":382,"page":45},"Under the Hood","i-lucide-wrench","\u002Fdocs\u002Funder-the-hood","docs\u002F08.under-the-hood",[383,388,393,397,402,407,411,415],{"title":384,"path":385,"stem":386,"icon":387},"How the Compiler Works","\u002Fdocs\u002Funder-the-hood\u002Fhow-the-compiler-works","docs\u002F08.under-the-hood\u002F01.how-the-compiler-works","i-lucide-cog",{"title":389,"path":390,"stem":391,"icon":392},"Compiler","\u002Fdocs\u002Funder-the-hood\u002Fextending-the-compiler","docs\u002F08.under-the-hood\u002F02.extending-the-compiler","i-lucide-cpu",{"title":394,"path":395,"stem":396,"icon":357},"Compiler Diagnostics","\u002Fdocs\u002Funder-the-hood\u002Fcompiler-diagnostics","docs\u002F08.under-the-hood\u002F03.compiler-diagnostics",{"title":398,"path":399,"stem":400,"icon":401},"Library Mode","\u002Fdocs\u002Funder-the-hood\u002Flibrary-mode","docs\u002F08.under-the-hood\u002F04.library-mode","i-lucide-package",{"title":403,"path":404,"stem":405,"icon":406},"Other bundlers","\u002Fdocs\u002Funder-the-hood\u002Falternate-bundlers","docs\u002F08.under-the-hood\u002F05.alternate-bundlers","i-lucide-blocks",{"title":408,"path":409,"stem":410,"icon":401},"Packages","\u002Fdocs\u002Funder-the-hood\u002Fpackages","docs\u002F08.under-the-hood\u002F06.packages",{"title":412,"path":413,"stem":414,"icon":207},"AI Skills","\u002Fdocs\u002Funder-the-hood\u002Fai-and-agents","docs\u002F08.under-the-hood\u002F07.ai-and-agents",{"title":416,"path":417,"stem":418,"icon":419},"Advanced DI","\u002Fdocs\u002Funder-the-hood\u002Fadvanced-di","docs\u002F08.under-the-hood\u002F08.advanced-di","i-lucide-git-fork",{"title":421,"icon":422,"path":423,"stem":424,"children":425,"page":45},"Recipes","i-lucide-book-open-check","\u002Fdocs\u002Frecipes","docs\u002F09.recipes",[426,431,436,440,444,448,452,456,460,465,469,474,479,484,488],{"title":427,"path":428,"stem":429,"icon":430},"Send an Email","\u002Fdocs\u002Frecipes\u002Fsend-an-email","docs\u002F09.recipes\u002F01.send-an-email","i-lucide-send",{"title":432,"path":433,"stem":434,"icon":435},"Upload a File","\u002Fdocs\u002Frecipes\u002Fupload-a-file","docs\u002F09.recipes\u002F02.upload-a-file","i-lucide-upload",{"title":437,"path":438,"stem":439,"icon":24},"Cache an Expensive Call","\u002Fdocs\u002Frecipes\u002Fcache-an-expensive-call","docs\u002F09.recipes\u002F03.cache-an-expensive-call",{"title":441,"path":442,"stem":443,"icon":154},"Paginate a List","\u002Fdocs\u002Frecipes\u002Fpaginate-a-list","docs\u002F09.recipes\u002F04.paginate-a-list",{"title":445,"path":446,"stem":447,"icon":65},"Protect Admin Routes","\u002Fdocs\u002Frecipes\u002Fprotect-admin-routes","docs\u002F09.recipes\u002F05.protect-admin-routes",{"title":449,"path":450,"stem":451,"icon":178},"Health Probes and a Nightly Job","\u002Fdocs\u002Frecipes\u002Fhealth-probes-and-a-nightly-job","docs\u002F09.recipes\u002F06.health-probes-and-a-nightly-job",{"title":453,"path":454,"stem":455,"icon":80},"Build a CRUD API","\u002Fdocs\u002Frecipes\u002Fcrud-api","docs\u002F09.recipes\u002F07.crud-api",{"title":457,"path":458,"stem":459,"icon":100},"Add Authentication","\u002Fdocs\u002Frecipes\u002Fadd-authentication","docs\u002F09.recipes\u002F08.add-authentication",{"title":461,"path":462,"stem":463,"icon":464},"Background Jobs","\u002Fdocs\u002Frecipes\u002Fbackground-jobs","docs\u002F09.recipes\u002F09.background-jobs","i-lucide-timer",{"title":466,"path":467,"stem":468,"icon":149},"Decouple Features with Events","\u002Fdocs\u002Frecipes\u002Fevent-driven-module","docs\u002F09.recipes\u002F10.event-driven-module",{"title":470,"path":471,"stem":472,"icon":473},"Build a DDD Aggregate","\u002Fdocs\u002Frecipes\u002Fddd-aggregate","docs\u002F09.recipes\u002F11.ddd-aggregate","i-lucide-box",{"title":475,"path":476,"stem":477,"icon":478},"Publish a Feature Package","\u002Fdocs\u002Frecipes\u002Ffeature-package","docs\u002F09.recipes\u002F12.feature-package","i-lucide-package-open",{"title":480,"path":481,"stem":482,"icon":483},"Reliable Integration Events","\u002Fdocs\u002Frecipes\u002Freliable-integration-events","docs\u002F09.recipes\u002F13.reliable-integration-events","i-lucide-inbox",{"title":485,"path":486,"stem":487,"icon":95},"Reactive Choreography","\u002Fdocs\u002Frecipes\u002Freactive-choreography","docs\u002F09.recipes\u002F14.reactive-choreography",{"title":489,"path":490,"stem":491,"icon":492},"Build a Production CRUD API","\u002Fdocs\u002Frecipes\u002Fproduction-crud-api","docs\u002F09.recipes\u002F15.production-crud-api","i-lucide-layers",{"id":494,"title":307,"body":495,"description":1544,"extension":1545,"links":1546,"meta":1547,"navigation":1548,"path":308,"seo":1549,"stem":309,"__hash__":1550},"docs\u002Fdocs\u002F06.deploy\u002F03.cloudflare.md",{"type":496,"value":497,"toc":1531},"minimark",[498,516,521,691,727,735,770,820,839,844,853,886,894,1139,1172,1176,1185,1236,1239,1242,1271,1275,1290,1294,1300,1425,1438,1442,1457,1488,1492,1527],[499,500,501,502,506,507,511,512,515],"p",{},"Cloudflare is the one platform with a full local emulator — ",[503,504,505],"code",{},"vp dev"," boots real ",[508,509,510],"strong",{},"workerd"," via Miniflare, so\nevery dev request runs the exact edge path the deploy will, Durable Objects included. It's also the only\nplatform where ",[503,513,514],{},"wrangler.json"," itself is generated: a compiler plugin collects every binding, migration, and\ncron trigger your app declares and writes one config, regardless of which bundler built it.",[517,518,520],"h2",{"id":519},"configure-the-strategy","Configure the strategy",[522,523,529],"pre",{"className":524,"code":525,"filename":526,"language":527,"meta":528,"style":528},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineHeximonConfig } from \"@heximon\u002Fbuild\";\nimport { CloudflareWorkersStrategy } from \"@heximon\u002Fcloudflare\";\nimport { HttpPlugin } from \"@heximon\u002Fhttp\u002Fcompiler\";\n\nexport default defineHeximonConfig({\n  platform: new CloudflareWorkersStrategy(),\n  plugins: [new HttpPlugin()],\n});\n","heximon.config.ts","ts","",[503,530,531,567,590,613,620,638,659,680],{"__ignoreMap":528},[532,533,536,540,544,548,551,554,557,561,564],"span",{"class":534,"line":535},"line",1,[532,537,539],{"class":538},"s7zQu","import",[532,541,543],{"class":542},"sMK4o"," {",[532,545,547],{"class":546},"sTEyZ"," defineHeximonConfig",[532,549,550],{"class":542}," }",[532,552,553],{"class":538}," from",[532,555,556],{"class":542}," \"",[532,558,560],{"class":559},"sfazB","@heximon\u002Fbuild",[532,562,563],{"class":542},"\"",[532,565,566],{"class":542},";\n",[532,568,570,572,574,577,579,581,583,586,588],{"class":534,"line":569},2,[532,571,539],{"class":538},[532,573,543],{"class":542},[532,575,576],{"class":546}," CloudflareWorkersStrategy",[532,578,550],{"class":542},[532,580,553],{"class":538},[532,582,556],{"class":542},[532,584,585],{"class":559},"@heximon\u002Fcloudflare",[532,587,563],{"class":542},[532,589,566],{"class":542},[532,591,593,595,597,600,602,604,606,609,611],{"class":534,"line":592},3,[532,594,539],{"class":538},[532,596,543],{"class":542},[532,598,599],{"class":546}," HttpPlugin",[532,601,550],{"class":542},[532,603,553],{"class":538},[532,605,556],{"class":542},[532,607,608],{"class":559},"@heximon\u002Fhttp\u002Fcompiler",[532,610,563],{"class":542},[532,612,566],{"class":542},[532,614,616],{"class":534,"line":615},4,[532,617,619],{"emptyLinePlaceholder":618},true,"\n",[532,621,623,626,629,632,635],{"class":534,"line":622},5,[532,624,625],{"class":538},"export",[532,627,628],{"class":538}," default",[532,630,547],{"class":631},"s2Zo4",[532,633,634],{"class":546},"(",[532,636,637],{"class":542},"{\n",[532,639,641,645,648,651,653,656],{"class":534,"line":640},6,[532,642,644],{"class":643},"swJcz","  platform",[532,646,647],{"class":542},":",[532,649,650],{"class":542}," new",[532,652,576],{"class":631},[532,654,655],{"class":546},"()",[532,657,658],{"class":542},",\n",[532,660,662,665,667,670,673,675,678],{"class":534,"line":661},7,[532,663,664],{"class":643},"  plugins",[532,666,647],{"class":542},[532,668,669],{"class":546}," [",[532,671,672],{"class":542},"new",[532,674,599],{"class":631},[532,676,677],{"class":546},"()]",[532,679,658],{"class":542},[532,681,683,686,689],{"class":534,"line":682},8,[532,684,685],{"class":542},"}",[532,687,688],{"class":546},")",[532,690,566],{"class":542},[499,692,693,696,697,700,701,704,705,708,709,712,713,715,716,719,720,719,723,726],{},[503,694,695],{},"CloudflareWorkersStrategy"," is an ",[503,698,699],{},"edge","-class strategy with platform name ",[503,702,703],{},"\"cloudflare\"",". Setting it injects\ntwo things for you: the ",[503,706,707],{},"CloudflareWorkerPlugin"," worker-entry host and the ",[503,710,711],{},"CloudflarePlugin"," ",[503,714,514],{},"\nemitter — you only list your own concept plugins (",[503,717,718],{},"HttpPlugin",", ",[503,721,722],{},"DurablePlugin",[503,724,725],{},"SchedulePlugin",", …).",[517,728,730,731,734],{"id":729},"what-vp-build-emits","What ",[503,732,733],{},"vp build"," emits",[522,736,741],{"className":737,"code":738,"filename":739,"language":740,"meta":528,"style":528},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","vp build                                    # → dist\u002Fworker.js + dist\u002Fwrangler.json\nwrangler deploy --config dist\u002Fwrangler.json\n","terminal","bash",[503,742,743,756],{"__ignoreMap":528},[532,744,745,749,752],{"class":534,"line":535},[532,746,748],{"class":747},"sBMFI","vp",[532,750,751],{"class":559}," build",[532,753,755],{"class":754},"sHwdD","                                    # → dist\u002Fworker.js + dist\u002Fwrangler.json\n",[532,757,758,761,764,767],{"class":534,"line":569},[532,759,760],{"class":747},"wrangler",[532,762,763],{"class":559}," deploy",[532,765,766],{"class":559}," --config",[532,768,769],{"class":559}," dist\u002Fwrangler.json\n",[499,771,772,774,775,781,782,785,786,789,790,793,794,797,798,801,802,805,806,809,810,719,813,816,817,819],{},[503,773,733],{}," writes a ",[508,776,777,778],{},"complete, deploy-shaped ",[503,779,780],{},"dist\u002Fwrangler.json"," alongside ",[503,783,784],{},"dist\u002Fworker.js",". It\nauto-discovers a committed root ",[503,787,788],{},"wrangler.{jsonc,json,toml}"," as a base, folds every Heximon-owned section over\nit, and fills in the deploy-only fields it can derive — ",[503,791,792],{},"main"," → ",[503,795,796],{},"worker.js",", a default ",[503,799,800],{},"compatibility_date",",\nand ",[503,803,804],{},"name"," from ",[503,807,808],{},"package.json"," — each only when the base omits it. Commit the root file for what Heximon\ncannot know: ",[503,811,812],{},"account_id",[503,814,815],{},"vars",", a pinned ",[503,818,800],{},".",[499,821,822,823,825,826,829,830,832,833,835,836,838],{},"The compiler ALSO emits a partial ",[503,824,514],{}," into the gitignored ",[503,827,828],{},".heximon\u002F"," output during a normal compile\n(DO bindings + migrations only, no ",[503,831,792],{},") — the bundler-agnostic artifact any host produces identically. ",[503,834,733],{},"'s complete ",[503,837,780],{}," supersedes it.",[840,841,843],"h3",{"id":842},"the-merge-rules","The merge rules",[499,845,846,848,849,852],{},[503,847,711],{}," collects every ",[503,850,851],{},"cloudflare","-targeted contribution other plugins publish and merges them over\nyour optional base config, deterministically and additively:",[854,855,856,866,873,883],"ul",{},[857,858,859,862,863,865],"li",{},[508,860,861],{},"Durable Object bindings"," — deduped by ",[503,864,804],{},"; the base entry wins on a collision.",[857,867,868,862,870,865],{},[508,869,92],{},[503,871,872],{},"tag",[857,874,875,878,879,882],{},[508,876,877],{},"Cron triggers"," (",[503,880,881],{},"triggers.crons",") — deduped by expression; the base entry wins.",[857,884,885],{},"Everything else in the base passes through untouched.",[499,887,888,889,719,891,893],{},"So your committed ",[503,890,812],{},[503,892,815],{},", and any external bindings survive every rebuild, while the sections\nHeximon owns refresh automatically.",[522,895,897],{"className":524,"code":896,"filename":526,"language":527,"meta":528,"style":528},"import { defineHeximonConfig } from \"@heximon\u002Fbuild\";\nimport { CloudflareWorkersStrategy } from \"@heximon\u002Fcloudflare\";\nimport { HttpPlugin } from \"@heximon\u002Fhttp\u002Fcompiler\";\nimport { DurablePlugin } from \"@heximon\u002Fdurable\u002Fcompiler\";\nimport { SchedulePlugin } from \"@heximon\u002Fschedule\u002Fcompiler\";\n\nexport default defineHeximonConfig({\n  platform: new CloudflareWorkersStrategy(),\n  plugins: [new HttpPlugin(), new DurablePlugin(), new SchedulePlugin()],\n  cloudflare: {\n    queues: [{ queue: \"ticketing-outbox\", binding: \"OUTBOX_QUEUE\" }],\n  },\n});\n",[503,898,899,919,939,959,981,1003,1007,1019,1033,1067,1078,1124,1130],{"__ignoreMap":528},[532,900,901,903,905,907,909,911,913,915,917],{"class":534,"line":535},[532,902,539],{"class":538},[532,904,543],{"class":542},[532,906,547],{"class":546},[532,908,550],{"class":542},[532,910,553],{"class":538},[532,912,556],{"class":542},[532,914,560],{"class":559},[532,916,563],{"class":542},[532,918,566],{"class":542},[532,920,921,923,925,927,929,931,933,935,937],{"class":534,"line":569},[532,922,539],{"class":538},[532,924,543],{"class":542},[532,926,576],{"class":546},[532,928,550],{"class":542},[532,930,553],{"class":538},[532,932,556],{"class":542},[532,934,585],{"class":559},[532,936,563],{"class":542},[532,938,566],{"class":542},[532,940,941,943,945,947,949,951,953,955,957],{"class":534,"line":592},[532,942,539],{"class":538},[532,944,543],{"class":542},[532,946,599],{"class":546},[532,948,550],{"class":542},[532,950,553],{"class":538},[532,952,556],{"class":542},[532,954,608],{"class":559},[532,956,563],{"class":542},[532,958,566],{"class":542},[532,960,961,963,965,968,970,972,974,977,979],{"class":534,"line":615},[532,962,539],{"class":538},[532,964,543],{"class":542},[532,966,967],{"class":546}," DurablePlugin",[532,969,550],{"class":542},[532,971,553],{"class":538},[532,973,556],{"class":542},[532,975,976],{"class":559},"@heximon\u002Fdurable\u002Fcompiler",[532,978,563],{"class":542},[532,980,566],{"class":542},[532,982,983,985,987,990,992,994,996,999,1001],{"class":534,"line":622},[532,984,539],{"class":538},[532,986,543],{"class":542},[532,988,989],{"class":546}," SchedulePlugin",[532,991,550],{"class":542},[532,993,553],{"class":538},[532,995,556],{"class":542},[532,997,998],{"class":559},"@heximon\u002Fschedule\u002Fcompiler",[532,1000,563],{"class":542},[532,1002,566],{"class":542},[532,1004,1005],{"class":534,"line":640},[532,1006,619],{"emptyLinePlaceholder":618},[532,1008,1009,1011,1013,1015,1017],{"class":534,"line":661},[532,1010,625],{"class":538},[532,1012,628],{"class":538},[532,1014,547],{"class":631},[532,1016,634],{"class":546},[532,1018,637],{"class":542},[532,1020,1021,1023,1025,1027,1029,1031],{"class":534,"line":682},[532,1022,644],{"class":643},[532,1024,647],{"class":542},[532,1026,650],{"class":542},[532,1028,576],{"class":631},[532,1030,655],{"class":546},[532,1032,658],{"class":542},[532,1034,1036,1038,1040,1042,1044,1046,1048,1051,1053,1055,1057,1059,1061,1063,1065],{"class":534,"line":1035},9,[532,1037,664],{"class":643},[532,1039,647],{"class":542},[532,1041,669],{"class":546},[532,1043,672],{"class":542},[532,1045,599],{"class":631},[532,1047,655],{"class":546},[532,1049,1050],{"class":542},",",[532,1052,650],{"class":542},[532,1054,967],{"class":631},[532,1056,655],{"class":546},[532,1058,1050],{"class":542},[532,1060,650],{"class":542},[532,1062,989],{"class":631},[532,1064,677],{"class":546},[532,1066,658],{"class":542},[532,1068,1070,1073,1075],{"class":534,"line":1069},10,[532,1071,1072],{"class":643},"  cloudflare",[532,1074,647],{"class":542},[532,1076,1077],{"class":542}," {\n",[532,1079,1081,1084,1086,1088,1091,1094,1096,1098,1101,1103,1105,1108,1110,1112,1115,1117,1119,1122],{"class":534,"line":1080},11,[532,1082,1083],{"class":643},"    queues",[532,1085,647],{"class":542},[532,1087,669],{"class":546},[532,1089,1090],{"class":542},"{",[532,1092,1093],{"class":643}," queue",[532,1095,647],{"class":542},[532,1097,556],{"class":542},[532,1099,1100],{"class":559},"ticketing-outbox",[532,1102,563],{"class":542},[532,1104,1050],{"class":542},[532,1106,1107],{"class":643}," binding",[532,1109,647],{"class":542},[532,1111,556],{"class":542},[532,1113,1114],{"class":559},"OUTBOX_QUEUE",[532,1116,563],{"class":542},[532,1118,550],{"class":542},[532,1120,1121],{"class":546},"]",[532,1123,658],{"class":542},[532,1125,1127],{"class":534,"line":1126},12,[532,1128,1129],{"class":542},"  },\n",[532,1131,1133,1135,1137],{"class":534,"line":1132},13,[532,1134,685],{"class":542},[532,1136,688],{"class":546},[532,1138,566],{"class":542},[499,1140,1141,719,1144,1147,1148,1151,1152,1154,1155,1157,1158,719,1161,1164,1165,719,1168,1171],{},[503,1142,1143],{},"cloudflare.kvNamespaces",[503,1145,1146],{},"cloudflare.queues",", and ",[503,1149,1150],{},"cloudflare.hyperdrive"," in ",[503,1153,526],{}," declare the\ndeploy settings the compiler can't derive from source alone — each becomes its matching ",[503,1156,514],{}," section\n(",[503,1159,1160],{},"kv_namespaces",[503,1162,1163],{},"queues.producers","\u002F",[503,1166,1167],{},".consumers",[503,1169,1170],{},"hyperdrive",").",[517,1173,1175],{"id":1174},"the-two-generated-modules","The two generated modules",[499,1177,1178,1180,1181,1184],{},[503,1179,707],{}," emits ",[508,1182,1183],{},"two"," files, not one:",[854,1186,1187,1220],{},[857,1188,1189,1194,1195,1198,1199,1202,1203,1206,1207,1210,1211,1215,1216,1219],{},[508,1190,1191],{},[503,1192,1193],{},"host-boot.js"," — the fully-bound boot recipe: ",[503,1196,1197],{},"bootHost(env, bindings?, options?)"," captures ",[503,1200,1201],{},"env",",\nsupplies every host binding the app graph needs (the in-process ",[503,1204,1205],{},"InternalClient"," loop-back, a materialized\n",[503,1208,1209],{},"CoreConfig","), boots the app, and mounts the WebSocket\u002FSSE upgrade routes. It's importable on its own because\na Durable Object may run in a ",[1212,1213,1214],"em",{},"different"," isolate than the fetch handler — the DO bridge boots through this\nrecipe rather than a bare ",[503,1217,1218],{},"createApp()"," call.",[857,1221,1222,1227,1228,1231,1232,1235],{},[508,1223,1224],{},[503,1225,1226],{},"worker-entry.js"," — the lean ",[503,1229,1230],{},"export default { fetch[, scheduled][, queue] }"," the platform actually\nloads, driven by a per-isolate memoized ",[503,1233,1234],{},"bootOnce(env, ctx)"," over the same boot recipe.",[517,1237,289],{"id":1238},"durable-objects",[499,1240,1241],{},"The generated worker entry bridges every listed DO to workerd's RPC requirements automatically — there's\nnothing to write for it.",[499,1243,1244,1246,1247,1250,1251,1254,1255,1257,1258,1260,1261,1263,1264,1267,1268,1270],{},[503,1245,722],{}," discovers your DO classes (plus any shipped from a composed library boundary), emits their\n",[503,1248,1249],{},"durable_objects"," bindings and an ordered migrations ledger (grouped by an optional ",[503,1252,1253],{},"migration: \"v2\""," config\nmember; malformed tags are a build diagnostic), and folds them into the ",[503,1256,514],{}," the ",[503,1259,711],{},"\nwrites. Listing the worker host without ",[503,1262,711],{}," compiles a warning\n(",[503,1265,1266],{},"cloudflare.wrangler-emitter-missing",") — the Worker still builds, but Durable Objects fail under both ",[503,1269,505],{},"\nand a real deploy with no bindings emitted.",[517,1272,1274],{"id":1273},"feature-support","Feature support",[499,1276,1277,1278,1281,1282,1285,1286,1289],{},"Cloudflare is the widest-supported edge target: Durable Objects, workflows (native Cloudflare Workflows binding),\ncron (native ",[503,1279,1280],{},"scheduled"," trigger, ",[508,1283,1284],{},"always UTC"," — the platform evaluates every cron trigger in UTC regardless of\na declared ",[503,1287,1288],{},"timezone","), queues (native Cloudflare Queues, push-triggered), cross-service fan-out (either the\nper-service-queue split or the opt-in DO-router broadcast leg), and saga timeouts (a Durable Object alarm room).",[517,1291,1293],{"id":1292},"dev-on-real-workerd","Dev on real workerd",[499,1295,1296,1297,1299],{},"Set the strategy and ",[503,1298,505],{}," serves the app in Miniflare — actual workerd, not a Node shim:",[522,1301,1304],{"className":524,"code":1302,"filename":1303,"language":527,"meta":528,"style":528},"import heximon from \"@heximon\u002Fbuild\u002Fvite\";\nimport { defaultServerConditions, defineConfig } from \"vite-plus\";\n\nexport default defineConfig({\n  plugins: [heximon()],\n  resolve: { conditions: [\"development\", ...defaultServerConditions] },\n});\n","vite.config.ts",[503,1305,1306,1325,1352,1356,1368,1383,1417],{"__ignoreMap":528},[532,1307,1308,1310,1313,1316,1318,1321,1323],{"class":534,"line":535},[532,1309,539],{"class":538},[532,1311,1312],{"class":546}," heximon ",[532,1314,1315],{"class":538},"from",[532,1317,556],{"class":542},[532,1319,1320],{"class":559},"@heximon\u002Fbuild\u002Fvite",[532,1322,563],{"class":542},[532,1324,566],{"class":542},[532,1326,1327,1329,1331,1334,1336,1339,1341,1343,1345,1348,1350],{"class":534,"line":569},[532,1328,539],{"class":538},[532,1330,543],{"class":542},[532,1332,1333],{"class":546}," defaultServerConditions",[532,1335,1050],{"class":542},[532,1337,1338],{"class":546}," defineConfig",[532,1340,550],{"class":542},[532,1342,553],{"class":538},[532,1344,556],{"class":542},[532,1346,1347],{"class":559},"vite-plus",[532,1349,563],{"class":542},[532,1351,566],{"class":542},[532,1353,1354],{"class":534,"line":592},[532,1355,619],{"emptyLinePlaceholder":618},[532,1357,1358,1360,1362,1364,1366],{"class":534,"line":615},[532,1359,625],{"class":538},[532,1361,628],{"class":538},[532,1363,1338],{"class":631},[532,1365,634],{"class":546},[532,1367,637],{"class":542},[532,1369,1370,1372,1374,1376,1379,1381],{"class":534,"line":622},[532,1371,664],{"class":643},[532,1373,647],{"class":542},[532,1375,669],{"class":546},[532,1377,1378],{"class":631},"heximon",[532,1380,677],{"class":546},[532,1382,658],{"class":542},[532,1384,1385,1388,1390,1392,1395,1397,1399,1401,1404,1406,1408,1411,1414],{"class":534,"line":640},[532,1386,1387],{"class":643},"  resolve",[532,1389,647],{"class":542},[532,1391,543],{"class":542},[532,1393,1394],{"class":643}," conditions",[532,1396,647],{"class":542},[532,1398,669],{"class":546},[532,1400,563],{"class":542},[532,1402,1403],{"class":559},"development",[532,1405,563],{"class":542},[532,1407,1050],{"class":542},[532,1409,1410],{"class":542}," ...",[532,1412,1413],{"class":546},"defaultServerConditions] ",[532,1415,1416],{"class":542},"},\n",[532,1418,1419,1421,1423],{"class":534,"line":661},[532,1420,685],{"class":542},[532,1422,688],{"class":546},[532,1424,566],{"class":542},[499,1426,1427,1428,1430,1431,1434,1435,1437],{},"The dev host bundles the emitted ",[503,1429,1226],{},", boots workerd with every declared binding provisioned from\nthe merged wrangler config, and splices raw ",[503,1432,1433],{},"ws:\u002F\u002F"," upgrades directly onto workerd's socket — so WebSocket\nroutes, Durable Object rooms included, connect under ",[503,1436,505],{}," exactly as they would on a real deploy.",[517,1439,1441],{"id":1440},"ship-it","Ship it",[522,1443,1445],{"className":737,"code":1444,"language":740,"meta":528,"style":528},"wrangler deploy --config dist\u002Fwrangler.json\n",[503,1446,1447],{"__ignoreMap":528},[532,1448,1449,1451,1453,1455],{"class":534,"line":535},[532,1450,760],{"class":747},[532,1452,763],{"class":559},[532,1454,766],{"class":559},[532,1456,769],{"class":559},[499,1458,1459,1461,1462,1465,1466,1472,1473,1476,1477,1480,1481,1484,1485,819],{},[503,1460,695],{}," also implements the ",[503,1463,1464],{},"@heximon\u002Fdeploy"," capability, so ",[1467,1468,1469],"a",{"href":375},[503,1470,1471],{},"heximon deploy","\nruns that same command for you (plus a ",[503,1474,1475],{},"wrangler whoami"," preflight, and ",[503,1478,1479],{},"--provision"," for Cloudflare Queues and\nruntime secrets via ",[503,1482,1483],{},"wrangler secret put","). Teardown: ",[503,1486,1487],{},"wrangler delete",[517,1489,1491],{"id":1490},"see-also","See also",[854,1493,1494,1499,1509,1520],{},[857,1495,1496,1498],{},[1467,1497,289],{"href":290}," — the DO concept, config, and DI wiring.",[857,1500,1501,1504,1505,1508],{},[1467,1502,1503],{"href":157},"Schedule"," — cron handlers and the ",[503,1506,1507],{},"ScheduledHandler"," base.",[857,1510,1511,1514,1515,1147,1517,1519],{},[1467,1512,1513],{"href":299},"Deploy overview"," — strategies, ",[503,1516,733],{},[503,1518,1471],{}," across all platforms.",[857,1521,1522,1526],{},[1467,1523,1524],{"href":375},[503,1525,1471],{}," — the CLI's Cloudflare-specific preflight and provisioning flags.",[1528,1529,1530],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":528,"searchDepth":569,"depth":569,"links":1532},[1533,1534,1538,1539,1540,1541,1542,1543],{"id":519,"depth":569,"text":520},{"id":729,"depth":569,"text":1535,"children":1536},"What vp build emits",[1537],{"id":842,"depth":592,"text":843},{"id":1174,"depth":569,"text":1175},{"id":1238,"depth":569,"text":289},{"id":1273,"depth":569,"text":1274},{"id":1292,"depth":569,"text":1293},{"id":1440,"depth":569,"text":1441},{"id":1490,"depth":569,"text":1491},"CloudflareWorkersStrategy, CloudflarePlugin, wrangler.json as a build artifact, dist\u002Fworker.js, Durable Object migrations, the Miniflare vp dev host.","md",null,{},{"icon":310},{"title":307,"description":1544},"K6GEM5_Xc-DH5Q8VGJ-RYdibt-TQsRBdmJ2JbYTW_n0",[1552,1554],{"title":302,"path":303,"stem":304,"description":1553,"icon":305,"children":-1},"NodeHostStrategy, dist\u002Fserver.js, @heximon\u002Fhttp\u002Fserve, node\u002Fbun\u002Fdeno standalone deploy, the zero-config default platform.",{"title":312,"path":313,"stem":314,"description":1555,"icon":315,"children":-1},"VercelFunctionsStrategy, VercelEdgeStrategy, .vercel\u002Foutput Build Output API v3, vercel-entry.js, cron and queue triggers, the freeze-safe workflow drain.",1783300759752]