[{"data":1,"prerenderedAt":1266},["ShallowReactive",2],{"navigation":3,"docs-path-index":340,"-docs-modules-client-api":446,"-docs-modules-client-api-surround":1261},[4],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":64},"Docs","i-lucide-book-marked","\u002Fdocs","docs",[10,30,65,293,318],{"title":11,"path":12,"stem":13,"children":14,"icon":29},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started\u002F1.index",[15,17,21,25],{"title":16,"path":12,"stem":13},"Introduction",{"title":18,"path":19,"stem":20},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F1.getting-started\u002F2.installation",{"title":22,"path":23,"stem":24},"Examples","\u002Fdocs\u002Fgetting-started\u002Fexamples","docs\u002F1.getting-started\u002F3.examples",{"title":26,"path":27,"stem":28},"Project Generator","\u002Fdocs\u002Fgetting-started\u002Fproject-generator","docs\u002F1.getting-started\u002F4.project-generator","i-lucide-rocket",{"title":31,"icon":32,"path":33,"stem":34,"children":35,"page":64},"Core features","i-lucide-square-function","\u002Fdocs\u002Fcore-features","docs\u002F2.core-features",[36,40,44,48,52,56,60],{"title":37,"path":38,"stem":39},"Configuration","\u002Fdocs\u002Fcore-features\u002Fconfiguration","docs\u002F2.core-features\u002F0.configuration",{"title":41,"path":42,"stem":43},"Dependency Injection","\u002Fdocs\u002Fcore-features\u002Fcontainer","docs\u002F2.core-features\u002F1.container",{"title":45,"path":46,"stem":47},"Controllers","\u002Fdocs\u002Fcore-features\u002Fcontrollers","docs\u002F2.core-features\u002F2.controllers",{"title":49,"path":50,"stem":51},"Middlewares","\u002Fdocs\u002Fcore-features\u002Fmiddlewares","docs\u002F2.core-features\u002F3.middlewares",{"title":53,"path":54,"stem":55},"Validation","\u002Fdocs\u002Fcore-features\u002Fvalidation","docs\u002F2.core-features\u002F4.validation",{"title":57,"path":58,"stem":59},"Introspection","\u002Fdocs\u002Fcore-features\u002Fintrospection","docs\u002F2.core-features\u002F5.introspection",{"title":61,"path":62,"stem":63},"Health Checks","\u002Fdocs\u002Fcore-features\u002Fhealth","docs\u002F2.core-features\u002F6.health",false,{"title":66,"icon":67,"defaultOpen":68,"path":69,"stem":70,"children":71,"page":64},"Modules","i-lucide-boxes",true,"\u002Fdocs\u002Fmodules","docs\u002F3.modules",[72,89,100,116,135,154,177,191,206,214,229,240,255,274,282],{"title":73,"icon":64,"defaultOpen":64,"path":74,"stem":75,"children":76,"page":64},"Auth","\u002Fdocs\u002Fmodules\u002Fauth","docs\u002F3.modules\u002F1.auth",[77,81,85],{"title":78,"path":79,"stem":80},"Overview","\u002Fdocs\u002Fmodules\u002Fauth\u002Foverview","docs\u002F3.modules\u002F1.auth\u002F0.overview",{"title":82,"path":83,"stem":84},"Decorators","\u002Fdocs\u002Fmodules\u002Fauth\u002Fdecorators","docs\u002F3.modules\u002F1.auth\u002F1.decorators",{"title":86,"path":87,"stem":88},"API Reference","\u002Fdocs\u002Fmodules\u002Fauth\u002Fapi","docs\u002F3.modules\u002F1.auth\u002F2.api",{"title":90,"icon":64,"defaultOpen":64,"path":91,"stem":92,"children":93,"page":64},"Devtools","\u002Fdocs\u002Fmodules\u002Fdevtools","docs\u002F3.modules\u002F10.devtools",[94,97],{"title":78,"path":95,"stem":96},"\u002Fdocs\u002Fmodules\u002Fdevtools\u002Foverview","docs\u002F3.modules\u002F10.devtools\u002F0.overview",{"title":37,"path":98,"stem":99},"\u002Fdocs\u002Fmodules\u002Fdevtools\u002Fconfiguration","docs\u002F3.modules\u002F10.devtools\u002F1.configuration",{"title":101,"icon":64,"defaultOpen":64,"path":102,"stem":103,"children":104,"page":64},"Telemetry","\u002Fdocs\u002Fmodules\u002Ftelemetry","docs\u002F3.modules\u002F11.telemetry",[105,108,112],{"title":78,"path":106,"stem":107},"\u002Fdocs\u002Fmodules\u002Ftelemetry\u002Foverview","docs\u002F3.modules\u002F11.telemetry\u002F0.overview",{"title":109,"path":110,"stem":111},"API","\u002Fdocs\u002Fmodules\u002Ftelemetry\u002Fapi","docs\u002F3.modules\u002F11.telemetry\u002F1.api",{"title":113,"path":114,"stem":115},"Instrumentation","\u002Fdocs\u002Fmodules\u002Ftelemetry\u002Finstrumentation","docs\u002F3.modules\u002F11.telemetry\u002F2.instrumentation",{"title":117,"icon":64,"defaultOpen":64,"path":118,"stem":119,"children":120,"page":64},"Queue","\u002Fdocs\u002Fmodules\u002Fqueue","docs\u002F3.modules\u002F12.queue",[121,124,128,132],{"title":78,"path":122,"stem":123},"\u002Fdocs\u002Fmodules\u002Fqueue\u002Foverview","docs\u002F3.modules\u002F12.queue\u002F0.overview",{"title":125,"path":126,"stem":127},"Consumers","\u002Fdocs\u002Fmodules\u002Fqueue\u002Fconsumers","docs\u002F3.modules\u002F12.queue\u002F1.consumers",{"title":129,"path":130,"stem":131},"Strategies","\u002Fdocs\u002Fmodules\u002Fqueue\u002Fstrategies","docs\u002F3.modules\u002F12.queue\u002F2.strategies",{"title":109,"path":133,"stem":134},"\u002Fdocs\u002Fmodules\u002Fqueue\u002Fapi","docs\u002F3.modules\u002F12.queue\u002F3.api",{"title":136,"icon":64,"defaultOpen":64,"path":137,"stem":138,"children":139,"page":64},"Scheduler","\u002Fdocs\u002Fmodules\u002Fscheduler","docs\u002F3.modules\u002F13.scheduler",[140,143,147,151],{"title":78,"path":141,"stem":142},"\u002Fdocs\u002Fmodules\u002Fscheduler\u002Foverview","docs\u002F3.modules\u002F13.scheduler\u002F0.overview",{"title":144,"path":145,"stem":146},"Jobs","\u002Fdocs\u002Fmodules\u002Fscheduler\u002Fjobs","docs\u002F3.modules\u002F13.scheduler\u002F1.jobs",{"title":148,"path":149,"stem":150},"Clustering","\u002Fdocs\u002Fmodules\u002Fscheduler\u002Fclustering","docs\u002F3.modules\u002F13.scheduler\u002F2.clustering",{"title":109,"path":152,"stem":153},"\u002Fdocs\u002Fmodules\u002Fscheduler\u002Fapi","docs\u002F3.modules\u002F13.scheduler\u002F3.api",{"title":155,"icon":64,"defaultOpen":64,"path":156,"stem":157,"children":158,"page":64},"Testing","\u002Fdocs\u002Fmodules\u002Ftesting","docs\u002F3.modules\u002F14.testing",[159,162,166,170,174],{"title":78,"path":160,"stem":161},"\u002Fdocs\u002Fmodules\u002Ftesting\u002Foverview","docs\u002F3.modules\u002F14.testing\u002F0.overview",{"title":163,"path":164,"stem":165},"Requests","\u002Fdocs\u002Fmodules\u002Ftesting\u002Frequests","docs\u002F3.modules\u002F14.testing\u002F1.requests",{"title":167,"path":168,"stem":169},"Dependencies","\u002Fdocs\u002Fmodules\u002Ftesting\u002Fdependencies","docs\u002F3.modules\u002F14.testing\u002F2.dependencies",{"title":171,"path":172,"stem":173},"Extensions","\u002Fdocs\u002Fmodules\u002Ftesting\u002Fextensions","docs\u002F3.modules\u002F14.testing\u002F3.extensions",{"title":109,"path":175,"stem":176},"\u002Fdocs\u002Fmodules\u002Ftesting\u002Fapi","docs\u002F3.modules\u002F14.testing\u002F4.api",{"title":178,"icon":64,"defaultOpen":64,"path":179,"stem":180,"children":181,"page":64},"Client","\u002Fdocs\u002Fmodules\u002Fclient","docs\u002F3.modules\u002F15.client",[182,185,188],{"title":78,"path":183,"stem":184},"\u002Fdocs\u002Fmodules\u002Fclient\u002Foverview","docs\u002F3.modules\u002F15.client\u002F0.overview",{"title":163,"path":186,"stem":187},"\u002Fdocs\u002Fmodules\u002Fclient\u002Frequests","docs\u002F3.modules\u002F15.client\u002F1.requests",{"title":109,"path":189,"stem":190},"\u002Fdocs\u002Fmodules\u002Fclient\u002Fapi","docs\u002F3.modules\u002F15.client\u002F2.api",{"title":192,"icon":64,"defaultOpen":64,"path":193,"stem":194,"children":195,"page":64},"Logger","\u002Fdocs\u002Fmodules\u002Flogger","docs\u002F3.modules\u002F2.logger",[196,199,203],{"title":78,"path":197,"stem":198},"\u002Fdocs\u002Fmodules\u002Flogger\u002Foverview","docs\u002F3.modules\u002F2.logger\u002F0.overview",{"title":200,"path":201,"stem":202},"Drains & Adapters","\u002Fdocs\u002Fmodules\u002Flogger\u002Fdrivers","docs\u002F3.modules\u002F2.logger\u002F1.drivers",{"title":109,"path":204,"stem":205},"\u002Fdocs\u002Fmodules\u002Flogger\u002Fapi","docs\u002F3.modules\u002F2.logger\u002F2.api",{"title":207,"icon":64,"defaultOpen":64,"path":208,"stem":209,"children":210,"page":64},"Serverless","\u002Fdocs\u002Fmodules\u002Fserverless","docs\u002F3.modules\u002F3.serverless",[211],{"title":78,"path":212,"stem":213},"\u002Fdocs\u002Fmodules\u002Fserverless\u002Foverview","docs\u002F3.modules\u002F3.serverless\u002F0.overview",{"title":215,"icon":64,"defaultOpen":64,"path":216,"stem":217,"children":218,"page":64},"Storage","\u002Fdocs\u002Fmodules\u002Fstorage","docs\u002F3.modules\u002F4.storage",[219,222,226],{"title":78,"path":220,"stem":221},"\u002Fdocs\u002Fmodules\u002Fstorage\u002Foverview","docs\u002F3.modules\u002F4.storage\u002F0.overview",{"title":223,"path":224,"stem":225},"Drivers","\u002Fdocs\u002Fmodules\u002Fstorage\u002Fdrivers","docs\u002F3.modules\u002F4.storage\u002F1.drivers",{"title":109,"path":227,"stem":228},"\u002Fdocs\u002Fmodules\u002Fstorage\u002Fapi","docs\u002F3.modules\u002F4.storage\u002F2.api",{"title":230,"icon":64,"defaultOpen":64,"path":231,"stem":232,"children":233,"page":64},"Web Sockets","\u002Fdocs\u002Fmodules\u002Fweb-sockets","docs\u002F3.modules\u002F5.web-sockets",[234,237],{"title":78,"path":235,"stem":236},"\u002Fdocs\u002Fmodules\u002Fweb-sockets\u002Foverview","docs\u002F3.modules\u002F5.web-sockets\u002F0.overview",{"title":109,"path":238,"stem":239},"\u002Fdocs\u002Fmodules\u002Fweb-sockets\u002Fapi","docs\u002F3.modules\u002F5.web-sockets\u002F1.api",{"title":241,"icon":64,"defaultOpen":64,"path":242,"stem":243,"children":244,"page":64},"Schema","\u002Fdocs\u002Fmodules\u002Fschema","docs\u002F3.modules\u002F6.schema",[245,248,251],{"title":78,"path":246,"stem":247},"\u002Fdocs\u002Fmodules\u002Fschema\u002Foverview","docs\u002F3.modules\u002F6.schema\u002F0.overview",{"title":82,"path":249,"stem":250},"\u002Fdocs\u002Fmodules\u002Fschema\u002Fdecorators","docs\u002F3.modules\u002F6.schema\u002F1.decorators",{"title":252,"path":253,"stem":254},"Scalar","\u002Fdocs\u002Fmodules\u002Fschema\u002Fscalar","docs\u002F3.modules\u002F6.schema\u002F2.scalar",{"title":256,"icon":64,"defaultOpen":64,"path":257,"stem":258,"children":259,"page":64},"Nitro","\u002Fdocs\u002Fmodules\u002Fnitro","docs\u002F3.modules\u002F7.nitro",[260,263,266,270],{"title":78,"path":261,"stem":262},"\u002Fdocs\u002Fmodules\u002Fnitro\u002Foverview","docs\u002F3.modules\u002F7.nitro\u002F0.overview",{"title":215,"path":264,"stem":265},"\u002Fdocs\u002Fmodules\u002Fnitro\u002Fstorage","docs\u002F3.modules\u002F7.nitro\u002F1.storage",{"title":267,"path":268,"stem":269},"File-Based Routes","\u002Fdocs\u002Fmodules\u002Fnitro\u002Ffile-based-routes","docs\u002F3.modules\u002F7.nitro\u002F2.file-based-routes",{"title":271,"path":272,"stem":273},"Middleware","\u002Fdocs\u002Fmodules\u002Fnitro\u002Fmiddleware","docs\u002F3.modules\u002F7.nitro\u002F3.middleware",{"title":275,"icon":64,"defaultOpen":64,"path":276,"stem":277,"children":278,"page":64},"Vite","\u002Fdocs\u002Fmodules\u002Fvite","docs\u002F3.modules\u002F8.vite",[279],{"title":78,"path":280,"stem":281},"\u002Fdocs\u002Fmodules\u002Fvite\u002Foverview","docs\u002F3.modules\u002F8.vite\u002F0.overview",{"title":283,"icon":64,"defaultOpen":64,"path":284,"stem":285,"children":286,"page":64},"Cache","\u002Fdocs\u002Fmodules\u002Fcache","docs\u002F3.modules\u002F9.cache",[287,290],{"title":78,"path":288,"stem":289},"\u002Fdocs\u002Fmodules\u002Fcache\u002Foverview","docs\u002F3.modules\u002F9.cache\u002F0.overview",{"title":109,"path":291,"stem":292},"\u002Fdocs\u002Fmodules\u002Fcache\u002Fapi","docs\u002F3.modules\u002F9.cache\u002F1.api",{"title":294,"icon":295,"path":296,"stem":297,"children":298,"page":64},"Deployment","i-lucide-cloud-upload","\u002Fdocs\u002Fdeployment","docs\u002F4.deployment",[299,302,306,310,314],{"title":78,"path":300,"stem":301},"\u002Fdocs\u002Fdeployment\u002Foverview","docs\u002F4.deployment\u002F0.overview",{"title":303,"path":304,"stem":305},"Vercel","\u002Fdocs\u002Fdeployment\u002Fvercel","docs\u002F4.deployment\u002F1.vercel",{"title":307,"path":308,"stem":309},"AWS Lambda","\u002Fdocs\u002Fdeployment\u002Faws-lambda","docs\u002F4.deployment\u002F2.aws-lambda",{"title":311,"path":312,"stem":313},"Azure Functions","\u002Fdocs\u002Fdeployment\u002Fazure-functions","docs\u002F4.deployment\u002F3.azure-functions",{"title":315,"path":316,"stem":317},"Node.js Server","\u002Fdocs\u002Fdeployment\u002Fnode-server","docs\u002F4.deployment\u002F4.node-server",{"title":319,"icon":320,"path":321,"stem":322,"children":323,"page":64},"Advanced","i-lucide-brain","\u002Fdocs\u002Fadvanced","docs\u002F99.advanced",[324,328,332,336],{"title":325,"path":326,"stem":327},"Custom Decorator","\u002Fdocs\u002Fadvanced\u002Fcustom-decorator","docs\u002F99.advanced\u002F1.custom-decorator",{"title":329,"path":330,"stem":331},"Plugins","\u002Fdocs\u002Fadvanced\u002Fcustom-plugin","docs\u002F99.advanced\u002F2.custom-plugin",{"title":333,"path":334,"stem":335},"Custom CLI Command","\u002Fdocs\u002Fadvanced\u002Fcustom-cli-command","docs\u002F99.advanced\u002F3.custom-cli-command",{"title":337,"path":338,"stem":339},"Writing a Recipe","\u002Fdocs\u002Fadvanced\u002Fwriting-a-recipe","docs\u002F99.advanced\u002F4.writing-a-recipe",[341,343,345,346,347,348,349,351,352,353,354,355,356,357,358,360,362,363,364,365,367,368,369,371,372,373,374,376,377,378,379,380,382,383,384,385,386,388,389,390,391,392,393,395,396,397,398,400,401,402,403,405,406,408,409,410,411,413,414,415,417,418,419,420,422,423,424,425,426,428,429,431,432,433,435,436,437,438,439,440,442,443,444,445],{"path":342},"\u002Fdocs\u002F.navigation",{"path":344},"\u002Fdocs\u002Fgetting-started\u002F.navigation",{"path":12},{"path":19},{"path":23},{"path":27},{"path":350},"\u002Fdocs\u002Fcore-features\u002F.navigation",{"path":38},{"path":42},{"path":46},{"path":50},{"path":54},{"path":58},{"path":62},{"path":359},"\u002Fdocs\u002Fmodules\u002F.navigation",{"path":361},"\u002Fdocs\u002Fmodules\u002Fauth\u002F.navigation",{"path":79},{"path":83},{"path":87},{"path":366},"\u002Fdocs\u002Fmodules\u002Fdevtools\u002F.navigation",{"path":95},{"path":98},{"path":370},"\u002Fdocs\u002Fmodules\u002Ftelemetry\u002F.navigation",{"path":106},{"path":110},{"path":114},{"path":375},"\u002Fdocs\u002Fmodules\u002Fqueue\u002F.navigation",{"path":122},{"path":126},{"path":130},{"path":133},{"path":381},"\u002Fdocs\u002Fmodules\u002Fscheduler\u002F.navigation",{"path":141},{"path":145},{"path":149},{"path":152},{"path":387},"\u002Fdocs\u002Fmodules\u002Ftesting\u002F.navigation",{"path":160},{"path":164},{"path":168},{"path":172},{"path":175},{"path":394},"\u002Fdocs\u002Fmodules\u002Fclient\u002F.navigation",{"path":183},{"path":186},{"path":189},{"path":399},"\u002Fdocs\u002Fmodules\u002Flogger\u002F.navigation",{"path":197},{"path":201},{"path":204},{"path":404},"\u002Fdocs\u002Fmodules\u002Fserverless\u002F.navigation",{"path":212},{"path":407},"\u002Fdocs\u002Fmodules\u002Fstorage\u002F.navigation",{"path":220},{"path":224},{"path":227},{"path":412},"\u002Fdocs\u002Fmodules\u002Fweb-sockets\u002F.navigation",{"path":235},{"path":238},{"path":416},"\u002Fdocs\u002Fmodules\u002Fschema\u002F.navigation",{"path":246},{"path":249},{"path":253},{"path":421},"\u002Fdocs\u002Fmodules\u002Fnitro\u002F.navigation",{"path":261},{"path":264},{"path":268},{"path":272},{"path":427},"\u002Fdocs\u002Fmodules\u002Fvite\u002F.navigation",{"path":280},{"path":430},"\u002Fdocs\u002Fmodules\u002Fcache\u002F.navigation",{"path":288},{"path":291},{"path":434},"\u002Fdocs\u002Fdeployment\u002F.navigation",{"path":300},{"path":304},{"path":308},{"path":312},{"path":316},{"path":441},"\u002Fdocs\u002Fadvanced\u002F.navigation",{"path":326},{"path":330},{"path":334},{"path":338},{"id":447,"title":109,"body":448,"description":1255,"extension":1256,"links":1257,"meta":1258,"navigation":68,"path":189,"seo":1259,"stem":190,"__hash__":1260},"docs\u002Fdocs\u002F3.modules\u002F15.client\u002F2.api.md",{"type":449,"value":450,"toc":1244},"minimark",[451,456,476,594,598,639,763,780,784,787,866,870,904,913,917,927,1063,1075,1094,1098,1180,1201,1215,1241],[452,453,455],"h2",{"id":454},"createclient","createClient()",[457,458,459,463,464,467,468,471,472,475],"p",{},[460,461,462],"code",{},"createClient\u003CRoutes>(options?)"," returns a client typed by ",[460,465,466],{},"Routes",", usually the generated ",[460,469,470],{},"VercubeRoutes",". Without a type argument every path and option is accepted and responses are ",[460,473,474],{},"any",".",[477,478,479,495],"table",{},[480,481,482],"thead",{},[483,484,485,489,492],"tr",{},[486,487,488],"th",{},"Option",[486,490,491],{},"Type",[486,493,494],{},"Description",[496,497,498,525,542,557,576],"tbody",{},[483,499,500,506,511],{},[501,502,503],"td",{},[460,504,505],{},"baseURL",[501,507,508],{},[460,509,510],{},"string",[501,512,513,514,517,518,521,522,475],{},"Prepended to every path: ",[460,515,516],{},"'http:\u002F\u002Flocalhost:3000'",", ",[460,519,520],{},"'\u002Fapi'",". Defaults to ",[460,523,524],{},"''",[483,526,527,532,537],{},[501,528,529],{},[460,530,531],{},"fetch",[501,533,534],{},[460,535,536],{},"(request: Request) => Response | Promise\u003CResponse>",[501,538,539,540,475],{},"Replaces the global ",[460,541,531],{},[483,543,544,549,554],{},[501,545,546],{},[460,547,548],{},"headers",[501,550,551],{},[460,552,553],{},"HeadersInit | () => HeadersInit | Promise\u003CHeadersInit>",[501,555,556],{},"Sent with every request. A function is called per request.",[483,558,559,564,569],{},[501,560,561],{},[460,562,563],{},"onRequest",[501,565,566],{},[460,567,568],{},"({ request }) => void | Request",[501,570,571,572,575],{},"Runs before each request. Returning a ",[460,573,574],{},"Request"," replaces it. May be async.",[483,577,578,583,588],{},[501,579,580],{},[460,581,582],{},"onResponse",[501,584,585],{},[460,586,587],{},"({ request, response }) => void | Response",[501,589,590,591,575],{},"Runs after each response, error responses included. Returning a ",[460,592,593],{},"Response",[452,595,597],{"id":596},"client-methods","Client methods",[457,599,600,517,603,517,606,517,609,517,612,517,615,618,619,622,623,626,627,630,631,634,635,638],{},[460,601,602],{},"get",[460,604,605],{},"post",[460,607,608],{},"put",[460,610,611],{},"patch",[460,613,614],{},"delete",[460,616,617],{},"head"," and ",[460,620,621],{},"options"," take ",[460,624,625],{},"(path, init?)",". ",[460,628,629],{},"request"," takes ",[460,632,633],{},"(method, path, init?)",". The path is a route template from the route map, and ",[460,636,637],{},"init"," is required as soon as the route requires something.",[477,640,641,652],{},[480,642,643],{},[483,644,645,650],{},[486,646,647,649],{},[460,648,637],{}," field",[486,651,494],{},[496,653,654,668,685,694,722,739],{},[483,655,656,661],{},[501,657,658],{},[460,659,660],{},"params",[501,662,663,664,667],{},"Values for the ",[460,665,666],{},":segments"," of the path.",[483,669,670,675],{},[501,671,672],{},[460,673,674],{},"query",[501,676,677,678,618,681,684],{},"Query string fields. Arrays repeat the key, ",[460,679,680],{},"null",[460,682,683],{},"undefined"," are left out.",[483,686,687,691],{},[501,688,689],{},[460,690,548],{},[501,692,693],{},"Headers for this call, added on top of the client's.",[483,695,696,701],{},[501,697,698],{},[460,699,700],{},"body",[501,702,703,704,517,707,517,710,713,714,717,718,721],{},"The JSON body, or a ",[460,705,706],{},"Blob",[460,708,709],{},"ReadableStream",[460,711,712],{},"ArrayBuffer",", typed array, ",[460,715,716],{},"FormData"," or ",[460,719,720],{},"URLSearchParams"," sent as is.",[483,723,724,729],{},[501,725,726],{},[460,727,728],{},"form",[501,730,731,732,735,736,738],{},"The fields of a ",[460,733,734],{},"@MultipartFormData()"," route, as ",[460,737,716],{}," or a plain object.",[483,740,741,744],{},[501,742,743],{},"anything else",[501,745,746,747,749,750,517,753,517,756,517,759,762],{},"Passed to ",[460,748,531],{},": ",[460,751,752],{},"signal",[460,754,755],{},"credentials",[460,757,758],{},"cache",[460,760,761],{},"keepalive","...",[457,764,765,766,771,772,775,776,779],{},"A call resolves to the response body (see ",[767,768,770],"a",{"href":769},"\u002Fdocs\u002Fmodules\u002Fclient\u002Frequests#responses","Responses","), or to an ",[460,773,774],{},"SseStream"," for a ",[460,777,778],{},"text\u002Fevent-stream"," response.",[452,781,783],{"id":782},"vercubeclienterror","VercubeClientError",[457,785,786],{},"Thrown for every status outside 200 to 299.",[477,788,789,800],{},[480,790,791],{},[483,792,793,796,798],{},[486,794,795],{},"Property",[486,797,491],{},[486,799,494],{},[496,801,802,817,831,845],{},[483,803,804,809,814],{},[501,805,806],{},[460,807,808],{},"status",[501,810,811],{},[460,812,813],{},"number",[501,815,816],{},"The HTTP status.",[483,818,819,823,828],{},[501,820,821],{},[460,822,700],{},[501,824,825],{},[460,826,827],{},"unknown",[501,829,830],{},"The parsed body: JSON when it is JSON, the text otherwise.",[483,832,833,838,842],{},[501,834,835],{},[460,836,837],{},"response",[501,839,840],{},[460,841,593],{},[501,843,844],{},"The response, its body already read.",[483,846,847,852,856],{},[501,848,849],{},[460,850,851],{},"message",[501,853,854],{},[460,855,510],{},[501,857,858,861,862,865],{},[460,859,860],{},"body.message"," when there is one, ",[460,863,864],{},"'\u003Cstatus> \u003CstatusText>'"," otherwise.",[452,867,869],{"id":868},"sseevent-and-ssestream","SseEvent and SseStream",[457,871,872,875,876,879,880,883,884,887,888,891,892,517,895,517,898,618,901,475],{},[460,873,874],{},"SseStream\u003CE>"," is an ",[460,877,878],{},"AsyncGenerator\u003CE>","; calling ",[460,881,882],{},"return()"," (or leaving a ",[460,885,886],{},"for await"," loop) closes the connection. Each ",[460,889,890],{},"SseEvent\u003CD, E>"," has ",[460,893,894],{},"data: D",[460,896,897],{},"event: E",[460,899,900],{},"id: string | undefined",[460,902,903],{},"retry: number | undefined",[457,905,906,909,910,912],{},[460,907,908],{},"parseSse(body, signal?)"," is the parser on its own, for a ",[460,911,709],{}," you got some other way.",[452,914,916],{"id":915},"routedef","RouteDef",[457,918,919,922,923,926],{},[460,920,921],{},"RouteDef\u003CController, 'method', Args>"," turns a controller method into a route. ",[460,924,925],{},"Args"," holds the argument index of each parameter decorator, which is what the generator writes:",[477,928,929,942],{},[480,930,931],{},[483,932,933,936,939],{},[486,934,935],{},"Key",[486,937,938],{},"Decorator",[486,940,941],{},"Example",[496,943,944,965,981,998,1015,1031,1046],{},[483,945,946,951,960],{},[501,947,948],{},[460,949,950],{},"param",[501,952,953,956,957,959],{},[460,954,955],{},"@Param(name)",", or ",[460,958,680],{}," for a segment no argument reads",[501,961,962],{},[460,963,964],{},"{ param: { id: 0, slug: null } }",[483,966,967,971,976],{},[501,968,969],{},[460,970,674],{},[501,972,973],{},[460,974,975],{},"@QueryParam(name)",[501,977,978],{},[460,979,980],{},"{ query: { page: 1, sort: 2 } }",[483,982,983,988,993],{},[501,984,985],{},[460,986,987],{},"queries",[501,989,990],{},[460,991,992],{},"@QueryParams()",[501,994,995],{},[460,996,997],{},"{ queries: 1 }",[483,999,1000,1005,1010],{},[501,1001,1002],{},[460,1003,1004],{},"header",[501,1006,1007],{},[460,1008,1009],{},"@Header(name)",[501,1011,1012],{},[460,1013,1014],{},"{ header: { 'x-tenant': 2 } }",[483,1016,1017,1021,1026],{},[501,1018,1019],{},[460,1020,700],{},[501,1022,1023],{},[460,1024,1025],{},"@Body()",[501,1027,1028],{},[460,1029,1030],{},"{ body: 1 }",[483,1032,1033,1037,1041],{},[501,1034,1035],{},[460,1036,728],{},[501,1038,1039],{},[460,1040,734],{},[501,1042,1043],{},[460,1044,1045],{},"{ form: 1 }",[483,1047,1048,1053,1058],{},[501,1049,1050],{},[460,1051,1052],{},"sse",[501,1054,1055],{},[460,1056,1057],{},"@Sse()",[501,1059,1060],{},[460,1061,1062],{},"{ sse: true }",[457,1064,1065,517,1068,517,1071,1074],{},[460,1066,1067],{},"@Request()",[460,1069,1070],{},"@Response()",[460,1072,1073],{},"@Headers()"," and custom decorators are not part of the client's input and are not listed.",[457,1076,1077,1078,1081,1082,517,1084,517,1086,517,1088,517,1090,618,1092,475],{},"A route map can be written by hand, for instance for a service you do not build yourself, by giving each key a ",[460,1079,1080],{},"Route"," with ",[460,1083,660],{},[460,1085,674],{},[460,1087,548],{},[460,1089,700],{},[460,1091,728],{},[460,1093,837],{},[452,1095,1097],{"id":1096},"typegen","Typegen",[477,1099,1100,1112],{},[480,1101,1102],{},[483,1103,1104,1107,1110],{},[486,1105,1106],{},"Setting",[486,1108,1109],{},"Where",[486,1111,494],{},[496,1113,1114,1146,1164],{},[483,1115,1116,1121,1126],{},[501,1117,1118],{},[460,1119,1120],{},"build.typegen",[501,1122,1123],{},[460,1124,1125],{},"vercube.config.ts",[501,1127,1128,1131,1132,717,1135,1138,1139,1142,1143,475],{},[460,1129,1130],{},"false"," turns it off, ",[460,1133,1134],{},"true",[460,1136,1137],{},"{ output }"," turns it on. Unset: on when ",[460,1140,1141],{},"package.json"," lists ",[460,1144,1145],{},"@vercube\u002Fclient",[483,1147,1148,1152,1161],{},[501,1149,1150],{},[460,1151,1096],{},[501,1153,1154,1157,1158],{},[460,1155,1156],{},"vercube({ ... })"," in ",[460,1159,1160],{},"vite.config.ts",[501,1162,1163],{},"The same, for the Vite plugin.",[483,1165,1166,1171,1174],{},[501,1167,1168],{},[460,1169,1170],{},"output",[501,1172,1173],{},"either",[501,1175,1176,1177,475],{},"Path relative to the project root. Defaults to ",[460,1178,1179],{},".vercube\u002Froutes.d.ts",[457,1181,1182,1185,1186,1188,1189,1192,1193,1196,1197,1200],{},[460,1183,1184],{},"vercube typegen"," builds the application and writes the file, whether or not the project lists ",[460,1187,1145],{},"; only ",[460,1190,1191],{},"typegen: false"," stops it. Controller files come from the Vite plugin's discovery manifest when there is one, and from scanning the project for ",[460,1194,1195],{},"@Controller()"," classes otherwise; build output, ",[460,1198,1199],{},"node_modules"," and test files are not scanned.",[457,1202,1203,1204,1207,1208,1210,1211,1214],{},"A controller's class name must be unique in the project, and the class exported (named, default, or through ",[460,1205,1206],{},"export { ... }","). ",[460,1209,1195],{}," may be imported under another name or used through a namespace (",[460,1212,1213],{},"@core.Controller()","). Routes on a controller that breaks one of these are skipped, with one warning per cause.",[457,1216,1217,1218,1221,1222,1225,1226,1229,1230,618,1233,1236,1237,1240],{},"Controllers are imported with a ",[460,1219,1220],{},".js"," extension (",[460,1223,1224],{},"'..\u002Fsrc\u002FControllers\u002FUserController.js'","), which resolves to the ",[460,1227,1228],{},".ts"," source under both ",[460,1231,1232],{},"bundler",[460,1234,1235],{},"node16","\u002F",[460,1238,1239],{},"nodenext"," module resolution.",[457,1242,1243],{},"The cost on the type checker grows linearly: about 420 type instantiations per route that is called, or roughly 0.12 s of check time for 500 routes with one call each.",{"title":1245,"searchDepth":1246,"depth":1247,"links":1248},"",1,2,[1249,1250,1251,1252,1253,1254],{"id":454,"depth":1247,"text":455},{"id":596,"depth":1247,"text":597},{"id":782,"depth":1247,"text":783},{"id":868,"depth":1247,"text":869},{"id":915,"depth":1247,"text":916},{"id":1096,"depth":1247,"text":1097},"Reference for createClient, the client methods, VercubeClientError, RouteDef and typegen","md",null,{},{"title":109,"description":1255},"I8wd7p2YWylsBs0wlb4YBxwvkqHnusPUovFIJoh2gKo",[1262,1264],{"title":163,"path":186,"stem":187,"description":1263,"children":-1},"Bodies, query strings, headers, hooks, typed errors, server-sent events and aborting",{"title":78,"path":197,"stem":198,"description":1265,"children":-1},"Structured wide-event logging for Vercube, powered by evlog",1794396678381]