[{"data":1,"prerenderedAt":1443},["ShallowReactive",2],{"navigation":3,"-deploy-providers-vercel":225,"-deploy-providers-vercel-surround":1438},[4,76,219],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"Docs","/guide","1.guide/0.index",[9,11,16,21,26,31,36,41,46,51,56,61,66,71],{"title":5,"path":6,"stem":7,"icon":10},"ph:book-open-duotone",{"title":12,"path":13,"stem":14,"icon":15},"Server Utils","/guide/utils","1.guide/1.utils","ri:tools-line",{"title":17,"path":18,"stem":19,"icon":20},"Tasks","/guide/tasks","1.guide/10.tasks","codicon:run-all",{"title":22,"path":23,"stem":24,"icon":25},"Server Routes","/guide/routing","1.guide/2.routing","ri:direction-line",{"title":27,"path":28,"stem":29,"icon":30},"WebSocket","/guide/websocket","1.guide/3.websocket","cib:socket-io",{"title":32,"path":33,"stem":34,"icon":35},"KV Storage","/guide/storage","1.guide/4.storage","carbon:datastore",{"title":37,"path":38,"stem":39,"icon":40},"SQL Database","/guide/database","1.guide/5.database","ri:database-2-line",{"title":42,"path":43,"stem":44,"icon":45},"Cache","/guide/cache","1.guide/6.cache","ri:speed-line",{"title":47,"path":48,"stem":49,"icon":50},"Fetch","/guide/fetch","1.guide/7.fetch","ri:global-line",{"title":52,"path":53,"stem":54,"icon":55},"Assets","/guide/assets","1.guide/8.assets","ri:image-2-line",{"title":57,"path":58,"stem":59,"icon":60},"Plugins","/guide/plugins","1.guide/9.plugins","ri:plug-line",{"title":62,"path":63,"stem":64,"icon":65},"Configuration","/guide/configuration","1.guide/97.configuration","ri:settings-3-line",{"title":67,"path":68,"stem":69,"icon":70},"TypeScript","/guide/typescript","1.guide/98.typescript","tabler:brand-typescript",{"title":72,"path":73,"stem":74,"icon":75},"Nightly Channel","/guide/nightly","1.guide/99.nightly","ri:moon-fill",{"title":77,"path":78,"stem":79,"children":80,"icon":82},"Deploy","/deploy","2.deploy/0.index",[81,83,87,113,118],{"title":77,"path":78,"stem":79,"icon":82},"ri:upload-cloud-2-line",{"title":84,"path":85,"stem":86,"icon":50},"Edge Workers","/deploy/workers","2.deploy/1.workers",{"title":88,"path":89,"stem":90,"children":91,"page":112},"Runtimes","/deploy/runtimes","2.deploy/10.runtimes",[92,97,102,107],{"title":93,"path":94,"stem":95,"icon":96},"Node.js","/deploy/runtimes/node","2.deploy/10.runtimes/1.node","akar-icons:node-fill",{"title":98,"path":99,"stem":100,"icon":101},"WinterJS","/deploy/runtimes/_winterjs","2.deploy/10.runtimes/_winterjs","game-icons:cold-heart",{"title":103,"path":104,"stem":105,"icon":106},"Bun","/deploy/runtimes/bun","2.deploy/10.runtimes/bun","simple-icons:bun",{"title":108,"path":109,"stem":110,"icon":111},"Deno","/deploy/runtimes/deno","2.deploy/10.runtimes/deno","simple-icons:deno",false,{"title":114,"path":115,"stem":116,"icon":117},"Custom Preset","/deploy/custom-presets","2.deploy/2.custom-presets","ri:file-code-line",{"title":119,"path":120,"stem":121,"children":122,"page":112},"Providers","/deploy/providers","2.deploy/20.providers",[123,127,131,135,139,143,147,151,155,159,163,167,171,175,179,183,187,191,195,199,203,207,211,215],{"title":124,"path":125,"stem":126},"Alwaysdata","/deploy/providers/alwaysdata","2.deploy/20.providers/alwaysdata",{"title":128,"path":129,"stem":130},"AWS Lambda","/deploy/providers/aws","2.deploy/20.providers/aws",{"title":132,"path":133,"stem":134},"AWS Amplify","/deploy/providers/aws-amplify","2.deploy/20.providers/aws-amplify",{"title":136,"path":137,"stem":138},"Azure","/deploy/providers/azure","2.deploy/20.providers/azure",{"title":140,"path":141,"stem":142},"Cleavr","/deploy/providers/cleavr","2.deploy/20.providers/cleavr",{"title":144,"path":145,"stem":146},"Cloudflare","/deploy/providers/cloudflare","2.deploy/20.providers/cloudflare",{"title":148,"path":149,"stem":150},"Deno Deploy","/deploy/providers/deno-deploy","2.deploy/20.providers/deno-deploy",{"title":152,"path":153,"stem":154},"DigitalOcean","/deploy/providers/digitalocean","2.deploy/20.providers/digitalocean",{"title":156,"path":157,"stem":158},"Edgio","/deploy/providers/edgio","2.deploy/20.providers/edgio",{"title":160,"path":161,"stem":162},"Firebase","/deploy/providers/firebase","2.deploy/20.providers/firebase",{"title":164,"path":165,"stem":166},"Flightcontrol","/deploy/providers/flightcontrol","2.deploy/20.providers/flightcontrol",{"title":168,"path":169,"stem":170},"Genezio","/deploy/providers/genezio","2.deploy/20.providers/genezio",{"title":172,"path":173,"stem":174},"GitHub Pages","/deploy/providers/github-pages","2.deploy/20.providers/github-pages",{"title":176,"path":177,"stem":178},"GitLab Pages","/deploy/providers/gitlab-pages","2.deploy/20.providers/gitlab-pages",{"title":180,"path":181,"stem":182},"Heroku","/deploy/providers/heroku","2.deploy/20.providers/heroku",{"title":184,"path":185,"stem":186},"IIS","/deploy/providers/iis","2.deploy/20.providers/iis",{"title":188,"path":189,"stem":190},"Koyeb","/deploy/providers/koyeb","2.deploy/20.providers/koyeb",{"title":192,"path":193,"stem":194},"Netlify","/deploy/providers/netlify","2.deploy/20.providers/netlify",{"title":196,"path":197,"stem":198},"Platform.sh","/deploy/providers/platform-sh","2.deploy/20.providers/platform-sh",{"title":200,"path":201,"stem":202},"Render.com","/deploy/providers/render","2.deploy/20.providers/render",{"title":204,"path":205,"stem":206},"StormKit","/deploy/providers/stormkit","2.deploy/20.providers/stormkit",{"title":208,"path":209,"stem":210},"Vercel","/deploy/providers/vercel","2.deploy/20.providers/vercel",{"title":212,"path":213,"stem":214},"Zeabur","/deploy/providers/zeabur","2.deploy/20.providers/zeabur",{"title":216,"path":217,"stem":218},"Zerops","/deploy/providers/zerops","2.deploy/20.providers/zerops",{"title":220,"path":221,"stem":222,"children":223,"icon":65},"Config","/config","3.config/0.index",[224],{"title":220,"path":221,"stem":222,"icon":65},{"id":226,"title":208,"body":227,"description":1432,"extension":1433,"meta":1434,"navigation":1435,"path":209,"seo":1436,"stem":210,"__hash__":1437},"content/2.deploy/20.providers/vercel.md",{"type":228,"value":229,"toc":1415},"minimark",[230,242,247,259,264,267,300,308,313,321,324,333,340,427,439,443,446,462,513,523,565,569,573,584,674,687,691,701,814,818,824,945,949,954,1062,1066,1081,1085,1088,1091,1222,1226,1229,1236,1314,1392,1396,1404,1411],[231,232,233,237,238],"p",{},[234,235,236],"strong",{},"Preset:"," ",[239,240,241],"code",{},"vercel",[243,244],"read-more",{"title":245,"to":246},"Vercel Framework Support","https://vercel.com/docs/frameworks",[248,249,250],"note",{},[231,251,252,253,258],{},"Integration with this provider is possible with ",[254,255,257],"a",{"href":256},"/deploy/#zero-config-providers","zero configuration",".",[260,261,263],"h2",{"id":262},"getting-started","Getting started",[231,265,266],{},"Deploying to Vercel comes with the following features:",[268,269,270,279,286,293],"ul",{},[271,272,273],"li",{},[254,274,278],{"href":275,"rel":276},"https://vercel.com/docs/deployments/environments",[277],"nofollow","Preview deployments",[271,280,281],{},[254,282,285],{"href":283,"rel":284},"https://vercel.com/docs/fluid-compute",[277],"Fluid compute",[271,287,288],{},[254,289,292],{"href":290,"rel":291},"https://vercel.com/docs/observability",[277],"Observability",[271,294,295],{},[254,296,299],{"href":297,"rel":298},"https://vercel.com/docs/vercel-firewall",[277],"Vercel Firewall",[231,301,302,303,258],{},"And much more. Learn more in ",[254,304,307],{"href":305,"rel":306},"https://vercel.com/docs",[277],"the Vercel documentation",[309,310,312],"h3",{"id":311},"deploy-with-git","Deploy with Git",[231,314,315,316,258],{},"Vercel supports Nitro with zero-configuration. ",[254,317,320],{"href":318,"rel":319},"https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fvercel%2Ftree%2Fmain%2Fexamples%2Fnitro",[277],"Deploy Nitro to Vercel now",[260,322,292],{"id":323},"observability",[231,325,326,327,332],{},"Nitro (>=2.12) generates routing hints for ",[254,328,331],{"href":329,"rel":330},"https://vercel.com/docs/observability/insights#vercel-functions",[277],"functions observability insights",", providing a detailed view of performance broken down by route.",[231,334,335,336,339],{},"To enable this feature, ensure you are using a compatibility date of ",[239,337,338],{},"2025-07-15"," or later.",[341,342,343,396],"CodeGroup",{},[344,345,351],"pre",{"className":346,"code":347,"filename":348,"language":349,"meta":350,"style":350},"language-ts shiki shiki-themes github-light github-dark github-dark","export default defineNitroConfig({\n    compatibilityDate: \"2025-07-15\", // or \"latest\"\n})\n","nitro.config.ts","ts","",[239,352,353,373,390],{"__ignoreMap":350},[354,355,358,362,365,369],"span",{"class":356,"line":357},"line",1,[354,359,361],{"class":360},"so5gQ","export",[354,363,364],{"class":360}," default",[354,366,368],{"class":367},"shcOC"," defineNitroConfig",[354,370,372],{"class":371},"slsVL","({\n",[354,374,376,379,383,386],{"class":356,"line":375},2,[354,377,378],{"class":371},"    compatibilityDate: ",[354,380,382],{"class":381},"sfrk1","\"2025-07-15\"",[354,384,385],{"class":371},", ",[354,387,389],{"class":388},"sCsY4","// or \"latest\"\n",[354,391,393],{"class":356,"line":392},3,[354,394,395],{"class":371},"})\n",[344,397,400],{"className":346,"code":398,"filename":399,"language":349,"meta":350,"style":350},"export default defineNuxtConfig({\n    compatibilityDate: \"2025-07-15\", // or \"latest\"\n})\n","nuxt.config.ts",[239,401,402,413,423],{"__ignoreMap":350},[354,403,404,406,408,411],{"class":356,"line":357},[354,405,361],{"class":360},[354,407,364],{"class":360},[354,409,410],{"class":367}," defineNuxtConfig",[354,412,372],{"class":371},[354,414,415,417,419,421],{"class":356,"line":375},[354,416,378],{"class":371},[354,418,382],{"class":381},[354,420,385],{"class":371},[354,422,389],{"class":388},[354,424,425],{"class":356,"line":392},[354,426,395],{"class":371},[231,428,429,430,433,434,258],{},"Framework integrations can use the ",[239,431,432],{},"ssrRoutes"," configuration to declare SSR routes. For more information, see ",[254,435,438],{"href":436,"rel":437},"https://github.com/nitrojs/nitro/pull/3475",[277],"#3475",[260,440,442],{"id":441},"bun-runtime","Bun runtime",[243,444],{"title":208,"to":445},"https://vercel.com/docs/functions/runtimes/bun",[231,447,448,449,453,454,457,458,461],{},"You can use ",[254,450,103],{"href":451,"rel":452},"https://bun.com",[277]," instead of Node.js by specifying the runtime using the ",[239,455,456],{},"vercel.functions"," key inside ",[239,459,460],{},"nitro.config",":",[344,463,465],{"className":346,"code":464,"filename":348,"language":349,"meta":350,"style":350},"export default defineNitroConfig({\n  vercel: {\n    functions: {\n      runtime: \"bun1.x\"\n    }\n  }\n})\n",[239,466,467,477,482,487,496,502,508],{"__ignoreMap":350},[354,468,469,471,473,475],{"class":356,"line":357},[354,470,361],{"class":360},[354,472,364],{"class":360},[354,474,368],{"class":367},[354,476,372],{"class":371},[354,478,479],{"class":356,"line":375},[354,480,481],{"class":371},"  vercel: {\n",[354,483,484],{"class":356,"line":392},[354,485,486],{"class":371},"    functions: {\n",[354,488,490,493],{"class":356,"line":489},4,[354,491,492],{"class":371},"      runtime: ",[354,494,495],{"class":381},"\"bun1.x\"\n",[354,497,499],{"class":356,"line":498},5,[354,500,501],{"class":371},"    }\n",[354,503,505],{"class":356,"line":504},6,[354,506,507],{"class":371},"  }\n",[354,509,511],{"class":356,"line":510},7,[354,512,395],{"class":371},[231,514,515,516,519,520,461],{},"Alternatively, Nitro also detects Bun automatically if you specify a ",[239,517,518],{},"bunVersion"," property in your ",[239,521,522],{},"vercel.json",[344,524,528],{"className":525,"code":526,"filename":522,"language":527,"meta":350,"style":350},"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",[239,529,530,535,550,560],{"__ignoreMap":350},[354,531,532],{"class":356,"line":357},[354,533,534],{"class":371},"{\n",[354,536,537,541,544,547],{"class":356,"line":375},[354,538,540],{"class":539},"suiK_","  \"$schema\"",[354,542,543],{"class":371},": ",[354,545,546],{"class":381},"\"https://openapi.vercel.sh/vercel.json\"",[354,548,549],{"class":371},",\n",[354,551,552,555,557],{"class":356,"line":392},[354,553,554],{"class":539},"  \"bunVersion\"",[354,556,543],{"class":371},[354,558,559],{"class":381},"\"1.x\"\n",[354,561,562],{"class":356,"line":489},[354,563,564],{"class":371},"}\n",[260,566,568],{"id":567},"queues","Queues",[243,570],{"title":571,"to":572},"Vercel Queues","https://vercel.com/docs/queues",[231,574,575,576,579,580,583],{},"Nitro integrates with ",[254,577,571],{"href":572,"rel":578},[277]," to process messages asynchronously. Define your queue topics in the Nitro config and handle incoming messages with the ",[239,581,582],{},"vercel:queue"," runtime hook.",[344,585,587],{"className":346,"code":586,"filename":348,"language":349,"meta":350,"style":350},"export default defineNitroConfig({\n  vercel: {\n    queues: {\n      triggers: [\n        // Only `topic` is required\n        { topic: \"notifications\" },\n        { topic: \"orders\", retryAfterSeconds: 60, initialDelaySeconds: 5 },\n      ],\n    },\n  },\n});\n",[239,588,589,599,603,608,613,618,629,650,656,662,668],{"__ignoreMap":350},[354,590,591,593,595,597],{"class":356,"line":357},[354,592,361],{"class":360},[354,594,364],{"class":360},[354,596,368],{"class":367},[354,598,372],{"class":371},[354,600,601],{"class":356,"line":375},[354,602,481],{"class":371},[354,604,605],{"class":356,"line":392},[354,606,607],{"class":371},"    queues: {\n",[354,609,610],{"class":356,"line":489},[354,611,612],{"class":371},"      triggers: [\n",[354,614,615],{"class":356,"line":498},[354,616,617],{"class":388},"        // Only `topic` is required\n",[354,619,620,623,626],{"class":356,"line":504},[354,621,622],{"class":371},"        { topic: ",[354,624,625],{"class":381},"\"notifications\"",[354,627,628],{"class":371}," },\n",[354,630,631,633,636,639,642,645,648],{"class":356,"line":510},[354,632,622],{"class":371},[354,634,635],{"class":381},"\"orders\"",[354,637,638],{"class":371},", retryAfterSeconds: ",[354,640,641],{"class":539},"60",[354,643,644],{"class":371},", initialDelaySeconds: ",[354,646,647],{"class":539},"5",[354,649,628],{"class":371},[354,651,653],{"class":356,"line":652},8,[354,654,655],{"class":371},"      ],\n",[354,657,659],{"class":356,"line":658},9,[354,660,661],{"class":371},"    },\n",[354,663,665],{"class":356,"line":664},10,[354,666,667],{"class":371},"  },\n",[354,669,671],{"class":356,"line":670},11,[354,672,673],{"class":371},"});\n",[248,675,676],{},[231,677,678,679,686],{},"The ",[254,680,683],{"href":681,"rel":682},"https://www.npmjs.com/package/@vercel/queue",[277],[239,684,685],{},"@vercel/queue"," package is required when using queues. Install it in your project with your package manager.",[309,688,690],{"id":689},"handling-messages","Handling messages",[231,692,693,694,696,697,700],{},"Use the ",[239,695,582],{}," hook in a ",[254,698,699],{"href":58},"Nitro plugin"," to process incoming queue messages:",[344,702,705],{"className":346,"code":703,"filename":704,"language":349,"meta":350,"style":350},"export default defineNitroPlugin((nitro) => {\n  nitro.hooks.hook(\"vercel:queue\", ({ message, metadata, send }) => {\n    console.log(`[${metadata.topicName}] Message ${metadata.messageId}:`, message);\n  });\n});\n","server/plugins/queues.ts",[239,706,707,732,769,805,810],{"__ignoreMap":350},[354,708,709,711,713,716,719,723,726,729],{"class":356,"line":357},[354,710,361],{"class":360},[354,712,364],{"class":360},[354,714,715],{"class":367}," defineNitroPlugin",[354,717,718],{"class":371},"((",[354,720,722],{"class":721},"sQHwn","nitro",[354,724,725],{"class":371},") ",[354,727,728],{"class":360},"=>",[354,730,731],{"class":371}," {\n",[354,733,734,737,740,743,746,749,752,754,757,759,762,765,767],{"class":356,"line":375},[354,735,736],{"class":371},"  nitro.hooks.",[354,738,739],{"class":367},"hook",[354,741,742],{"class":371},"(",[354,744,745],{"class":381},"\"vercel:queue\"",[354,747,748],{"class":371},", ({ ",[354,750,751],{"class":721},"message",[354,753,385],{"class":371},[354,755,756],{"class":721},"metadata",[354,758,385],{"class":371},[354,760,761],{"class":721},"send",[354,763,764],{"class":371}," }) ",[354,766,728],{"class":360},[354,768,731],{"class":371},[354,770,771,774,777,779,782,784,786,789,792,794,796,799,802],{"class":356,"line":392},[354,772,773],{"class":371},"    console.",[354,775,776],{"class":367},"log",[354,778,742],{"class":371},[354,780,781],{"class":381},"`[${",[354,783,756],{"class":371},[354,785,258],{"class":381},[354,787,788],{"class":371},"topicName",[354,790,791],{"class":381},"}] Message ${",[354,793,756],{"class":371},[354,795,258],{"class":381},[354,797,798],{"class":371},"messageId",[354,800,801],{"class":381},"}:`",[354,803,804],{"class":371},", message);\n",[354,806,807],{"class":356,"line":489},[354,808,809],{"class":371},"  });\n",[354,811,812],{"class":356,"line":498},[354,813,673],{"class":371},[309,815,817],{"id":816},"running-tasks-from-queue-messages","Running tasks from queue messages",[231,819,820,821,461],{},"You can use queue messages to trigger ",[254,822,823],{"href":18},"Nitro tasks",[344,825,827],{"className":346,"code":826,"filename":704,"language":349,"meta":350,"style":350},"import { runTask } from \"nitropack/runtime\";\n\nexport default defineNitroPlugin((nitro) => {\n  nitro.hooks.hook(\"vercel:queue\", async ({ message, metadata }) => {\n    if (metadata.topicName === \"orders\") {\n      await runTask(\"orders:fulfill\", { payload: message });\n    }\n  });\n});\n",[239,828,829,846,852,870,900,917,933,937,941],{"__ignoreMap":350},[354,830,831,834,837,840,843],{"class":356,"line":357},[354,832,833],{"class":360},"import",[354,835,836],{"class":371}," { runTask } ",[354,838,839],{"class":360},"from",[354,841,842],{"class":381}," \"nitropack/runtime\"",[354,844,845],{"class":371},";\n",[354,847,848],{"class":356,"line":375},[354,849,851],{"emptyLinePlaceholder":850},true,"\n",[354,853,854,856,858,860,862,864,866,868],{"class":356,"line":392},[354,855,361],{"class":360},[354,857,364],{"class":360},[354,859,715],{"class":367},[354,861,718],{"class":371},[354,863,722],{"class":721},[354,865,725],{"class":371},[354,867,728],{"class":360},[354,869,731],{"class":371},[354,871,872,874,876,878,880,882,885,888,890,892,894,896,898],{"class":356,"line":489},[354,873,736],{"class":371},[354,875,739],{"class":367},[354,877,742],{"class":371},[354,879,745],{"class":381},[354,881,385],{"class":371},[354,883,884],{"class":360},"async",[354,886,887],{"class":371}," ({ ",[354,889,751],{"class":721},[354,891,385],{"class":371},[354,893,756],{"class":721},[354,895,764],{"class":371},[354,897,728],{"class":360},[354,899,731],{"class":371},[354,901,902,905,908,911,914],{"class":356,"line":498},[354,903,904],{"class":360},"    if",[354,906,907],{"class":371}," (metadata.topicName ",[354,909,910],{"class":360},"===",[354,912,913],{"class":381}," \"orders\"",[354,915,916],{"class":371},") {\n",[354,918,919,922,925,927,930],{"class":356,"line":504},[354,920,921],{"class":360},"      await",[354,923,924],{"class":367}," runTask",[354,926,742],{"class":371},[354,928,929],{"class":381},"\"orders:fulfill\"",[354,931,932],{"class":371},", { payload: message });\n",[354,934,935],{"class":356,"line":510},[354,936,501],{"class":371},[354,938,939],{"class":356,"line":652},[354,940,809],{"class":371},[354,942,943],{"class":356,"line":658},[354,944,673],{"class":371},[309,946,948],{"id":947},"sending-messages","Sending messages",[231,950,693,951,953],{},[239,952,685],{}," package directly to send messages to a topic:",[344,955,958],{"className":346,"code":956,"filename":957,"language":349,"meta":350,"style":350},"import { send } from \"@vercel/queue\";\n\nexport default defineEventHandler(async (event) => {\n  const order = await readBody(event);\n  const { messageId } = await send(\"orders\", order);\n  return { messageId };\n});\n","server/routes/api/orders.post.ts",[239,959,960,974,978,1003,1023,1050,1058],{"__ignoreMap":350},[354,961,962,964,967,969,972],{"class":356,"line":357},[354,963,833],{"class":360},[354,965,966],{"class":371}," { send } ",[354,968,839],{"class":360},[354,970,971],{"class":381}," \"@vercel/queue\"",[354,973,845],{"class":371},[354,975,976],{"class":356,"line":375},[354,977,851],{"emptyLinePlaceholder":850},[354,979,980,982,984,987,989,991,994,997,999,1001],{"class":356,"line":392},[354,981,361],{"class":360},[354,983,364],{"class":360},[354,985,986],{"class":367}," defineEventHandler",[354,988,742],{"class":371},[354,990,884],{"class":360},[354,992,993],{"class":371}," (",[354,995,996],{"class":721},"event",[354,998,725],{"class":371},[354,1000,728],{"class":360},[354,1002,731],{"class":371},[354,1004,1005,1008,1011,1014,1017,1020],{"class":356,"line":489},[354,1006,1007],{"class":360},"  const",[354,1009,1010],{"class":539}," order",[354,1012,1013],{"class":360}," =",[354,1015,1016],{"class":360}," await",[354,1018,1019],{"class":367}," readBody",[354,1021,1022],{"class":371},"(event);\n",[354,1024,1025,1027,1030,1032,1035,1038,1040,1043,1045,1047],{"class":356,"line":498},[354,1026,1007],{"class":360},[354,1028,1029],{"class":371}," { ",[354,1031,798],{"class":539},[354,1033,1034],{"class":371}," } ",[354,1036,1037],{"class":360},"=",[354,1039,1016],{"class":360},[354,1041,1042],{"class":367}," send",[354,1044,742],{"class":371},[354,1046,635],{"class":381},[354,1048,1049],{"class":371},", order);\n",[354,1051,1052,1055],{"class":356,"line":504},[354,1053,1054],{"class":360},"  return",[354,1056,1057],{"class":371}," { messageId };\n",[354,1059,1060],{"class":356,"line":510},[354,1061,673],{"class":371},[260,1063,1065],{"id":1064},"custom-build-output-configuration","Custom build output configuration",[231,1067,1068,1069,1074,1075,457,1078,1080],{},"You can provide additional ",[254,1070,1073],{"href":1071,"rel":1072},"https://vercel.com/docs/build-output-api/v3",[277],"build output configuration"," using ",[239,1076,1077],{},"vercel.config",[239,1079,460],{},". It will be merged with built-in auto-generated config.",[260,1082,1084],{"id":1083},"on-demand-incremental-static-regeneration-isr","On-Demand incremental static regeneration (ISR)",[231,1086,1087],{},"On-demand revalidation allows you to purge the cache for an ISR route whenever you want, foregoing the time interval required with background revalidation.",[231,1089,1090],{},"To revalidate a page on demand:",[268,1092,1093,1111,1215],{},[271,1094,1095,1096],{},"Create an Environment Variable which will store a revalidation secret",[268,1097,1098],{},[271,1099,1100,1101,1104,1105,1110],{},"You can use the command ",[239,1102,1103],{},"openssl rand -base64 32"," or ",[254,1106,1109],{"href":1107,"rel":1108},"https://generate-secret.vercel.app/32",[277],"Generate a Secret"," to generate a random value.",[271,1112,1113,1114],{},"Update your configuration:",[1115,1116,1117,1161],"code-group",{},[344,1118,1120],{"className":346,"code":1119,"filename":348,"language":349,"meta":350,"style":350},"export default defineNitroConfig({\n  vercel: {\n    config: {\n      bypassToken: process.env.VERCEL_BYPASS_TOKEN\n    }\n  }\n})\n",[239,1121,1122,1132,1136,1141,1149,1153,1157],{"__ignoreMap":350},[354,1123,1124,1126,1128,1130],{"class":356,"line":357},[354,1125,361],{"class":360},[354,1127,364],{"class":360},[354,1129,368],{"class":367},[354,1131,372],{"class":371},[354,1133,1134],{"class":356,"line":375},[354,1135,481],{"class":371},[354,1137,1138],{"class":356,"line":392},[354,1139,1140],{"class":371},"    config: {\n",[354,1142,1143,1146],{"class":356,"line":489},[354,1144,1145],{"class":371},"      bypassToken: process.env.",[354,1147,1148],{"class":539},"VERCEL_BYPASS_TOKEN\n",[354,1150,1151],{"class":356,"line":498},[354,1152,501],{"class":371},[354,1154,1155],{"class":356,"line":504},[354,1156,507],{"class":371},[354,1158,1159],{"class":356,"line":510},[354,1160,395],{"class":371},[344,1162,1164],{"className":346,"code":1163,"filename":399,"language":349,"meta":350,"style":350},"export default defineNuxtConfig({\n  nitro: {\n    vercel: {\n      config: {\n        bypassToken: process.env.VERCEL_BYPASS_TOKEN\n      }\n    }\n  }\n})\n",[239,1165,1166,1176,1181,1186,1191,1198,1203,1207,1211],{"__ignoreMap":350},[354,1167,1168,1170,1172,1174],{"class":356,"line":357},[354,1169,361],{"class":360},[354,1171,364],{"class":360},[354,1173,410],{"class":367},[354,1175,372],{"class":371},[354,1177,1178],{"class":356,"line":375},[354,1179,1180],{"class":371},"  nitro: {\n",[354,1182,1183],{"class":356,"line":392},[354,1184,1185],{"class":371},"    vercel: {\n",[354,1187,1188],{"class":356,"line":489},[354,1189,1190],{"class":371},"      config: {\n",[354,1192,1193,1196],{"class":356,"line":498},[354,1194,1195],{"class":371},"        bypassToken: process.env.",[354,1197,1148],{"class":539},[354,1199,1200],{"class":356,"line":504},[354,1201,1202],{"class":371},"      }\n",[354,1204,1205],{"class":356,"line":510},[354,1206,501],{"class":371},[354,1208,1209],{"class":356,"line":652},[354,1210,507],{"class":371},[354,1212,1213],{"class":356,"line":658},[354,1214,395],{"class":371},[271,1216,1217,1218,1221],{},"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: ",[239,1219,1220],{},"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.",[309,1223,1225],{"id":1224},"fine-grained-isr-config-via-route-rules","Fine-grained ISR config via route rules",[231,1227,1228],{},"By default, query paramas are ignored by cache.",[231,1230,1231,1232,1235],{},"You can pass an options object to ",[239,1233,1234],{},"isr"," route rule to configure caching behavior.",[268,1237,1238,1252,1258,1287,1304],{},[271,1239,1240,1243,1244,1247,1248,1251],{},[239,1241,1242],{},"expiration",": Expiration time (in seconds) before the cached asset will be re-generated by invoking the Serverless Function. Setting the value to ",[239,1245,1246],{},"false"," (or ",[239,1249,1250],{},"isr: true"," route rule) means it will never expire.",[271,1253,1254,1257],{},[239,1255,1256],{},"group",": Group number of the asset. Prerender assets with the same group number will all be re-validated at the same time.",[271,1259,1260,1263,1264],{},[239,1261,1262],{},"allowQuery",": List of query string parameter names that will be cached independently.\n",[268,1265,1266,1269,1276],{},[271,1267,1268],{},"If an empty array, query values are not considered for caching.",[271,1270,1271,1272,1275],{},"If ",[239,1273,1274],{},"undefined"," each unique query value is cached independently.",[271,1277,1278,1279,1282,1283,1286],{},"For wildcard ",[239,1280,1281],{},"/**"," route rules, ",[239,1284,1285],{},"url"," is always added",[271,1288,1289,1292,1293,1296,1297,1300,1301,1303],{},[239,1290,1291],{},"passQuery",": When ",[239,1294,1295],{},"true",", the query string will be present on the ",[239,1298,1299],{},"request"," argument passed to the invoked function. The ",[239,1302,1262],{}," filter still applies.",[271,1305,1306,1292,1309,1311,1312],{},[239,1307,1308],{},"exposeErrBody",[239,1310,1295],{},", expose the response body regardless of status code including error status codes. (default ",[239,1313,1246],{},[344,1315,1317],{"className":346,"code":1316,"language":349,"meta":350,"style":350},"export default defineNitroConfig({\n  routeRules: {\n    \"/products/**\": {\n      isr: {\n        allowQuery: [\"q\"],\n        passQuery: true,\n        exposeErrBody: true\n      },\n    },\n  },\n});\n",[239,1318,1319,1329,1334,1342,1347,1358,1367,1375,1380,1384,1388],{"__ignoreMap":350},[354,1320,1321,1323,1325,1327],{"class":356,"line":357},[354,1322,361],{"class":360},[354,1324,364],{"class":360},[354,1326,368],{"class":367},[354,1328,372],{"class":371},[354,1330,1331],{"class":356,"line":375},[354,1332,1333],{"class":371},"  routeRules: {\n",[354,1335,1336,1339],{"class":356,"line":392},[354,1337,1338],{"class":381},"    \"/products/**\"",[354,1340,1341],{"class":371},": {\n",[354,1343,1344],{"class":356,"line":489},[354,1345,1346],{"class":371},"      isr: {\n",[354,1348,1349,1352,1355],{"class":356,"line":498},[354,1350,1351],{"class":371},"        allowQuery: [",[354,1353,1354],{"class":381},"\"q\"",[354,1356,1357],{"class":371},"],\n",[354,1359,1360,1363,1365],{"class":356,"line":504},[354,1361,1362],{"class":371},"        passQuery: ",[354,1364,1295],{"class":539},[354,1366,549],{"class":371},[354,1368,1369,1372],{"class":356,"line":510},[354,1370,1371],{"class":371},"        exposeErrBody: ",[354,1373,1374],{"class":539},"true\n",[354,1376,1377],{"class":356,"line":652},[354,1378,1379],{"class":371},"      },\n",[354,1381,1382],{"class":356,"line":658},[354,1383,661],{"class":371},[354,1385,1386],{"class":356,"line":664},[354,1387,667],{"class":371},[354,1389,1390],{"class":356,"line":670},[354,1391,673],{"class":371},[260,1393,1395],{"id":1394},"vercel-edge-functions","Vercel edge functions",[231,1397,1398,237,1400,1403],{},[234,1399,236],{},[239,1401,1402],{},"vercel_edge"," (deprecated)",[231,1405,1406,1407,258],{},"We recommend migrating to the default Node.js runtime and enabling ",[254,1408,285],{"href":1409,"rel":1410},"https://vercel.com/docs/functions/fluid-compute",[277],[1412,1413,1414],"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 pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .sQHwn, html code.shiki .sQHwn{--shiki-light:#E36209;--shiki-default:#FFAB70;--shiki-dark:#FFAB70}",{"title":350,"searchDepth":375,"depth":375,"links":1416},[1417,1420,1421,1422,1427,1428,1431],{"id":262,"depth":375,"text":263,"children":1418},[1419],{"id":311,"depth":392,"text":312},{"id":323,"depth":375,"text":292},{"id":441,"depth":375,"text":442},{"id":567,"depth":375,"text":568,"children":1423},[1424,1425,1426],{"id":689,"depth":392,"text":690},{"id":816,"depth":392,"text":817},{"id":947,"depth":392,"text":948},{"id":1064,"depth":375,"text":1065},{"id":1083,"depth":375,"text":1084,"children":1429},[1430],{"id":1224,"depth":392,"text":1225},{"id":1394,"depth":375,"text":1395},"Deploy Nitro apps to Vercel.","md",{},{},{"title":208,"description":1432},"kIycNnyIa7m92AOCKLr2KhTbA--aiYf51tY5oMVEtzc",[1439,1441],{"title":204,"path":205,"stem":206,"description":1440,"children":-1},"Deploy Nitro apps to StormKit.",{"title":212,"path":213,"stem":214,"description":1442,"children":-1},"Deploy Nitro apps to Zeabur.",1781015271517]