[{"data":1,"prerenderedAt":1666},["ShallowReactive",2],{"navigation_docs":3,"-docs-deploy-aws-lambda":493,"-docs-deploy-aws-lambda-surround":1661},[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":322,"body":495,"description":1654,"extension":1655,"links":1656,"meta":1657,"navigation":1658,"path":323,"seo":1659,"stem":324,"__hash__":1660},"docs\u002Fdocs\u002F06.deploy\u002F06.aws-lambda.md",{"type":496,"value":497,"toc":1642},"minimark",[498,502,507,678,700,708,729,752,1189,1232,1252,1256,1278,1309,1331,1341,1344,1348,1430,1453,1457,1483,1507,1520,1524,1537,1541,1556,1560,1578,1588,1592,1638],[499,500,501],"p",{},"Lambda is the platform with no scheduling and no Durable Objects at all — every invocation is a discrete call\nwith no standing process behind it, and there's no native primitive for a stateful actor. What it does have,\nfully wired, is a queue: an SQS event source pushes batches straight into a generated handler branch, no polling\nloop required.",[503,504,506],"h2",{"id":505},"configure-the-strategy","Configure the strategy",[508,509,515],"pre",{"className":510,"code":511,"filename":512,"language":513,"meta":514,"style":514},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineHeximonConfig } from \"@heximon\u002Fbuild\";\nimport { LambdaStrategy } from \"@heximon\u002Faws\";\nimport { HttpPlugin } from \"@heximon\u002Fhttp\u002Fcompiler\";\n\nexport default defineHeximonConfig({\n  platform: new LambdaStrategy(),\n  plugins: [new HttpPlugin()],\n});\n","heximon.config.ts","ts","",[516,517,518,554,577,600,607,625,646,667],"code",{"__ignoreMap":514},[519,520,523,527,531,535,538,541,544,548,551],"span",{"class":521,"line":522},"line",1,[519,524,526],{"class":525},"s7zQu","import",[519,528,530],{"class":529},"sMK4o"," {",[519,532,534],{"class":533},"sTEyZ"," defineHeximonConfig",[519,536,537],{"class":529}," }",[519,539,540],{"class":525}," from",[519,542,543],{"class":529}," \"",[519,545,547],{"class":546},"sfazB","@heximon\u002Fbuild",[519,549,550],{"class":529},"\"",[519,552,553],{"class":529},";\n",[519,555,557,559,561,564,566,568,570,573,575],{"class":521,"line":556},2,[519,558,526],{"class":525},[519,560,530],{"class":529},[519,562,563],{"class":533}," LambdaStrategy",[519,565,537],{"class":529},[519,567,540],{"class":525},[519,569,543],{"class":529},[519,571,572],{"class":546},"@heximon\u002Faws",[519,574,550],{"class":529},[519,576,553],{"class":529},[519,578,580,582,584,587,589,591,593,596,598],{"class":521,"line":579},3,[519,581,526],{"class":525},[519,583,530],{"class":529},[519,585,586],{"class":533}," HttpPlugin",[519,588,537],{"class":529},[519,590,540],{"class":525},[519,592,543],{"class":529},[519,594,595],{"class":546},"@heximon\u002Fhttp\u002Fcompiler",[519,597,550],{"class":529},[519,599,553],{"class":529},[519,601,603],{"class":521,"line":602},4,[519,604,606],{"emptyLinePlaceholder":605},true,"\n",[519,608,610,613,616,619,622],{"class":521,"line":609},5,[519,611,612],{"class":525},"export",[519,614,615],{"class":525}," default",[519,617,534],{"class":618},"s2Zo4",[519,620,621],{"class":533},"(",[519,623,624],{"class":529},"{\n",[519,626,628,632,635,638,640,643],{"class":521,"line":627},6,[519,629,631],{"class":630},"swJcz","  platform",[519,633,634],{"class":529},":",[519,636,637],{"class":529}," new",[519,639,563],{"class":618},[519,641,642],{"class":533},"()",[519,644,645],{"class":529},",\n",[519,647,649,652,654,657,660,662,665],{"class":521,"line":648},7,[519,650,651],{"class":630},"  plugins",[519,653,634],{"class":529},[519,655,656],{"class":533}," [",[519,658,659],{"class":529},"new",[519,661,586],{"class":618},[519,663,664],{"class":533},"()]",[519,666,645],{"class":529},[519,668,670,673,676],{"class":521,"line":669},8,[519,671,672],{"class":529},"}",[519,674,675],{"class":533},")",[519,677,553],{"class":529},[499,679,680,683,684,687,688,691,692,695,696,699],{},[516,681,682],{},"LambdaStrategy"," extends ",[516,685,686],{},"NodeStrategy"," — it's a ",[516,689,690],{},"node","-class strategy (standard Node SSR externalization,\n",[516,693,694],{},"node_modules"," deployed alongside the handler), platform name ",[516,697,698],{},"\"lambda\"",".",[503,701,703,704,707],{"id":702},"what-vp-build-emits","What ",[516,705,706],{},"vp build"," emits",[508,709,714],{"className":710,"code":711,"filename":712,"language":713,"meta":514,"style":514},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","vp build            # → dist\u002Flambda.js\n","terminal","bash",[516,715,716],{"__ignoreMap":514},[519,717,718,722,725],{"class":521,"line":522},[519,719,721],{"class":720},"sBMFI","vp",[519,723,724],{"class":546}," build",[519,726,728],{"class":727},"sHwdD","            # → dist\u002Flambda.js\n",[499,730,731,732,735,736,739,740,743,744,747,748,751],{},"Point the Lambda function at ",[516,733,734],{},"dist\u002Flambda.js"," with handler ",[516,737,738],{},"lambda.handler",". ",[516,741,742],{},"LambdaPlugin"," emits\n",[516,745,746],{},"lambda-entry.js"," — a cold-start-once ",[516,749,750],{},"export const handler"," over the API Gateway HTTP API v2 \u002F Function URL\nevent shape:",[508,753,758],{"className":754,"code":755,"filename":756,"language":757,"meta":514,"style":514},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createServer, H3FetchClient } from \"@heximon\u002Fhttp\";\nimport { routes } from \".\u002Frouter.js\";\nimport { createApp } from \".\u002Fapps\u002Fmain.wiring.js\";\n\nasync function boot() {\n  let server;\n  const internalClient = new H3FetchClient((input, init) =>\n    server.fetch(new Request(new URL(input, \"http:\u002F\u002Flocalhost\"), init)));\n  const app = await createApp({ InternalClient: internalClient });\n  server = createServer(routes, app);\n  return server;\n}\n\nlet appPromise;\n\nexport const handler = async (event) => {\n  appPromise ??= boot();\n  const server = await appPromise;\n  const request = toWebRequest(event);\n  const response = await server.fetch(request);\n  await otelProvider?.forceFlush();\n  return await toLambdaResult(response);\n};\n","lambda-entry.js (generated, simplified)","js",[516,759,760,788,810,832,836,853,863,896,944,977,1000,1010,1016,1021,1032,1037,1067,1082,1097,1118,1145,1164,1183],{"__ignoreMap":514},[519,761,762,764,766,769,772,775,777,779,781,784,786],{"class":521,"line":522},[519,763,526],{"class":525},[519,765,530],{"class":529},[519,767,768],{"class":533}," createServer",[519,770,771],{"class":529},",",[519,773,774],{"class":533}," H3FetchClient",[519,776,537],{"class":529},[519,778,540],{"class":525},[519,780,543],{"class":529},[519,782,783],{"class":546},"@heximon\u002Fhttp",[519,785,550],{"class":529},[519,787,553],{"class":529},[519,789,790,792,794,797,799,801,803,806,808],{"class":521,"line":556},[519,791,526],{"class":525},[519,793,530],{"class":529},[519,795,796],{"class":533}," routes",[519,798,537],{"class":529},[519,800,540],{"class":525},[519,802,543],{"class":529},[519,804,805],{"class":546},".\u002Frouter.js",[519,807,550],{"class":529},[519,809,553],{"class":529},[519,811,812,814,816,819,821,823,825,828,830],{"class":521,"line":579},[519,813,526],{"class":525},[519,815,530],{"class":529},[519,817,818],{"class":533}," createApp",[519,820,537],{"class":529},[519,822,540],{"class":525},[519,824,543],{"class":529},[519,826,827],{"class":546},".\u002Fapps\u002Fmain.wiring.js",[519,829,550],{"class":529},[519,831,553],{"class":529},[519,833,834],{"class":521,"line":602},[519,835,606],{"emptyLinePlaceholder":605},[519,837,838,842,845,848,850],{"class":521,"line":609},[519,839,841],{"class":840},"spNyl","async",[519,843,844],{"class":840}," function",[519,846,847],{"class":618}," boot",[519,849,642],{"class":529},[519,851,852],{"class":529}," {\n",[519,854,855,858,861],{"class":521,"line":627},[519,856,857],{"class":840},"  let",[519,859,860],{"class":533}," server",[519,862,553],{"class":529},[519,864,865,868,871,874,876,878,880,882,886,888,891,893],{"class":521,"line":648},[519,866,867],{"class":840},"  const",[519,869,870],{"class":533}," internalClient",[519,872,873],{"class":529}," =",[519,875,637],{"class":529},[519,877,774],{"class":618},[519,879,621],{"class":630},[519,881,621],{"class":529},[519,883,885],{"class":884},"sHdIc","input",[519,887,771],{"class":529},[519,889,890],{"class":884}," init",[519,892,675],{"class":529},[519,894,895],{"class":840}," =>\n",[519,897,898,901,903,906,908,910,913,915,917,920,922,924,926,928,931,933,935,937,939,942],{"class":521,"line":669},[519,899,900],{"class":533},"    server",[519,902,699],{"class":529},[519,904,905],{"class":618},"fetch",[519,907,621],{"class":630},[519,909,659],{"class":529},[519,911,912],{"class":618}," Request",[519,914,621],{"class":630},[519,916,659],{"class":529},[519,918,919],{"class":618}," URL",[519,921,621],{"class":630},[519,923,885],{"class":533},[519,925,771],{"class":529},[519,927,543],{"class":529},[519,929,930],{"class":546},"http:\u002F\u002Flocalhost",[519,932,550],{"class":529},[519,934,675],{"class":630},[519,936,771],{"class":529},[519,938,890],{"class":533},[519,940,941],{"class":630},")))",[519,943,553],{"class":529},[519,945,947,949,952,954,957,959,961,964,967,969,971,973,975],{"class":521,"line":946},9,[519,948,867],{"class":840},[519,950,951],{"class":533}," app",[519,953,873],{"class":529},[519,955,956],{"class":525}," await",[519,958,818],{"class":618},[519,960,621],{"class":630},[519,962,963],{"class":529},"{",[519,965,966],{"class":630}," InternalClient",[519,968,634],{"class":529},[519,970,870],{"class":533},[519,972,537],{"class":529},[519,974,675],{"class":630},[519,976,553],{"class":529},[519,978,980,983,985,987,989,992,994,996,998],{"class":521,"line":979},10,[519,981,982],{"class":533},"  server",[519,984,873],{"class":529},[519,986,768],{"class":618},[519,988,621],{"class":630},[519,990,991],{"class":533},"routes",[519,993,771],{"class":529},[519,995,951],{"class":533},[519,997,675],{"class":630},[519,999,553],{"class":529},[519,1001,1003,1006,1008],{"class":521,"line":1002},11,[519,1004,1005],{"class":525},"  return",[519,1007,860],{"class":533},[519,1009,553],{"class":529},[519,1011,1013],{"class":521,"line":1012},12,[519,1014,1015],{"class":529},"}\n",[519,1017,1019],{"class":521,"line":1018},13,[519,1020,606],{"emptyLinePlaceholder":605},[519,1022,1024,1027,1030],{"class":521,"line":1023},14,[519,1025,1026],{"class":840},"let",[519,1028,1029],{"class":533}," appPromise",[519,1031,553],{"class":529},[519,1033,1035],{"class":521,"line":1034},15,[519,1036,606],{"emptyLinePlaceholder":605},[519,1038,1040,1042,1045,1048,1051,1054,1057,1060,1062,1065],{"class":521,"line":1039},16,[519,1041,612],{"class":525},[519,1043,1044],{"class":840}," const",[519,1046,1047],{"class":533}," handler ",[519,1049,1050],{"class":529},"=",[519,1052,1053],{"class":840}," async",[519,1055,1056],{"class":529}," (",[519,1058,1059],{"class":884},"event",[519,1061,675],{"class":529},[519,1063,1064],{"class":840}," =>",[519,1066,852],{"class":529},[519,1068,1070,1073,1076,1078,1080],{"class":521,"line":1069},17,[519,1071,1072],{"class":533},"  appPromise",[519,1074,1075],{"class":529}," ??=",[519,1077,847],{"class":618},[519,1079,642],{"class":630},[519,1081,553],{"class":529},[519,1083,1085,1087,1089,1091,1093,1095],{"class":521,"line":1084},18,[519,1086,867],{"class":840},[519,1088,860],{"class":533},[519,1090,873],{"class":529},[519,1092,956],{"class":525},[519,1094,1029],{"class":533},[519,1096,553],{"class":529},[519,1098,1100,1102,1105,1107,1110,1112,1114,1116],{"class":521,"line":1099},19,[519,1101,867],{"class":840},[519,1103,1104],{"class":533}," request",[519,1106,873],{"class":529},[519,1108,1109],{"class":618}," toWebRequest",[519,1111,621],{"class":630},[519,1113,1059],{"class":533},[519,1115,675],{"class":630},[519,1117,553],{"class":529},[519,1119,1121,1123,1126,1128,1130,1132,1134,1136,1138,1141,1143],{"class":521,"line":1120},20,[519,1122,867],{"class":840},[519,1124,1125],{"class":533}," response",[519,1127,873],{"class":529},[519,1129,956],{"class":525},[519,1131,860],{"class":533},[519,1133,699],{"class":529},[519,1135,905],{"class":618},[519,1137,621],{"class":630},[519,1139,1140],{"class":533},"request",[519,1142,675],{"class":630},[519,1144,553],{"class":529},[519,1146,1148,1151,1154,1157,1160,1162],{"class":521,"line":1147},21,[519,1149,1150],{"class":525},"  await",[519,1152,1153],{"class":533}," otelProvider",[519,1155,1156],{"class":529},"?.",[519,1158,1159],{"class":618},"forceFlush",[519,1161,642],{"class":630},[519,1163,553],{"class":529},[519,1165,1167,1169,1171,1174,1176,1179,1181],{"class":521,"line":1166},22,[519,1168,1005],{"class":525},[519,1170,956],{"class":525},[519,1172,1173],{"class":618}," toLambdaResult",[519,1175,621],{"class":630},[519,1177,1178],{"class":533},"response",[519,1180,675],{"class":630},[519,1182,553],{"class":529},[519,1184,1186],{"class":521,"line":1185},23,[519,1187,1188],{"class":529},"};\n",[499,1190,1191,1192,1195,1196,1200,1201,1204,1205,1208,1209,1212,1213,1216,1217,1220,1221,1224,1225,1228,1229,699],{},"The event-to-",[516,1193,1194],{},"Request"," adapter targets ",[1197,1198,1199],"strong",{},"API Gateway HTTP API v2 \u002F Lambda Function URL"," — the modern default:\n",[516,1202,1203],{},"event.requestContext.http.method","\u002F",[516,1206,1207],{},".path"," carry the method and path, ",[516,1210,1211],{},"event.headers"," is a flat single-value\nmap, ",[516,1214,1215],{},"event.cookies"," folds into a ",[516,1218,1219],{},"Cookie"," header, and a Base64-encoded body decodes via ",[516,1222,1223],{},"event.isBase64Encoded",".\nThe ",[516,1226,1227],{},"Response"," serializes back as ",[516,1230,1231],{},"{ statusCode, headers, body, isBase64Encoded: true }",[1233,1234,1236,1237,1240,1241,1244,1245,1244,1248,1251],"callout",{"type":1235},"warning","The generated entry targets API Gateway ",[1197,1238,1239],{},"v2"," (HTTP API). API Gateway v1 (REST API) uses a different event\nshape entirely (",[516,1242,1243],{},"event.httpMethod",", ",[516,1246,1247],{},"event.path",[516,1249,1250],{},"event.multiValueHeaders",") — an app behind a v1 REST API\nneeds its own adapter, or should migrate to HTTP API \u002F Function URL.",[503,1253,1255],{"id":1254},"sqs-queue","SQS queue",[499,1257,1258,1259,1262,1263,1266,1267,1270,1271,1274,1275,1277],{},"List ",[516,1260,1261],{},"QueuePlugin"," and Lambda queue handlers run over a real push consumer — no polling. The strategy binds\n",[516,1264,1265],{},"LambdaSqsQueueConsumer"," (from ",[516,1268,1269],{},"@heximon\u002Fqueue\u002Fsqs",") as the ",[516,1272,1273],{},"QueueConsumer"," satisfier, which flips the queue\nplugin's generated consumer to the push shape and grows ",[516,1276,746],{}," an SQS branch:",[508,1279,1281],{"className":510,"code":1280,"language":513,"meta":514,"style":514},"import { SqsQueue, LambdaSqsQueueConsumer } from \"@heximon\u002Fqueue\u002Fsqs\";\n",[516,1282,1283],{"__ignoreMap":514},[519,1284,1285,1287,1289,1292,1294,1297,1299,1301,1303,1305,1307],{"class":521,"line":522},[519,1286,526],{"class":525},[519,1288,530],{"class":529},[519,1290,1291],{"class":533}," SqsQueue",[519,1293,771],{"class":529},[519,1295,1296],{"class":533}," LambdaSqsQueueConsumer",[519,1298,537],{"class":529},[519,1300,540],{"class":525},[519,1302,543],{"class":529},[519,1304,1269],{"class":546},[519,1306,550],{"class":529},[519,1308,553],{"class":529},[499,1310,1311,1312,1315,1316,1319,1320,1322,1323,1326,1327,1330],{},"When an SQS batch arrives (",[516,1313,1314],{},"event.Records[0].eventSource === \"aws:sqs\"","), the entry detects it ",[1197,1317,1318],{},"before"," the\nHTTP path, resolves ",[516,1321,1265],{}," off the booted app, and returns ",[516,1324,1325],{},"drainBatch(event)"," — the AWS\n",[516,1328,1329],{},"ReportBatchItemFailures"," response, so SQS only redelivers the records that actually failed.",[499,1332,1333,1334,1336,1337,1340],{},"Point an SQS event\nsource mapping (with the ",[516,1335,1329],{}," response type enabled) at the function; ",[516,1338,1339],{},"SqsQueue"," — or any\nSQS publisher — feeds the queue. DLQ redrive is native SQS configuration, no extra wiring.",[499,1342,1343],{},"With no queue handlers declared, the SQS branch is simply absent and the entry is byte-identical to the\nHTTP-only shape.",[503,1345,1347],{"id":1346},"feature-support","Feature support",[1349,1350,1351,1365],"table",{},[1352,1353,1354],"thead",{},[1355,1356,1357,1362],"tr",{},[1358,1359,1361],"th",{"align":1360},"left","Feature",[1358,1363,1364],{"align":1360},"Supported",[1366,1367,1368,1377,1392,1400,1411,1422],"tbody",{},[1355,1369,1370,1374],{},[1371,1372,1373],"td",{"align":1360},"HTTP controllers",[1371,1375,1376],{"align":1360},"Yes",[1355,1378,1379,1386],{},[1371,1380,1381,1382,1385],{"align":1360},"Queues (",[516,1383,1384],{},"@heximon\u002Fqueue"," \u002F SQS)",[1371,1387,1388,1389,1391],{"align":1360},"Yes — via ",[516,1390,1265],{}," over an SQS event source mapping",[1355,1393,1394,1397],{},[1371,1395,1396],{"align":1360},"Cron \u002F scheduled invocations",[1371,1398,1399],{"align":1360},"No — configure EventBridge manually; each invocation is a separate Lambda call",[1355,1401,1402,1408],{},[1371,1403,1404,1405,675],{"align":1360},"Durable Objects (",[516,1406,1407],{},"@heximon\u002Fdurable",[1371,1409,1410],{"align":1360},"No — Lambda freezes between invocations; fails loud at build time",[1355,1412,1413,1419],{},[1371,1414,1415,1416,675],{"align":1360},"Workflows (",[516,1417,1418],{},"@heximon\u002Fworkflow",[1371,1420,1421],{"align":1360},"No",[1355,1423,1424,1427],{},[1371,1425,1426],{"align":1360},"WebSocket upgrades",[1371,1428,1429],{"align":1360},"No — API Gateway WebSocket APIs use a different event shape",[499,1431,1432,1433,1435,1436,1439,1440,1442,1443,1445,1446,1448,1449,1452],{},"Compiling a Durable Object or a workflow against ",[516,1434,682],{}," emits a ",[516,1437,1438],{},"PlatformEdgeUnsupported"," diagnostic\nnaming ",[516,1441,698],{}," and the offending class before any code is generated — even though ",[516,1444,682],{}," is a\n",[516,1447,690],{},"-class target (correct for externalization), the diagnostic is driven by ",[516,1450,1451],{},"supportedFeatures",", not the\ntarget class.",[503,1454,1456],{"id":1455},"opentelemetry","OpenTelemetry",[499,1458,1459,1460,1463,1464,1466,1467,1470,1471,1474,1475,1478,1479,1482],{},"Lambda freezes the execution context between invocations — no graceful shutdown hook, no ",[516,1461,1462],{},"waitUntil"," seam.\n",[516,1465,682],{}," declares ",[516,1468,1469],{},"otelFlushModel: \"perInvocation\"",", which selects the ",[516,1472,1473],{},"@heximon\u002Fotel\u002Flambda"," leg: a\n",[516,1476,1477],{},"SimpleSpanProcessor","-backed provider whose ",[516,1480,1481],{},"forceFlush()"," runs synchronously inside the invocation, before the\nhandler returns — because anything after that point may never execute.",[508,1484,1488],{"className":1485,"code":1486,"language":1487,"meta":514,"style":514},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add @heximon\u002Fotel @opentelemetry\u002Fsdk-trace-base @opentelemetry\u002Fexporter-trace-otlp-http\n","sh",[516,1489,1490],{"__ignoreMap":514},[519,1491,1492,1495,1498,1501,1504],{"class":521,"line":522},[519,1493,1494],{"class":720},"pnpm",[519,1496,1497],{"class":546}," add",[519,1499,1500],{"class":546}," @heximon\u002Fotel",[519,1502,1503],{"class":546}," @opentelemetry\u002Fsdk-trace-base",[519,1505,1506],{"class":546}," @opentelemetry\u002Fexporter-trace-otlp-http\n",[499,1508,1509,1510,1513,1514,1517,1518,699],{},"The ",[516,1511,1512],{},"OtelPlugin"," wires the Lambda leg automatically once it's listed and ",[516,1515,1516],{},"platform"," is ",[516,1519,682],{},[503,1521,1523],{"id":1522},"s3-blob-store","S3 blob store",[499,1525,1526,1266,1529,1532,1533,1536],{},[516,1527,1528],{},"S3BlobStore",[516,1530,1531],{},"@heximon\u002Fblob\u002Fs3",") satisfies the ",[516,1534,1535],{},"BlobStore"," port with an AWS S3 backend — the natural\npairing for a Lambda deploy that needs object storage.",[503,1538,1540],{"id":1539},"dev","Dev",[499,1542,1543,1546,1547,1549,1550,1552,1553,1555],{},[516,1544,1545],{},"vp dev"," runs your app as a standard Node HTTP server — the strategy's built-in ",[516,1548,686],{}," dev default, no\nAWS-local emulator required. The ",[516,1551,1265],{}," path and any ",[516,1554,1339],{}," producer still run against a\nreal (or locally-pointed) SQS queue in dev; only the Lambda invocation shape itself is emulated by the plain\nNode server.",[503,1557,1559],{"id":1558},"ship-it","Ship it",[499,1561,1562,1565,1566,1569,1570,1573,1574,1577],{},[516,1563,1564],{},"@heximon\u002Fdeploy"," deliberately does not wire Lambda: AWS has no prebuilt one-shot CLI deploy the way\n",[516,1567,1568],{},"wrangler deploy"," or ",[516,1571,1572],{},"vercel deploy --prebuilt"," do — a Lambda deploy is provision-first (the function, API\nGateway or a Function URL, IAM), and updating code needs ",[516,1575,1576],{},"aws lambda update-function-code"," against a function\nthat already exists.",[499,1579,1580,1581,1583,1584,1587],{},"Ship ",[516,1582,734],{}," with your own infrastructure tooling (Terraform, CDK, SAM, or the\nAWS CLI directly) rather than expect ",[516,1585,1586],{},"heximon deploy"," to do it.",[503,1589,1591],{"id":1590},"see-also","See also",[1593,1594,1595,1609,1621,1629],"ul",{},[1596,1597,1598,1601,1602,1604,1605,1608],"li",{},[1599,1600,151],"a",{"href":152}," — the ",[516,1603,151],{}," port, channel handlers, and the shared ",[516,1606,1607],{},"PollingQueueConsumer"," base.",[1596,1610,1611,1614,1615,1617,1618,699],{},[1599,1612,1613],{"href":195},"Observability"," — ",[516,1616,1512],{},", spans, and the injectable ",[516,1619,1620],{},"Tracer",[1596,1622,1623,1614,1626,1628],{},[1599,1624,1625],{"href":171},"Blob storage",[516,1627,1535],{}," and the S3\u002FR2\u002Ffilesystem\u002Fmemory drivers.",[1596,1630,1631,1634,1635,1637],{},[1599,1632,1633],{"href":299},"Deploy overview"," — how ",[516,1636,1451],{}," gates a build across every platform.",[1639,1640,1641],"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}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}",{"title":514,"searchDepth":556,"depth":556,"links":1643},[1644,1645,1647,1648,1649,1650,1651,1652,1653],{"id":505,"depth":556,"text":506},{"id":702,"depth":556,"text":1646},"What vp build emits",{"id":1254,"depth":556,"text":1255},{"id":1346,"depth":556,"text":1347},{"id":1455,"depth":556,"text":1456},{"id":1522,"depth":556,"text":1523},{"id":1539,"depth":556,"text":1540},{"id":1558,"depth":556,"text":1559},{"id":1590,"depth":556,"text":1591},"LambdaStrategy, lambda-entry.js, API Gateway HTTP API v2 event adapter, LambdaSqsQueueConsumer, per-invocation OTel flush.","md",null,{},{"icon":325},{"title":322,"description":1654},"WOfvNllh-6JrIM3o6m9HGMH0Ca0E2AyCSaPUaf_Lt4s",[1662,1664],{"title":317,"path":318,"stem":319,"description":1663,"icon":320,"children":-1},"NetlifyFunctionsStrategy, NetlifyEdgeStrategy, .netlify\u002F deploy tree, scheduled functions, Netlify Async Workloads queue, mixed-runtime split.",{"title":327,"path":328,"stem":329,"description":1665,"icon":330,"children":-1},"DenoDeployStrategy, dist\u002Fdeno-worker.js, Deno.cron registrations, deployctl deploy, platform limits.",1783300759753]