[{"data":1,"prerenderedAt":1137},["ShallowReactive",2],{"navigation":3,"-deploy-providers-vercel":228,"-deploy-providers-vercel-surround":1132},[4,83,212,218,225],{"title":5,"path":6,"stem":7,"children":8,"icon":82},"","/docs","1.docs/1.index",[9,12,17,22,27,32,37,42,47,52,57,62,67,72,77],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-compass",{"title":13,"path":14,"stem":15,"icon":16},"Quick Start","/docs/quick-start","1.docs/2.quick-start","i-lucide-zap",{"title":18,"path":19,"stem":20,"icon":21},"Renderer","/docs/renderer","1.docs/4.renderer","ri:layout-masonry-line",{"title":23,"path":24,"stem":25,"icon":26},"Routing","/docs/routing","1.docs/5.routing","ri:direction-line",{"title":28,"path":29,"stem":30,"icon":31},"Assets","/docs/assets","1.docs/50.assets","ri:image-2-line",{"title":33,"path":34,"stem":35,"icon":36},"Configuration","/docs/configuration","1.docs/50.configuration","ri:settings-3-line",{"title":38,"path":39,"stem":40,"icon":41},"Database","/docs/database","1.docs/50.database","ri:database-2-line",{"title":43,"path":44,"stem":45,"icon":46},"Lifecycle","/docs/lifecycle","1.docs/50.lifecycle","i-lucide-layers",{"title":48,"path":49,"stem":50,"icon":51},"Plugins","/docs/plugins","1.docs/50.plugins","ri:plug-line",{"title":53,"path":54,"stem":55,"icon":56},"Tasks","/docs/tasks","1.docs/50.tasks","codicon:run-all",{"title":58,"path":59,"stem":60,"icon":61},"Server Entry","/docs/server-entry","1.docs/6.server-entry","ri:server-line",{"title":63,"path":64,"stem":65,"icon":66},"Cache","/docs/cache","1.docs/7.cache","ri:speed-line",{"title":68,"path":69,"stem":70,"icon":71},"KV Storage","/docs/storage","1.docs/8.storage","carbon:datastore",{"title":73,"path":74,"stem":75,"icon":76},"Migration Guide","/docs/migration","1.docs/99.migration","ri:arrow-right-up-line",{"title":78,"path":79,"stem":80,"icon":81},"Nightly Channel","/docs/nightly","1.docs/99.nightly","ri:moon-fill","i-lucide-book-open",{"title":84,"path":85,"stem":86,"children":87,"icon":89},"Deploy","/deploy","2.deploy/0.index",[88,90,111],{"title":84,"path":85,"stem":86,"icon":89},"ri:upload-cloud-2-line",{"title":91,"path":92,"stem":93,"children":94,"page":110},"Runtimes","/deploy/runtimes","2.deploy/10.runtimes",[95,100,105],{"title":96,"path":97,"stem":98,"icon":99},"Node.js","/deploy/runtimes/node","2.deploy/10.runtimes/1.node","akar-icons:node-fill",{"title":101,"path":102,"stem":103,"icon":104},"Bun","/deploy/runtimes/bun","2.deploy/10.runtimes/bun","simple-icons:bun",{"title":106,"path":107,"stem":108,"icon":109},"Deno","/deploy/runtimes/deno","2.deploy/10.runtimes/deno","simple-icons:deno",false,{"title":112,"path":113,"stem":114,"children":115,"page":110},"Providers","/deploy/providers","2.deploy/20.providers",[116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208],{"title":117,"path":118,"stem":119},"Alwaysdata","/deploy/providers/alwaysdata","2.deploy/20.providers/alwaysdata",{"title":121,"path":122,"stem":123},"AWS Lambda","/deploy/providers/aws","2.deploy/20.providers/aws",{"title":125,"path":126,"stem":127},"AWS Amplify","/deploy/providers/aws-amplify","2.deploy/20.providers/aws-amplify",{"title":129,"path":130,"stem":131},"Azure","/deploy/providers/azure","2.deploy/20.providers/azure",{"title":133,"path":134,"stem":135},"Cleavr","/deploy/providers/cleavr","2.deploy/20.providers/cleavr",{"title":137,"path":138,"stem":139},"Cloudflare","/deploy/providers/cloudflare","2.deploy/20.providers/cloudflare",{"title":141,"path":142,"stem":143},"Deno Deploy","/deploy/providers/deno-deploy","2.deploy/20.providers/deno-deploy",{"title":145,"path":146,"stem":147},"DigitalOcean","/deploy/providers/digitalocean","2.deploy/20.providers/digitalocean",{"title":149,"path":150,"stem":151},"Firebase","/deploy/providers/firebase","2.deploy/20.providers/firebase",{"title":153,"path":154,"stem":155},"Flightcontrol","/deploy/providers/flightcontrol","2.deploy/20.providers/flightcontrol",{"title":157,"path":158,"stem":159},"Genezio","/deploy/providers/genezio","2.deploy/20.providers/genezio",{"title":161,"path":162,"stem":163},"GitHub Pages","/deploy/providers/github-pages","2.deploy/20.providers/github-pages",{"title":165,"path":166,"stem":167},"GitLab Pages","/deploy/providers/gitlab-pages","2.deploy/20.providers/gitlab-pages",{"title":169,"path":170,"stem":171},"Heroku","/deploy/providers/heroku","2.deploy/20.providers/heroku",{"title":173,"path":174,"stem":175},"IIS","/deploy/providers/iis","2.deploy/20.providers/iis",{"title":177,"path":178,"stem":179},"Koyeb","/deploy/providers/koyeb","2.deploy/20.providers/koyeb",{"title":181,"path":182,"stem":183},"Netlify","/deploy/providers/netlify","2.deploy/20.providers/netlify",{"title":185,"path":186,"stem":187},"Platform.sh","/deploy/providers/platform-sh","2.deploy/20.providers/platform-sh",{"title":189,"path":190,"stem":191},"Render.com","/deploy/providers/render","2.deploy/20.providers/render",{"title":193,"path":194,"stem":195},"StormKit","/deploy/providers/stormkit","2.deploy/20.providers/stormkit",{"title":197,"path":198,"stem":199},"Vercel","/deploy/providers/vercel","2.deploy/20.providers/vercel",{"title":201,"path":202,"stem":203},"Zeabur","/deploy/providers/zeabur","2.deploy/20.providers/zeabur",{"title":205,"path":206,"stem":207},"Zephyr Cloud","/deploy/providers/zephyr","2.deploy/20.providers/zephyr",{"title":209,"path":210,"stem":211},"Zerops","/deploy/providers/zerops","2.deploy/20.providers/zerops",{"title":213,"path":214,"stem":215,"children":216,"icon":36},"Config","/config","3.config/0.index",[217],{"title":213,"path":214,"stem":215,"icon":36},{"title":219,"path":220,"stem":221,"children":222,"icon":224},"Examples","/examples","4.examples/0.index",[223],{"title":219,"path":220,"stem":221,"icon":224},"i-lucide-folder-code",{"title":5,"path":226,"stem":227},"/","index",{"id":229,"title":197,"body":230,"description":1126,"extension":1127,"meta":1128,"navigation":1129,"path":198,"seo":1130,"stem":199,"__hash__":1131},"content/2.deploy/20.providers/vercel.md",{"type":231,"value":232,"toc":1108},"minimark",[233,245,250,262,267,270,303,311,316,324,328,335,343,347,350,366,435,445,487,491,504,564,568,575,599,603,609,648,660,664,668,685,795,799,803,817,821,836,840,843,846,938,942,945,952,1030,1104],[234,235,236,240,241],"p",{},[237,238,239],"strong",{},"Preset:"," ",[242,243,244],"code",{},"vercel",[246,247],"read-more",{"title":248,"to":249},"Vercel Framework Support","https://vercel.com/docs/frameworks",[251,252,253],"note",{},[234,254,255,256,261],{},"Integration with this provider is possible with ",[257,258,260],"a",{"href":259},"/deploy/#zero-config-providers","zero configuration",".",[263,264,266],"h2",{"id":265},"getting-started","Getting started",[234,268,269],{},"Deploying to Vercel comes with the following features:",[271,272,273,282,289,296],"ul",{},[274,275,276],"li",{},[257,277,281],{"href":278,"rel":279},"https://vercel.com/docs/deployments/environments",[280],"nofollow","Preview deployments",[274,283,284],{},[257,285,288],{"href":286,"rel":287},"https://vercel.com/docs/fluid-compute",[280],"Fluid compute",[274,290,291],{},[257,292,295],{"href":293,"rel":294},"https://vercel.com/docs/observability",[280],"Observability",[274,297,298],{},[257,299,302],{"href":300,"rel":301},"https://vercel.com/docs/vercel-firewall",[280],"Vercel Firewall",[234,304,305,306,261],{},"And much more. Learn more in ",[257,307,310],{"href":308,"rel":309},"https://vercel.com/docs",[280],"the Vercel documentation",[312,313,315],"h3",{"id":314},"deploy-with-git","Deploy with Git",[234,317,318,319,261],{},"Vercel supports Nitro with zero-configuration. ",[257,320,323],{"href":321,"rel":322},"https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fvercel%2Ftree%2Fmain%2Fexamples%2Fnitro",[280],"Deploy Nitro to Vercel now",[263,325,327],{"id":326},"api-routes","API routes",[234,329,330,331,334],{},"Nitro ",[242,332,333],{},"/api"," directory isn't compatible with Vercel. Instead, you should use:",[271,336,337],{},[274,338,339,342],{},[242,340,341],{},"routes/api/"," for standalone usage",[263,344,346],{"id":345},"bun-runtime","Bun runtime",[246,348],{"title":197,"to":349},"https://vercel.com/docs/functions/runtimes/bun",[234,351,352,353,357,358,361,362,365],{},"You can use ",[257,354,101],{"href":355,"rel":356},"https://bun.com",[280]," instead of Node.js by specifying the runtime using the ",[242,359,360],{},"vercel.functions"," key inside ",[242,363,364],{},"nitro.config",":",[367,368,373],"pre",{"className":369,"code":370,"filename":371,"language":372,"meta":5,"style":5},"language-ts shiki shiki-themes github-light github-dark github-dark","export default defineNitroConfig({\n  vercel: {\n    functions: {\n      runtime: \"bun1.x\"\n    }\n  }\n})\n","nitro.config.ts","ts",[242,374,375,395,401,407,417,423,429],{"__ignoreMap":5},[376,377,380,384,387,391],"span",{"class":378,"line":379},"line",1,[376,381,383],{"class":382},"so5gQ","export",[376,385,386],{"class":382}," default",[376,388,390],{"class":389},"shcOC"," defineNitroConfig",[376,392,394],{"class":393},"slsVL","({\n",[376,396,398],{"class":378,"line":397},2,[376,399,400],{"class":393},"  vercel: {\n",[376,402,404],{"class":378,"line":403},3,[376,405,406],{"class":393},"    functions: {\n",[376,408,410,413],{"class":378,"line":409},4,[376,411,412],{"class":393},"      runtime: ",[376,414,416],{"class":415},"sfrk1","\"bun1.x\"\n",[376,418,420],{"class":378,"line":419},5,[376,421,422],{"class":393},"    }\n",[376,424,426],{"class":378,"line":425},6,[376,427,428],{"class":393},"  }\n",[376,430,432],{"class":378,"line":431},7,[376,433,434],{"class":393},"})\n",[234,436,437,438,441,442,365],{},"Alternatively, Nitro also detects Bun automatically if you specify a ",[242,439,440],{},"bunVersion"," property in your ",[242,443,444],{},"vercel.json",[367,446,450],{"className":447,"code":448,"filename":444,"language":449,"meta":5,"style":5},"language-json shiki shiki-themes github-light github-dark github-dark","{\n  \"$schema\": \"https://openapi.vercel.sh/vercel.json\",\n  \"bunVersion\": \"1.x\"\n}\n","json",[242,451,452,457,472,482],{"__ignoreMap":5},[376,453,454],{"class":378,"line":379},[376,455,456],{"class":393},"{\n",[376,458,459,463,466,469],{"class":378,"line":397},[376,460,462],{"class":461},"suiK_","  \"$schema\"",[376,464,465],{"class":393},": ",[376,467,468],{"class":415},"\"https://openapi.vercel.sh/vercel.json\"",[376,470,471],{"class":393},",\n",[376,473,474,477,479],{"class":378,"line":403},[376,475,476],{"class":461},"  \"bunVersion\"",[376,478,465],{"class":393},[376,480,481],{"class":415},"\"1.x\"\n",[376,483,484],{"class":378,"line":409},[376,485,486],{"class":393},"}\n",[263,488,490],{"id":489},"proxy-route-rules","Proxy route rules",[234,492,493,494,497,498,503],{},"Nitro automatically optimizes ",[242,495,496],{},"proxy"," route rules on Vercel by generating ",[257,499,502],{"href":500,"rel":501},"https://vercel.com/docs/rewrites",[280],"CDN-level rewrites"," at build time. This means matching requests are proxied at the edge without invoking a serverless function, reducing latency and cost.",[367,505,507],{"className":369,"code":506,"filename":371,"language":372,"meta":5,"style":5},"export default defineNitroConfig({\n  routeRules: {\n    // Proxied at CDN level — no function invocation\n    \"/api/**\": {\n      proxy: \"https://api.example.com/**\",\n    },\n  },\n});\n",[242,508,509,519,524,530,538,548,553,558],{"__ignoreMap":5},[376,510,511,513,515,517],{"class":378,"line":379},[376,512,383],{"class":382},[376,514,386],{"class":382},[376,516,390],{"class":389},[376,518,394],{"class":393},[376,520,521],{"class":378,"line":397},[376,522,523],{"class":393},"  routeRules: {\n",[376,525,526],{"class":378,"line":403},[376,527,529],{"class":528},"sCsY4","    // Proxied at CDN level — no function invocation\n",[376,531,532,535],{"class":378,"line":409},[376,533,534],{"class":415},"    \"/api/**\"",[376,536,537],{"class":393},": {\n",[376,539,540,543,546],{"class":378,"line":419},[376,541,542],{"class":393},"      proxy: ",[376,544,545],{"class":415},"\"https://api.example.com/**\"",[376,547,471],{"class":393},[376,549,550],{"class":378,"line":425},[376,551,552],{"class":393},"    },\n",[376,554,555],{"class":378,"line":431},[376,556,557],{"class":393},"  },\n",[376,559,561],{"class":378,"line":560},8,[376,562,563],{"class":393},"});\n",[312,565,567],{"id":566},"when-cdn-rewrites-apply","When CDN rewrites apply",[234,569,570,571,574],{},"A proxy rule is offloaded to a Vercel CDN rewrite when ",[237,572,573],{},"all"," of the following are true:",[271,576,577,592],{},[274,578,579,580,583,584,587,588,591],{},"The target is an ",[237,581,582],{},"external URL"," (starts with ",[242,585,586],{},"http://"," or ",[242,589,590],{},"https://",").",[274,593,594,595,598],{},"No advanced ",[242,596,597],{},"ProxyOptions"," are set on the rule.",[312,600,602],{"id":601},"fallback-to-runtime-proxy","Fallback to runtime proxy",[234,604,605,606,608],{},"When the proxy rule uses any of the following ",[242,607,597],{},", Nitro keeps it as a runtime proxy handled by the serverless function:",[271,610,611,617,627,633,642],{},[274,612,613,616],{},[242,614,615],{},"headers"," — custom headers on the outgoing request to the upstream",[274,618,619,622,623,626],{},[242,620,621],{},"forwardHeaders"," / ",[242,624,625],{},"filterHeaders"," — header filtering",[274,628,629,632],{},[242,630,631],{},"fetchOptions"," — custom fetch options",[274,634,635,622,638,641],{},[242,636,637],{},"cookieDomainRewrite",[242,639,640],{},"cookiePathRewrite"," — cookie manipulation",[274,643,644,647],{},[242,645,646],{},"onResponse"," — response callback",[251,649,650],{},[234,651,652,653,655,656,659],{},"Response headers defined on the route rule via the ",[242,654,615],{}," option are still applied to CDN-level rewrites. Only request-level ",[242,657,658],{},"ProxyOptions.headers"," (sent to the upstream) require a runtime proxy.",[263,661,663],{"id":662},"scheduled-tasks-cron-jobs","Scheduled tasks (Cron Jobs)",[246,665],{"title":666,"to":667},"Vercel Cron Jobs","https://vercel.com/docs/cron-jobs",[234,669,670,671,677,678,681,682,684],{},"Nitro automatically converts your ",[257,672,674],{"href":673},"/docs/tasks#scheduled-tasks",[242,675,676],{},"scheduledTasks"," configuration into ",[257,679,666],{"href":667,"rel":680},[280]," at build time. Define your schedules in your Nitro config and deploy - no manual ",[242,683,444],{}," cron configuration required.",[367,686,688],{"className":369,"code":687,"filename":371,"language":372,"meta":5,"style":5},"import { defineNitroConfig } from \"nitro/config\";\n\nexport default defineNitroConfig({\n  experimental: {\n    tasks: true\n  },\n  scheduledTasks: {\n    // Run `cms:update` every hour\n    '0 * * * *': ['cms:update'],\n    // Run `db:cleanup` every day at midnight\n    '0 0 * * *': ['db:cleanup']\n  }\n})\n",[242,689,690,707,713,723,728,736,740,745,750,765,771,785,790],{"__ignoreMap":5},[376,691,692,695,698,701,704],{"class":378,"line":379},[376,693,694],{"class":382},"import",[376,696,697],{"class":393}," { defineNitroConfig } ",[376,699,700],{"class":382},"from",[376,702,703],{"class":415}," \"nitro/config\"",[376,705,706],{"class":393},";\n",[376,708,709],{"class":378,"line":397},[376,710,712],{"emptyLinePlaceholder":711},true,"\n",[376,714,715,717,719,721],{"class":378,"line":403},[376,716,383],{"class":382},[376,718,386],{"class":382},[376,720,390],{"class":389},[376,722,394],{"class":393},[376,724,725],{"class":378,"line":409},[376,726,727],{"class":393},"  experimental: {\n",[376,729,730,733],{"class":378,"line":419},[376,731,732],{"class":393},"    tasks: ",[376,734,735],{"class":461},"true\n",[376,737,738],{"class":378,"line":425},[376,739,557],{"class":393},[376,741,742],{"class":378,"line":431},[376,743,744],{"class":393},"  scheduledTasks: {\n",[376,746,747],{"class":378,"line":560},[376,748,749],{"class":528},"    // Run `cms:update` every hour\n",[376,751,753,756,759,762],{"class":378,"line":752},9,[376,754,755],{"class":415},"    '0 * * * *'",[376,757,758],{"class":393},": [",[376,760,761],{"class":415},"'cms:update'",[376,763,764],{"class":393},"],\n",[376,766,768],{"class":378,"line":767},10,[376,769,770],{"class":528},"    // Run `db:cleanup` every day at midnight\n",[376,772,774,777,779,782],{"class":378,"line":773},11,[376,775,776],{"class":415},"    '0 0 * * *'",[376,778,758],{"class":393},[376,780,781],{"class":415},"'db:cleanup'",[376,783,784],{"class":393},"]\n",[376,786,788],{"class":378,"line":787},12,[376,789,428],{"class":393},[376,791,793],{"class":378,"line":792},13,[376,794,434],{"class":393},[312,796,798],{"id":797},"secure-cron-job-endpoints","Secure cron job endpoints",[246,800],{"title":801,"to":802},"Securing cron jobs","https://vercel.com/docs/cron-jobs/manage-cron-jobs#securing-cron-jobs",[234,804,805,806,809,810,812,813,816],{},"To prevent unauthorized access to the cron handler, set a ",[242,807,808],{},"CRON_SECRET"," environment variable in your Vercel project settings. When ",[242,811,808],{}," is set, Nitro validates the ",[242,814,815],{},"Authorization"," header on every cron invocation.",[263,818,820],{"id":819},"custom-build-output-configuration","Custom build output configuration",[234,822,823,824,829,830,361,833,835],{},"You can provide additional ",[257,825,828],{"href":826,"rel":827},"https://vercel.com/docs/build-output-api/v3",[280],"build output configuration"," using ",[242,831,832],{},"vercel.config",[242,834,364],{},". It will be merged with built-in auto-generated config.",[263,837,839],{"id":838},"on-demand-incremental-static-regeneration-isr","On-Demand incremental static regeneration (ISR)",[234,841,842],{},"On-demand revalidation allows you to purge the cache for an ISR route whenever you want, foregoing the time interval required with background revalidation.",[234,844,845],{},"To revalidate a page on demand:",[847,848,850,868,931],"steps",{"level":849},"4",[851,852,853,854],"h4",{},"Create an Environment Variable which will store a revalidation secret",[271,855,856],{},[274,857,858,859,587,862,867],{},"You can use the command ",[242,860,861],{},"openssl rand -base64 32",[257,863,866],{"href":864,"rel":865},"https://generate-secret.vercel.app/32",[280],"Generate a Secret"," to generate a random value.",[851,869,870,871],{},"Update your configuration:",[367,872,874],{"className":369,"code":873,"filename":371,"language":372,"meta":5,"style":5},"import { defineNitroConfig } from \"nitro/config\";\n\nexport default defineNitroConfig({\n  vercel: {\n    config: {\n      bypassToken: process.env.VERCEL_BYPASS_TOKEN\n    }\n  }\n})\n",[242,875,876,888,892,902,906,911,919,923,927],{"__ignoreMap":5},[376,877,878,880,882,884,886],{"class":378,"line":379},[376,879,694],{"class":382},[376,881,697],{"class":393},[376,883,700],{"class":382},[376,885,703],{"class":415},[376,887,706],{"class":393},[376,889,890],{"class":378,"line":397},[376,891,712],{"emptyLinePlaceholder":711},[376,893,894,896,898,900],{"class":378,"line":403},[376,895,383],{"class":382},[376,897,386],{"class":382},[376,899,390],{"class":389},[376,901,394],{"class":393},[376,903,904],{"class":378,"line":409},[376,905,400],{"class":393},[376,907,908],{"class":378,"line":419},[376,909,910],{"class":393},"    config: {\n",[376,912,913,916],{"class":378,"line":425},[376,914,915],{"class":393},"      bypassToken: process.env.",[376,917,918],{"class":461},"VERCEL_BYPASS_TOKEN\n",[376,920,921],{"class":378,"line":431},[376,922,422],{"class":393},[376,924,925],{"class":378,"line":560},[376,926,428],{"class":393},[376,928,929],{"class":378,"line":752},[376,930,434],{"class":393},[851,932,933,934,937],{},"To trigger \"On-Demand Incremental Static Regeneration (ISR)\" and revalidate a path to a Prerender Function, make a GET or HEAD request to that path with a header of x-prerender-revalidate: ",[242,935,936],{},"bypassToken",". When that Prerender Function endpoint is accessed with this header set, the cache will be revalidated. The next request to that function should return a fresh response.",[312,939,941],{"id":940},"fine-grained-isr-config-via-route-rules","Fine-grained ISR config via route rules",[234,943,944],{},"By default, query params affect cache keys but are not passed to the route handler unless specified.",[234,946,947,948,951],{},"You can pass an options object to ",[242,949,950],{},"isr"," route rule to configure caching behavior.",[271,953,954,968,974,1003,1020],{},[274,955,956,959,960,963,964,967],{},[242,957,958],{},"expiration",": Expiration time (in seconds) before the cached asset will be re-generated by invoking the Serverless Function. Setting the value to ",[242,961,962],{},"false"," (or ",[242,965,966],{},"isr: true"," route rule) means it will never expire.",[274,969,970,973],{},[242,971,972],{},"group",": Group number of the asset. Prerender assets with the same group number will all be re-validated at the same time.",[274,975,976,979,980],{},[242,977,978],{},"allowQuery",": List of query string parameter names that will be cached independently.\n",[271,981,982,985,992],{},[274,983,984],{},"If an empty array, query values are not considered for caching.",[274,986,987,988,991],{},"If ",[242,989,990],{},"undefined"," each unique query value is cached independently.",[274,993,994,995,998,999,1002],{},"For wildcard ",[242,996,997],{},"/**"," route rules, ",[242,1000,1001],{},"url"," is always added",[274,1004,1005,1008,1009,1012,1013,1016,1017,1019],{},[242,1006,1007],{},"passQuery",": When ",[242,1010,1011],{},"true",", the query string will be present on the ",[242,1014,1015],{},"request"," argument passed to the invoked function. The ",[242,1018,978],{}," filter still applies.",[274,1021,1022,1008,1025,1027,1028],{},[242,1023,1024],{},"exposeErrBody",[242,1026,1011],{},", expose the response body regardless of status code including error status codes. (default ",[242,1029,962],{},[367,1031,1033],{"className":369,"code":1032,"language":372,"meta":5,"style":5},"export default defineNitroConfig({\n  routeRules: {\n    \"/products/**\": {\n      isr: {\n        allowQuery: [\"q\"],\n        passQuery: true,\n        exposeErrBody: true\n      },\n    },\n  },\n});\n",[242,1034,1035,1045,1049,1056,1061,1071,1080,1087,1092,1096,1100],{"__ignoreMap":5},[376,1036,1037,1039,1041,1043],{"class":378,"line":379},[376,1038,383],{"class":382},[376,1040,386],{"class":382},[376,1042,390],{"class":389},[376,1044,394],{"class":393},[376,1046,1047],{"class":378,"line":397},[376,1048,523],{"class":393},[376,1050,1051,1054],{"class":378,"line":403},[376,1052,1053],{"class":415},"    \"/products/**\"",[376,1055,537],{"class":393},[376,1057,1058],{"class":378,"line":409},[376,1059,1060],{"class":393},"      isr: {\n",[376,1062,1063,1066,1069],{"class":378,"line":419},[376,1064,1065],{"class":393},"        allowQuery: [",[376,1067,1068],{"class":415},"\"q\"",[376,1070,764],{"class":393},[376,1072,1073,1076,1078],{"class":378,"line":425},[376,1074,1075],{"class":393},"        passQuery: ",[376,1077,1011],{"class":461},[376,1079,471],{"class":393},[376,1081,1082,1085],{"class":378,"line":431},[376,1083,1084],{"class":393},"        exposeErrBody: ",[376,1086,735],{"class":461},[376,1088,1089],{"class":378,"line":560},[376,1090,1091],{"class":393},"      },\n",[376,1093,1094],{"class":378,"line":752},[376,1095,552],{"class":393},[376,1097,1098],{"class":378,"line":767},[376,1099,557],{"class":393},[376,1101,1102],{"class":378,"line":773},[376,1103,563],{"class":393},[1105,1106,1107],"style",{},"html pre.shiki code .so5gQ, html code.shiki .so5gQ{--shiki-light:#D73A49;--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .shcOC, html code.shiki .shcOC{--shiki-light:#6F42C1;--shiki-default:#B392F0;--shiki-dark:#B392F0}html pre.shiki code .slsVL, html code.shiki .slsVL{--shiki-light:#24292E;--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}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 .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":5,"searchDepth":397,"depth":397,"links":1109},[1110,1113,1114,1115,1119,1122,1123],{"id":265,"depth":397,"text":266,"children":1111},[1112],{"id":314,"depth":403,"text":315},{"id":326,"depth":397,"text":327},{"id":345,"depth":397,"text":346},{"id":489,"depth":397,"text":490,"children":1116},[1117,1118],{"id":566,"depth":403,"text":567},{"id":601,"depth":403,"text":602},{"id":662,"depth":397,"text":663,"children":1120},[1121],{"id":797,"depth":403,"text":798},{"id":819,"depth":397,"text":820},{"id":838,"depth":397,"text":839,"children":1124},[1125],{"id":940,"depth":403,"text":941},"Deploy Nitro apps to Vercel.","md",{},{},{"title":197,"description":1126},"7mXOcQ-8YaPY_OaXwWDIDzlawAkQWRCzl9MKk_p59vM",[1133,1135],{"title":193,"path":194,"stem":195,"description":1134,"children":-1},"Deploy Nitro apps to StormKit.",{"title":201,"path":202,"stem":203,"description":1136,"children":-1},"Deploy Nitro apps to Zeabur.",1773176972625]