[{"data":1,"prerenderedAt":1024},["ShallowReactive",2],{"navigation":3,"-guide-utils":234,"-guide-utils-surround":1020},[4,81,228],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"Getting Started","/guide","1.guide/0.index",[9,11,16,21,26,31,36,41,46,51,56,61,66,71,76],{"title":5,"path":6,"stem":7,"icon":10},"ph:book-open-duotone",{"title":12,"path":13,"stem":14,"icon":15},"Migration Guide","/guide/migration","1.guide/00.migration","ri:arrow-right-up-line",{"title":17,"path":18,"stem":19,"icon":20},"Server Utils","/guide/utils","1.guide/1.utils","ri:tools-line",{"title":22,"path":23,"stem":24,"icon":25},"Tasks","/guide/tasks","1.guide/10.tasks","codicon:run-all",{"title":27,"path":28,"stem":29,"icon":30},"Server Routes","/guide/routing","1.guide/2.routing","ri:direction-line",{"title":32,"path":33,"stem":34,"icon":35},"WebSocket","/guide/websocket","1.guide/3.websocket","cib:socket-io",{"title":37,"path":38,"stem":39,"icon":40},"KV Storage","/guide/storage","1.guide/4.storage","carbon:datastore",{"title":42,"path":43,"stem":44,"icon":45},"SQL Database","/guide/database","1.guide/5.database","ri:database-2-line",{"title":47,"path":48,"stem":49,"icon":50},"Cache","/guide/cache","1.guide/6.cache","ri:speed-line",{"title":52,"path":53,"stem":54,"icon":55},"Fetch","/guide/fetch","1.guide/7.fetch","ri:global-line",{"title":57,"path":58,"stem":59,"icon":60},"Assets","/guide/assets","1.guide/8.assets","ri:image-2-line",{"title":62,"path":63,"stem":64,"icon":65},"Plugins","/guide/plugins","1.guide/9.plugins","ri:plug-line",{"title":67,"path":68,"stem":69,"icon":70},"Configuration","/guide/configuration","1.guide/97.configuration","ri:settings-3-line",{"title":72,"path":73,"stem":74,"icon":75},"TypeScript","/guide/typescript","1.guide/98.typescript","tabler:brand-typescript",{"title":77,"path":78,"stem":79,"icon":80},"Nightly Channel","/guide/nightly","1.guide/99.nightly","ri:moon-fill",{"title":82,"path":83,"stem":84,"children":85,"icon":87},"Overview","/deploy","2.deploy/0.index",[86,88,92,122,127],{"title":82,"path":83,"stem":84,"icon":87},"ri:upload-cloud-2-line",{"title":89,"path":90,"stem":91,"icon":55},"Edge Workers","/deploy/workers","2.deploy/1.workers",{"title":93,"path":94,"stem":95,"children":96,"page":121},"Runtimes","/deploy/runtimes","2.deploy/10.runtimes",[97,102,106,111,116],{"title":98,"path":99,"stem":100,"icon":101},"Node.js","/deploy/runtimes/node","2.deploy/10.runtimes/1.node","akar-icons:node-fill",{"title":103,"path":104,"stem":105,"icon":25},"Dir","/deploy/runtimes/_dir","2.deploy/10.runtimes/_dir",{"title":107,"path":108,"stem":109,"icon":110},"WinterJS","/deploy/runtimes/_winterjs","2.deploy/10.runtimes/_winterjs","game-icons:cold-heart",{"title":112,"path":113,"stem":114,"icon":115},"Bun","/deploy/runtimes/bun","2.deploy/10.runtimes/bun","simple-icons:bun",{"title":117,"path":118,"stem":119,"icon":120},"Deno","/deploy/runtimes/deno","2.deploy/10.runtimes/deno","simple-icons:deno",false,{"title":123,"path":124,"stem":125,"icon":126},"Custom Preset","/deploy/custom-presets","2.deploy/2.custom-presets","ri:file-code-line",{"title":128,"path":129,"stem":130,"children":131,"page":121},"Providers","/deploy/providers","2.deploy/20.providers",[132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224],{"title":103,"path":133,"stem":134,"icon":135},"/deploy/providers/_dir","2.deploy/20.providers/_dir","tdesign:cloud",{"title":137,"path":138,"stem":139},"Alwaysdata","/deploy/providers/alwaysdata","2.deploy/20.providers/alwaysdata",{"title":141,"path":142,"stem":143},"AWS Lambda","/deploy/providers/aws","2.deploy/20.providers/aws",{"title":145,"path":146,"stem":147},"AWS Amplify","/deploy/providers/aws-amplify","2.deploy/20.providers/aws-amplify",{"title":149,"path":150,"stem":151},"Azure","/deploy/providers/azure","2.deploy/20.providers/azure",{"title":153,"path":154,"stem":155},"Cleavr","/deploy/providers/cleavr","2.deploy/20.providers/cleavr",{"title":157,"path":158,"stem":159},"Cloudflare","/deploy/providers/cloudflare","2.deploy/20.providers/cloudflare",{"title":161,"path":162,"stem":163},"Deno Deploy","/deploy/providers/deno-deploy","2.deploy/20.providers/deno-deploy",{"title":165,"path":166,"stem":167},"DigitalOcean","/deploy/providers/digitalocean","2.deploy/20.providers/digitalocean",{"title":169,"path":170,"stem":171},"Firebase","/deploy/providers/firebase","2.deploy/20.providers/firebase",{"title":173,"path":174,"stem":175},"Flightcontrol","/deploy/providers/flightcontrol","2.deploy/20.providers/flightcontrol",{"title":177,"path":178,"stem":179},"Genezio","/deploy/providers/genezio","2.deploy/20.providers/genezio",{"title":181,"path":182,"stem":183},"GitHub Pages","/deploy/providers/github-pages","2.deploy/20.providers/github-pages",{"title":185,"path":186,"stem":187},"GitLab Pages","/deploy/providers/gitlab-pages","2.deploy/20.providers/gitlab-pages",{"title":189,"path":190,"stem":191},"Heroku","/deploy/providers/heroku","2.deploy/20.providers/heroku",{"title":193,"path":194,"stem":195},"IIS","/deploy/providers/iis","2.deploy/20.providers/iis",{"title":197,"path":198,"stem":199},"Koyeb","/deploy/providers/koyeb","2.deploy/20.providers/koyeb",{"title":201,"path":202,"stem":203},"Netlify","/deploy/providers/netlify","2.deploy/20.providers/netlify",{"title":205,"path":206,"stem":207},"Platform.sh","/deploy/providers/platform-sh","2.deploy/20.providers/platform-sh",{"title":209,"path":210,"stem":211},"Render.com","/deploy/providers/render","2.deploy/20.providers/render",{"title":213,"path":214,"stem":215},"StormKit","/deploy/providers/stormkit","2.deploy/20.providers/stormkit",{"title":217,"path":218,"stem":219},"Vercel","/deploy/providers/vercel","2.deploy/20.providers/vercel",{"title":221,"path":222,"stem":223},"Zeabur","/deploy/providers/zeabur","2.deploy/20.providers/zeabur",{"title":225,"path":226,"stem":227},"Zerops","/deploy/providers/zerops","2.deploy/20.providers/zerops",{"title":229,"path":230,"stem":231,"children":232,"icon":70},"Config","/config","3.config/0.index",[233],{"title":229,"path":230,"stem":231,"icon":70},{"id":235,"title":17,"body":236,"description":1014,"extension":1015,"meta":1016,"navigation":1017,"path":18,"seo":1018,"stem":19,"__hash__":1019},"content/1.guide/1.utils.md",{"type":237,"value":238,"toc":1004,"icon":20},"minimark",[239,244,261,265,282,286,294,304,319,382,389,459,463,466,595,606,622,626,633,640,649,672,676,691,705,712,806,813,1000],[240,241,243],"h2",{"id":242},"auto-imports","Auto imports",[245,246,247,248,252,253,260],"p",{},"When reading the rest of the docs, you might notice that there are no ",[249,250,251],"code",{},"imports"," in examples for using utilities.\nIt is because Nitro uses ",[254,255,259],"a",{"href":256,"rel":257},"https://github.com/unjs/unimport",[258],"nofollow","unimport"," to auto import utilities when used with full tree-shaking support so you don't have to!",[240,262,264],{"id":263},"h3-utils","H3 utils",[245,266,267,268,273,274,277,278,281],{},"Nitro enables all ",[254,269,272],{"href":270,"rel":271},"https://h3.dev/utils",[258],"h3 utils"," as auto imports so you can use ",[249,275,276],{},"defineEventHandler",", ",[249,279,280],{},"readBody",", etc. without manually importing them.",[283,284],"read-more",{"to":270,"title":285},"H3 Docs",[287,288,290,293],"h3",{"id":289},"utils-directory",[249,291,292],{},"utils"," directory",[245,295,296,297,300,301,303],{},"You can add your application specific utils inside ",[249,298,299],{},"server/utils/"," directory and they will be auto-imported when used.\nEvery export in the ",[249,302,292],{}," directory and its subdirectories will become available globally in your application.",[245,305,306,310,311,314,315,318],{},[307,308,309],"strong",{},"Example:"," Create a ",[249,312,313],{},"server/utils/sum.ts"," file where a function ",[249,316,317],{},"useSum"," is exported:",[320,321,326],"pre",{"className":322,"code":323,"filename":313,"language":324,"meta":325,"style":325},"language-ts shiki shiki-themes github-light github-dark github-dark","export function useSum(a: number, b: number) { return a + b }\n","ts","",[249,327,328],{"__ignoreMap":325},[329,330,333,337,340,344,348,351,354,358,360,363,365,367,370,373,376,379],"span",{"class":331,"line":332},"line",1,[329,334,336],{"class":335},"so5gQ","export",[329,338,339],{"class":335}," function",[329,341,343],{"class":342},"shcOC"," useSum",[329,345,347],{"class":346},"slsVL","(",[329,349,254],{"class":350},"sQHwn",[329,352,353],{"class":335},":",[329,355,357],{"class":356},"suiK_"," number",[329,359,277],{"class":346},[329,361,362],{"class":350},"b",[329,364,353],{"class":335},[329,366,357],{"class":356},[329,368,369],{"class":346},") { ",[329,371,372],{"class":335},"return",[329,374,375],{"class":346}," a ",[329,377,378],{"class":335},"+",[329,380,381],{"class":346}," b }\n",[245,383,384,385,388],{},"Use it in your ",[249,386,387],{},"server/routes/index.ts"," file without importing it:",[320,390,392],{"className":322,"code":391,"filename":387,"language":324,"meta":325,"style":325},"export default defineEventHandler(() => {\n  const sum = useSum(1, 2) // auto-imported\n  return { sum }\n})\n",[249,393,394,413,444,453],{"__ignoreMap":325},[329,395,396,398,401,404,407,410],{"class":331,"line":332},[329,397,336],{"class":335},[329,399,400],{"class":335}," default",[329,402,403],{"class":342}," defineEventHandler",[329,405,406],{"class":346},"(() ",[329,408,409],{"class":335},"=>",[329,411,412],{"class":346}," {\n",[329,414,416,419,422,425,427,429,432,434,437,440],{"class":331,"line":415},2,[329,417,418],{"class":335},"  const",[329,420,421],{"class":356}," sum",[329,423,424],{"class":335}," =",[329,426,343],{"class":342},[329,428,347],{"class":346},[329,430,431],{"class":356},"1",[329,433,277],{"class":346},[329,435,436],{"class":356},"2",[329,438,439],{"class":346},") ",[329,441,443],{"class":442},"sCsY4","// auto-imported\n",[329,445,447,450],{"class":331,"line":446},3,[329,448,449],{"class":335},"  return",[329,451,452],{"class":346}," { sum }\n",[329,454,456],{"class":331,"line":455},4,[329,457,458],{"class":346},"})\n",[240,460,462],{"id":461},"nitro-utils","Nitro utils",[245,464,465],{},"Nitro also exposes several built-in utils:",[467,468,469,488,505,515,526,542,556,566,576,585],"ul",{},[470,471,472,480,481],"li",{},[249,473,474,477],{"className":322,"language":324,"style":325},[329,475,476],{"class":342},"defineCachedFunction",[329,478,479],{"class":346},"(fn, options)"," / ",[249,482,483,486],{"className":322,"language":324,"style":325},[329,484,485],{"class":342},"cachedFunction",[329,487,479],{"class":346},[470,489,490,480,498],{},[249,491,492,495],{"className":322,"language":324,"style":325},[329,493,494],{"class":342},"defineCachedEventHandler",[329,496,497],{"class":346},"(handler, options)",[249,499,500,503],{"className":322,"language":324,"style":325},[329,501,502],{"class":342},"cachedEventHandler",[329,504,497],{"class":346},[470,506,507],{},[249,508,509,512],{"className":322,"language":324,"style":325},[329,510,511],{"class":342},"defineRenderHandler",[329,513,514],{"class":346},"(handler)",[470,516,517,525],{},[249,518,519,522],{"className":322,"language":324,"style":325},[329,520,521],{"class":342},"defineRouteMeta",[329,523,524],{"class":346},"(options)"," (experimental)",[470,527,528],{},[249,529,530,533,536,539],{"className":322,"language":324,"style":325},[329,531,532],{"class":342},"useRuntimeConfig",[329,534,535],{"class":346},"(event",[329,537,538],{"class":335},"?",[329,540,541],{"class":346},")",[470,543,544],{},[249,545,546,549,552,554],{"className":322,"language":324,"style":325},[329,547,548],{"class":342},"useStorage",[329,550,551],{"class":346},"(base",[329,553,538],{"class":335},[329,555,541],{"class":346},[470,557,558],{},[249,559,560,563],{"className":322,"language":324,"style":325},[329,561,562],{"class":342},"useNitroApp",[329,564,565],{"class":346},"()",[470,567,568],{},[249,569,570,573],{"className":322,"language":324,"style":325},[329,571,572],{"class":342},"defineNitroPlugin",[329,574,575],{"class":346},"(plugin)",[470,577,578],{},[249,579,580,583],{"className":322,"language":324,"style":325},[329,581,582],{"class":342},"nitroPlugin",[329,584,575],{"class":346},[470,586,587],{},[249,588,589,592],{"className":322,"language":324,"style":325},[329,590,591],{"class":342},"getRouteRules",[329,593,594],{"class":346},"(event)",[283,596,598],{"to":597},"https://github.com/nitrojs/nitro/blob/v2/src/core/config/resolvers/imports.ts#L58",[245,599,600,601,605],{},"Check ",[254,602,604],{"href":597,"rel":603},[258],"the source code"," for list of available Nitro auto imports.",[283,607,608],{"to":73},[245,609,610,611,614,615,618,619,621],{},"The types are auto-generated for global auto-imports when running the ",[249,612,613],{},"prepare"," or ",[249,616,617],{},"dev"," command. See ",[254,620,72],{"href":73}," guide, for IDE support.",[240,623,625],{"id":624},"manual-imports","Manual imports",[245,627,628,629,632],{},"For some edge cases (IDE support and libraries in ",[249,630,631],{},"node_modules",") it is impossible to rely on auto imports.",[245,634,635,636,639],{},"You can explicitly import them from virtual ",[249,637,638],{},"#imports"," file.",[641,642,643],"tip",{},[245,644,645,646,648],{},"\nManually importing from ",[249,647,638],{}," still has benefits of tree-shaking.",[320,650,655],{"className":651,"code":652,"filename":653,"language":654,"meta":325,"style":325},"language-js shiki shiki-themes github-light github-dark github-dark","import { useStorage } from '#imports'\n","server/plugins/test.ts","js",[249,656,657],{"__ignoreMap":325},[329,658,659,662,665,668],{"class":331,"line":332},[329,660,661],{"class":335},"import",[329,663,664],{"class":346}," { useStorage } ",[329,666,667],{"class":335},"from",[329,669,671],{"class":670},"sfrk1"," '#imports'\n",[240,673,675],{"id":674},"async-context-experimental","Async Context (Experimental)",[245,677,678,679,684,685,690],{},"Nitro (2.6+) enables a new server development experience in order to split application logic into smaller \"composable\" utilities that are fully decoupled from each other and can directly access a shared context (request event) without needing it to be passed along. This pattern is inspired from ",[254,680,683],{"href":681,"rel":682},"https://vuejs.org/guide/extras/composition-api-faq.html#why-composition-api",[258],"Vue Composition API"," and powered by ",[254,686,689],{"href":687,"rel":688},"https://github.com/unjs/unctx",[258],"unctx",".",[692,693,694],"note",{},[245,695,696,697,704],{},"This feature is currently supported for Node.js and Bun runtimes and also coming soon to other presets that support ",[254,698,701],{"href":699,"rel":700},"https://nodejs.org/api/async_context.html#class-asynclocalstorage",[258],[249,702,703],{},"AsyncLocalStorage"," interface.",[245,706,707,708,711],{},"In order to enable async context feature, you have to enable ",[249,709,710],{},"asyncContext"," flag:",[713,714,715,757],"code-group",{},[320,716,719],{"className":322,"code":717,"filename":718,"language":324,"meta":325,"style":325},"export default defineNitroConfig({\n  experimental: {\n    asyncContext: true\n  }\n});\n","nitro.config.ts",[249,720,721,733,738,746,751],{"__ignoreMap":325},[329,722,723,725,727,730],{"class":331,"line":332},[329,724,336],{"class":335},[329,726,400],{"class":335},[329,728,729],{"class":342}," defineNitroConfig",[329,731,732],{"class":346},"({\n",[329,734,735],{"class":331,"line":415},[329,736,737],{"class":346},"  experimental: {\n",[329,739,740,743],{"class":331,"line":446},[329,741,742],{"class":346},"    asyncContext: ",[329,744,745],{"class":356},"true\n",[329,747,748],{"class":331,"line":455},[329,749,750],{"class":346},"  }\n",[329,752,754],{"class":331,"line":753},5,[329,755,756],{"class":346},"});\n",[320,758,761],{"className":322,"code":759,"filename":760,"language":324,"meta":325,"style":325},"export default defineNuxtConfig({\n  nitro: {\n    experimental: {\n      asyncContext: true\n    }\n  }\n})\n","nuxt.config.ts",[249,762,763,774,779,784,791,796,801],{"__ignoreMap":325},[329,764,765,767,769,772],{"class":331,"line":332},[329,766,336],{"class":335},[329,768,400],{"class":335},[329,770,771],{"class":342}," defineNuxtConfig",[329,773,732],{"class":346},[329,775,776],{"class":331,"line":415},[329,777,778],{"class":346},"  nitro: {\n",[329,780,781],{"class":331,"line":446},[329,782,783],{"class":346},"    experimental: {\n",[329,785,786,789],{"class":331,"line":455},[329,787,788],{"class":346},"      asyncContext: ",[329,790,745],{"class":356},[329,792,793],{"class":331,"line":753},[329,794,795],{"class":346},"    }\n",[329,797,799],{"class":331,"line":798},6,[329,800,750],{"class":346},[329,802,804],{"class":331,"line":803},7,[329,805,458],{"class":346},[245,807,808,809,812],{},"After enabling this flag, you can use ",[249,810,811],{},"useEvent()"," (auto imported) in any utility or composable to access the request event without manually passing it along:",[713,814,815,912],{},[320,816,819],{"className":322,"code":817,"filename":818,"language":324,"meta":325,"style":325},"// server/routes/index.ts\nexport default defineEventHandler(async () => {\n  const user = await useAuth()\n})\n\n// server/utils/auth.ts\nexport function useAuth() {\n  return useSession(useEvent())\n}\n","with async context",[249,820,821,826,846,864,868,874,879,890,906],{"__ignoreMap":325},[329,822,823],{"class":331,"line":332},[329,824,825],{"class":442},"// server/routes/index.ts\n",[329,827,828,830,832,834,836,839,842,844],{"class":331,"line":415},[329,829,336],{"class":335},[329,831,400],{"class":335},[329,833,403],{"class":342},[329,835,347],{"class":346},[329,837,838],{"class":335},"async",[329,840,841],{"class":346}," () ",[329,843,409],{"class":335},[329,845,412],{"class":346},[329,847,848,850,853,855,858,861],{"class":331,"line":446},[329,849,418],{"class":335},[329,851,852],{"class":356}," user",[329,854,424],{"class":335},[329,856,857],{"class":335}," await",[329,859,860],{"class":342}," useAuth",[329,862,863],{"class":346},"()\n",[329,865,866],{"class":331,"line":455},[329,867,458],{"class":346},[329,869,870],{"class":331,"line":753},[329,871,873],{"emptyLinePlaceholder":872},true,"\n",[329,875,876],{"class":331,"line":798},[329,877,878],{"class":442},"// server/utils/auth.ts\n",[329,880,881,883,885,887],{"class":331,"line":803},[329,882,336],{"class":335},[329,884,339],{"class":335},[329,886,860],{"class":342},[329,888,889],{"class":346},"() {\n",[329,891,893,895,898,900,903],{"class":331,"line":892},8,[329,894,449],{"class":335},[329,896,897],{"class":342}," useSession",[329,899,347],{"class":346},[329,901,902],{"class":342},"useEvent",[329,904,905],{"class":346},"())\n",[329,907,909],{"class":331,"line":908},9,[329,910,911],{"class":346},"}\n",[320,913,916],{"className":322,"code":914,"filename":915,"language":324,"meta":325,"style":325},"// server/routes/index.ts\nexport default defineEventHandler(async (event) => {\n  const user = await useAuth(event)\n})\n\n// server/utils/auth.ts\nexport function useAuth(event) {\n  return useSession(event)\n}\n","without async context",[249,917,918,922,946,961,965,969,973,988,996],{"__ignoreMap":325},[329,919,920],{"class":331,"line":332},[329,921,825],{"class":442},[329,923,924,926,928,930,932,934,937,940,942,944],{"class":331,"line":415},[329,925,336],{"class":335},[329,927,400],{"class":335},[329,929,403],{"class":342},[329,931,347],{"class":346},[329,933,838],{"class":335},[329,935,936],{"class":346}," (",[329,938,939],{"class":350},"event",[329,941,439],{"class":346},[329,943,409],{"class":335},[329,945,412],{"class":346},[329,947,948,950,952,954,956,958],{"class":331,"line":446},[329,949,418],{"class":335},[329,951,852],{"class":356},[329,953,424],{"class":335},[329,955,857],{"class":335},[329,957,860],{"class":342},[329,959,960],{"class":346},"(event)\n",[329,962,963],{"class":331,"line":455},[329,964,458],{"class":346},[329,966,967],{"class":331,"line":753},[329,968,873],{"emptyLinePlaceholder":872},[329,970,971],{"class":331,"line":798},[329,972,878],{"class":442},[329,974,975,977,979,981,983,985],{"class":331,"line":803},[329,976,336],{"class":335},[329,978,339],{"class":335},[329,980,860],{"class":342},[329,982,347],{"class":346},[329,984,939],{"class":350},[329,986,987],{"class":346},") {\n",[329,989,990,992,994],{"class":331,"line":892},[329,991,449],{"class":335},[329,993,897],{"class":342},[329,995,960],{"class":346},[329,997,998],{"class":331,"line":908},[329,999,911],{"class":346},[1001,1002,1003],"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 .suiK_, html code.shiki .suiK_{--shiki-light:#005CC5;--shiki-default:#79B8FF;--shiki-dark:#79B8FF}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 .sfrk1, html code.shiki .sfrk1{--shiki-light:#032F62;--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}",{"title":325,"searchDepth":415,"depth":415,"links":1005},[1006,1007,1011,1012,1013],{"id":242,"depth":415,"text":243},{"id":263,"depth":415,"text":264,"children":1008},[1009],{"id":289,"depth":446,"text":1010},"utils directory",{"id":461,"depth":415,"text":462},{"id":624,"depth":415,"text":625},{"id":674,"depth":415,"text":675},"Enjoy auto-imported server utils and extend with your own utils.","md",{"icon":20},{"icon":20},{"title":17,"description":1014},"-DBvSuSa9YqQvlPjRomb37HmsQqgh_IocDmuzBT_uWE",[1021,1022],{"title":12,"path":13,"stem":14,"description":325,"icon":15,"children":-1},{"title":22,"path":23,"stem":24,"description":1023,"icon":25,"children":-1},"Nitro tasks allow on-off operations in runtime.",1778145697623]