[{"data":1,"prerenderedAt":177},["ShallowReactive",2],{"docs:\u002Fdocs\u002Flimits":3,"i-lucide:moon":168,"i-lucide:github":173,"i-lucide:menu":175},{"id":4,"title":5,"body":6,"description":160,"extension":161,"meta":162,"navigation":163,"path":164,"seo":165,"stem":166,"__hash__":167},"docs\u002Fdocs\u002Flimits.md","Limits",{"type":7,"value":8,"toc":146},"minimark",[9,13,18,27,31,36,44,48,56,60,71,75,91,112,119,123,126,130],[10,11,12],"p",{},"The core endpoint flow is usable, but OpenAPI metadata, discovery, and release polish are intentionally conservative.",[14,15,17],"h2",{"id":16},"supported-platform-line","Supported platform line",[10,19,20,21,26],{},"See ",[22,23,25],"a",{"href":24},"\u002Fdocs\u002Fgetting-started#compatibility","Compatibility"," for the currently supported Nuxt, Nitro, and H3 versions and what that support statement does and does not claim.",[14,28,30],{"id":29},"known-constraints","Known constraints",[32,33,35],"h3",{"id":34},"endpoint-discovery-evaluates-contract-defining-modules","Endpoint discovery evaluates contract-defining modules",[10,37,38,39,43],{},"During Nuxt and Nitro type generation, the module that defines each endpoint contract is imported and its metadata is read. For a co-located contract that is the route file itself, so keep route top-level code lightweight. Routes that import their contract from a ",[22,40,42],{"href":41},"\u002Fdocs\u002Fendpoints#separate-contract-files","separate contract file"," are not evaluated — only the contract module is. Routes that define no endpoint are never evaluated.",[32,45,47],{"id":46},"endpoint-discovery-fails-closed","Endpoint discovery fails closed",[10,49,50,51,55],{},"If route module evaluation fails, or a route calls ",[52,53,54],"code",{},"defineEndpoint"," without exposing endpoint metadata through its evaluated exports, generation stops with an actionable error. Partial contracts are not reconstructed from source parsing because that could make client types, runtime metadata, and OpenAPI disagree. Ordinary Nitro routes remain unaffected.",[32,57,59],{"id":58},"catch-all-and-optional-parameter-routes-cannot-declare-endpoints","Catch-all and optional-parameter routes cannot declare endpoints",[10,61,62,63,66,67,70],{},"A route whose template contains a catch-all (",[52,64,65],{},"[...slug]",") or optional parameter cannot export an endpoint definition: the generated client cannot build those URLs correctly and OpenAPI has no honest representation for them, so the build fails with an explanation instead of producing silently broken output. Keep such routes as plain ",[52,68,69],{},"defineEventHandler"," handlers. Catch-all support is a designed-but-deferred candidate in the roadmap; optional path parameters are rejected permanently because OpenAPI cannot express them.",[32,72,74],{"id":73},"response-bodies-are-json-first","Response bodies are JSON-first",[10,76,77,78,82,83,86,87,90],{},"Request bodies accept ",[22,79,81],{"href":80},"\u002Fdocs\u002Fendpoints#media-type-request-bodies","media-type maps"," — JSON, URL-encoded forms, multipart uploads, and raw text. Validated response bodies are JSON: a validated status may be labelled with a ",[52,84,85],{},"+json"," profile such as ",[52,88,89],{},"application\u002Fproblem+json",", and nothing else.",[10,92,93,94,98,99,106,107,111],{},"Everything non-JSON goes through the single ",[22,95,97],{"href":96},"\u002Fdocs\u002Fendpoints#non-json-responses","media response"," door. It carries its own media type, reaches OpenAPI, and can offer ",[22,100,102,103],{"href":101},"\u002Fdocs\u002Fendpoints#several-representations-of-one-status","several representations negotiated from ",[52,104,105],{},"Accept"," — but nothing about its payload is validated, and its chunks are not typed. Use ",[22,108,110],{"href":109},"\u002Fdocs\u002Flow-level-http","Low-level HTTP"," for redirects, proxies, and native Web Responses that should not be modelled as a status at all.",[10,113,114,115,118],{},"Contracted JSON responses use the supported Nitro line's wire-type mapping. Native ",[52,116,117],{},"Response",", files, and custom response parsers are outside the generated JSON body type.",[32,120,122],{"id":121},"schema-conversion-depends-on-converter-support","Schema conversion depends on converter support",[10,124,125],{},"Unsupported Zod or Valibot constructs fail according to their converter libraries.",[14,127,129],{"id":128},"planned-work","Planned work",[131,132,133,137,140,143],"ul",{},[134,135,136],"li",{},"Work with Nuxt and Nitro on stable build-time route metadata.",[134,138,139],{},"Add first-class endpoint metadata for OpenAPI-specific fields.",[134,141,142],{},"Add better component and reference controls for shared schemas.",[134,144,145],{},"Add Nuxt 5, Nitro 3, and H3 2 coverage after their integration APIs stabilize.",{"title":147,"searchDepth":148,"depth":148,"links":149},"",2,[150,151,159],{"id":16,"depth":148,"text":17},{"id":29,"depth":148,"text":30,"children":152},[153,155,156,157,158],{"id":34,"depth":154,"text":35},3,{"id":46,"depth":154,"text":47},{"id":58,"depth":154,"text":59},{"id":73,"depth":154,"text":74},{"id":121,"depth":154,"text":122},{"id":128,"depth":148,"text":129},"Early alpha, with the important constraints documented.","md",{},true,"\u002Fdocs\u002Flimits",{"title":5,"description":160},"docs\u002Flimits","5Q5wpbcgpLbOoHov68YQpuB8otICjZ-Tb4Dk5zz8ZbM",{"left":169,"top":169,"width":170,"height":170,"rotate":169,"vFlip":171,"hFlip":171,"body":172},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",{"left":169,"top":169,"width":170,"height":170,"rotate":169,"vFlip":171,"hFlip":171,"body":174,"hidden":163},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5c.08-1.25-.27-2.48-1-3.5c.28-1.15.28-2.35 0-3.5c0 0-1 0-3 1.5c-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.4 5.4 0 0 0 4 9c0 3.5 3 5.5 6 5.5c-.39.49-.68 1.05-.85 1.65S8.93 17.38 9 18v4\"\u002F>\u003Cpath d=\"M9 18c-4.51 2-5-2-7-2\"\u002F>\u003C\u002Fg>",{"left":169,"top":169,"width":170,"height":170,"rotate":169,"vFlip":171,"hFlip":171,"body":176},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",1787723882430]