[{"data":1,"prerenderedAt":1086},["ShallowReactive",2],{"navigation":3,"-guide-plugins":225,"-guide-plugins-surround":1082},[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":57,"body":227,"description":1076,"extension":1077,"meta":1078,"navigation":1079,"path":58,"seo":1080,"stem":59,"__hash__":1081},"content/1.guide/9.plugins.md",{"type":228,"value":229,"toc":1065,"icon":60},"minimark",[230,244,251,256,323,330,408,413,424,428,493,498,507,541,545,549,552,643,647,650,771,775,778,948,952,963,985,1061],[231,232,233,234,238,239,243],"p",{},"Nitro plugins will be ",[235,236,237],"strong",{},"executed once"," during server startup in order to allow extending Nitro's runtime behavior.\nThey receive ",[240,241,242],"code",{},"nitroApp"," context, which can be used to hook into Nitro lifecycle events.",[231,245,246,247,250],{},"Plugins are auto-registered from ",[240,248,249],{},"plugins/"," directory and run synchronously (by order of file name) on the first Nitro initialization.",[231,252,253],{},[235,254,255],{},"Example:",[257,258,264],"pre",{"className":259,"code":260,"filename":261,"language":262,"meta":263,"style":263},"language-ts shiki shiki-themes github-light github-dark github-dark","export default defineNitroPlugin((nitroApp) => {\n  console.log('Nitro plugin', nitroApp)\n})\n","server/plugins/test.ts","ts","",[240,265,266,298,317],{"__ignoreMap":263},[267,268,271,275,278,282,286,289,292,295],"span",{"class":269,"line":270},"line",1,[267,272,274],{"class":273},"so5gQ","export",[267,276,277],{"class":273}," default",[267,279,281],{"class":280},"shcOC"," defineNitroPlugin",[267,283,285],{"class":284},"slsVL","((",[267,287,242],{"class":288},"sQHwn",[267,290,291],{"class":284},") ",[267,293,294],{"class":273},"=>",[267,296,297],{"class":284}," {\n",[267,299,301,304,307,310,314],{"class":269,"line":300},2,[267,302,303],{"class":284},"  console.",[267,305,306],{"class":280},"log",[267,308,309],{"class":284},"(",[267,311,313],{"class":312},"sfrk1","'Nitro plugin'",[267,315,316],{"class":284},", nitroApp)\n",[267,318,320],{"class":269,"line":319},3,[267,321,322],{"class":284},"})\n",[231,324,325,326,329],{},"If you have plugins in another directory, you can use the ",[240,327,328],{},"plugins"," option:",[331,332,333,366],"code-group",{},[257,334,337],{"className":259,"code":335,"filename":336,"language":262,"meta":263,"style":263},"export default defineNitroConfig({\n  plugins: ['my-plugins/hello.ts']\n})\n","nitro.config.ts",[240,338,339,351,362],{"__ignoreMap":263},[267,340,341,343,345,348],{"class":269,"line":270},[267,342,274],{"class":273},[267,344,277],{"class":273},[267,346,347],{"class":280}," defineNitroConfig",[267,349,350],{"class":284},"({\n",[267,352,353,356,359],{"class":269,"line":300},[267,354,355],{"class":284},"  plugins: [",[267,357,358],{"class":312},"'my-plugins/hello.ts'",[267,360,361],{"class":284},"]\n",[267,363,364],{"class":269,"line":319},[267,365,322],{"class":284},[257,367,370],{"className":259,"code":368,"filename":369,"language":262,"meta":263,"style":263},"export default defineNuxtConfig({\n  nitro: {\n    plugins: ['my-plugins/hello.ts']\n  }\n})\n","nuxt.config.ts",[240,371,372,383,388,397,403],{"__ignoreMap":263},[267,373,374,376,378,381],{"class":269,"line":270},[267,375,274],{"class":273},[267,377,277],{"class":273},[267,379,380],{"class":280}," defineNuxtConfig",[267,382,350],{"class":284},[267,384,385],{"class":269,"line":300},[267,386,387],{"class":284},"  nitro: {\n",[267,389,390,393,395],{"class":269,"line":319},[267,391,392],{"class":284},"    plugins: [",[267,394,358],{"class":312},[267,396,361],{"class":284},[267,398,400],{"class":269,"line":399},4,[267,401,402],{"class":284},"  }\n",[267,404,406],{"class":269,"line":405},5,[267,407,322],{"class":284},[409,410,412],"h2",{"id":411},"nitro-runtime-hooks","Nitro runtime hooks",[231,414,415,416,423],{},"You can use Nitro ",[417,418,422],"a",{"href":419,"rel":420},"https://github.com/unjs/hookable",[421],"nofollow","hooks"," to extend the default runtime behaviour of Nitro by registering custom (async or sync) functions to the lifecycle events within plugins.",[231,425,426],{},[235,427,255],{},[257,429,431],{"className":259,"code":430,"language":262,"meta":263,"style":263},"export default defineNitroPlugin((nitro) => {\n  nitro.hooks.hook(\"close\", async () => {\n    // Will run when nitro is being closed\n  });\n})\n",[240,432,433,452,478,484,489],{"__ignoreMap":263},[267,434,435,437,439,441,443,446,448,450],{"class":269,"line":270},[267,436,274],{"class":273},[267,438,277],{"class":273},[267,440,281],{"class":280},[267,442,285],{"class":284},[267,444,445],{"class":288},"nitro",[267,447,291],{"class":284},[267,449,294],{"class":273},[267,451,297],{"class":284},[267,453,454,457,460,462,465,468,471,474,476],{"class":269,"line":300},[267,455,456],{"class":284},"  nitro.hooks.",[267,458,459],{"class":280},"hook",[267,461,309],{"class":284},[267,463,464],{"class":312},"\"close\"",[267,466,467],{"class":284},", ",[267,469,470],{"class":273},"async",[267,472,473],{"class":284}," () ",[267,475,294],{"class":273},[267,477,297],{"class":284},[267,479,480],{"class":269,"line":319},[267,481,483],{"class":482},"sCsY4","    // Will run when nitro is being closed\n",[267,485,486],{"class":269,"line":399},[267,487,488],{"class":284},"  });\n",[267,490,491],{"class":269,"line":405},[267,492,322],{"class":284},[494,495,497],"h3",{"id":496},"available-hooks","Available hooks",[231,499,500,501,506],{},"See the ",[417,502,505],{"href":503,"rel":504},"https://github.com/nitrojs/nitro/blob/v2/src/core/index.ts#L75",[421],"source code"," for list of all available runtime hooks.",[508,509,510,516,521,526,531,536],"ul",{},[511,512,513],"li",{},[240,514,515],{},"\"close\", () => {}",[511,517,518],{},[240,519,520],{},"\"error\", (error, { event? }) => {}",[511,522,523],{},[240,524,525],{},"\"render:response\", (response, { event }) => {}",[511,527,528],{},[240,529,530],{},"\"request\", (event) => {}",[511,532,533],{},[240,534,535],{},"\"beforeResponse\", (event, { body }) => {}",[511,537,538],{},[240,539,540],{},"\"afterResponse\", (event, { body }) => {}",[409,542,544],{"id":543},"examples","Examples",[494,546,548],{"id":547},"capturing-errors","Capturing errors",[231,550,551],{},"You can use plugins to capture all application errors.",[257,553,555],{"className":259,"code":554,"language":262,"meta":263,"style":263},"export default defineNitroPlugin((nitro) => {\n  nitro.hooks.hook(\"error\", async (error, { event }) => {\n    console.error(`${event.path} Application error:`, error)\n  });\n})\n",[240,556,557,575,609,635,639],{"__ignoreMap":263},[267,558,559,561,563,565,567,569,571,573],{"class":269,"line":270},[267,560,274],{"class":273},[267,562,277],{"class":273},[267,564,281],{"class":280},[267,566,285],{"class":284},[267,568,445],{"class":288},[267,570,291],{"class":284},[267,572,294],{"class":273},[267,574,297],{"class":284},[267,576,577,579,581,583,586,588,590,593,596,599,602,605,607],{"class":269,"line":300},[267,578,456],{"class":284},[267,580,459],{"class":280},[267,582,309],{"class":284},[267,584,585],{"class":312},"\"error\"",[267,587,467],{"class":284},[267,589,470],{"class":273},[267,591,592],{"class":284}," (",[267,594,595],{"class":288},"error",[267,597,598],{"class":284},", { ",[267,600,601],{"class":288},"event",[267,603,604],{"class":284}," }) ",[267,606,294],{"class":273},[267,608,297],{"class":284},[267,610,611,614,616,618,621,623,626,629,632],{"class":269,"line":319},[267,612,613],{"class":284},"    console.",[267,615,595],{"class":280},[267,617,309],{"class":284},[267,619,620],{"class":312},"`${",[267,622,601],{"class":284},[267,624,625],{"class":312},".",[267,627,628],{"class":284},"path",[267,630,631],{"class":312},"} Application error:`",[267,633,634],{"class":284},", error)\n",[267,636,637],{"class":269,"line":399},[267,638,488],{"class":284},[267,640,641],{"class":269,"line":405},[267,642,322],{"class":284},[494,644,646],{"id":645},"graceful-shutdown","Graceful shutdown",[231,648,649],{},"You can use plugins to register a hook that resolves when Nitro is closed.",[257,651,653],{"className":259,"code":652,"language":262,"meta":263,"style":263},"export default defineNitroPlugin((nitro) => {\n  nitro.hooks.hookOnce(\"close\", async () => {\n    // Will run when nitro is closed\n    console.log(\"Closing nitro server...\")\n    await new Promise((resolve) => setTimeout(resolve, 500));\n    console.log(\"Task is done!\");\n  });\n})\n",[240,654,655,673,694,699,713,746,761,766],{"__ignoreMap":263},[267,656,657,659,661,663,665,667,669,671],{"class":269,"line":270},[267,658,274],{"class":273},[267,660,277],{"class":273},[267,662,281],{"class":280},[267,664,285],{"class":284},[267,666,445],{"class":288},[267,668,291],{"class":284},[267,670,294],{"class":273},[267,672,297],{"class":284},[267,674,675,677,680,682,684,686,688,690,692],{"class":269,"line":300},[267,676,456],{"class":284},[267,678,679],{"class":280},"hookOnce",[267,681,309],{"class":284},[267,683,464],{"class":312},[267,685,467],{"class":284},[267,687,470],{"class":273},[267,689,473],{"class":284},[267,691,294],{"class":273},[267,693,297],{"class":284},[267,695,696],{"class":269,"line":319},[267,697,698],{"class":482},"    // Will run when nitro is closed\n",[267,700,701,703,705,707,710],{"class":269,"line":399},[267,702,613],{"class":284},[267,704,306],{"class":280},[267,706,309],{"class":284},[267,708,709],{"class":312},"\"Closing nitro server...\"",[267,711,712],{"class":284},")\n",[267,714,715,718,721,725,727,730,732,734,737,740,743],{"class":269,"line":405},[267,716,717],{"class":273},"    await",[267,719,720],{"class":273}," new",[267,722,724],{"class":723},"suiK_"," Promise",[267,726,285],{"class":284},[267,728,729],{"class":288},"resolve",[267,731,291],{"class":284},[267,733,294],{"class":273},[267,735,736],{"class":280}," setTimeout",[267,738,739],{"class":284},"(resolve, ",[267,741,742],{"class":723},"500",[267,744,745],{"class":284},"));\n",[267,747,749,751,753,755,758],{"class":269,"line":748},6,[267,750,613],{"class":284},[267,752,306],{"class":280},[267,754,309],{"class":284},[267,756,757],{"class":312},"\"Task is done!\"",[267,759,760],{"class":284},");\n",[267,762,764],{"class":269,"line":763},7,[267,765,488],{"class":284},[267,767,769],{"class":269,"line":768},8,[267,770,322],{"class":284},[494,772,774],{"id":773},"request-and-response-lifecycle","Request and response lifecycle",[231,776,777],{},"You can use plugins to register a hook that can run on request lifecycle:",[257,779,781],{"className":259,"code":780,"language":262,"meta":263,"style":263},"export default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook(\"request\", (event) => {\n    console.log(\"on request\", event.path);\n  });\n\n  nitroApp.hooks.hook(\"beforeResponse\", (event, { body }) => {\n    console.log(\"on response\", event.path, { body });\n  });\n\n  nitroApp.hooks.hook(\"afterResponse\", (event, { body }) => {\n    console.log(\"on after response\", event.path, { body });\n  });\n});\n",[240,782,783,801,824,838,842,848,874,888,892,897,923,937,942],{"__ignoreMap":263},[267,784,785,787,789,791,793,795,797,799],{"class":269,"line":270},[267,786,274],{"class":273},[267,788,277],{"class":273},[267,790,281],{"class":280},[267,792,285],{"class":284},[267,794,242],{"class":288},[267,796,291],{"class":284},[267,798,294],{"class":273},[267,800,297],{"class":284},[267,802,803,806,808,810,813,816,818,820,822],{"class":269,"line":300},[267,804,805],{"class":284},"  nitroApp.hooks.",[267,807,459],{"class":280},[267,809,309],{"class":284},[267,811,812],{"class":312},"\"request\"",[267,814,815],{"class":284},", (",[267,817,601],{"class":288},[267,819,291],{"class":284},[267,821,294],{"class":273},[267,823,297],{"class":284},[267,825,826,828,830,832,835],{"class":269,"line":319},[267,827,613],{"class":284},[267,829,306],{"class":280},[267,831,309],{"class":284},[267,833,834],{"class":312},"\"on request\"",[267,836,837],{"class":284},", event.path);\n",[267,839,840],{"class":269,"line":399},[267,841,488],{"class":284},[267,843,844],{"class":269,"line":405},[267,845,847],{"emptyLinePlaceholder":846},true,"\n",[267,849,850,852,854,856,859,861,863,865,868,870,872],{"class":269,"line":748},[267,851,805],{"class":284},[267,853,459],{"class":280},[267,855,309],{"class":284},[267,857,858],{"class":312},"\"beforeResponse\"",[267,860,815],{"class":284},[267,862,601],{"class":288},[267,864,598],{"class":284},[267,866,867],{"class":288},"body",[267,869,604],{"class":284},[267,871,294],{"class":273},[267,873,297],{"class":284},[267,875,876,878,880,882,885],{"class":269,"line":763},[267,877,613],{"class":284},[267,879,306],{"class":280},[267,881,309],{"class":284},[267,883,884],{"class":312},"\"on response\"",[267,886,887],{"class":284},", event.path, { body });\n",[267,889,890],{"class":269,"line":768},[267,891,488],{"class":284},[267,893,895],{"class":269,"line":894},9,[267,896,847],{"emptyLinePlaceholder":846},[267,898,900,902,904,906,909,911,913,915,917,919,921],{"class":269,"line":899},10,[267,901,805],{"class":284},[267,903,459],{"class":280},[267,905,309],{"class":284},[267,907,908],{"class":312},"\"afterResponse\"",[267,910,815],{"class":284},[267,912,601],{"class":288},[267,914,598],{"class":284},[267,916,867],{"class":288},[267,918,604],{"class":284},[267,920,294],{"class":273},[267,922,297],{"class":284},[267,924,926,928,930,932,935],{"class":269,"line":925},11,[267,927,613],{"class":284},[267,929,306],{"class":280},[267,931,309],{"class":284},[267,933,934],{"class":312},"\"on after response\"",[267,936,887],{"class":284},[267,938,940],{"class":269,"line":939},12,[267,941,488],{"class":284},[267,943,945],{"class":269,"line":944},13,[267,946,947],{"class":284},"});\n",[494,949,951],{"id":950},"renderer-response","Renderer response",[231,953,954,955,962],{},"You can use plugins to register a hook that modifies the ",[417,956,959],{"href":957,"rel":958},"https://nitro.build/config#renderer",[421],[240,960,961],{},"renderer"," response.",[964,965,966],"note",{},[231,967,968,969,972,973,978,979,984],{},"This ",[235,970,971],{},"only works"," for render handler defined with ",[417,974,976],{"href":957,"rel":975},[421],[240,977,961],{}," and won't be called for other api/server routes.\nIn ",[417,980,983],{"href":981,"rel":982},"https://nuxt.com/",[421],"Nuxt"," this hook will be called for Server-side rendered pages",[257,986,988],{"className":259,"code":987,"language":262,"meta":263,"style":263},"export default defineNitroPlugin((nitro) => {\n\n  nitro.hooks.hook('render:response', (response, { event }) => {\n    // Inspect or Modify the renderer response here\n    console.log(response)\n  })\n})\n",[240,989,990,1008,1012,1038,1043,1052,1057],{"__ignoreMap":263},[267,991,992,994,996,998,1000,1002,1004,1006],{"class":269,"line":270},[267,993,274],{"class":273},[267,995,277],{"class":273},[267,997,281],{"class":280},[267,999,285],{"class":284},[267,1001,445],{"class":288},[267,1003,291],{"class":284},[267,1005,294],{"class":273},[267,1007,297],{"class":284},[267,1009,1010],{"class":269,"line":300},[267,1011,847],{"emptyLinePlaceholder":846},[267,1013,1014,1016,1018,1020,1023,1025,1028,1030,1032,1034,1036],{"class":269,"line":319},[267,1015,456],{"class":284},[267,1017,459],{"class":280},[267,1019,309],{"class":284},[267,1021,1022],{"class":312},"'render:response'",[267,1024,815],{"class":284},[267,1026,1027],{"class":288},"response",[267,1029,598],{"class":284},[267,1031,601],{"class":288},[267,1033,604],{"class":284},[267,1035,294],{"class":273},[267,1037,297],{"class":284},[267,1039,1040],{"class":269,"line":399},[267,1041,1042],{"class":482},"    // Inspect or Modify the renderer response here\n",[267,1044,1045,1047,1049],{"class":269,"line":405},[267,1046,613],{"class":284},[267,1048,306],{"class":280},[267,1050,1051],{"class":284},"(response)\n",[267,1053,1054],{"class":269,"line":748},[267,1055,1056],{"class":284},"  })\n",[267,1058,1059],{"class":269,"line":763},[267,1060,322],{"class":284},[1062,1063,1064],"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 .sQHwn, html code.shiki .sQHwn{--shiki-light:#E36209;--shiki-default:#FFAB70;--shiki-dark:#FFAB70}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 .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}",{"title":263,"searchDepth":300,"depth":300,"links":1066},[1067,1070],{"id":411,"depth":300,"text":412,"children":1068},[1069],{"id":496,"depth":319,"text":497},{"id":543,"depth":300,"text":544,"children":1071},[1072,1073,1074,1075],{"id":547,"depth":319,"text":548},{"id":645,"depth":319,"text":646},{"id":773,"depth":319,"text":774},{"id":950,"depth":319,"text":951},"Use plugins to extend Nitro's runtime behavior.","md",{"icon":60},{"icon":60},{"title":57,"description":1076},"Tfn_YkKQ6Jt3WoxTpEGU4-1vPGkjB6Lk0mesogMChRA",[1083,1084],{"title":52,"path":53,"stem":54,"description":263,"icon":55,"children":-1},{"title":62,"path":63,"stem":64,"description":1085,"icon":65,"children":-1},"Customize and extend Nitro defaults.",1775118355182]