[{"data":1,"prerenderedAt":1622},["ShallowReactive",2],{"navigation_docs":3,"-docs-under-the-hood-packages":493,"-docs-under-the-hood-packages-surround":1617},[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":408,"body":495,"description":1610,"extension":1611,"links":1612,"meta":1613,"navigation":1614,"path":409,"seo":1615,"stem":410,"__hash__":1616},"docs\u002Fdocs\u002F08.under-the-hood\u002F06.packages.md",{"type":496,"value":497,"toc":1596},"minimark",[498,515,518,541,552,557,560,648,652,655,703,706,713,927,931,934,1012,1016,1021,1146,1149,1152,1266,1270,1273,1410,1414,1417,1551,1555,1566,1570],[499,500,501,502,506,507,510,511,514],"p",{},"Heximon ships as 44 small, single-purpose ",[503,504,505],"code",{},"@heximon\u002F*"," packages (plus the unscoped ",[503,508,509],{},"heximon"," CLI and the ",[503,512,513],{},"create-heximon"," forwarder), organized\ninto eight tiers. Each package depends only on the tiers below it, never the reverse, so you install the\nfoundation and the kernel first and add a tier's packages only when you reach for that capability.",[499,516,517],{},"Most apps use three concepts — a module, a controller, a provider — and never install more than a\nhandful of these packages; every row below is opt-in.",[499,519,520,521,524,525,528,529,532,533,536,537,540],{},"Every package lives at ",[503,522,523],{},"packages\u002F\u003Ctier>\u002F\u003Cname>"," in the repo, but the npm name is always flat —\n",[503,526,527],{},"packages\u002Farchitecture\u002Fdomain"," publishes as ",[503,530,531],{},"@heximon\u002Fdomain",", ",[503,534,535],{},"packages\u002Fplatforms\u002Fcloudflare"," publishes as\n",[503,538,539],{},"@heximon\u002Fcloudflare",". The directory tier is a repo-organization detail; it never appears in an import path.",[499,542,543,544,547,548,551],{},"For the full API of any package, its ",[503,545,546],{},"src\u002F"," and ",[503,549,550],{},"README.md"," are the reference — this page is the map, not\nthe manual.",[553,554,556],"h2",{"id":555},"foundation","Foundation",[499,558,559],{},"DI-free value and contract types, safe to import on the frontend. No compiler, no server.",[561,562,563,577],"table",{},[564,565,566],"thead",{},[567,568,569,574],"tr",{},[570,571,573],"th",{"align":572},"left","Package",[570,575,576],{"align":572},"What it's for",[578,579,580,594,621],"tbody",{},[567,581,582,591],{},[583,584,585],"td",{"align":572},[586,587,588],"a",{"href":215},[503,589,590],{},"@heximon\u002Fprimitives",[583,592,593],{"align":572},"Branded types, the Standard Schema contract, and value helpers — the value layer everything else builds on.",[567,595,596,603],{},[583,597,598],{"align":572},[586,599,600],{"href":210},[503,601,602],{},"@heximon\u002Fschema",[583,604,605,606,609,610,609,613,616,617,620],{"align":572},"Validator-agnostic DTO veneer: ",[503,607,608],{},"Schema"," \u002F ",[503,611,612],{},"SchemaObject",[503,614,615],{},"SchemaArray"," over per-field Standard Schemas, with JSON Schema assembled from each field's ",[503,618,619],{},"~standard.jsonSchema",".",[567,622,623,630],{},[583,624,625],{"align":572},[586,626,627],{"href":68},[503,628,629],{},"@heximon\u002Fcontract",[583,631,632,633,532,636,639,640,643,644,647],{"align":572},"The FE-safe API contract surface: the ",[503,634,635],{},"Contract",[503,637,638],{},"WebSocketContract",", and ",[503,641,642],{},"ServerSentEvents"," bases with the ",[503,645,646],{},"Route"," builder and typed self-clients.",[553,649,651],{"id":650},"kernel","Kernel",[499,653,654],{},"The two packages every other tier layers on: the build-time compiler and the runtime it compiles against.",[561,656,657,665],{},[564,658,659],{},[567,660,661,663],{},[570,662,573],{"align":572},[570,664,576],{"align":572},[578,666,667,679],{},[567,668,669,676],{},[583,670,671],{"align":572},[586,672,673],{"href":390},[503,674,675],{},"@heximon\u002Fcompiler",[583,677,678],{"align":572},"The compile-time DI compiler: parse → DI graph → codegen, plus the plugin API. Build-time only — never imported at runtime.",[567,680,681,688],{},[583,682,683],{"align":572},[586,684,685],{"href":54},[503,686,687],{},"@heximon\u002Fruntime",[583,689,690,691,694,695,698,699,702],{"align":572},"The DI runtime kernel: the ",[503,692,693],{},"Module"," base, the ",[503,696,697],{},"createApp","\u002F",[503,700,701],{},"AppHandle"," runtime, and request\u002Fruntime primitives.",[553,704,219],{"id":705},"architecture",[499,707,708,709,712],{},"CQRS, DDD, events, and every durable-orchestration primitive — messaging, scheduling, sagas, and workflows.\n",[503,710,711],{},"durable"," (Cloudflare Durable Objects) lives in this tier too, alongside the other durability concepts.",[561,714,715,723],{},[564,716,717],{},[567,718,719,721],{},[570,720,573],{"align":572},[570,722,576],{"align":572},[578,724,725,762,786,818,841,853,868,888,904],{},[567,726,727,734],{},[583,728,729],{"align":572},[586,730,731],{"href":234},[503,732,733],{},"@heximon\u002Fcqrs",[583,735,736,737,698,740,743,744,698,747,750,751,698,754,757,758,761],{"align":572},"Compile-time CQRS: ",[503,738,739],{},"Command",[503,741,742],{},"Query"," bases, ",[503,745,746],{},"CommandHandler",[503,748,749],{},"QueryHandler"," discovery, thin ",[503,752,753],{},"CommandBus",[503,755,756],{},"QueryBus"," facades over the shared ",[503,759,760],{},"HandlerRegistry",", and the CQRS compiler plugin.",[567,763,764,770],{},[583,765,766],{"align":572},[586,767,768],{"href":229},[503,769,531],{},[583,771,772,773,698,776,698,779,698,782,785],{"align":572},"Compile-time DDD: ",[503,774,775],{},"DomainObject",[503,777,778],{},"Entity",[503,780,781],{},"ValueObject",[503,783,784],{},"AggregateRoot"," bases, snapshot-diff dirty tracking, repository and mapper contracts, and the domain compiler plugin.",[567,787,788,795],{},[583,789,790],{"align":572},[586,791,792],{"href":290},[503,793,794],{},"@heximon\u002Fdurable",[583,796,797,798,801,802,805,806,809,810,813,814,817],{"align":572},"Cloudflare Durable Objects: the ",[503,799,800],{},"DurableObject"," base and DI-injected ",[503,803,804],{},"DurableFactory"," handle, a generated DI bridge, a Node dev shim, and two turnkey DO-backed tiers — a distributed rate-limit store (",[503,807,808],{},"\u002Fsecurity",") and a strongly-consistent KV ",[503,811,812],{},"Storage"," (",[503,815,816],{},"\u002Fkv",").",[567,819,820,827],{},[583,821,822],{"align":572},[586,823,824],{"href":147},[503,825,826],{},"@heximon\u002Fevents",[583,828,829,830,833,834,698,837,840],{"align":572},"The base event bus: the class-identity ",[503,831,832],{},"EventBus",", the ",[503,835,836],{},"EventHandler",[503,838,839],{},"NotificationHandler"," concepts, and the events compiler plugin.",[567,842,843,850],{},[583,844,845],{"align":572},[586,846,847],{"href":244},[503,848,849],{},"@heximon\u002Fintegration",[583,851,852],{"align":572},"Integration events: typed cross-context event producers and handlers, the transactional outbox, and the cross-service fan-out compiler plugin.",[567,854,855,862],{},[583,856,857],{"align":572},[586,858,859],{"href":152},[503,860,861],{},"@heximon\u002Fqueue",[583,863,864,865,867],{"align":572},"The queue tier: the ",[503,866,151],{}," port with memory, Drizzle, SQS, Upstash, Vercel, Netlify, and Cloudflare backends, plus the cross-service integration-event fan-out legs.",[567,869,870,877],{},[583,871,872],{"align":572},[586,873,874],{"href":249},[503,875,876],{},"@heximon\u002Fsaga",[583,878,879,880,883,884,887],{"align":572},"Durable timeouts: the ",[503,881,882],{},"DurableTimer"," port with transactional arm\u002Fcancel, ",[503,885,886],{},"TimeoutHandler"," compensation, and Node\u002FCloudflare\u002Fqueue-delay drivers.",[567,889,890,897],{},[583,891,892],{"align":572},[586,893,894],{"href":157},[503,895,896],{},"@heximon\u002Fschedule",[583,898,899,900,903],{"align":572},"Scheduled (cron) work: the ",[503,901,902],{},"ScheduledHandler"," concept with Node, Cloudflare, Vercel, Netlify, and Deno drivers.",[567,905,906,913],{},[583,907,908],{"align":572},[586,909,910],{"href":254},[503,911,912],{},"@heximon\u002Fworkflow",[583,914,915,916,547,919,922,923,926],{"align":572},"Durable workflows: the ",[503,917,918],{},"Workflow",[503,920,921],{},"WorkflowFactory"," concepts, a portable ",[503,924,925],{},"WorkflowStep"," port, and Cloudflare + Node replay engines.",[553,928,930],{"id":929},"data","Data",[499,932,933],{},"Persistence contracts and the Drizzle dialect, plus key\u002Fvalue and blob storage.",[561,935,936,944],{},[564,937,938],{},[567,939,940,942],{},[570,941,573],{"align":572},[570,943,576],{"align":572},[578,945,946,969,981,996],{},[567,947,948,955],{},[583,949,950],{"align":572},[586,951,952],{"href":88},[503,953,954],{},"@heximon\u002Fpersistence",[583,956,957,958,960,961,964,965,968],{"align":572},"Dialect-agnostic persistence contracts: the abstract ",[503,959,77],{}," with transactional ",[503,962,963],{},"runInTransaction",", optimistic concurrency, and the ",[503,966,967],{},"Migration"," contracts.",[567,970,971,978],{},[583,972,973],{"align":572},[586,974,975],{"href":83},[503,976,977],{},"@heximon\u002Fdrizzle",[583,979,980],{"align":572},"Drizzle ORM persistence: transactions, entity mapping, and repositories over libsql, better-sqlite3, D1, durable-sqlite, pg, mysql2, and Hyperdrive.",[567,982,983,990],{},[583,984,985],{"align":572},[586,986,987],{"href":166},[503,988,989],{},"@heximon\u002Fkv",[583,991,992,993,995],{"align":572},"Key\u002Fvalue storage: the abstract ",[503,994,812],{}," DI token with memory, Redis, Upstash, Cloudflare KV, and unstorage backends.",[567,997,998,1005],{},[583,999,1000],{"align":572},[586,1001,1002],{"href":171},[503,1003,1004],{},"@heximon\u002Fblob",[583,1006,1007,1008,1011],{"align":572},"Object storage: the ",[503,1009,1010],{},"BlobStore"," port with streaming bodies, byte ranges, and signed URLs, over memory, filesystem, R2, and S3 drivers.",[553,1013,1015],{"id":1014},"api","API",[499,1017,1018,1019,620],{},"The HTTP layer, the frontend-safe client, and the protocol\u002Fdoc generators that read a shared ",[503,1020,635],{},[561,1022,1023,1031],{},[564,1024,1025],{},[567,1026,1027,1029],{},[570,1028,573],{"align":572},[570,1030,576],{"align":572},[578,1032,1033,1052,1067,1079,1094,1106,1130],{},[567,1034,1035,1042],{},[583,1036,1037],{"align":572},[586,1038,1039],{"href":58},[503,1040,1041],{},"@heximon\u002Fhttp",[583,1043,1044,1045,698,1048,1051],{"align":572},"The HTTP layer: the ",[503,1046,1047],{},"Controller",[503,1049,1050],{},"Middleware"," runtime and the HTTP compiler plugin.",[567,1053,1054,1061],{},[583,1055,1056],{"align":572},[586,1057,1058],{"href":73},[503,1059,1060],{},"@heximon\u002Fclient",[583,1062,1063,1064,1066],{"align":572},"The FE-safe client: fetch\u002Finternal\u002Fmock transports for a ",[503,1065,635],{},"'s self-client, typed SSE and WebSocket clients, and TanStack Query bindings.",[567,1068,1069,1076],{},[583,1070,1071],{"align":572},[586,1072,1073],{"href":200},[503,1074,1075],{},"@heximon\u002Fopenapi",[583,1077,1078],{"align":572},"An OpenAPI 3.1 generator: builds the document from contract route tables at runtime, with security helpers and Scalar \u002F Swagger UI renderers.",[567,1080,1081,1088],{},[583,1082,1083],{"align":572},[586,1084,1085],{"href":205},[503,1086,1087],{},"@heximon\u002Fmcp",[583,1089,1090,1091,1093],{"align":572},"A Model Context Protocol server: MCP tools derived from a ",[503,1092,635],{},"'s route table, executed in-process, stateless Streamable HTTP.",[567,1095,1096,1103],{},[583,1097,1098],{"align":572},[586,1099,1100],{"href":286},[503,1101,1102],{},"@heximon\u002Fasyncapi",[583,1104,1105],{"align":572},"An AsyncAPI 3.1 generator: builds the document from WebSocket contracts and SSE event maps at runtime, validator-agnostic.",[567,1107,1108,1115],{},[583,1109,1110],{"align":572},[586,1111,1112],{"href":276},[503,1113,1114],{},"@heximon\u002Fsse",[583,1116,1117,1118,1121,1122,1125,1126,1129],{"align":572},"Server-Sent Events: the ",[503,1119,1120],{},"EventStream"," response builder and the ",[503,1123,1124],{},"ServerSentEventsHandler"," concept, with typed events, ",[503,1127,1128],{},"Last-Event-ID"," resume, and durable fan-out.",[567,1131,1132,1139],{},[583,1133,1134],{"align":572},[586,1135,1136],{"href":268},[503,1137,1138],{},"@heximon\u002Fwebsocket",[583,1140,1141,1142,1145],{"align":572},"The WebSocket transport: the ",[503,1143,1144],{},"WebSocketHandler"," concept, typed bidirectional contracts, and a cross-platform connection port (Node + Cloudflare hibernation).",[553,1147,136],{"id":1148},"capabilities",[499,1150,1151],{},"Cross-cutting features you layer onto an app as needed — auth, caching, health checks, logging, tracing, and\nnotifications.",[561,1153,1154,1162],{},[564,1155,1156],{},[567,1157,1158,1160],{},[570,1159,573],{"align":572},[570,1161,576],{"align":572},[578,1163,1164,1180,1200,1220,1235,1254],{},[567,1165,1166,1173],{},[583,1167,1168],{"align":572},[586,1169,1170],{"href":98},[503,1171,1172],{},"@heximon\u002Fauth",[583,1174,1175,1176,1179],{"align":572},"Authentication: JWT sign\u002Fverify (jose\u002FWebCrypto), password hashing (scrypt + PBKDF2), ",[503,1177,1178],{},"AuthContext",", and the scopes-driven guard middleware.",[567,1181,1182,1189],{},[583,1183,1184],{"align":572},[586,1185,1186],{"href":162},[503,1187,1188],{},"@heximon\u002Fcache",[583,1190,1191,1192,1195,1196,1199],{"align":572},"Multi-tier caching: a ",[503,1193,1194],{},"TieredCache"," storage chain, a ",[503,1197,1198],{},"Cache"," facade with single-flight and tag invalidation, plus CQRS query and HTTP response caching.",[567,1201,1202,1209],{},[583,1203,1204],{"align":572},[586,1205,1206],{"href":176},[503,1207,1208],{},"@heximon\u002Fhealth",[583,1210,1211,1212,1215,1216,1219],{"align":572},"Health and readiness checks: ",[503,1213,1214],{},"HealthIndicator"," discovery, ",[503,1217,1218],{},"HealthRegistry"," aggregation, and the health compiler plugin.",[567,1221,1222,1229],{},[583,1223,1224],{"align":572},[586,1225,1226],{"href":122},[503,1227,1228],{},"@heximon\u002Flogging",[583,1230,1231,1232,620],{"align":572},"Structured logging drains + opt-in wide events: bridges evlog's drain catalog (OTLP\u002FAxiom\u002FSentry\u002FDatadog\u002F…) onto the core ",[503,1233,1234],{},"Logger",[567,1236,1237,1244],{},[583,1238,1239],{"align":572},[586,1240,1241],{"href":181},[503,1242,1243],{},"@heximon\u002Fnotifications",[583,1245,1246,1247,698,1250,1253],{"align":572},"Multi-channel notifications: ",[503,1248,1249],{},"Message",[503,1251,1252],{},"MessageTransport"," ports with email, SMS, and push adapters, templating, suppression, and a dispatcher.",[567,1255,1256,1263],{},[583,1257,1258],{"align":572},[586,1259,1260],{"href":195},[503,1261,1262],{},"@heximon\u002Fotel",[583,1264,1265],{"align":572},"Compile-time OpenTelemetry tracing: baked span names with module attribution, plus Node, Workers, and Lambda exporter legs.",[553,1267,1269],{"id":1268},"platforms","Platforms",[499,1271,1272],{},"One package per deploy target: a compile-time strategy + entry emitter, and where relevant a native scheduler\nor queue driver.",[561,1274,1275,1283],{},[564,1276,1277],{},[567,1278,1279,1281],{},[570,1280,573],{"align":572},[570,1282,576],{"align":572},[578,1284,1285,1297,1316,1328,1340,1356,1376,1395],{},[567,1286,1287,1294],{},[583,1288,1289],{"align":572},[586,1290,1291],{"href":303},[503,1292,1293],{},"@heximon\u002Fnode",[583,1295,1296],{"align":572},"The Node platform: the zero-config default deploy strategy, its driver bindings, and the standalone server host.",[567,1298,1299,1305],{},[583,1300,1301],{"align":572},[586,1302,1303],{"href":308},[503,1304,539],{},[583,1306,1307,1308,1311,1312,1315],{"align":572},"The Cloudflare toolkit: the Workers deploy strategy, ",[503,1309,1310],{},"wrangler.json"," emit, the workerd ",[503,1313,1314],{},"vp dev"," host, and Durable Object + Queues integrations.",[567,1317,1318,1325],{},[583,1319,1320],{"align":572},[586,1321,1322],{"href":313},[503,1323,1324],{},"@heximon\u002Fvercel",[583,1326,1327],{"align":572},"The Vercel toolkit: Functions and Edge deploy strategies, Build Output API emit, cron, queues, and durable workflows on the Node tier.",[567,1329,1330,1337],{},[583,1331,1332],{"align":572},[586,1333,1334],{"href":318},[503,1335,1336],{},"@heximon\u002Fnetlify",[583,1338,1339],{"align":572},"The Netlify toolkit: Functions and Edge deploy strategies, scheduled functions, and the Async Workloads queue consumer.",[567,1341,1342,1349],{},[583,1343,1344],{"align":572},[586,1345,1346],{"href":323},[503,1347,1348],{},"@heximon\u002Faws",[583,1350,1351,1352,1355],{"align":572},"The AWS toolkit: the ",[503,1353,1354],{},"LambdaStrategy"," deploy strategy, the Lambda handler entry emitter, and the SQS push-consumer wiring.",[567,1357,1358,1365],{},[583,1359,1360],{"align":572},[586,1361,1362],{"href":328},[503,1363,1364],{},"@heximon\u002Fdeno",[583,1366,1367,1368,1371,1372,1375],{"align":572},"The Deno Deploy toolkit: the ",[503,1369,1370],{},"DenoDeployStrategy",", the Deno entry emitter with ",[503,1373,1374],{},"Deno.cron",", and the schedule driver.",[567,1377,1378,1385],{},[583,1379,1380],{"align":572},[586,1381,1382],{"href":333},[503,1383,1384],{},"@heximon\u002Fnitro",[583,1386,1387,1388,1391,1392,620],{"align":572},"Nitro v3 host integration: a ",[503,1389,1390],{},"NitroModule"," that mounts Heximon's routes onto Nitro's h3 and supplies the in-process ",[503,1393,1394],{},"InternalClient",[567,1396,1397,1404],{},[583,1398,1399],{"align":572},[586,1400,1401],{"href":338},[503,1402,1403],{},"@heximon\u002Fnuxt",[583,1405,1406,1407,1409],{"align":572},"A Nuxt 5 module: auto-initializes ",[503,1408,1384],{}," inside Nuxt's Nitro v3, serving Heximon's routes alongside Nuxt pages.",[553,1411,1413],{"id":1412},"tooling","Tooling",[499,1415,1416],{},"The build integration, the CLI, and everything that only runs at build\u002Fdev time — never bundled into\nproduction.",[561,1418,1419,1427],{},[564,1420,1421],{},[567,1422,1423,1425],{},[570,1424,573],{"align":572},[570,1426,576],{"align":572},[578,1428,1429,1441,1470,1491,1507,1517,1535],{},[567,1430,1431,1438],{},[583,1432,1433],{"align":572},[586,1434,1435],{"href":404},[503,1436,1437],{},"@heximon\u002Fbuild",[583,1439,1440],{"align":572},"The build integration: the complete Vite plugin (dev server + app build, WebSocket-in-dev) plus the cross-bundler app build for Rollup, Rolldown, esbuild, webpack, and rspack.",[567,1442,1443,1451],{},[583,1444,1445,813,1447,1450],{"align":572},[503,1446,509],{},[503,1448,1449],{},"packages\u002Ftooling\u002Fcli",")",[583,1452,1453,1454,532,1457,532,1460,639,1463,1466,1467,620],{"align":572},"The Heximon CLI: ",[503,1455,1456],{},"create",[503,1458,1459],{},"deploy",[503,1461,1462],{},"provision",[503,1464,1465],{},"migrations",". See the ",[586,1468,1469],{"href":363},"CLI section",[567,1471,1472,1479],{},[583,1473,1474,813,1476,1450],{"align":572},[503,1475,513],{},[503,1477,1478],{},"packages\u002Ftooling\u002Fcreate-heximon",[583,1480,1481,1482,1485,1486,620],{"align":572},"The ",[503,1483,1484],{},"pnpm create heximon"," front door — a thin forwarder onto ",[586,1487,1488],{"href":367},[503,1489,1490],{},"heximon create",[567,1492,1493,1500],{},[583,1494,1495],{"align":572},[586,1496,1497],{"href":375},[503,1498,1499],{},"@heximon\u002Fdeploy",[583,1501,1502,1503,1506],{"align":572},"Build-time deploy library: ships the ",[503,1504,1505],{},"vp build"," artifact to the app's configured platform behind a per-platform strategy seam.",[567,1508,1509,1514],{},[583,1510,1511],{"align":572},[503,1512,1513],{},"@heximon\u002Fdev",[583,1515,1516],{"align":572},"Host-agnostic dev-experience core: the dev pages (build-error + JSON preview), the diagnostic printer (terminal\u002Foverlay\u002FHTML codeframes), and the in-memory generated-module store. Build-time only; consumed by the Vite \u002F unplugin \u002F Nitro hosts.",[567,1518,1519,1524],{},[583,1520,1521],{"align":572},[503,1522,1523],{},"@heximon\u002Flibrary",[583,1525,1526,1527,1530,1531,1534],{"align":572},"Cross-bundler library emit: package a published module (the typed ",[503,1528,1529],{},"create\u003CModule>"," factory + ",[503,1532,1533],{},"heximon.manifest.json",") for cross-package consumption, on Vite, Rollup, Rolldown, or esbuild.",[567,1536,1537,1544],{},[583,1538,1539],{"align":572},[586,1540,1541],{"href":117},[503,1542,1543],{},"@heximon\u002Ftesting",[583,1545,1546,1547,1550],{"align":572},"The in-process test harness: ",[503,1548,1549],{},"createTestApp"," compiles and boots an isolated app per call.",[553,1552,1554],{"id":1553},"read-the-reference-for-a-package","Read the reference for a package",[499,1556,1557,1558,547,1560,1562,1563,1565],{},"This page is the map. For a package's actual API, read its ",[503,1559,546],{},[503,1561,550],{}," — every package ships one,\nand it's kept current with the source, not with this site. When a doc page here shows you the concepts, the\npackage ",[503,1564,550],{}," is where you'll find the full method list, config shape, and subpath exports.",[553,1567,1569],{"id":1568},"see-also","See also",[1571,1572,1573,1580,1585,1591],"ul",{},[1574,1575,1576,1579],"li",{},[586,1577,1578],{"href":12},"Introduction"," — what Heximon is and why it compiles dependency injection ahead of time.",[1574,1581,1582,1584],{},[586,1583,21],{"href":22}," — a three-file HTTP app, wired by the compiler and served by Vite.",[1574,1586,1587,1590],{},[586,1588,1589],{"href":54},"Modules"," — how a module's config drives the whole DI graph, and where each tier's namespace key plugs in.",[1574,1592,1593,1595],{},[586,1594,31],{"href":32}," — the ladder, flagship, and gap example tiers, one concept (or full app) at a time.",{"title":1597,"searchDepth":1598,"depth":1598,"links":1599},"",2,[1600,1601,1602,1603,1604,1605,1606,1607,1608,1609],{"id":555,"depth":1598,"text":556},{"id":650,"depth":1598,"text":651},{"id":705,"depth":1598,"text":219},{"id":929,"depth":1598,"text":930},{"id":1014,"depth":1598,"text":1015},{"id":1148,"depth":1598,"text":136},{"id":1268,"depth":1598,"text":1269},{"id":1412,"depth":1598,"text":1413},{"id":1553,"depth":1598,"text":1554},{"id":1568,"depth":1598,"text":1569},"All 44 @heximon\u002F* packages by tier — foundation, kernel, architecture, data, api, capabilities, platforms, tooling — with the npm-name-to-directory mapping.","md",null,{},{"icon":401},{"title":408,"description":1610},"S_1CiwN3Ahqpps5ICTQSRyeAaHY26SnN_CbrWdGErMg",[1618,1620],{"title":403,"path":404,"stem":405,"description":1619,"icon":406,"children":-1},"Compile a Heximon app and serve its generated wiring across bundlers with @heximon\u002Fbuild — the full dev experience on Vite (including WebSocket-in-dev), and Rollup \u002F Rolldown \u002F esbuild \u002F webpack \u002F rspack build tiers that emit a runnable server bundle from one unchanged src\u002F.",{"title":412,"path":413,"stem":414,"description":1621,"icon":207,"children":-1},"The Heximon Agent Skill at docs\u002Fskills\u002Fheximon, its SKILL.md and references, and the llms.txt and MCP endpoints Docus serves for this site.",1783300761903]