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