[{"data":1,"prerenderedAt":4596},["ShallowReactive",2],{"$fGCo9l1hMtNdUiA6QzdUX5X3kLqaWcC5t2kdz4LrvCvc":3,"versions":2856,"-blog-shiki-v1":2861,"-blog-shiki-v1-surround":4591},[4,1120,1948,2767],{"title":5,"titleTemplate":6,"icon":7,"path":8,"stem":9,"children":10,"page":108},"Docs",null,"i-lucide-book-marked","/docs/3.x","docs/3.x",[11,109,246,426,907,999,1036,1078],{"title":12,"titleTemplate":13,"icon":14,"path":15,"stem":16,"children":17,"page":108},"Get Started","%s · Get Started with Nuxt","i-lucide-rocket","/docs/3.x/getting-started","docs/3.x/1.getting-started",[18,23,28,33,38,43,48,53,58,63,68,73,78,83,88,93,98,103],{"title":19,"path":20,"stem":21,"titleTemplate":6,"icon":22},"Introduction","/docs/3.x/getting-started/introduction","docs/3.x/1.getting-started/01.introduction","i-lucide-info",{"title":24,"path":25,"stem":26,"titleTemplate":6,"icon":27},"Installation","/docs/3.x/getting-started/installation","docs/3.x/1.getting-started/02.installation","i-lucide-play",{"title":29,"path":30,"stem":31,"titleTemplate":6,"icon":32},"Configuration","/docs/3.x/getting-started/configuration","docs/3.x/1.getting-started/03.configuration","i-lucide-cog",{"title":34,"path":35,"stem":36,"titleTemplate":6,"icon":37},"Views","/docs/3.x/getting-started/views","docs/3.x/1.getting-started/04.views","i-lucide-panels-top-left",{"title":39,"path":40,"stem":41,"titleTemplate":6,"icon":42},"Assets","/docs/3.x/getting-started/assets","docs/3.x/1.getting-started/05.assets","i-lucide-image",{"title":44,"path":45,"stem":46,"titleTemplate":6,"icon":47},"Styling","/docs/3.x/getting-started/styling","docs/3.x/1.getting-started/06.styling","i-lucide-palette",{"title":49,"path":50,"stem":51,"titleTemplate":6,"icon":52},"Routing","/docs/3.x/getting-started/routing","docs/3.x/1.getting-started/07.routing","i-lucide-milestone",{"title":54,"path":55,"stem":56,"titleTemplate":6,"icon":57},"SEO and Meta","/docs/3.x/getting-started/seo-meta","docs/3.x/1.getting-started/08.seo-meta","i-lucide-file-search",{"title":59,"path":60,"stem":61,"titleTemplate":6,"icon":62},"Transitions","/docs/3.x/getting-started/transitions","docs/3.x/1.getting-started/09.transitions","i-lucide-toggle-right",{"title":64,"path":65,"stem":66,"titleTemplate":6,"icon":67},"Data Fetching","/docs/3.x/getting-started/data-fetching","docs/3.x/1.getting-started/10.data-fetching","i-lucide-cable",{"title":69,"path":70,"stem":71,"titleTemplate":6,"icon":72},"State Management","/docs/3.x/getting-started/state-management","docs/3.x/1.getting-started/11.state-management","i-lucide-database",{"title":74,"path":75,"stem":76,"titleTemplate":6,"icon":77},"Error Handling","/docs/3.x/getting-started/error-handling","docs/3.x/1.getting-started/12.error-handling","i-lucide-bug-off",{"title":79,"path":80,"stem":81,"titleTemplate":6,"icon":82},"Server","/docs/3.x/getting-started/server","docs/3.x/1.getting-started/13.server","i-lucide-pc-case",{"title":84,"path":85,"stem":86,"titleTemplate":6,"icon":87},"Layers","/docs/3.x/getting-started/layers","docs/3.x/1.getting-started/14.layers","i-lucide-layers",{"title":89,"path":90,"stem":91,"titleTemplate":6,"icon":92},"Prerendering","/docs/3.x/getting-started/prerendering","docs/3.x/1.getting-started/15.prerendering","i-lucide-file-code-2",{"title":94,"path":95,"stem":96,"titleTemplate":6,"icon":97},"Deployment","/docs/3.x/getting-started/deployment","docs/3.x/1.getting-started/16.deployment","i-lucide-cloud",{"title":99,"path":100,"stem":101,"titleTemplate":6,"icon":102},"Testing","/docs/3.x/getting-started/testing","docs/3.x/1.getting-started/17.testing","i-lucide-circle-check",{"title":104,"path":105,"stem":106,"titleTemplate":6,"icon":107},"Upgrade Guide","/docs/3.x/getting-started/upgrade","docs/3.x/1.getting-started/18.upgrade","i-lucide-circle-arrow-up",false,{"title":110,"titleTemplate":111,"icon":112,"path":113,"stem":114,"children":115,"page":108},"Directory Structure","%s · Nuxt Directory Structure","i-vscode-icons-default-folder","/docs/3.x/directory-structure","docs/3.x/2.directory-structure",[116,121,126,131,136,141,146,151,156,161,165,170,174,179,184,189,194,199,204,209,214,218,223,228,232,236,241],{"title":117,"path":118,"stem":119,"titleTemplate":6,"icon":120},".nuxt","/docs/3.x/directory-structure/nuxt","docs/3.x/2.directory-structure/0.nuxt","i-vscode-icons-folder-type-temp",{"title":122,"path":123,"stem":124,"titleTemplate":6,"icon":125},".output","/docs/3.x/directory-structure/output","docs/3.x/2.directory-structure/0.output","i-vscode-icons-folder-type-package",{"title":127,"path":128,"stem":129,"titleTemplate":6,"icon":130},"assets","/docs/3.x/directory-structure/assets","docs/3.x/2.directory-structure/1.assets","i-vscode-icons-folder-type-asset",{"title":132,"path":133,"stem":134,"titleTemplate":6,"icon":135},"components","/docs/3.x/directory-structure/components","docs/3.x/2.directory-structure/1.components","i-vscode-icons-folder-type-component",{"title":137,"path":138,"stem":139,"titleTemplate":6,"icon":140},"composables","/docs/3.x/directory-structure/composables","docs/3.x/2.directory-structure/1.composables","i-vscode-icons-folder-type-src",{"title":142,"path":143,"stem":144,"titleTemplate":6,"icon":145},"content","/docs/3.x/directory-structure/content","docs/3.x/2.directory-structure/1.content","i-vscode-icons-folder-type-log",{"title":147,"path":148,"stem":149,"titleTemplate":6,"icon":150},"layers","/docs/3.x/directory-structure/layers","docs/3.x/2.directory-structure/1.layers","i-vscode-icons-folder-type-nuxt",{"title":152,"path":153,"stem":154,"titleTemplate":6,"icon":155},"layouts","/docs/3.x/directory-structure/layouts","docs/3.x/2.directory-structure/1.layouts","i-vscode-icons-folder-type-view",{"title":157,"path":158,"stem":159,"titleTemplate":6,"icon":160},"middleware","/docs/3.x/directory-structure/middleware","docs/3.x/2.directory-structure/1.middleware","i-vscode-icons-folder-type-middleware",{"title":162,"path":163,"stem":164,"titleTemplate":6,"icon":150},"modules","/docs/3.x/directory-structure/modules","docs/3.x/2.directory-structure/1.modules",{"title":166,"path":167,"stem":168,"titleTemplate":6,"icon":169},"node_modules","/docs/3.x/directory-structure/node_modules","docs/3.x/2.directory-structure/1.node_modules","i-vscode-icons-folder-type-node",{"title":171,"path":172,"stem":173,"titleTemplate":6,"icon":155},"pages","/docs/3.x/directory-structure/pages","docs/3.x/2.directory-structure/1.pages",{"title":175,"path":176,"stem":177,"titleTemplate":6,"icon":178},"plugins","/docs/3.x/directory-structure/plugins","docs/3.x/2.directory-structure/1.plugins","i-vscode-icons-folder-type-plugin",{"title":180,"path":181,"stem":182,"titleTemplate":6,"icon":183},"public","/docs/3.x/directory-structure/public","docs/3.x/2.directory-structure/1.public","i-vscode-icons-folder-type-public",{"title":185,"path":186,"stem":187,"titleTemplate":6,"icon":188},"server","/docs/3.x/directory-structure/server","docs/3.x/2.directory-structure/1.server","i-vscode-icons-folder-type-server",{"title":190,"path":191,"stem":192,"titleTemplate":6,"icon":193},"shared","/docs/3.x/directory-structure/shared","docs/3.x/2.directory-structure/1.shared","i-vscode-icons-folder-type-shared",{"title":195,"path":196,"stem":197,"titleTemplate":6,"icon":198},"utils","/docs/3.x/directory-structure/utils","docs/3.x/2.directory-structure/1.utils","i-vscode-icons-folder-type-tools",{"title":200,"path":201,"stem":202,"titleTemplate":6,"icon":203},".env","/docs/3.x/directory-structure/env","docs/3.x/2.directory-structure/2.env","i-vscode-icons-file-type-dotenv",{"title":205,"path":206,"stem":207,"titleTemplate":6,"icon":208},".gitignore","/docs/3.x/directory-structure/gitignore","docs/3.x/2.directory-structure/2.gitignore","i-vscode-icons-file-type-git",{"title":210,"path":211,"stem":212,"titleTemplate":6,"icon":213},".nuxtignore","/docs/3.x/directory-structure/nuxtignore","docs/3.x/2.directory-structure/2.nuxtignore","i-vscode-icons-file-type-nuxt",{"title":215,"path":216,"stem":217,"titleTemplate":6,"icon":213},".nuxtrc","/docs/3.x/directory-structure/nuxtrc","docs/3.x/2.directory-structure/2.nuxtrc",{"title":219,"path":220,"stem":221,"titleTemplate":6,"icon":222},"app.vue","/docs/3.x/directory-structure/app","docs/3.x/2.directory-structure/3.app","i-vscode-icons-file-type-vue",{"title":224,"path":225,"stem":226,"titleTemplate":6,"icon":227},"app.config.ts","/docs/3.x/directory-structure/app-config","docs/3.x/2.directory-structure/3.app-config","i-vscode-icons-file-type-light-config",{"title":229,"path":230,"stem":231,"titleTemplate":6,"icon":222},"error.vue","/docs/3.x/directory-structure/error","docs/3.x/2.directory-structure/3.error",{"title":233,"path":234,"stem":235,"titleTemplate":6,"icon":213},"nuxt.config.ts","/docs/3.x/directory-structure/nuxt-config","docs/3.x/2.directory-structure/3.nuxt-config",{"title":237,"path":238,"stem":239,"titleTemplate":6,"icon":240},"package.json","/docs/3.x/directory-structure/package","docs/3.x/2.directory-structure/3.package","i-vscode-icons-file-type-npm",{"title":242,"path":243,"stem":244,"titleTemplate":6,"icon":245},"tsconfig.json","/docs/3.x/directory-structure/tsconfig","docs/3.x/2.directory-structure/3.tsconfig","i-vscode-icons-file-type-tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":249,"stem":250,"children":251,"page":108},"Guide","i-lucide-book-open","/docs/3.x/guide","docs/3.x/3.guide",[252,287,306,321,356,379],{"title":253,"titleTemplate":254,"icon":255,"path":256,"stem":257,"children":258,"page":108},"Key Concepts","%s · Nuxt Concepts","i-lucide-medal","/docs/3.x/guide/concepts","docs/3.x/3.guide/1.concepts",[259,263,267,271,275,279,283],{"title":260,"path":261,"stem":262,"titleTemplate":6},"Rendering Modes","/docs/3.x/guide/concepts/rendering","docs/3.x/3.guide/1.concepts/1.rendering",{"title":264,"path":265,"stem":266,"titleTemplate":6},"Nuxt Lifecycle","/docs/3.x/guide/concepts/nuxt-lifecycle","docs/3.x/3.guide/1.concepts/2.nuxt-lifecycle",{"title":268,"path":269,"stem":270,"titleTemplate":6},"Auto-imports","/docs/3.x/guide/concepts/auto-imports","docs/3.x/3.guide/1.concepts/3.auto-imports",{"title":272,"path":273,"stem":274,"titleTemplate":6},"Server Engine","/docs/3.x/guide/concepts/server-engine","docs/3.x/3.guide/1.concepts/4.server-engine",{"title":276,"path":277,"stem":278,"titleTemplate":6},"Modules","/docs/3.x/guide/concepts/modules","docs/3.x/3.guide/1.concepts/5.modules",{"title":280,"path":281,"stem":282,"titleTemplate":6},"TypeScript","/docs/3.x/guide/concepts/typescript","docs/3.x/3.guide/1.concepts/8.typescript",{"title":284,"path":285,"stem":286,"titleTemplate":6},"Code Style","/docs/3.x/guide/concepts/code-style","docs/3.x/3.guide/1.concepts/9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":291,"stem":292,"children":293,"page":108},"Best Practices","%s · Best Practices","i-lucide-square-check","/docs/3.x/guide/best-practices","docs/3.x/3.guide/2.best-practices",[294,298,302],{"title":295,"path":296,"stem":297,"titleTemplate":6},"Nuxt and hydration","/docs/3.x/guide/best-practices/hydration","docs/3.x/3.guide/2.best-practices/hydration",{"title":299,"path":300,"stem":301,"titleTemplate":6},"Nuxt Performance","/docs/3.x/guide/best-practices/performance","docs/3.x/3.guide/2.best-practices/performance",{"title":303,"path":304,"stem":305,"titleTemplate":6},"Nuxt Plugins","/docs/3.x/guide/best-practices/plugins","docs/3.x/3.guide/2.best-practices/plugins",{"title":307,"titleTemplate":308,"icon":309,"path":310,"stem":311,"children":312,"page":108},"Working with AI","Working with AI: %s","i-lucide-bot","/docs/3.x/guide/ai","docs/3.x/3.guide/3.ai",[313,317],{"title":314,"path":315,"stem":316,"titleTemplate":6},"MCP Server","/docs/3.x/guide/ai/mcp","docs/3.x/3.guide/3.ai/1.mcp",{"title":318,"path":319,"stem":320,"titleTemplate":6},"LLMs.txt","/docs/3.x/guide/ai/llms-txt","docs/3.x/3.guide/3.ai/2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":325,"stem":326,"children":327,"page":108},"Module Author Guide","%s · Nuxt Modules Author Guide","i-lucide-box","/docs/3.x/guide/modules","docs/3.x/3.guide/4.modules",[328,332,336,340,344,348,352],{"title":329,"path":330,"stem":331,"titleTemplate":6},"Create Your First Module","/docs/3.x/guide/modules/getting-started","docs/3.x/3.guide/4.modules/1.getting-started",{"title":333,"path":334,"stem":335,"titleTemplate":6},"Understand Module Structure","/docs/3.x/guide/modules/module-anatomy","docs/3.x/3.guide/4.modules/2.module-anatomy",{"title":337,"path":338,"stem":339,"titleTemplate":6},"Add Plugins, Components & More","/docs/3.x/guide/modules/recipes-basics","docs/3.x/3.guide/4.modules/3.recipes-basics",{"title":341,"path":342,"stem":343,"titleTemplate":6},"Use Hooks & Extend Types","/docs/3.x/guide/modules/recipes-advanced","docs/3.x/3.guide/4.modules/4.recipes-advanced",{"title":345,"path":346,"stem":347,"titleTemplate":6},"Test Your Module","/docs/3.x/guide/modules/testing","docs/3.x/3.guide/4.modules/5.testing",{"title":349,"path":350,"stem":351,"titleTemplate":6},"Follow Best Practices","/docs/3.x/guide/modules/best-practices","docs/3.x/3.guide/4.modules/6.best-practices",{"title":353,"path":354,"stem":355,"titleTemplate":6},"Publish & Share Your Module","/docs/3.x/guide/modules/ecosystem","docs/3.x/3.guide/4.modules/7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":360,"stem":361,"children":362,"page":108},"Recipes","%s · Recipes","i-lucide-cooking-pot","/docs/3.x/guide/recipes","docs/3.x/3.guide/5.recipes",[363,367,371,375],{"title":364,"path":365,"stem":366,"titleTemplate":6},"Custom Routing","/docs/3.x/guide/recipes/custom-routing","docs/3.x/3.guide/5.recipes/1.custom-routing",{"title":368,"path":369,"stem":370,"titleTemplate":6},"Vite Plugins","/docs/3.x/guide/recipes/vite-plugin","docs/3.x/3.guide/5.recipes/2.vite-plugin",{"title":372,"path":373,"stem":374,"titleTemplate":6},"Custom useFetch","/docs/3.x/guide/recipes/custom-usefetch","docs/3.x/3.guide/5.recipes/3.custom-usefetch",{"title":376,"path":377,"stem":378,"titleTemplate":6},"Sessions and Authentication","/docs/3.x/guide/recipes/sessions-and-authentication","docs/3.x/3.guide/5.recipes/4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":383,"stem":384,"children":385,"page":108},"Going Further","%s · Nuxt Advanced","i-lucide-star","/docs/3.x/guide/going-further","docs/3.x/3.guide/6.going-further",[386,390,394,398,402,406,410,414,418,422],{"title":387,"path":388,"stem":389,"titleTemplate":6},"Custom Events","/docs/3.x/guide/going-further/events","docs/3.x/3.guide/6.going-further/1.events",{"title":391,"path":392,"stem":393,"titleTemplate":6},"Experimental Features","/docs/3.x/guide/going-further/experimental-features","docs/3.x/3.guide/6.going-further/1.experimental-features",{"title":395,"path":396,"stem":397,"titleTemplate":6},"Features","/docs/3.x/guide/going-further/features","docs/3.x/3.guide/6.going-further/1.features",{"title":399,"path":400,"stem":401,"titleTemplate":6},"Runtime Config","/docs/3.x/guide/going-further/runtime-config","docs/3.x/3.guide/6.going-further/10.runtime-config",{"title":403,"path":404,"stem":405,"titleTemplate":6},"Nightly Release Channel","/docs/3.x/guide/going-further/nightly-release-channel","docs/3.x/3.guide/6.going-further/11.nightly-release-channel",{"title":407,"path":408,"stem":409,"titleTemplate":6},"Lifecycle Hooks","/docs/3.x/guide/going-further/hooks","docs/3.x/3.guide/6.going-further/2.hooks",{"title":411,"path":412,"stem":413,"titleTemplate":6},"Nuxt Kit","/docs/3.x/guide/going-further/kit","docs/3.x/3.guide/6.going-further/4.kit",{"title":415,"path":416,"stem":417,"titleTemplate":6},"NuxtApp","/docs/3.x/guide/going-further/nuxt-app","docs/3.x/3.guide/6.going-further/6.nuxt-app",{"title":419,"path":420,"stem":421,"titleTemplate":6},"Authoring Nuxt Layers","/docs/3.x/guide/going-further/layers","docs/3.x/3.guide/6.going-further/7.layers",{"title":423,"path":424,"stem":425,"titleTemplate":6},"Debugging","/docs/3.x/guide/going-further/debugging","docs/3.x/3.guide/6.going-further/9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":430,"stem":431,"children":432,"page":108},"API","%s · Nuxt API","i-lucide-code-xml","/docs/3.x/api","docs/3.x/4.api",[433,499,622,745,816,889,902],{"title":434,"titleTemplate":435,"icon":324,"path":436,"stem":437,"children":438,"page":108},"Components","%s · Nuxt Components","/docs/3.x/api/components","docs/3.x/4.api/1.components",[439,443,447,451,455,459,463,467,471,475,479,483,487,491,495],{"title":440,"path":441,"stem":442,"titleTemplate":6},"\u003CClientOnly>","/docs/3.x/api/components/client-only","docs/3.x/4.api/1.components/1.client-only",{"title":444,"path":445,"stem":446,"titleTemplate":6},"\u003CDevOnly>","/docs/3.x/api/components/dev-only","docs/3.x/4.api/1.components/1.dev-only",{"title":448,"path":449,"stem":450,"titleTemplate":6},"\u003CNuxtClientFallback>","/docs/3.x/api/components/nuxt-client-fallback","docs/3.x/4.api/1.components/1.nuxt-client-fallback",{"title":452,"path":453,"stem":454,"titleTemplate":6},"\u003CNuxtPicture>","/docs/3.x/api/components/nuxt-picture","docs/3.x/4.api/1.components/10.nuxt-picture",{"title":456,"path":457,"stem":458,"titleTemplate":6},"\u003CTeleport>","/docs/3.x/api/components/teleports","docs/3.x/4.api/1.components/11.teleports",{"title":460,"path":461,"stem":462,"titleTemplate":6},"\u003CNuxtRouteAnnouncer>","/docs/3.x/api/components/nuxt-route-announcer","docs/3.x/4.api/1.components/12.nuxt-route-announcer",{"title":464,"path":465,"stem":466,"titleTemplate":6},"\u003CNuxtTime>","/docs/3.x/api/components/nuxt-time","docs/3.x/4.api/1.components/13.nuxt-time",{"title":468,"path":469,"stem":470,"titleTemplate":6},"\u003CNuxtPage>","/docs/3.x/api/components/nuxt-page","docs/3.x/4.api/1.components/2.nuxt-page",{"title":472,"path":473,"stem":474,"titleTemplate":6},"\u003CNuxtLayout>","/docs/3.x/api/components/nuxt-layout","docs/3.x/4.api/1.components/3.nuxt-layout",{"title":476,"path":477,"stem":478,"titleTemplate":6},"\u003CNuxtLink>","/docs/3.x/api/components/nuxt-link","docs/3.x/4.api/1.components/4.nuxt-link",{"title":480,"path":481,"stem":482,"titleTemplate":6},"\u003CNuxtLoadingIndicator>","/docs/3.x/api/components/nuxt-loading-indicator","docs/3.x/4.api/1.components/5.nuxt-loading-indicator",{"title":484,"path":485,"stem":486,"titleTemplate":6},"\u003CNuxtErrorBoundary>","/docs/3.x/api/components/nuxt-error-boundary","docs/3.x/4.api/1.components/6.nuxt-error-boundary",{"title":488,"path":489,"stem":490,"titleTemplate":6},"\u003CNuxtWelcome>","/docs/3.x/api/components/nuxt-welcome","docs/3.x/4.api/1.components/7.nuxt-welcome",{"title":492,"path":493,"stem":494,"titleTemplate":6},"\u003CNuxtIsland>","/docs/3.x/api/components/nuxt-island","docs/3.x/4.api/1.components/8.nuxt-island",{"title":496,"path":497,"stem":498,"titleTemplate":6},"\u003CNuxtImg>","/docs/3.x/api/components/nuxt-img","docs/3.x/4.api/1.components/9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":503,"stem":504,"children":505,"page":108},"Composables","%s · Nuxt Composables","i-lucide-arrow-left-right","/docs/3.x/api/composables","docs/3.x/4.api/2.composables",[506,510,514,518,522,526,530,534,538,542,546,550,554,558,562,566,570,574,578,582,586,590,594,598,602,606,610,614,618],{"title":507,"path":508,"stem":509,"titleTemplate":6},"onPrehydrate","/docs/3.x/api/composables/on-prehydrate","docs/3.x/4.api/2.composables/on-prehydrate",{"title":511,"path":512,"stem":513,"titleTemplate":6},"useAppConfig","/docs/3.x/api/composables/use-app-config","docs/3.x/4.api/2.composables/use-app-config",{"title":515,"path":516,"stem":517,"titleTemplate":6},"useAsyncData","/docs/3.x/api/composables/use-async-data","docs/3.x/4.api/2.composables/use-async-data",{"title":519,"path":520,"stem":521,"titleTemplate":6},"useCookie","/docs/3.x/api/composables/use-cookie","docs/3.x/4.api/2.composables/use-cookie",{"title":523,"path":524,"stem":525,"titleTemplate":6},"useError","/docs/3.x/api/composables/use-error","docs/3.x/4.api/2.composables/use-error",{"title":527,"path":528,"stem":529,"titleTemplate":6},"useFetch","/docs/3.x/api/composables/use-fetch","docs/3.x/4.api/2.composables/use-fetch",{"title":531,"path":532,"stem":533,"titleTemplate":6},"useHead","/docs/3.x/api/composables/use-head","docs/3.x/4.api/2.composables/use-head",{"title":535,"path":536,"stem":537,"titleTemplate":6},"useHeadSafe","/docs/3.x/api/composables/use-head-safe","docs/3.x/4.api/2.composables/use-head-safe",{"title":539,"path":540,"stem":541,"titleTemplate":6},"useHydration","/docs/3.x/api/composables/use-hydration","docs/3.x/4.api/2.composables/use-hydration",{"title":543,"path":544,"stem":545,"titleTemplate":6},"useLazyAsyncData","/docs/3.x/api/composables/use-lazy-async-data","docs/3.x/4.api/2.composables/use-lazy-async-data",{"title":547,"path":548,"stem":549,"titleTemplate":6},"useLazyFetch","/docs/3.x/api/composables/use-lazy-fetch","docs/3.x/4.api/2.composables/use-lazy-fetch",{"title":551,"path":552,"stem":553,"titleTemplate":6},"useLoadingIndicator","/docs/3.x/api/composables/use-loading-indicator","docs/3.x/4.api/2.composables/use-loading-indicator",{"title":555,"path":556,"stem":557,"titleTemplate":6},"useNuxtApp","/docs/3.x/api/composables/use-nuxt-app","docs/3.x/4.api/2.composables/use-nuxt-app",{"title":559,"path":560,"stem":561,"titleTemplate":6},"useNuxtData","/docs/3.x/api/composables/use-nuxt-data","docs/3.x/4.api/2.composables/use-nuxt-data",{"title":563,"path":564,"stem":565,"titleTemplate":6},"usePreviewMode","/docs/3.x/api/composables/use-preview-mode","docs/3.x/4.api/2.composables/use-preview-mode",{"title":567,"path":568,"stem":569,"titleTemplate":6},"useRequestEvent","/docs/3.x/api/composables/use-request-event","docs/3.x/4.api/2.composables/use-request-event",{"title":571,"path":572,"stem":573,"titleTemplate":6},"useRequestFetch","/docs/3.x/api/composables/use-request-fetch","docs/3.x/4.api/2.composables/use-request-fetch",{"title":575,"path":576,"stem":577,"titleTemplate":6},"useRequestHeader","/docs/3.x/api/composables/use-request-header","docs/3.x/4.api/2.composables/use-request-header",{"title":579,"path":580,"stem":581,"titleTemplate":6},"useRequestHeaders","/docs/3.x/api/composables/use-request-headers","docs/3.x/4.api/2.composables/use-request-headers",{"title":583,"path":584,"stem":585,"titleTemplate":6},"useRequestURL","/docs/3.x/api/composables/use-request-url","docs/3.x/4.api/2.composables/use-request-url",{"title":587,"path":588,"stem":589,"titleTemplate":6},"useResponseHeader","/docs/3.x/api/composables/use-response-header","docs/3.x/4.api/2.composables/use-response-header",{"title":591,"path":592,"stem":593,"titleTemplate":6},"useRoute","/docs/3.x/api/composables/use-route","docs/3.x/4.api/2.composables/use-route",{"title":595,"path":596,"stem":597,"titleTemplate":6},"useRouteAnnouncer","/docs/3.x/api/composables/use-route-announcer","docs/3.x/4.api/2.composables/use-route-announcer",{"title":599,"path":600,"stem":601,"titleTemplate":6},"useRouter","/docs/3.x/api/composables/use-router","docs/3.x/4.api/2.composables/use-router",{"title":603,"path":604,"stem":605,"titleTemplate":6},"useRuntimeConfig","/docs/3.x/api/composables/use-runtime-config","docs/3.x/4.api/2.composables/use-runtime-config",{"title":607,"path":608,"stem":609,"titleTemplate":6},"useRuntimeHook","/docs/3.x/api/composables/use-runtime-hook","docs/3.x/4.api/2.composables/use-runtime-hook",{"title":611,"path":612,"stem":613,"titleTemplate":6},"useSeoMeta","/docs/3.x/api/composables/use-seo-meta","docs/3.x/4.api/2.composables/use-seo-meta",{"title":615,"path":616,"stem":617,"titleTemplate":6},"useServerSeoMeta","/docs/3.x/api/composables/use-server-seo-meta","docs/3.x/4.api/2.composables/use-server-seo-meta",{"title":619,"path":620,"stem":621,"titleTemplate":6},"useState","/docs/3.x/api/composables/use-state","docs/3.x/4.api/2.composables/use-state",{"title":623,"titleTemplate":624,"icon":625,"path":626,"stem":627,"children":628,"page":108},"Utils","%s · Nuxt Utils","i-lucide-square-function","/docs/3.x/api/utils","docs/3.x/4.api/3.utils",[629,633,637,641,645,649,653,657,661,665,669,673,677,681,685,689,693,697,701,705,709,713,717,721,725,729,733,737,741],{"title":630,"path":631,"stem":632,"titleTemplate":6},"$fetch","/docs/3.x/api/utils/dollarfetch","docs/3.x/4.api/3.utils/$fetch",{"title":634,"path":635,"stem":636,"titleTemplate":6},"abortNavigation","/docs/3.x/api/utils/abort-navigation","docs/3.x/4.api/3.utils/abort-navigation",{"title":638,"path":639,"stem":640,"titleTemplate":6},"addRouteMiddleware","/docs/3.x/api/utils/add-route-middleware","docs/3.x/4.api/3.utils/add-route-middleware",{"title":642,"path":643,"stem":644,"titleTemplate":6},"callOnce","/docs/3.x/api/utils/call-once","docs/3.x/4.api/3.utils/call-once",{"title":646,"path":647,"stem":648,"titleTemplate":6},"clearError","/docs/3.x/api/utils/clear-error","docs/3.x/4.api/3.utils/clear-error",{"title":650,"path":651,"stem":652,"titleTemplate":6},"clearNuxtData","/docs/3.x/api/utils/clear-nuxt-data","docs/3.x/4.api/3.utils/clear-nuxt-data",{"title":654,"path":655,"stem":656,"titleTemplate":6},"clearNuxtState","/docs/3.x/api/utils/clear-nuxt-state","docs/3.x/4.api/3.utils/clear-nuxt-state",{"title":658,"path":659,"stem":660,"titleTemplate":6},"createError","/docs/3.x/api/utils/create-error","docs/3.x/4.api/3.utils/create-error",{"title":662,"path":663,"stem":664,"titleTemplate":6},"defineLazyHydrationComponent","/docs/3.x/api/utils/define-lazy-hydration-component","docs/3.x/4.api/3.utils/define-lazy-hydration-component",{"title":666,"path":667,"stem":668,"titleTemplate":6},"defineNuxtComponent","/docs/3.x/api/utils/define-nuxt-component","docs/3.x/4.api/3.utils/define-nuxt-component",{"title":670,"path":671,"stem":672,"titleTemplate":6},"defineNuxtPlugin","/docs/3.x/api/utils/define-nuxt-plugin","docs/3.x/4.api/3.utils/define-nuxt-plugin",{"title":674,"path":675,"stem":676,"titleTemplate":6},"defineNuxtRouteMiddleware","/docs/3.x/api/utils/define-nuxt-route-middleware","docs/3.x/4.api/3.utils/define-nuxt-route-middleware",{"title":678,"path":679,"stem":680,"titleTemplate":6},"definePageMeta","/docs/3.x/api/utils/define-page-meta","docs/3.x/4.api/3.utils/define-page-meta",{"title":682,"path":683,"stem":684,"titleTemplate":6},"defineRouteRules","/docs/3.x/api/utils/define-route-rules","docs/3.x/4.api/3.utils/define-route-rules",{"title":686,"path":687,"stem":688,"titleTemplate":6},"navigateTo","/docs/3.x/api/utils/navigate-to","docs/3.x/4.api/3.utils/navigate-to",{"title":690,"path":691,"stem":692,"titleTemplate":6},"onBeforeRouteLeave","/docs/3.x/api/utils/on-before-route-leave","docs/3.x/4.api/3.utils/on-before-route-leave",{"title":694,"path":695,"stem":696,"titleTemplate":6},"onBeforeRouteUpdate","/docs/3.x/api/utils/on-before-route-update","docs/3.x/4.api/3.utils/on-before-route-update",{"title":698,"path":699,"stem":700,"titleTemplate":6},"onNuxtReady","/docs/3.x/api/utils/on-nuxt-ready","docs/3.x/4.api/3.utils/on-nuxt-ready",{"title":702,"path":703,"stem":704,"titleTemplate":6},"prefetchComponents","/docs/3.x/api/utils/prefetch-components","docs/3.x/4.api/3.utils/prefetch-components",{"title":706,"path":707,"stem":708,"titleTemplate":6},"preloadComponents","/docs/3.x/api/utils/preload-components","docs/3.x/4.api/3.utils/preload-components",{"title":710,"path":711,"stem":712,"titleTemplate":6},"preloadRouteComponents","/docs/3.x/api/utils/preload-route-components","docs/3.x/4.api/3.utils/preload-route-components",{"title":714,"path":715,"stem":716,"titleTemplate":6},"prerenderRoutes","/docs/3.x/api/utils/prerender-routes","docs/3.x/4.api/3.utils/prerender-routes",{"title":718,"path":719,"stem":720,"titleTemplate":6},"refreshCookie","/docs/3.x/api/utils/refresh-cookie","docs/3.x/4.api/3.utils/refresh-cookie",{"title":722,"path":723,"stem":724,"titleTemplate":6},"refreshNuxtData","/docs/3.x/api/utils/refresh-nuxt-data","docs/3.x/4.api/3.utils/refresh-nuxt-data",{"title":726,"path":727,"stem":728,"titleTemplate":6},"reloadNuxtApp","/docs/3.x/api/utils/reload-nuxt-app","docs/3.x/4.api/3.utils/reload-nuxt-app",{"title":730,"path":731,"stem":732,"titleTemplate":6},"setPageLayout","/docs/3.x/api/utils/set-page-layout","docs/3.x/4.api/3.utils/set-page-layout",{"title":734,"path":735,"stem":736,"titleTemplate":6},"setResponseStatus","/docs/3.x/api/utils/set-response-status","docs/3.x/4.api/3.utils/set-response-status",{"title":738,"path":739,"stem":740,"titleTemplate":6},"showError","/docs/3.x/api/utils/show-error","docs/3.x/4.api/3.utils/show-error",{"title":742,"path":743,"stem":744,"titleTemplate":6},"updateAppConfig","/docs/3.x/api/utils/update-app-config","docs/3.x/4.api/3.utils/update-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":749,"stem":750,"children":751,"page":108},"Commands","%s · Nuxt Commands","i-lucide-square-terminal","/docs/3.x/api/commands","docs/3.x/4.api/4.commands",[752,756,760,764,768,772,776,780,784,788,792,796,800,804,808,812],{"title":753,"path":754,"stem":755,"titleTemplate":6},"nuxt add","/docs/3.x/api/commands/add","docs/3.x/4.api/4.commands/add",{"title":757,"path":758,"stem":759,"titleTemplate":6},"nuxt analyze","/docs/3.x/api/commands/analyze","docs/3.x/4.api/4.commands/analyze",{"title":761,"path":762,"stem":763,"titleTemplate":6},"nuxt build","/docs/3.x/api/commands/build","docs/3.x/4.api/4.commands/build",{"title":765,"path":766,"stem":767,"titleTemplate":6},"nuxt build-module","/docs/3.x/api/commands/build-module","docs/3.x/4.api/4.commands/build-module",{"title":769,"path":770,"stem":771,"titleTemplate":6},"nuxt cleanup","/docs/3.x/api/commands/cleanup","docs/3.x/4.api/4.commands/cleanup",{"title":773,"path":774,"stem":775,"titleTemplate":6},"nuxt dev","/docs/3.x/api/commands/dev","docs/3.x/4.api/4.commands/dev",{"title":777,"path":778,"stem":779,"titleTemplate":6},"nuxt devtools","/docs/3.x/api/commands/devtools","docs/3.x/4.api/4.commands/devtools",{"title":781,"path":782,"stem":783,"titleTemplate":6},"nuxt generate","/docs/3.x/api/commands/generate","docs/3.x/4.api/4.commands/generate",{"title":785,"path":786,"stem":787,"titleTemplate":6},"nuxt info","/docs/3.x/api/commands/info","docs/3.x/4.api/4.commands/info",{"title":789,"path":790,"stem":791,"titleTemplate":6},"create nuxt","/docs/3.x/api/commands/init","docs/3.x/4.api/4.commands/init",{"title":793,"path":794,"stem":795,"titleTemplate":6},"nuxt module","/docs/3.x/api/commands/module","docs/3.x/4.api/4.commands/module",{"title":797,"path":798,"stem":799,"titleTemplate":6},"nuxt prepare","/docs/3.x/api/commands/prepare","docs/3.x/4.api/4.commands/prepare",{"title":801,"path":802,"stem":803,"titleTemplate":6},"nuxt preview","/docs/3.x/api/commands/preview","docs/3.x/4.api/4.commands/preview",{"title":805,"path":806,"stem":807,"titleTemplate":6},"nuxt test","/docs/3.x/api/commands/test","docs/3.x/4.api/4.commands/test",{"title":809,"path":810,"stem":811,"titleTemplate":6},"nuxt typecheck","/docs/3.x/api/commands/typecheck","docs/3.x/4.api/4.commands/typecheck",{"title":813,"path":814,"stem":815,"titleTemplate":6},"nuxt upgrade","/docs/3.x/api/commands/upgrade","docs/3.x/4.api/4.commands/upgrade",{"title":411,"titleTemplate":817,"icon":818,"path":819,"stem":820,"children":821,"page":108},"%s · Nuxt Kit","i-lucide-package","/docs/3.x/api/kit","docs/3.x/4.api/5.kit",[822,825,828,832,836,840,844,848,852,855,859,863,866,869,873,877,881,885],{"title":276,"path":823,"stem":824,"titleTemplate":6},"/docs/3.x/api/kit/modules","docs/3.x/4.api/5.kit/1.modules",{"title":399,"path":826,"stem":827,"titleTemplate":6},"/docs/3.x/api/kit/runtime-config","docs/3.x/4.api/5.kit/10.runtime-config",{"title":829,"path":830,"stem":831,"titleTemplate":6},"Templates","/docs/3.x/api/kit/templates","docs/3.x/4.api/5.kit/10.templates",{"title":833,"path":834,"stem":835,"titleTemplate":6},"Nitro","/docs/3.x/api/kit/nitro","docs/3.x/4.api/5.kit/11.nitro",{"title":837,"path":838,"stem":839,"titleTemplate":6},"Resolving","/docs/3.x/api/kit/resolving","docs/3.x/4.api/5.kit/12.resolving",{"title":841,"path":842,"stem":843,"titleTemplate":6},"Logging","/docs/3.x/api/kit/logging","docs/3.x/4.api/5.kit/13.logging",{"title":845,"path":846,"stem":847,"titleTemplate":6},"Builder","/docs/3.x/api/kit/builder","docs/3.x/4.api/5.kit/14.builder",{"title":849,"path":850,"stem":851,"titleTemplate":6},"Examples","/docs/3.x/api/kit/examples","docs/3.x/4.api/5.kit/15.examples",{"title":84,"path":853,"stem":854,"titleTemplate":6},"/docs/3.x/api/kit/layers","docs/3.x/4.api/5.kit/16.layers",{"title":856,"path":857,"stem":858,"titleTemplate":6},"Programmatic Usage","/docs/3.x/api/kit/programmatic","docs/3.x/4.api/5.kit/2.programmatic",{"title":860,"path":861,"stem":862,"titleTemplate":6},"Compatibility","/docs/3.x/api/kit/compatibility","docs/3.x/4.api/5.kit/3.compatibility",{"title":268,"path":864,"stem":865,"titleTemplate":6},"/docs/3.x/api/kit/autoimports","docs/3.x/4.api/5.kit/4.autoimports",{"title":434,"path":867,"stem":868,"titleTemplate":6},"/docs/3.x/api/kit/components","docs/3.x/4.api/5.kit/5.components",{"title":870,"path":871,"stem":872,"titleTemplate":6},"Context","/docs/3.x/api/kit/context","docs/3.x/4.api/5.kit/6.context",{"title":874,"path":875,"stem":876,"titleTemplate":6},"Pages","/docs/3.x/api/kit/pages","docs/3.x/4.api/5.kit/7.pages",{"title":878,"path":879,"stem":880,"titleTemplate":6},"Layout","/docs/3.x/api/kit/layout","docs/3.x/4.api/5.kit/8.layout",{"title":882,"path":883,"stem":884,"titleTemplate":6},"Head","/docs/3.x/api/kit/head","docs/3.x/4.api/5.kit/9.head",{"title":886,"path":887,"stem":888,"titleTemplate":6},"Plugins","/docs/3.x/api/kit/plugins","docs/3.x/4.api/5.kit/9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":892,"stem":893,"children":894,"page":108},"Advanced","i-lucide-brain","/docs/3.x/api/advanced","docs/3.x/4.api/6.advanced",[895,898],{"title":407,"path":896,"stem":897,"titleTemplate":6},"/docs/3.x/api/advanced/hooks","docs/3.x/4.api/6.advanced/1.hooks",{"title":899,"path":900,"stem":901,"titleTemplate":6},"Import meta","/docs/3.x/api/advanced/import-meta","docs/3.x/4.api/6.advanced/2.import-meta",{"title":903,"path":904,"stem":905,"titleTemplate":906,"icon":32},"Nuxt Configuration","/docs/3.x/api/nuxt-config","docs/3.x/4.api/6.nuxt-config","%s",{"title":849,"titleTemplate":908,"icon":909,"path":910,"stem":911,"children":912,"page":108},"%s · Nuxt Examples","i-lucide-app-window-mac","/docs/3.x/examples","docs/3.x/4.examples",[913,917,939,954,990],{"title":914,"path":915,"stem":916,"titleTemplate":6},"Hello World","/docs/3.x/examples/hello-world","docs/3.x/4.examples/0.hello-world",{"title":395,"path":918,"stem":919,"children":920,"page":108},"/docs/3.x/examples/features","docs/3.x/4.examples/1.features",[921,925,928,931,935],{"title":922,"path":923,"stem":924,"titleTemplate":6},"Auto Imports","/docs/3.x/examples/features/auto-imports","docs/3.x/4.examples/1.features/1.auto-imports",{"title":64,"path":926,"stem":927,"titleTemplate":6},"/docs/3.x/examples/features/data-fetching","docs/3.x/4.examples/1.features/2.data-fetching",{"title":69,"path":929,"stem":930,"titleTemplate":6},"/docs/3.x/examples/features/state-management","docs/3.x/4.examples/1.features/3.state-management",{"title":932,"path":933,"stem":934,"titleTemplate":6},"Meta Tags","/docs/3.x/examples/features/meta-tags","docs/3.x/4.examples/1.features/4.meta-tags",{"title":936,"path":937,"stem":938,"titleTemplate":6},"Layouts","/docs/3.x/examples/features/layouts","docs/3.x/4.examples/1.features/5.layouts",{"title":49,"path":940,"stem":941,"children":942,"page":108},"/docs/3.x/examples/routing","docs/3.x/4.examples/2.routing",[943,947,950],{"title":944,"path":945,"stem":946,"titleTemplate":6},"Middleware","/docs/3.x/examples/routing/middleware","docs/3.x/4.examples/2.routing/middleware",{"title":874,"path":948,"stem":949,"titleTemplate":6},"/docs/3.x/examples/routing/pages","docs/3.x/4.examples/2.routing/pages",{"title":951,"path":952,"stem":953,"titleTemplate":6},"Universal Router","/docs/3.x/examples/routing/universal-router","docs/3.x/4.examples/2.routing/universal-router",{"title":890,"path":955,"stem":956,"children":957,"page":108},"/docs/3.x/examples/advanced","docs/3.x/4.examples/4.advanced",[958,961,964,968,972,976,980,983,986],{"title":84,"path":959,"stem":960,"titleTemplate":6},"/docs/3.x/examples/advanced/config-extends","docs/3.x/4.examples/4.advanced/config-extends",{"title":74,"path":962,"stem":963,"titleTemplate":6},"/docs/3.x/examples/advanced/error-handling","docs/3.x/4.examples/4.advanced/error-handling",{"title":965,"path":966,"stem":967,"titleTemplate":6},"JSX / TSX","/docs/3.x/examples/advanced/jsx","docs/3.x/4.examples/4.advanced/jsx",{"title":969,"path":970,"stem":971,"titleTemplate":6},"Locale","/docs/3.x/examples/advanced/locale","docs/3.x/4.examples/4.advanced/locale",{"title":973,"path":974,"stem":975,"titleTemplate":6},"Module Extend Pages","/docs/3.x/examples/advanced/module-extend-pages","docs/3.x/4.examples/4.advanced/module-extend-pages",{"title":977,"path":978,"stem":979,"titleTemplate":6},"Teleport","/docs/3.x/examples/advanced/teleport","docs/3.x/4.examples/4.advanced/teleport",{"title":99,"path":981,"stem":982,"titleTemplate":6},"/docs/3.x/examples/advanced/testing","docs/3.x/4.examples/4.advanced/testing",{"title":519,"path":984,"stem":985,"titleTemplate":6},"/docs/3.x/examples/advanced/use-cookie","docs/3.x/4.examples/4.advanced/use-cookie",{"title":987,"path":988,"stem":989,"titleTemplate":6},"Use Custom Fetch Composable","/docs/3.x/examples/advanced/use-custom-fetch-composable","docs/3.x/4.examples/4.advanced/use-custom-fetch-composable",{"title":991,"path":992,"stem":993,"children":994,"page":108},"Experimental","/docs/3.x/examples/experimental","docs/3.x/4.examples/7.experimental",[995],{"title":996,"path":997,"stem":998,"titleTemplate":6},"WASM","/docs/3.x/examples/experimental/wasm","docs/3.x/4.examples/7.experimental/wasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":1003,"stem":1004,"children":1005,"page":108},"Community","%s · Nuxt Community","i-lucide-messages-square","/docs/3.x/community","docs/3.x/5.community",[1006,1011,1016,1021,1026,1031],{"title":1007,"path":1008,"stem":1009,"titleTemplate":6,"icon":1010},"Getting Help","/docs/3.x/community/getting-help","docs/3.x/5.community/2.getting-help","i-lucide-life-buoy",{"title":1012,"path":1013,"stem":1014,"titleTemplate":6,"icon":1015},"Reporting Bugs","/docs/3.x/community/reporting-bugs","docs/3.x/5.community/3.reporting-bugs","i-lucide-bug",{"title":1017,"path":1018,"stem":1019,"titleTemplate":6,"icon":1020},"Contribution","/docs/3.x/community/contribution","docs/3.x/5.community/4.contribution","i-lucide-git-pull-request",{"title":1022,"path":1023,"stem":1024,"titleTemplate":6,"icon":1025},"Framework","/docs/3.x/community/framework-contribution","docs/3.x/5.community/5.framework-contribution","i-lucide-github",{"title":1027,"path":1028,"stem":1029,"titleTemplate":6,"icon":1030},"Roadmap","/docs/3.x/community/roadmap","docs/3.x/5.community/6.roadmap","i-lucide-map",{"title":1032,"path":1033,"stem":1034,"titleTemplate":6,"icon":1035},"Releases","/docs/3.x/community/changelog","docs/3.x/5.community/7.changelog","i-lucide-bell-dot",{"title":1037,"titleTemplate":1038,"icon":1039,"path":1040,"stem":1041,"children":1042,"page":108},"Migrate to Nuxt Bridge","Migrate to Nuxt Bridge: %s","i-lucide-ship","/docs/3.x/bridge","docs/3.x/6.bridge",[1043,1047,1050,1053,1057,1061,1065,1068,1071,1074],{"title":1044,"path":1045,"stem":1046,"titleTemplate":6},"Overview","/docs/3.x/bridge/overview","docs/3.x/6.bridge/1.overview",{"title":29,"path":1048,"stem":1049,"titleTemplate":6},"/docs/3.x/bridge/configuration","docs/3.x/6.bridge/10.configuration",{"title":280,"path":1051,"stem":1052,"titleTemplate":6},"/docs/3.x/bridge/typescript","docs/3.x/6.bridge/2.typescript",{"title":1054,"path":1055,"stem":1056,"titleTemplate":6},"Legacy Composition API","/docs/3.x/bridge/bridge-composition-api","docs/3.x/6.bridge/3.bridge-composition-api",{"title":1058,"path":1059,"stem":1060,"titleTemplate":6},"Plugins and Middleware","/docs/3.x/bridge/plugins-and-middleware","docs/3.x/6.bridge/4.plugins-and-middleware",{"title":1062,"path":1063,"stem":1064,"titleTemplate":6},"New Composition API","/docs/3.x/bridge/nuxt3-compatible-api","docs/3.x/6.bridge/5.nuxt3-compatible-api",{"title":932,"path":1066,"stem":1067,"titleTemplate":6},"/docs/3.x/bridge/meta","docs/3.x/6.bridge/6.meta",{"title":399,"path":1069,"stem":1070,"titleTemplate":6},"/docs/3.x/bridge/runtime-config","docs/3.x/6.bridge/7.runtime-config",{"title":833,"path":1072,"stem":1073,"titleTemplate":6},"/docs/3.x/bridge/nitro","docs/3.x/6.bridge/8.nitro",{"title":1075,"path":1076,"stem":1077,"titleTemplate":6},"Vite","/docs/3.x/bridge/vite","docs/3.x/6.bridge/9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":1081,"stem":1082,"children":1083,"page":108},"Migrate to Nuxt 3","Migrate to Nuxt 3: %s","/docs/3.x/migration","docs/3.x/7.migration",[1084,1087,1091,1094,1097,1100,1103,1106,1109,1113,1117],{"title":1044,"path":1085,"stem":1086,"titleTemplate":6},"/docs/3.x/migration/overview","docs/3.x/7.migration/1.overview",{"title":1088,"path":1089,"stem":1090,"titleTemplate":6},"Build Tooling","/docs/3.x/migration/bundling","docs/3.x/7.migration/10.bundling",{"title":79,"path":1092,"stem":1093,"titleTemplate":6},"/docs/3.x/migration/server","docs/3.x/7.migration/11.server",{"title":29,"path":1095,"stem":1096,"titleTemplate":6},"/docs/3.x/migration/configuration","docs/3.x/7.migration/2.configuration",{"title":276,"path":1098,"stem":1099,"titleTemplate":6},"/docs/3.x/migration/module-authors","docs/3.x/7.migration/20.module-authors",{"title":922,"path":1101,"stem":1102,"titleTemplate":6},"/docs/3.x/migration/auto-imports","docs/3.x/7.migration/3.auto-imports",{"title":932,"path":1104,"stem":1105,"titleTemplate":6},"/docs/3.x/migration/meta","docs/3.x/7.migration/4.meta",{"title":1058,"path":1107,"stem":1108,"titleTemplate":6},"/docs/3.x/migration/plugins-and-middleware","docs/3.x/7.migration/5.plugins-and-middleware",{"title":1110,"path":1111,"stem":1112,"titleTemplate":6},"Pages and Layouts","/docs/3.x/migration/pages-and-layouts","docs/3.x/7.migration/6.pages-and-layouts",{"title":1114,"path":1115,"stem":1116,"titleTemplate":6},"Component Options","/docs/3.x/migration/component-options","docs/3.x/7.migration/7.component-options",{"title":399,"path":1118,"stem":1119,"titleTemplate":6},"/docs/3.x/migration/runtime-config","docs/3.x/7.migration/8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1121,"stem":1122,"children":1123,"page":108},"/docs/4.x","docs/4.x",[1124,1182,1276,1404,1778,1855,1877,1911],{"title":12,"titleTemplate":13,"icon":14,"path":1125,"stem":1126,"children":1127,"page":108},"/docs/4.x/getting-started","docs/4.x/1.getting-started",[1128,1131,1134,1137,1140,1143,1146,1149,1152,1155,1158,1161,1164,1167,1170,1173,1176,1179],{"title":19,"path":1129,"stem":1130,"titleTemplate":6,"icon":22},"/docs/4.x/getting-started/introduction","docs/4.x/1.getting-started/01.introduction",{"title":24,"path":1132,"stem":1133,"titleTemplate":6,"icon":27},"/docs/4.x/getting-started/installation","docs/4.x/1.getting-started/02.installation",{"title":29,"path":1135,"stem":1136,"titleTemplate":6,"icon":32},"/docs/4.x/getting-started/configuration","docs/4.x/1.getting-started/03.configuration",{"title":34,"path":1138,"stem":1139,"titleTemplate":6,"icon":37},"/docs/4.x/getting-started/views","docs/4.x/1.getting-started/04.views",{"title":39,"path":1141,"stem":1142,"titleTemplate":6,"icon":42},"/docs/4.x/getting-started/assets","docs/4.x/1.getting-started/05.assets",{"title":44,"path":1144,"stem":1145,"titleTemplate":6,"icon":47},"/docs/4.x/getting-started/styling","docs/4.x/1.getting-started/06.styling",{"title":49,"path":1147,"stem":1148,"titleTemplate":6,"icon":52},"/docs/4.x/getting-started/routing","docs/4.x/1.getting-started/07.routing",{"title":54,"path":1150,"stem":1151,"titleTemplate":6,"icon":57},"/docs/4.x/getting-started/seo-meta","docs/4.x/1.getting-started/08.seo-meta",{"title":59,"path":1153,"stem":1154,"titleTemplate":6,"icon":62},"/docs/4.x/getting-started/transitions","docs/4.x/1.getting-started/09.transitions",{"title":64,"path":1156,"stem":1157,"titleTemplate":6,"icon":67},"/docs/4.x/getting-started/data-fetching","docs/4.x/1.getting-started/10.data-fetching",{"title":69,"path":1159,"stem":1160,"titleTemplate":6,"icon":72},"/docs/4.x/getting-started/state-management","docs/4.x/1.getting-started/11.state-management",{"title":74,"path":1162,"stem":1163,"titleTemplate":6,"icon":77},"/docs/4.x/getting-started/error-handling","docs/4.x/1.getting-started/12.error-handling",{"title":79,"path":1165,"stem":1166,"titleTemplate":6,"icon":82},"/docs/4.x/getting-started/server","docs/4.x/1.getting-started/13.server",{"title":84,"path":1168,"stem":1169,"titleTemplate":6,"icon":87},"/docs/4.x/getting-started/layers","docs/4.x/1.getting-started/14.layers",{"title":89,"path":1171,"stem":1172,"titleTemplate":6,"icon":92},"/docs/4.x/getting-started/prerendering","docs/4.x/1.getting-started/15.prerendering",{"title":94,"path":1174,"stem":1175,"titleTemplate":6,"icon":97},"/docs/4.x/getting-started/deployment","docs/4.x/1.getting-started/16.deployment",{"title":99,"path":1177,"stem":1178,"titleTemplate":6,"icon":102},"/docs/4.x/getting-started/testing","docs/4.x/1.getting-started/17.testing",{"title":104,"path":1180,"stem":1181,"titleTemplate":6,"icon":107},"/docs/4.x/getting-started/upgrade","docs/4.x/1.getting-started/18.upgrade",{"title":110,"titleTemplate":111,"icon":112,"path":1183,"stem":1184,"children":1185,"page":108},"/docs/4.x/directory-structure","docs/4.x/2.directory-structure",[1186,1189,1192,1234,1237,1240,1243,1246,1249,1252,1255,1258,1261,1264,1267,1270,1273],{"title":117,"path":1187,"stem":1188,"titleTemplate":6,"icon":120},"/docs/4.x/directory-structure/nuxt","docs/4.x/2.directory-structure/0.nuxt",{"title":122,"path":1190,"stem":1191,"titleTemplate":6,"icon":125},"/docs/4.x/directory-structure/output","docs/4.x/2.directory-structure/0.output",{"title":1193,"titleTemplate":111,"head":1194,"defaultOpen":1196,"icon":1197,"path":1198,"stem":1199,"children":1200,"page":108},"app",{"title":1195},"app/",true,"i-vscode-icons-folder-type-app","/docs/4.x/directory-structure/app","docs/4.x/2.directory-structure/1.app",[1201,1204,1207,1210,1213,1216,1219,1222,1225,1228,1231],{"title":127,"path":1202,"stem":1203,"titleTemplate":6,"icon":130},"/docs/4.x/directory-structure/app/assets","docs/4.x/2.directory-structure/1.app/1.assets",{"title":132,"path":1205,"stem":1206,"titleTemplate":6,"icon":135},"/docs/4.x/directory-structure/app/components","docs/4.x/2.directory-structure/1.app/1.components",{"title":137,"path":1208,"stem":1209,"titleTemplate":6,"icon":140},"/docs/4.x/directory-structure/app/composables","docs/4.x/2.directory-structure/1.app/1.composables",{"title":152,"path":1211,"stem":1212,"titleTemplate":6,"icon":155},"/docs/4.x/directory-structure/app/layouts","docs/4.x/2.directory-structure/1.app/1.layouts",{"title":157,"path":1214,"stem":1215,"titleTemplate":6,"icon":160},"/docs/4.x/directory-structure/app/middleware","docs/4.x/2.directory-structure/1.app/1.middleware",{"title":171,"path":1217,"stem":1218,"titleTemplate":6,"icon":155},"/docs/4.x/directory-structure/app/pages","docs/4.x/2.directory-structure/1.app/1.pages",{"title":175,"path":1220,"stem":1221,"titleTemplate":6,"icon":178},"/docs/4.x/directory-structure/app/plugins","docs/4.x/2.directory-structure/1.app/1.plugins",{"title":195,"path":1223,"stem":1224,"titleTemplate":6,"icon":198},"/docs/4.x/directory-structure/app/utils","docs/4.x/2.directory-structure/1.app/1.utils",{"title":219,"path":1226,"stem":1227,"titleTemplate":6,"icon":222},"/docs/4.x/directory-structure/app/app","docs/4.x/2.directory-structure/1.app/3.app",{"title":224,"path":1229,"stem":1230,"titleTemplate":6,"icon":227},"/docs/4.x/directory-structure/app/app-config","docs/4.x/2.directory-structure/1.app/3.app-config",{"title":229,"path":1232,"stem":1233,"titleTemplate":6,"icon":222},"/docs/4.x/directory-structure/app/error","docs/4.x/2.directory-structure/1.app/3.error",{"title":142,"path":1235,"stem":1236,"titleTemplate":6,"icon":145},"/docs/4.x/directory-structure/content","docs/4.x/2.directory-structure/1.content",{"title":147,"path":1238,"stem":1239,"titleTemplate":6,"icon":150},"/docs/4.x/directory-structure/layers","docs/4.x/2.directory-structure/1.layers",{"title":162,"path":1241,"stem":1242,"titleTemplate":6,"icon":150},"/docs/4.x/directory-structure/modules","docs/4.x/2.directory-structure/1.modules",{"title":166,"path":1244,"stem":1245,"titleTemplate":6,"icon":169},"/docs/4.x/directory-structure/node_modules","docs/4.x/2.directory-structure/1.node_modules",{"title":180,"path":1247,"stem":1248,"titleTemplate":6,"icon":183},"/docs/4.x/directory-structure/public","docs/4.x/2.directory-structure/1.public",{"title":185,"path":1250,"stem":1251,"titleTemplate":6,"icon":188},"/docs/4.x/directory-structure/server","docs/4.x/2.directory-structure/1.server",{"title":190,"path":1253,"stem":1254,"titleTemplate":6,"icon":193},"/docs/4.x/directory-structure/shared","docs/4.x/2.directory-structure/1.shared",{"title":200,"path":1256,"stem":1257,"titleTemplate":6,"icon":203},"/docs/4.x/directory-structure/env","docs/4.x/2.directory-structure/2.env",{"title":205,"path":1259,"stem":1260,"titleTemplate":6,"icon":208},"/docs/4.x/directory-structure/gitignore","docs/4.x/2.directory-structure/2.gitignore",{"title":210,"path":1262,"stem":1263,"titleTemplate":6,"icon":213},"/docs/4.x/directory-structure/nuxtignore","docs/4.x/2.directory-structure/2.nuxtignore",{"title":215,"path":1265,"stem":1266,"titleTemplate":6,"icon":213},"/docs/4.x/directory-structure/nuxtrc","docs/4.x/2.directory-structure/2.nuxtrc",{"title":233,"path":1268,"stem":1269,"titleTemplate":6,"icon":213},"/docs/4.x/directory-structure/nuxt-config","docs/4.x/2.directory-structure/3.nuxt-config",{"title":237,"path":1271,"stem":1272,"titleTemplate":6,"icon":240},"/docs/4.x/directory-structure/package","docs/4.x/2.directory-structure/3.package",{"title":242,"path":1274,"stem":1275,"titleTemplate":6,"icon":245},"/docs/4.x/directory-structure/tsconfig","docs/4.x/2.directory-structure/3.tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":1277,"stem":1278,"children":1279,"page":108},"/docs/4.x/guide","docs/4.x/3.guide",[1280,1305,1319,1329,1354,1370],{"title":253,"titleTemplate":254,"icon":255,"path":1281,"stem":1282,"children":1283,"page":108},"/docs/4.x/guide/concepts","docs/4.x/3.guide/1.concepts",[1284,1287,1290,1293,1296,1299,1302],{"title":260,"path":1285,"stem":1286,"titleTemplate":6},"/docs/4.x/guide/concepts/rendering","docs/4.x/3.guide/1.concepts/1.rendering",{"title":264,"path":1288,"stem":1289,"titleTemplate":6},"/docs/4.x/guide/concepts/nuxt-lifecycle","docs/4.x/3.guide/1.concepts/2.nuxt-lifecycle",{"title":268,"path":1291,"stem":1292,"titleTemplate":6},"/docs/4.x/guide/concepts/auto-imports","docs/4.x/3.guide/1.concepts/3.auto-imports",{"title":272,"path":1294,"stem":1295,"titleTemplate":6},"/docs/4.x/guide/concepts/server-engine","docs/4.x/3.guide/1.concepts/4.server-engine",{"title":276,"path":1297,"stem":1298,"titleTemplate":6},"/docs/4.x/guide/concepts/modules","docs/4.x/3.guide/1.concepts/5.modules",{"title":280,"path":1300,"stem":1301,"titleTemplate":6},"/docs/4.x/guide/concepts/typescript","docs/4.x/3.guide/1.concepts/8.typescript",{"title":284,"path":1303,"stem":1304,"titleTemplate":6},"/docs/4.x/guide/concepts/code-style","docs/4.x/3.guide/1.concepts/9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":1306,"stem":1307,"children":1308,"page":108},"/docs/4.x/guide/best-practices","docs/4.x/3.guide/2.best-practices",[1309,1313,1316],{"title":1310,"path":1311,"stem":1312,"titleTemplate":6},"Nuxt and Hydration","/docs/4.x/guide/best-practices/hydration","docs/4.x/3.guide/2.best-practices/hydration",{"title":299,"path":1314,"stem":1315,"titleTemplate":6},"/docs/4.x/guide/best-practices/performance","docs/4.x/3.guide/2.best-practices/performance",{"title":303,"path":1317,"stem":1318,"titleTemplate":6},"/docs/4.x/guide/best-practices/plugins","docs/4.x/3.guide/2.best-practices/plugins",{"title":307,"titleTemplate":308,"icon":309,"path":1320,"stem":1321,"children":1322,"page":108},"/docs/4.x/guide/ai","docs/4.x/3.guide/3.ai",[1323,1326],{"title":314,"path":1324,"stem":1325,"titleTemplate":6},"/docs/4.x/guide/ai/mcp","docs/4.x/3.guide/3.ai/1.mcp",{"title":318,"path":1327,"stem":1328,"titleTemplate":6},"/docs/4.x/guide/ai/llms-txt","docs/4.x/3.guide/3.ai/2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":1330,"stem":1331,"children":1332,"page":108},"/docs/4.x/guide/modules","docs/4.x/3.guide/4.modules",[1333,1336,1339,1342,1345,1348,1351],{"title":329,"path":1334,"stem":1335,"titleTemplate":6},"/docs/4.x/guide/modules/getting-started","docs/4.x/3.guide/4.modules/1.getting-started",{"title":333,"path":1337,"stem":1338,"titleTemplate":6},"/docs/4.x/guide/modules/module-anatomy","docs/4.x/3.guide/4.modules/2.module-anatomy",{"title":337,"path":1340,"stem":1341,"titleTemplate":6},"/docs/4.x/guide/modules/recipes-basics","docs/4.x/3.guide/4.modules/3.recipes-basics",{"title":341,"path":1343,"stem":1344,"titleTemplate":6},"/docs/4.x/guide/modules/recipes-advanced","docs/4.x/3.guide/4.modules/4.recipes-advanced",{"title":345,"path":1346,"stem":1347,"titleTemplate":6},"/docs/4.x/guide/modules/testing","docs/4.x/3.guide/4.modules/5.testing",{"title":349,"path":1349,"stem":1350,"titleTemplate":6},"/docs/4.x/guide/modules/best-practices","docs/4.x/3.guide/4.modules/6.best-practices",{"title":353,"path":1352,"stem":1353,"titleTemplate":6},"/docs/4.x/guide/modules/ecosystem","docs/4.x/3.guide/4.modules/7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":1355,"stem":1356,"children":1357,"page":108},"/docs/4.x/guide/recipes","docs/4.x/3.guide/5.recipes",[1358,1361,1364,1367],{"title":364,"path":1359,"stem":1360,"titleTemplate":6},"/docs/4.x/guide/recipes/custom-routing","docs/4.x/3.guide/5.recipes/1.custom-routing",{"title":368,"path":1362,"stem":1363,"titleTemplate":6},"/docs/4.x/guide/recipes/vite-plugin","docs/4.x/3.guide/5.recipes/2.vite-plugin",{"title":372,"path":1365,"stem":1366,"titleTemplate":6},"/docs/4.x/guide/recipes/custom-usefetch","docs/4.x/3.guide/5.recipes/3.custom-usefetch",{"title":376,"path":1368,"stem":1369,"titleTemplate":6},"/docs/4.x/guide/recipes/sessions-and-authentication","docs/4.x/3.guide/5.recipes/4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":1371,"stem":1372,"children":1373,"page":108},"/docs/4.x/guide/going-further","docs/4.x/3.guide/6.going-further",[1374,1377,1380,1383,1386,1389,1392,1395,1398,1401],{"title":387,"path":1375,"stem":1376,"titleTemplate":6},"/docs/4.x/guide/going-further/events","docs/4.x/3.guide/6.going-further/1.events",{"title":391,"path":1378,"stem":1379,"titleTemplate":6},"/docs/4.x/guide/going-further/experimental-features","docs/4.x/3.guide/6.going-further/1.experimental-features",{"title":395,"path":1381,"stem":1382,"titleTemplate":6},"/docs/4.x/guide/going-further/features","docs/4.x/3.guide/6.going-further/1.features",{"title":399,"path":1384,"stem":1385,"titleTemplate":6},"/docs/4.x/guide/going-further/runtime-config","docs/4.x/3.guide/6.going-further/10.runtime-config",{"title":403,"path":1387,"stem":1388,"titleTemplate":6},"/docs/4.x/guide/going-further/nightly-release-channel","docs/4.x/3.guide/6.going-further/11.nightly-release-channel",{"title":407,"path":1390,"stem":1391,"titleTemplate":6},"/docs/4.x/guide/going-further/hooks","docs/4.x/3.guide/6.going-further/2.hooks",{"title":411,"path":1393,"stem":1394,"titleTemplate":6},"/docs/4.x/guide/going-further/kit","docs/4.x/3.guide/6.going-further/4.kit",{"title":415,"path":1396,"stem":1397,"titleTemplate":6},"/docs/4.x/guide/going-further/nuxt-app","docs/4.x/3.guide/6.going-further/6.nuxt-app",{"title":419,"path":1399,"stem":1400,"titleTemplate":6},"/docs/4.x/guide/going-further/layers","docs/4.x/3.guide/6.going-further/7.layers",{"title":423,"path":1402,"stem":1403,"titleTemplate":6},"/docs/4.x/guide/going-further/debugging","docs/4.x/3.guide/6.going-further/9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":1405,"stem":1406,"children":1407,"page":108},"/docs/4.x/api","docs/4.x/4.api",[1408,1461,1564,1655,1707,1765,1775],{"title":434,"titleTemplate":435,"icon":324,"path":1409,"stem":1410,"children":1411,"page":108},"/docs/4.x/api/components","docs/4.x/4.api/1.components",[1412,1415,1418,1421,1424,1427,1430,1433,1437,1440,1443,1446,1449,1452,1455,1458],{"title":440,"path":1413,"stem":1414,"titleTemplate":6},"/docs/4.x/api/components/client-only","docs/4.x/4.api/1.components/1.client-only",{"title":444,"path":1416,"stem":1417,"titleTemplate":6},"/docs/4.x/api/components/dev-only","docs/4.x/4.api/1.components/1.dev-only",{"title":448,"path":1419,"stem":1420,"titleTemplate":6},"/docs/4.x/api/components/nuxt-client-fallback","docs/4.x/4.api/1.components/1.nuxt-client-fallback",{"title":452,"path":1422,"stem":1423,"titleTemplate":6},"/docs/4.x/api/components/nuxt-picture","docs/4.x/4.api/1.components/10.nuxt-picture",{"title":456,"path":1425,"stem":1426,"titleTemplate":6},"/docs/4.x/api/components/teleports","docs/4.x/4.api/1.components/11.teleports",{"title":460,"path":1428,"stem":1429,"titleTemplate":6},"/docs/4.x/api/components/nuxt-route-announcer","docs/4.x/4.api/1.components/12.nuxt-route-announcer",{"title":464,"path":1431,"stem":1432,"titleTemplate":6},"/docs/4.x/api/components/nuxt-time","docs/4.x/4.api/1.components/13.nuxt-time",{"title":1434,"path":1435,"stem":1436,"titleTemplate":6},"\u003CNuxtAnnouncer>","/docs/4.x/api/components/nuxt-announcer","docs/4.x/4.api/1.components/14.nuxt-announcer",{"title":468,"path":1438,"stem":1439,"titleTemplate":6},"/docs/4.x/api/components/nuxt-page","docs/4.x/4.api/1.components/2.nuxt-page",{"title":472,"path":1441,"stem":1442,"titleTemplate":6},"/docs/4.x/api/components/nuxt-layout","docs/4.x/4.api/1.components/3.nuxt-layout",{"title":476,"path":1444,"stem":1445,"titleTemplate":6},"/docs/4.x/api/components/nuxt-link","docs/4.x/4.api/1.components/4.nuxt-link",{"title":480,"path":1447,"stem":1448,"titleTemplate":6},"/docs/4.x/api/components/nuxt-loading-indicator","docs/4.x/4.api/1.components/5.nuxt-loading-indicator",{"title":484,"path":1450,"stem":1451,"titleTemplate":6},"/docs/4.x/api/components/nuxt-error-boundary","docs/4.x/4.api/1.components/6.nuxt-error-boundary",{"title":488,"path":1453,"stem":1454,"titleTemplate":6},"/docs/4.x/api/components/nuxt-welcome","docs/4.x/4.api/1.components/7.nuxt-welcome",{"title":492,"path":1456,"stem":1457,"titleTemplate":6},"/docs/4.x/api/components/nuxt-island","docs/4.x/4.api/1.components/8.nuxt-island",{"title":496,"path":1459,"stem":1460,"titleTemplate":6},"/docs/4.x/api/components/nuxt-img","docs/4.x/4.api/1.components/9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":1462,"stem":1463,"children":1464,"page":108},"/docs/4.x/api/composables","docs/4.x/4.api/2.composables",[1465,1469,1473,1476,1480,1483,1486,1489,1492,1495,1498,1501,1504,1507,1510,1513,1516,1519,1522,1525,1528,1531,1534,1537,1540,1543,1546,1549,1552,1555,1558,1561],{"title":1466,"path":1467,"stem":1468,"titleTemplate":6},"createUseAsyncData","/docs/4.x/api/composables/create-use-async-data","docs/4.x/4.api/2.composables/create-use-async-data",{"title":1470,"path":1471,"stem":1472,"titleTemplate":6},"createUseFetch","/docs/4.x/api/composables/create-use-fetch","docs/4.x/4.api/2.composables/create-use-fetch",{"title":507,"path":1474,"stem":1475,"titleTemplate":6},"/docs/4.x/api/composables/on-prehydrate","docs/4.x/4.api/2.composables/on-prehydrate",{"title":1477,"path":1478,"stem":1479,"titleTemplate":6},"useAnnouncer","/docs/4.x/api/composables/use-announcer","docs/4.x/4.api/2.composables/use-announcer",{"title":511,"path":1481,"stem":1482,"titleTemplate":6},"/docs/4.x/api/composables/use-app-config","docs/4.x/4.api/2.composables/use-app-config",{"title":515,"path":1484,"stem":1485,"titleTemplate":6},"/docs/4.x/api/composables/use-async-data","docs/4.x/4.api/2.composables/use-async-data",{"title":519,"path":1487,"stem":1488,"titleTemplate":6},"/docs/4.x/api/composables/use-cookie","docs/4.x/4.api/2.composables/use-cookie",{"title":523,"path":1490,"stem":1491,"titleTemplate":6},"/docs/4.x/api/composables/use-error","docs/4.x/4.api/2.composables/use-error",{"title":527,"path":1493,"stem":1494,"titleTemplate":6},"/docs/4.x/api/composables/use-fetch","docs/4.x/4.api/2.composables/use-fetch",{"title":531,"path":1496,"stem":1497,"titleTemplate":6},"/docs/4.x/api/composables/use-head","docs/4.x/4.api/2.composables/use-head",{"title":535,"path":1499,"stem":1500,"titleTemplate":6},"/docs/4.x/api/composables/use-head-safe","docs/4.x/4.api/2.composables/use-head-safe",{"title":539,"path":1502,"stem":1503,"titleTemplate":6},"/docs/4.x/api/composables/use-hydration","docs/4.x/4.api/2.composables/use-hydration",{"title":543,"path":1505,"stem":1506,"titleTemplate":6},"/docs/4.x/api/composables/use-lazy-async-data","docs/4.x/4.api/2.composables/use-lazy-async-data",{"title":547,"path":1508,"stem":1509,"titleTemplate":6},"/docs/4.x/api/composables/use-lazy-fetch","docs/4.x/4.api/2.composables/use-lazy-fetch",{"title":551,"path":1511,"stem":1512,"titleTemplate":6},"/docs/4.x/api/composables/use-loading-indicator","docs/4.x/4.api/2.composables/use-loading-indicator",{"title":555,"path":1514,"stem":1515,"titleTemplate":6},"/docs/4.x/api/composables/use-nuxt-app","docs/4.x/4.api/2.composables/use-nuxt-app",{"title":559,"path":1517,"stem":1518,"titleTemplate":6},"/docs/4.x/api/composables/use-nuxt-data","docs/4.x/4.api/2.composables/use-nuxt-data",{"title":563,"path":1520,"stem":1521,"titleTemplate":6},"/docs/4.x/api/composables/use-preview-mode","docs/4.x/4.api/2.composables/use-preview-mode",{"title":567,"path":1523,"stem":1524,"titleTemplate":6},"/docs/4.x/api/composables/use-request-event","docs/4.x/4.api/2.composables/use-request-event",{"title":571,"path":1526,"stem":1527,"titleTemplate":6},"/docs/4.x/api/composables/use-request-fetch","docs/4.x/4.api/2.composables/use-request-fetch",{"title":575,"path":1529,"stem":1530,"titleTemplate":6},"/docs/4.x/api/composables/use-request-header","docs/4.x/4.api/2.composables/use-request-header",{"title":579,"path":1532,"stem":1533,"titleTemplate":6},"/docs/4.x/api/composables/use-request-headers","docs/4.x/4.api/2.composables/use-request-headers",{"title":583,"path":1535,"stem":1536,"titleTemplate":6},"/docs/4.x/api/composables/use-request-url","docs/4.x/4.api/2.composables/use-request-url",{"title":587,"path":1538,"stem":1539,"titleTemplate":6},"/docs/4.x/api/composables/use-response-header","docs/4.x/4.api/2.composables/use-response-header",{"title":591,"path":1541,"stem":1542,"titleTemplate":6},"/docs/4.x/api/composables/use-route","docs/4.x/4.api/2.composables/use-route",{"title":595,"path":1544,"stem":1545,"titleTemplate":6},"/docs/4.x/api/composables/use-route-announcer","docs/4.x/4.api/2.composables/use-route-announcer",{"title":599,"path":1547,"stem":1548,"titleTemplate":6},"/docs/4.x/api/composables/use-router","docs/4.x/4.api/2.composables/use-router",{"title":603,"path":1550,"stem":1551,"titleTemplate":6},"/docs/4.x/api/composables/use-runtime-config","docs/4.x/4.api/2.composables/use-runtime-config",{"title":607,"path":1553,"stem":1554,"titleTemplate":6},"/docs/4.x/api/composables/use-runtime-hook","docs/4.x/4.api/2.composables/use-runtime-hook",{"title":611,"path":1556,"stem":1557,"titleTemplate":6},"/docs/4.x/api/composables/use-seo-meta","docs/4.x/4.api/2.composables/use-seo-meta",{"title":615,"path":1559,"stem":1560,"titleTemplate":6},"/docs/4.x/api/composables/use-server-seo-meta","docs/4.x/4.api/2.composables/use-server-seo-meta",{"title":619,"path":1562,"stem":1563,"titleTemplate":6},"/docs/4.x/api/composables/use-state","docs/4.x/4.api/2.composables/use-state",{"title":623,"titleTemplate":624,"icon":625,"path":1565,"stem":1566,"children":1567,"page":108},"/docs/4.x/api/utils","docs/4.x/4.api/3.utils",[1568,1571,1574,1577,1580,1583,1586,1589,1592,1595,1598,1601,1604,1607,1610,1613,1616,1619,1622,1625,1628,1631,1634,1637,1640,1643,1646,1649,1652],{"title":630,"path":1569,"stem":1570,"titleTemplate":6},"/docs/4.x/api/utils/dollarfetch","docs/4.x/4.api/3.utils/$fetch",{"title":634,"path":1572,"stem":1573,"titleTemplate":6},"/docs/4.x/api/utils/abort-navigation","docs/4.x/4.api/3.utils/abort-navigation",{"title":638,"path":1575,"stem":1576,"titleTemplate":6},"/docs/4.x/api/utils/add-route-middleware","docs/4.x/4.api/3.utils/add-route-middleware",{"title":642,"path":1578,"stem":1579,"titleTemplate":6},"/docs/4.x/api/utils/call-once","docs/4.x/4.api/3.utils/call-once",{"title":646,"path":1581,"stem":1582,"titleTemplate":6},"/docs/4.x/api/utils/clear-error","docs/4.x/4.api/3.utils/clear-error",{"title":650,"path":1584,"stem":1585,"titleTemplate":6},"/docs/4.x/api/utils/clear-nuxt-data","docs/4.x/4.api/3.utils/clear-nuxt-data",{"title":654,"path":1587,"stem":1588,"titleTemplate":6},"/docs/4.x/api/utils/clear-nuxt-state","docs/4.x/4.api/3.utils/clear-nuxt-state",{"title":658,"path":1590,"stem":1591,"titleTemplate":6},"/docs/4.x/api/utils/create-error","docs/4.x/4.api/3.utils/create-error",{"title":662,"path":1593,"stem":1594,"titleTemplate":6},"/docs/4.x/api/utils/define-lazy-hydration-component","docs/4.x/4.api/3.utils/define-lazy-hydration-component",{"title":666,"path":1596,"stem":1597,"titleTemplate":6},"/docs/4.x/api/utils/define-nuxt-component","docs/4.x/4.api/3.utils/define-nuxt-component",{"title":670,"path":1599,"stem":1600,"titleTemplate":6},"/docs/4.x/api/utils/define-nuxt-plugin","docs/4.x/4.api/3.utils/define-nuxt-plugin",{"title":674,"path":1602,"stem":1603,"titleTemplate":6},"/docs/4.x/api/utils/define-nuxt-route-middleware","docs/4.x/4.api/3.utils/define-nuxt-route-middleware",{"title":678,"path":1605,"stem":1606,"titleTemplate":6},"/docs/4.x/api/utils/define-page-meta","docs/4.x/4.api/3.utils/define-page-meta",{"title":682,"path":1608,"stem":1609,"titleTemplate":6},"/docs/4.x/api/utils/define-route-rules","docs/4.x/4.api/3.utils/define-route-rules",{"title":686,"path":1611,"stem":1612,"titleTemplate":6},"/docs/4.x/api/utils/navigate-to","docs/4.x/4.api/3.utils/navigate-to",{"title":690,"path":1614,"stem":1615,"titleTemplate":6},"/docs/4.x/api/utils/on-before-route-leave","docs/4.x/4.api/3.utils/on-before-route-leave",{"title":694,"path":1617,"stem":1618,"titleTemplate":6},"/docs/4.x/api/utils/on-before-route-update","docs/4.x/4.api/3.utils/on-before-route-update",{"title":698,"path":1620,"stem":1621,"titleTemplate":6},"/docs/4.x/api/utils/on-nuxt-ready","docs/4.x/4.api/3.utils/on-nuxt-ready",{"title":702,"path":1623,"stem":1624,"titleTemplate":6},"/docs/4.x/api/utils/prefetch-components","docs/4.x/4.api/3.utils/prefetch-components",{"title":706,"path":1626,"stem":1627,"titleTemplate":6},"/docs/4.x/api/utils/preload-components","docs/4.x/4.api/3.utils/preload-components",{"title":710,"path":1629,"stem":1630,"titleTemplate":6},"/docs/4.x/api/utils/preload-route-components","docs/4.x/4.api/3.utils/preload-route-components",{"title":714,"path":1632,"stem":1633,"titleTemplate":6},"/docs/4.x/api/utils/prerender-routes","docs/4.x/4.api/3.utils/prerender-routes",{"title":718,"path":1635,"stem":1636,"titleTemplate":6},"/docs/4.x/api/utils/refresh-cookie","docs/4.x/4.api/3.utils/refresh-cookie",{"title":722,"path":1638,"stem":1639,"titleTemplate":6},"/docs/4.x/api/utils/refresh-nuxt-data","docs/4.x/4.api/3.utils/refresh-nuxt-data",{"title":726,"path":1641,"stem":1642,"titleTemplate":6},"/docs/4.x/api/utils/reload-nuxt-app","docs/4.x/4.api/3.utils/reload-nuxt-app",{"title":730,"path":1644,"stem":1645,"titleTemplate":6},"/docs/4.x/api/utils/set-page-layout","docs/4.x/4.api/3.utils/set-page-layout",{"title":734,"path":1647,"stem":1648,"titleTemplate":6},"/docs/4.x/api/utils/set-response-status","docs/4.x/4.api/3.utils/set-response-status",{"title":738,"path":1650,"stem":1651,"titleTemplate":6},"/docs/4.x/api/utils/show-error","docs/4.x/4.api/3.utils/show-error",{"title":742,"path":1653,"stem":1654,"titleTemplate":6},"/docs/4.x/api/utils/update-app-config","docs/4.x/4.api/3.utils/update-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":1656,"stem":1657,"children":1658,"page":108},"/docs/4.x/api/commands","docs/4.x/4.api/4.commands",[1659,1662,1665,1668,1671,1674,1677,1680,1683,1686,1689,1692,1695,1698,1701,1704],{"title":753,"path":1660,"stem":1661,"titleTemplate":6},"/docs/4.x/api/commands/add","docs/4.x/4.api/4.commands/add",{"title":757,"path":1663,"stem":1664,"titleTemplate":6},"/docs/4.x/api/commands/analyze","docs/4.x/4.api/4.commands/analyze",{"title":761,"path":1666,"stem":1667,"titleTemplate":6},"/docs/4.x/api/commands/build","docs/4.x/4.api/4.commands/build",{"title":765,"path":1669,"stem":1670,"titleTemplate":6},"/docs/4.x/api/commands/build-module","docs/4.x/4.api/4.commands/build-module",{"title":769,"path":1672,"stem":1673,"titleTemplate":6},"/docs/4.x/api/commands/cleanup","docs/4.x/4.api/4.commands/cleanup",{"title":773,"path":1675,"stem":1676,"titleTemplate":6},"/docs/4.x/api/commands/dev","docs/4.x/4.api/4.commands/dev",{"title":777,"path":1678,"stem":1679,"titleTemplate":6},"/docs/4.x/api/commands/devtools","docs/4.x/4.api/4.commands/devtools",{"title":781,"path":1681,"stem":1682,"titleTemplate":6},"/docs/4.x/api/commands/generate","docs/4.x/4.api/4.commands/generate",{"title":785,"path":1684,"stem":1685,"titleTemplate":6},"/docs/4.x/api/commands/info","docs/4.x/4.api/4.commands/info",{"title":789,"path":1687,"stem":1688,"titleTemplate":6},"/docs/4.x/api/commands/init","docs/4.x/4.api/4.commands/init",{"title":793,"path":1690,"stem":1691,"titleTemplate":6},"/docs/4.x/api/commands/module","docs/4.x/4.api/4.commands/module",{"title":797,"path":1693,"stem":1694,"titleTemplate":6},"/docs/4.x/api/commands/prepare","docs/4.x/4.api/4.commands/prepare",{"title":801,"path":1696,"stem":1697,"titleTemplate":6},"/docs/4.x/api/commands/preview","docs/4.x/4.api/4.commands/preview",{"title":805,"path":1699,"stem":1700,"titleTemplate":6},"/docs/4.x/api/commands/test","docs/4.x/4.api/4.commands/test",{"title":809,"path":1702,"stem":1703,"titleTemplate":6},"/docs/4.x/api/commands/typecheck","docs/4.x/4.api/4.commands/typecheck",{"title":813,"path":1705,"stem":1706,"titleTemplate":6},"/docs/4.x/api/commands/upgrade","docs/4.x/4.api/4.commands/upgrade",{"title":411,"titleTemplate":817,"icon":818,"path":1708,"stem":1709,"children":1710,"page":108},"/docs/4.x/api/kit","docs/4.x/4.api/5.kit",[1711,1714,1717,1720,1723,1726,1729,1732,1735,1738,1741,1744,1747,1750,1753,1756,1759,1762],{"title":276,"path":1712,"stem":1713,"titleTemplate":6},"/docs/4.x/api/kit/modules","docs/4.x/4.api/5.kit/1.modules",{"title":399,"path":1715,"stem":1716,"titleTemplate":6},"/docs/4.x/api/kit/runtime-config","docs/4.x/4.api/5.kit/10.runtime-config",{"title":829,"path":1718,"stem":1719,"titleTemplate":6},"/docs/4.x/api/kit/templates","docs/4.x/4.api/5.kit/10.templates",{"title":833,"path":1721,"stem":1722,"titleTemplate":6},"/docs/4.x/api/kit/nitro","docs/4.x/4.api/5.kit/11.nitro",{"title":837,"path":1724,"stem":1725,"titleTemplate":6},"/docs/4.x/api/kit/resolving","docs/4.x/4.api/5.kit/12.resolving",{"title":841,"path":1727,"stem":1728,"titleTemplate":6},"/docs/4.x/api/kit/logging","docs/4.x/4.api/5.kit/13.logging",{"title":845,"path":1730,"stem":1731,"titleTemplate":6},"/docs/4.x/api/kit/builder","docs/4.x/4.api/5.kit/14.builder",{"title":849,"path":1733,"stem":1734,"titleTemplate":6},"/docs/4.x/api/kit/examples","docs/4.x/4.api/5.kit/15.examples",{"title":84,"path":1736,"stem":1737,"titleTemplate":6},"/docs/4.x/api/kit/layers","docs/4.x/4.api/5.kit/16.layers",{"title":856,"path":1739,"stem":1740,"titleTemplate":6},"/docs/4.x/api/kit/programmatic","docs/4.x/4.api/5.kit/2.programmatic",{"title":860,"path":1742,"stem":1743,"titleTemplate":6},"/docs/4.x/api/kit/compatibility","docs/4.x/4.api/5.kit/3.compatibility",{"title":268,"path":1745,"stem":1746,"titleTemplate":6},"/docs/4.x/api/kit/autoimports","docs/4.x/4.api/5.kit/4.autoimports",{"title":434,"path":1748,"stem":1749,"titleTemplate":6},"/docs/4.x/api/kit/components","docs/4.x/4.api/5.kit/5.components",{"title":870,"path":1751,"stem":1752,"titleTemplate":6},"/docs/4.x/api/kit/context","docs/4.x/4.api/5.kit/6.context",{"title":874,"path":1754,"stem":1755,"titleTemplate":6},"/docs/4.x/api/kit/pages","docs/4.x/4.api/5.kit/7.pages",{"title":878,"path":1757,"stem":1758,"titleTemplate":6},"/docs/4.x/api/kit/layout","docs/4.x/4.api/5.kit/8.layout",{"title":882,"path":1760,"stem":1761,"titleTemplate":6},"/docs/4.x/api/kit/head","docs/4.x/4.api/5.kit/9.head",{"title":886,"path":1763,"stem":1764,"titleTemplate":6},"/docs/4.x/api/kit/plugins","docs/4.x/4.api/5.kit/9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":1766,"stem":1767,"children":1768,"page":108},"/docs/4.x/api/advanced","docs/4.x/4.api/6.advanced",[1769,1772],{"title":407,"path":1770,"stem":1771,"titleTemplate":6},"/docs/4.x/api/advanced/hooks","docs/4.x/4.api/6.advanced/1.hooks",{"title":899,"path":1773,"stem":1774,"titleTemplate":6},"/docs/4.x/api/advanced/import-meta","docs/4.x/4.api/6.advanced/2.import-meta",{"title":903,"path":1776,"stem":1777,"titleTemplate":906,"icon":32},"/docs/4.x/api/nuxt-config","docs/4.x/4.api/6.nuxt-config",{"title":849,"titleTemplate":908,"icon":909,"path":1779,"stem":1780,"children":1781,"page":108},"/docs/4.x/examples","docs/4.x/4.examples",[1782,1785,1804,1817,1848],{"title":914,"path":1783,"stem":1784,"titleTemplate":6},"/docs/4.x/examples/hello-world","docs/4.x/4.examples/0.hello-world",{"title":395,"path":1786,"stem":1787,"children":1788,"page":108},"/docs/4.x/examples/features","docs/4.x/4.examples/1.features",[1789,1792,1795,1798,1801],{"title":922,"path":1790,"stem":1791,"titleTemplate":6},"/docs/4.x/examples/features/auto-imports","docs/4.x/4.examples/1.features/1.auto-imports",{"title":64,"path":1793,"stem":1794,"titleTemplate":6},"/docs/4.x/examples/features/data-fetching","docs/4.x/4.examples/1.features/2.data-fetching",{"title":69,"path":1796,"stem":1797,"titleTemplate":6},"/docs/4.x/examples/features/state-management","docs/4.x/4.examples/1.features/3.state-management",{"title":932,"path":1799,"stem":1800,"titleTemplate":6},"/docs/4.x/examples/features/meta-tags","docs/4.x/4.examples/1.features/4.meta-tags",{"title":936,"path":1802,"stem":1803,"titleTemplate":6},"/docs/4.x/examples/features/layouts","docs/4.x/4.examples/1.features/5.layouts",{"title":49,"path":1805,"stem":1806,"children":1807,"page":108},"/docs/4.x/examples/routing","docs/4.x/4.examples/2.routing",[1808,1811,1814],{"title":944,"path":1809,"stem":1810,"titleTemplate":6},"/docs/4.x/examples/routing/middleware","docs/4.x/4.examples/2.routing/middleware",{"title":874,"path":1812,"stem":1813,"titleTemplate":6},"/docs/4.x/examples/routing/pages","docs/4.x/4.examples/2.routing/pages",{"title":951,"path":1815,"stem":1816,"titleTemplate":6},"/docs/4.x/examples/routing/universal-router","docs/4.x/4.examples/2.routing/universal-router",{"title":890,"path":1818,"stem":1819,"children":1820,"page":108},"/docs/4.x/examples/advanced","docs/4.x/4.examples/4.advanced",[1821,1824,1827,1830,1833,1836,1839,1842,1845],{"title":84,"path":1822,"stem":1823,"titleTemplate":6},"/docs/4.x/examples/advanced/config-extends","docs/4.x/4.examples/4.advanced/config-extends",{"title":74,"path":1825,"stem":1826,"titleTemplate":6},"/docs/4.x/examples/advanced/error-handling","docs/4.x/4.examples/4.advanced/error-handling",{"title":965,"path":1828,"stem":1829,"titleTemplate":6},"/docs/4.x/examples/advanced/jsx","docs/4.x/4.examples/4.advanced/jsx",{"title":969,"path":1831,"stem":1832,"titleTemplate":6},"/docs/4.x/examples/advanced/locale","docs/4.x/4.examples/4.advanced/locale",{"title":973,"path":1834,"stem":1835,"titleTemplate":6},"/docs/4.x/examples/advanced/module-extend-pages","docs/4.x/4.examples/4.advanced/module-extend-pages",{"title":977,"path":1837,"stem":1838,"titleTemplate":6},"/docs/4.x/examples/advanced/teleport","docs/4.x/4.examples/4.advanced/teleport",{"title":99,"path":1840,"stem":1841,"titleTemplate":6},"/docs/4.x/examples/advanced/testing","docs/4.x/4.examples/4.advanced/testing",{"title":519,"path":1843,"stem":1844,"titleTemplate":6},"/docs/4.x/examples/advanced/use-cookie","docs/4.x/4.examples/4.advanced/use-cookie",{"title":987,"path":1846,"stem":1847,"titleTemplate":6},"/docs/4.x/examples/advanced/use-custom-fetch-composable","docs/4.x/4.examples/4.advanced/use-custom-fetch-composable",{"title":991,"path":1849,"stem":1850,"children":1851,"page":108},"/docs/4.x/examples/experimental","docs/4.x/4.examples/7.experimental",[1852],{"title":996,"path":1853,"stem":1854,"titleTemplate":6},"/docs/4.x/examples/experimental/wasm","docs/4.x/4.examples/7.experimental/wasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":1856,"stem":1857,"children":1858,"page":108},"/docs/4.x/community","docs/4.x/5.community",[1859,1862,1865,1868,1871,1874],{"title":1007,"path":1860,"stem":1861,"titleTemplate":6,"icon":1010},"/docs/4.x/community/getting-help","docs/4.x/5.community/2.getting-help",{"title":1012,"path":1863,"stem":1864,"titleTemplate":6,"icon":1015},"/docs/4.x/community/reporting-bugs","docs/4.x/5.community/3.reporting-bugs",{"title":1017,"path":1866,"stem":1867,"titleTemplate":6,"icon":1020},"/docs/4.x/community/contribution","docs/4.x/5.community/4.contribution",{"title":1022,"path":1869,"stem":1870,"titleTemplate":6,"icon":1025},"/docs/4.x/community/framework-contribution","docs/4.x/5.community/5.framework-contribution",{"title":1027,"path":1872,"stem":1873,"titleTemplate":6,"icon":1030},"/docs/4.x/community/roadmap","docs/4.x/5.community/6.roadmap",{"title":1032,"path":1875,"stem":1876,"titleTemplate":6,"icon":1035},"/docs/4.x/community/changelog","docs/4.x/5.community/7.changelog",{"title":1037,"titleTemplate":1038,"icon":1039,"path":1878,"stem":1879,"children":1880,"page":108},"/docs/4.x/bridge","docs/4.x/6.bridge",[1881,1884,1887,1890,1893,1896,1899,1902,1905,1908],{"title":1044,"path":1882,"stem":1883,"titleTemplate":6},"/docs/4.x/bridge/overview","docs/4.x/6.bridge/1.overview",{"title":29,"path":1885,"stem":1886,"titleTemplate":6},"/docs/4.x/bridge/configuration","docs/4.x/6.bridge/10.configuration",{"title":280,"path":1888,"stem":1889,"titleTemplate":6},"/docs/4.x/bridge/typescript","docs/4.x/6.bridge/2.typescript",{"title":1054,"path":1891,"stem":1892,"titleTemplate":6},"/docs/4.x/bridge/bridge-composition-api","docs/4.x/6.bridge/3.bridge-composition-api",{"title":1058,"path":1894,"stem":1895,"titleTemplate":6},"/docs/4.x/bridge/plugins-and-middleware","docs/4.x/6.bridge/4.plugins-and-middleware",{"title":1062,"path":1897,"stem":1898,"titleTemplate":6},"/docs/4.x/bridge/nuxt3-compatible-api","docs/4.x/6.bridge/5.nuxt3-compatible-api",{"title":932,"path":1900,"stem":1901,"titleTemplate":6},"/docs/4.x/bridge/meta","docs/4.x/6.bridge/6.meta",{"title":399,"path":1903,"stem":1904,"titleTemplate":6},"/docs/4.x/bridge/runtime-config","docs/4.x/6.bridge/7.runtime-config",{"title":833,"path":1906,"stem":1907,"titleTemplate":6},"/docs/4.x/bridge/nitro","docs/4.x/6.bridge/8.nitro",{"title":1075,"path":1909,"stem":1910,"titleTemplate":6},"/docs/4.x/bridge/vite","docs/4.x/6.bridge/9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":1912,"stem":1913,"children":1914,"page":108},"/docs/4.x/migration","docs/4.x/7.migration",[1915,1918,1921,1924,1927,1930,1933,1936,1939,1942,1945],{"title":1044,"path":1916,"stem":1917,"titleTemplate":6},"/docs/4.x/migration/overview","docs/4.x/7.migration/1.overview",{"title":1088,"path":1919,"stem":1920,"titleTemplate":6},"/docs/4.x/migration/bundling","docs/4.x/7.migration/10.bundling",{"title":79,"path":1922,"stem":1923,"titleTemplate":6},"/docs/4.x/migration/server","docs/4.x/7.migration/11.server",{"title":29,"path":1925,"stem":1926,"titleTemplate":6},"/docs/4.x/migration/configuration","docs/4.x/7.migration/2.configuration",{"title":276,"path":1928,"stem":1929,"titleTemplate":6},"/docs/4.x/migration/module-authors","docs/4.x/7.migration/20.module-authors",{"title":922,"path":1931,"stem":1932,"titleTemplate":6},"/docs/4.x/migration/auto-imports","docs/4.x/7.migration/3.auto-imports",{"title":932,"path":1934,"stem":1935,"titleTemplate":6},"/docs/4.x/migration/meta","docs/4.x/7.migration/4.meta",{"title":1058,"path":1937,"stem":1938,"titleTemplate":6},"/docs/4.x/migration/plugins-and-middleware","docs/4.x/7.migration/5.plugins-and-middleware",{"title":1110,"path":1940,"stem":1941,"titleTemplate":6},"/docs/4.x/migration/pages-and-layouts","docs/4.x/7.migration/6.pages-and-layouts",{"title":1114,"path":1943,"stem":1944,"titleTemplate":6},"/docs/4.x/migration/component-options","docs/4.x/7.migration/7.component-options",{"title":399,"path":1946,"stem":1947,"titleTemplate":6},"/docs/4.x/migration/runtime-config","docs/4.x/7.migration/8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1949,"stem":1950,"children":1951,"page":108},"/docs/5.x","docs/5.x",[1952,2010,2100,2227,2597,2674,2696,2730],{"title":12,"titleTemplate":13,"icon":14,"path":1953,"stem":1954,"children":1955,"page":108},"/docs/5.x/getting-started","docs/5.x/1.getting-started",[1956,1959,1962,1965,1968,1971,1974,1977,1980,1983,1986,1989,1992,1995,1998,2001,2004,2007],{"title":19,"path":1957,"stem":1958,"titleTemplate":6,"icon":22},"/docs/5.x/getting-started/introduction","docs/5.x/1.getting-started/01.introduction",{"title":24,"path":1960,"stem":1961,"titleTemplate":6,"icon":27},"/docs/5.x/getting-started/installation","docs/5.x/1.getting-started/02.installation",{"title":29,"path":1963,"stem":1964,"titleTemplate":6,"icon":32},"/docs/5.x/getting-started/configuration","docs/5.x/1.getting-started/03.configuration",{"title":34,"path":1966,"stem":1967,"titleTemplate":6,"icon":37},"/docs/5.x/getting-started/views","docs/5.x/1.getting-started/04.views",{"title":39,"path":1969,"stem":1970,"titleTemplate":6,"icon":42},"/docs/5.x/getting-started/assets","docs/5.x/1.getting-started/05.assets",{"title":44,"path":1972,"stem":1973,"titleTemplate":6,"icon":47},"/docs/5.x/getting-started/styling","docs/5.x/1.getting-started/06.styling",{"title":49,"path":1975,"stem":1976,"titleTemplate":6,"icon":52},"/docs/5.x/getting-started/routing","docs/5.x/1.getting-started/07.routing",{"title":54,"path":1978,"stem":1979,"titleTemplate":6,"icon":57},"/docs/5.x/getting-started/seo-meta","docs/5.x/1.getting-started/08.seo-meta",{"title":59,"path":1981,"stem":1982,"titleTemplate":6,"icon":62},"/docs/5.x/getting-started/transitions","docs/5.x/1.getting-started/09.transitions",{"title":64,"path":1984,"stem":1985,"titleTemplate":6,"icon":67},"/docs/5.x/getting-started/data-fetching","docs/5.x/1.getting-started/10.data-fetching",{"title":69,"path":1987,"stem":1988,"titleTemplate":6,"icon":72},"/docs/5.x/getting-started/state-management","docs/5.x/1.getting-started/11.state-management",{"title":74,"path":1990,"stem":1991,"titleTemplate":6,"icon":77},"/docs/5.x/getting-started/error-handling","docs/5.x/1.getting-started/12.error-handling",{"title":79,"path":1993,"stem":1994,"titleTemplate":6,"icon":82},"/docs/5.x/getting-started/server","docs/5.x/1.getting-started/13.server",{"title":84,"path":1996,"stem":1997,"titleTemplate":6,"icon":87},"/docs/5.x/getting-started/layers","docs/5.x/1.getting-started/14.layers",{"title":89,"path":1999,"stem":2000,"titleTemplate":6,"icon":92},"/docs/5.x/getting-started/prerendering","docs/5.x/1.getting-started/15.prerendering",{"title":94,"path":2002,"stem":2003,"titleTemplate":6,"icon":97},"/docs/5.x/getting-started/deployment","docs/5.x/1.getting-started/16.deployment",{"title":99,"path":2005,"stem":2006,"titleTemplate":6,"icon":102},"/docs/5.x/getting-started/testing","docs/5.x/1.getting-started/17.testing",{"title":104,"path":2008,"stem":2009,"titleTemplate":6,"icon":107},"/docs/5.x/getting-started/upgrade","docs/5.x/1.getting-started/18.upgrade",{"title":110,"titleTemplate":111,"icon":112,"path":2011,"stem":2012,"children":2013,"page":108},"/docs/5.x/directory-structure","docs/5.x/2.directory-structure",[2014,2017,2020,2058,2061,2064,2067,2070,2073,2076,2079,2082,2085,2088,2091,2094,2097],{"title":117,"path":2015,"stem":2016,"titleTemplate":6,"icon":120},"/docs/5.x/directory-structure/nuxt","docs/5.x/2.directory-structure/0.nuxt",{"title":122,"path":2018,"stem":2019,"titleTemplate":6,"icon":125},"/docs/5.x/directory-structure/output","docs/5.x/2.directory-structure/0.output",{"title":1193,"titleTemplate":111,"head":2021,"defaultOpen":1196,"icon":1197,"path":2022,"stem":2023,"children":2024,"page":108},{"title":1195},"/docs/5.x/directory-structure/app","docs/5.x/2.directory-structure/1.app",[2025,2028,2031,2034,2037,2040,2043,2046,2049,2052,2055],{"title":127,"path":2026,"stem":2027,"titleTemplate":6,"icon":130},"/docs/5.x/directory-structure/app/assets","docs/5.x/2.directory-structure/1.app/1.assets",{"title":132,"path":2029,"stem":2030,"titleTemplate":6,"icon":135},"/docs/5.x/directory-structure/app/components","docs/5.x/2.directory-structure/1.app/1.components",{"title":137,"path":2032,"stem":2033,"titleTemplate":6,"icon":140},"/docs/5.x/directory-structure/app/composables","docs/5.x/2.directory-structure/1.app/1.composables",{"title":152,"path":2035,"stem":2036,"titleTemplate":6,"icon":155},"/docs/5.x/directory-structure/app/layouts","docs/5.x/2.directory-structure/1.app/1.layouts",{"title":157,"path":2038,"stem":2039,"titleTemplate":6,"icon":160},"/docs/5.x/directory-structure/app/middleware","docs/5.x/2.directory-structure/1.app/1.middleware",{"title":171,"path":2041,"stem":2042,"titleTemplate":6,"icon":155},"/docs/5.x/directory-structure/app/pages","docs/5.x/2.directory-structure/1.app/1.pages",{"title":175,"path":2044,"stem":2045,"titleTemplate":6,"icon":178},"/docs/5.x/directory-structure/app/plugins","docs/5.x/2.directory-structure/1.app/1.plugins",{"title":195,"path":2047,"stem":2048,"titleTemplate":6,"icon":198},"/docs/5.x/directory-structure/app/utils","docs/5.x/2.directory-structure/1.app/1.utils",{"title":219,"path":2050,"stem":2051,"titleTemplate":6,"icon":222},"/docs/5.x/directory-structure/app/app","docs/5.x/2.directory-structure/1.app/3.app",{"title":224,"path":2053,"stem":2054,"titleTemplate":6,"icon":227},"/docs/5.x/directory-structure/app/app-config","docs/5.x/2.directory-structure/1.app/3.app-config",{"title":229,"path":2056,"stem":2057,"titleTemplate":6,"icon":222},"/docs/5.x/directory-structure/app/error","docs/5.x/2.directory-structure/1.app/3.error",{"title":142,"path":2059,"stem":2060,"titleTemplate":6,"icon":145},"/docs/5.x/directory-structure/content","docs/5.x/2.directory-structure/1.content",{"title":147,"path":2062,"stem":2063,"titleTemplate":6,"icon":150},"/docs/5.x/directory-structure/layers","docs/5.x/2.directory-structure/1.layers",{"title":162,"path":2065,"stem":2066,"titleTemplate":6,"icon":150},"/docs/5.x/directory-structure/modules","docs/5.x/2.directory-structure/1.modules",{"title":166,"path":2068,"stem":2069,"titleTemplate":6,"icon":169},"/docs/5.x/directory-structure/node_modules","docs/5.x/2.directory-structure/1.node_modules",{"title":180,"path":2071,"stem":2072,"titleTemplate":6,"icon":183},"/docs/5.x/directory-structure/public","docs/5.x/2.directory-structure/1.public",{"title":185,"path":2074,"stem":2075,"titleTemplate":6,"icon":188},"/docs/5.x/directory-structure/server","docs/5.x/2.directory-structure/1.server",{"title":190,"path":2077,"stem":2078,"titleTemplate":6,"icon":193},"/docs/5.x/directory-structure/shared","docs/5.x/2.directory-structure/1.shared",{"title":200,"path":2080,"stem":2081,"titleTemplate":6,"icon":203},"/docs/5.x/directory-structure/env","docs/5.x/2.directory-structure/2.env",{"title":205,"path":2083,"stem":2084,"titleTemplate":6,"icon":208},"/docs/5.x/directory-structure/gitignore","docs/5.x/2.directory-structure/2.gitignore",{"title":210,"path":2086,"stem":2087,"titleTemplate":6,"icon":213},"/docs/5.x/directory-structure/nuxtignore","docs/5.x/2.directory-structure/2.nuxtignore",{"title":215,"path":2089,"stem":2090,"titleTemplate":6,"icon":213},"/docs/5.x/directory-structure/nuxtrc","docs/5.x/2.directory-structure/2.nuxtrc",{"title":233,"path":2092,"stem":2093,"titleTemplate":6,"icon":213},"/docs/5.x/directory-structure/nuxt-config","docs/5.x/2.directory-structure/3.nuxt-config",{"title":237,"path":2095,"stem":2096,"titleTemplate":6,"icon":240},"/docs/5.x/directory-structure/package","docs/5.x/2.directory-structure/3.package",{"title":242,"path":2098,"stem":2099,"titleTemplate":6,"icon":245},"/docs/5.x/directory-structure/tsconfig","docs/5.x/2.directory-structure/3.tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":2101,"stem":2102,"children":2103,"page":108},"/docs/5.x/guide","docs/5.x/3.guide",[2104,2129,2142,2152,2177,2193],{"title":253,"titleTemplate":254,"icon":255,"path":2105,"stem":2106,"children":2107,"page":108},"/docs/5.x/guide/concepts","docs/5.x/3.guide/1.concepts",[2108,2111,2114,2117,2120,2123,2126],{"title":260,"path":2109,"stem":2110,"titleTemplate":6},"/docs/5.x/guide/concepts/rendering","docs/5.x/3.guide/1.concepts/1.rendering",{"title":264,"path":2112,"stem":2113,"titleTemplate":6},"/docs/5.x/guide/concepts/nuxt-lifecycle","docs/5.x/3.guide/1.concepts/2.nuxt-lifecycle",{"title":268,"path":2115,"stem":2116,"titleTemplate":6},"/docs/5.x/guide/concepts/auto-imports","docs/5.x/3.guide/1.concepts/3.auto-imports",{"title":272,"path":2118,"stem":2119,"titleTemplate":6},"/docs/5.x/guide/concepts/server-engine","docs/5.x/3.guide/1.concepts/4.server-engine",{"title":276,"path":2121,"stem":2122,"titleTemplate":6},"/docs/5.x/guide/concepts/modules","docs/5.x/3.guide/1.concepts/5.modules",{"title":280,"path":2124,"stem":2125,"titleTemplate":6},"/docs/5.x/guide/concepts/typescript","docs/5.x/3.guide/1.concepts/8.typescript",{"title":284,"path":2127,"stem":2128,"titleTemplate":6},"/docs/5.x/guide/concepts/code-style","docs/5.x/3.guide/1.concepts/9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":2130,"stem":2131,"children":2132,"page":108},"/docs/5.x/guide/best-practices","docs/5.x/3.guide/2.best-practices",[2133,2136,2139],{"title":1310,"path":2134,"stem":2135,"titleTemplate":6},"/docs/5.x/guide/best-practices/hydration","docs/5.x/3.guide/2.best-practices/hydration",{"title":299,"path":2137,"stem":2138,"titleTemplate":6},"/docs/5.x/guide/best-practices/performance","docs/5.x/3.guide/2.best-practices/performance",{"title":303,"path":2140,"stem":2141,"titleTemplate":6},"/docs/5.x/guide/best-practices/plugins","docs/5.x/3.guide/2.best-practices/plugins",{"title":307,"titleTemplate":308,"icon":309,"path":2143,"stem":2144,"children":2145,"page":108},"/docs/5.x/guide/ai","docs/5.x/3.guide/3.ai",[2146,2149],{"title":314,"path":2147,"stem":2148,"titleTemplate":6},"/docs/5.x/guide/ai/mcp","docs/5.x/3.guide/3.ai/1.mcp",{"title":318,"path":2150,"stem":2151,"titleTemplate":6},"/docs/5.x/guide/ai/llms-txt","docs/5.x/3.guide/3.ai/2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":2153,"stem":2154,"children":2155,"page":108},"/docs/5.x/guide/modules","docs/5.x/3.guide/4.modules",[2156,2159,2162,2165,2168,2171,2174],{"title":329,"path":2157,"stem":2158,"titleTemplate":6},"/docs/5.x/guide/modules/getting-started","docs/5.x/3.guide/4.modules/1.getting-started",{"title":333,"path":2160,"stem":2161,"titleTemplate":6},"/docs/5.x/guide/modules/module-anatomy","docs/5.x/3.guide/4.modules/2.module-anatomy",{"title":337,"path":2163,"stem":2164,"titleTemplate":6},"/docs/5.x/guide/modules/recipes-basics","docs/5.x/3.guide/4.modules/3.recipes-basics",{"title":341,"path":2166,"stem":2167,"titleTemplate":6},"/docs/5.x/guide/modules/recipes-advanced","docs/5.x/3.guide/4.modules/4.recipes-advanced",{"title":345,"path":2169,"stem":2170,"titleTemplate":6},"/docs/5.x/guide/modules/testing","docs/5.x/3.guide/4.modules/5.testing",{"title":349,"path":2172,"stem":2173,"titleTemplate":6},"/docs/5.x/guide/modules/best-practices","docs/5.x/3.guide/4.modules/6.best-practices",{"title":353,"path":2175,"stem":2176,"titleTemplate":6},"/docs/5.x/guide/modules/ecosystem","docs/5.x/3.guide/4.modules/7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":2178,"stem":2179,"children":2180,"page":108},"/docs/5.x/guide/recipes","docs/5.x/3.guide/5.recipes",[2181,2184,2187,2190],{"title":364,"path":2182,"stem":2183,"titleTemplate":6},"/docs/5.x/guide/recipes/custom-routing","docs/5.x/3.guide/5.recipes/1.custom-routing",{"title":368,"path":2185,"stem":2186,"titleTemplate":6},"/docs/5.x/guide/recipes/vite-plugin","docs/5.x/3.guide/5.recipes/2.vite-plugin",{"title":372,"path":2188,"stem":2189,"titleTemplate":6},"/docs/5.x/guide/recipes/custom-usefetch","docs/5.x/3.guide/5.recipes/3.custom-usefetch",{"title":376,"path":2191,"stem":2192,"titleTemplate":6},"/docs/5.x/guide/recipes/sessions-and-authentication","docs/5.x/3.guide/5.recipes/4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":2194,"stem":2195,"children":2196,"page":108},"/docs/5.x/guide/going-further","docs/5.x/3.guide/6.going-further",[2197,2200,2203,2206,2209,2212,2215,2218,2221,2224],{"title":387,"path":2198,"stem":2199,"titleTemplate":6},"/docs/5.x/guide/going-further/events","docs/5.x/3.guide/6.going-further/1.events",{"title":391,"path":2201,"stem":2202,"titleTemplate":6},"/docs/5.x/guide/going-further/experimental-features","docs/5.x/3.guide/6.going-further/1.experimental-features",{"title":395,"path":2204,"stem":2205,"titleTemplate":6},"/docs/5.x/guide/going-further/features","docs/5.x/3.guide/6.going-further/1.features",{"title":399,"path":2207,"stem":2208,"titleTemplate":6},"/docs/5.x/guide/going-further/runtime-config","docs/5.x/3.guide/6.going-further/10.runtime-config",{"title":403,"path":2210,"stem":2211,"titleTemplate":6},"/docs/5.x/guide/going-further/nightly-release-channel","docs/5.x/3.guide/6.going-further/11.nightly-release-channel",{"title":407,"path":2213,"stem":2214,"titleTemplate":6},"/docs/5.x/guide/going-further/hooks","docs/5.x/3.guide/6.going-further/2.hooks",{"title":411,"path":2216,"stem":2217,"titleTemplate":6},"/docs/5.x/guide/going-further/kit","docs/5.x/3.guide/6.going-further/4.kit",{"title":415,"path":2219,"stem":2220,"titleTemplate":6},"/docs/5.x/guide/going-further/nuxt-app","docs/5.x/3.guide/6.going-further/6.nuxt-app",{"title":419,"path":2222,"stem":2223,"titleTemplate":6},"/docs/5.x/guide/going-further/layers","docs/5.x/3.guide/6.going-further/7.layers",{"title":423,"path":2225,"stem":2226,"titleTemplate":6},"/docs/5.x/guide/going-further/debugging","docs/5.x/3.guide/6.going-further/9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":2228,"stem":2229,"children":2230,"page":108},"/docs/5.x/api","docs/5.x/4.api",[2231,2283,2383,2474,2526,2584,2594],{"title":434,"titleTemplate":435,"icon":324,"path":2232,"stem":2233,"children":2234,"page":108},"/docs/5.x/api/components","docs/5.x/4.api/1.components",[2235,2238,2241,2244,2247,2250,2253,2256,2259,2262,2265,2268,2271,2274,2277,2280],{"title":440,"path":2236,"stem":2237,"titleTemplate":6},"/docs/5.x/api/components/client-only","docs/5.x/4.api/1.components/1.client-only",{"title":444,"path":2239,"stem":2240,"titleTemplate":6},"/docs/5.x/api/components/dev-only","docs/5.x/4.api/1.components/1.dev-only",{"title":448,"path":2242,"stem":2243,"titleTemplate":6},"/docs/5.x/api/components/nuxt-client-fallback","docs/5.x/4.api/1.components/1.nuxt-client-fallback",{"title":452,"path":2245,"stem":2246,"titleTemplate":6},"/docs/5.x/api/components/nuxt-picture","docs/5.x/4.api/1.components/10.nuxt-picture",{"title":456,"path":2248,"stem":2249,"titleTemplate":6},"/docs/5.x/api/components/teleports","docs/5.x/4.api/1.components/11.teleports",{"title":460,"path":2251,"stem":2252,"titleTemplate":6},"/docs/5.x/api/components/nuxt-route-announcer","docs/5.x/4.api/1.components/12.nuxt-route-announcer",{"title":464,"path":2254,"stem":2255,"titleTemplate":6},"/docs/5.x/api/components/nuxt-time","docs/5.x/4.api/1.components/13.nuxt-time",{"title":1434,"path":2257,"stem":2258,"titleTemplate":6},"/docs/5.x/api/components/nuxt-announcer","docs/5.x/4.api/1.components/14.nuxt-announcer",{"title":468,"path":2260,"stem":2261,"titleTemplate":6},"/docs/5.x/api/components/nuxt-page","docs/5.x/4.api/1.components/2.nuxt-page",{"title":472,"path":2263,"stem":2264,"titleTemplate":6},"/docs/5.x/api/components/nuxt-layout","docs/5.x/4.api/1.components/3.nuxt-layout",{"title":476,"path":2266,"stem":2267,"titleTemplate":6},"/docs/5.x/api/components/nuxt-link","docs/5.x/4.api/1.components/4.nuxt-link",{"title":480,"path":2269,"stem":2270,"titleTemplate":6},"/docs/5.x/api/components/nuxt-loading-indicator","docs/5.x/4.api/1.components/5.nuxt-loading-indicator",{"title":484,"path":2272,"stem":2273,"titleTemplate":6},"/docs/5.x/api/components/nuxt-error-boundary","docs/5.x/4.api/1.components/6.nuxt-error-boundary",{"title":488,"path":2275,"stem":2276,"titleTemplate":6},"/docs/5.x/api/components/nuxt-welcome","docs/5.x/4.api/1.components/7.nuxt-welcome",{"title":492,"path":2278,"stem":2279,"titleTemplate":6},"/docs/5.x/api/components/nuxt-island","docs/5.x/4.api/1.components/8.nuxt-island",{"title":496,"path":2281,"stem":2282,"titleTemplate":6},"/docs/5.x/api/components/nuxt-img","docs/5.x/4.api/1.components/9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":2284,"stem":2285,"children":2286,"page":108},"/docs/5.x/api/composables","docs/5.x/4.api/2.composables",[2287,2290,2293,2296,2299,2302,2305,2308,2311,2314,2317,2320,2323,2326,2329,2332,2335,2338,2341,2344,2347,2350,2353,2356,2359,2362,2365,2368,2371,2374,2377,2380],{"title":1466,"path":2288,"stem":2289,"titleTemplate":6},"/docs/5.x/api/composables/create-use-async-data","docs/5.x/4.api/2.composables/create-use-async-data",{"title":1470,"path":2291,"stem":2292,"titleTemplate":6},"/docs/5.x/api/composables/create-use-fetch","docs/5.x/4.api/2.composables/create-use-fetch",{"title":507,"path":2294,"stem":2295,"titleTemplate":6},"/docs/5.x/api/composables/on-prehydrate","docs/5.x/4.api/2.composables/on-prehydrate",{"title":1477,"path":2297,"stem":2298,"titleTemplate":6},"/docs/5.x/api/composables/use-announcer","docs/5.x/4.api/2.composables/use-announcer",{"title":511,"path":2300,"stem":2301,"titleTemplate":6},"/docs/5.x/api/composables/use-app-config","docs/5.x/4.api/2.composables/use-app-config",{"title":515,"path":2303,"stem":2304,"titleTemplate":6},"/docs/5.x/api/composables/use-async-data","docs/5.x/4.api/2.composables/use-async-data",{"title":519,"path":2306,"stem":2307,"titleTemplate":6},"/docs/5.x/api/composables/use-cookie","docs/5.x/4.api/2.composables/use-cookie",{"title":523,"path":2309,"stem":2310,"titleTemplate":6},"/docs/5.x/api/composables/use-error","docs/5.x/4.api/2.composables/use-error",{"title":527,"path":2312,"stem":2313,"titleTemplate":6},"/docs/5.x/api/composables/use-fetch","docs/5.x/4.api/2.composables/use-fetch",{"title":531,"path":2315,"stem":2316,"titleTemplate":6},"/docs/5.x/api/composables/use-head","docs/5.x/4.api/2.composables/use-head",{"title":535,"path":2318,"stem":2319,"titleTemplate":6},"/docs/5.x/api/composables/use-head-safe","docs/5.x/4.api/2.composables/use-head-safe",{"title":539,"path":2321,"stem":2322,"titleTemplate":6},"/docs/5.x/api/composables/use-hydration","docs/5.x/4.api/2.composables/use-hydration",{"title":543,"path":2324,"stem":2325,"titleTemplate":6},"/docs/5.x/api/composables/use-lazy-async-data","docs/5.x/4.api/2.composables/use-lazy-async-data",{"title":547,"path":2327,"stem":2328,"titleTemplate":6},"/docs/5.x/api/composables/use-lazy-fetch","docs/5.x/4.api/2.composables/use-lazy-fetch",{"title":551,"path":2330,"stem":2331,"titleTemplate":6},"/docs/5.x/api/composables/use-loading-indicator","docs/5.x/4.api/2.composables/use-loading-indicator",{"title":555,"path":2333,"stem":2334,"titleTemplate":6},"/docs/5.x/api/composables/use-nuxt-app","docs/5.x/4.api/2.composables/use-nuxt-app",{"title":559,"path":2336,"stem":2337,"titleTemplate":6},"/docs/5.x/api/composables/use-nuxt-data","docs/5.x/4.api/2.composables/use-nuxt-data",{"title":563,"path":2339,"stem":2340,"titleTemplate":6},"/docs/5.x/api/composables/use-preview-mode","docs/5.x/4.api/2.composables/use-preview-mode",{"title":567,"path":2342,"stem":2343,"titleTemplate":6},"/docs/5.x/api/composables/use-request-event","docs/5.x/4.api/2.composables/use-request-event",{"title":571,"path":2345,"stem":2346,"titleTemplate":6},"/docs/5.x/api/composables/use-request-fetch","docs/5.x/4.api/2.composables/use-request-fetch",{"title":575,"path":2348,"stem":2349,"titleTemplate":6},"/docs/5.x/api/composables/use-request-header","docs/5.x/4.api/2.composables/use-request-header",{"title":579,"path":2351,"stem":2352,"titleTemplate":6},"/docs/5.x/api/composables/use-request-headers","docs/5.x/4.api/2.composables/use-request-headers",{"title":583,"path":2354,"stem":2355,"titleTemplate":6},"/docs/5.x/api/composables/use-request-url","docs/5.x/4.api/2.composables/use-request-url",{"title":587,"path":2357,"stem":2358,"titleTemplate":6},"/docs/5.x/api/composables/use-response-header","docs/5.x/4.api/2.composables/use-response-header",{"title":591,"path":2360,"stem":2361,"titleTemplate":6},"/docs/5.x/api/composables/use-route","docs/5.x/4.api/2.composables/use-route",{"title":595,"path":2363,"stem":2364,"titleTemplate":6},"/docs/5.x/api/composables/use-route-announcer","docs/5.x/4.api/2.composables/use-route-announcer",{"title":599,"path":2366,"stem":2367,"titleTemplate":6},"/docs/5.x/api/composables/use-router","docs/5.x/4.api/2.composables/use-router",{"title":603,"path":2369,"stem":2370,"titleTemplate":6},"/docs/5.x/api/composables/use-runtime-config","docs/5.x/4.api/2.composables/use-runtime-config",{"title":607,"path":2372,"stem":2373,"titleTemplate":6},"/docs/5.x/api/composables/use-runtime-hook","docs/5.x/4.api/2.composables/use-runtime-hook",{"title":611,"path":2375,"stem":2376,"titleTemplate":6},"/docs/5.x/api/composables/use-seo-meta","docs/5.x/4.api/2.composables/use-seo-meta",{"title":615,"path":2378,"stem":2379,"titleTemplate":6},"/docs/5.x/api/composables/use-server-seo-meta","docs/5.x/4.api/2.composables/use-server-seo-meta",{"title":619,"path":2381,"stem":2382,"titleTemplate":6},"/docs/5.x/api/composables/use-state","docs/5.x/4.api/2.composables/use-state",{"title":623,"titleTemplate":624,"icon":625,"path":2384,"stem":2385,"children":2386,"page":108},"/docs/5.x/api/utils","docs/5.x/4.api/3.utils",[2387,2390,2393,2396,2399,2402,2405,2408,2411,2414,2417,2420,2423,2426,2429,2432,2435,2438,2441,2444,2447,2450,2453,2456,2459,2462,2465,2468,2471],{"title":630,"path":2388,"stem":2389,"titleTemplate":6},"/docs/5.x/api/utils/dollarfetch","docs/5.x/4.api/3.utils/$fetch",{"title":634,"path":2391,"stem":2392,"titleTemplate":6},"/docs/5.x/api/utils/abort-navigation","docs/5.x/4.api/3.utils/abort-navigation",{"title":638,"path":2394,"stem":2395,"titleTemplate":6},"/docs/5.x/api/utils/add-route-middleware","docs/5.x/4.api/3.utils/add-route-middleware",{"title":642,"path":2397,"stem":2398,"titleTemplate":6},"/docs/5.x/api/utils/call-once","docs/5.x/4.api/3.utils/call-once",{"title":646,"path":2400,"stem":2401,"titleTemplate":6},"/docs/5.x/api/utils/clear-error","docs/5.x/4.api/3.utils/clear-error",{"title":650,"path":2403,"stem":2404,"titleTemplate":6},"/docs/5.x/api/utils/clear-nuxt-data","docs/5.x/4.api/3.utils/clear-nuxt-data",{"title":654,"path":2406,"stem":2407,"titleTemplate":6},"/docs/5.x/api/utils/clear-nuxt-state","docs/5.x/4.api/3.utils/clear-nuxt-state",{"title":658,"path":2409,"stem":2410,"titleTemplate":6},"/docs/5.x/api/utils/create-error","docs/5.x/4.api/3.utils/create-error",{"title":662,"path":2412,"stem":2413,"titleTemplate":6},"/docs/5.x/api/utils/define-lazy-hydration-component","docs/5.x/4.api/3.utils/define-lazy-hydration-component",{"title":666,"path":2415,"stem":2416,"titleTemplate":6},"/docs/5.x/api/utils/define-nuxt-component","docs/5.x/4.api/3.utils/define-nuxt-component",{"title":670,"path":2418,"stem":2419,"titleTemplate":6},"/docs/5.x/api/utils/define-nuxt-plugin","docs/5.x/4.api/3.utils/define-nuxt-plugin",{"title":674,"path":2421,"stem":2422,"titleTemplate":6},"/docs/5.x/api/utils/define-nuxt-route-middleware","docs/5.x/4.api/3.utils/define-nuxt-route-middleware",{"title":678,"path":2424,"stem":2425,"titleTemplate":6},"/docs/5.x/api/utils/define-page-meta","docs/5.x/4.api/3.utils/define-page-meta",{"title":682,"path":2427,"stem":2428,"titleTemplate":6},"/docs/5.x/api/utils/define-route-rules","docs/5.x/4.api/3.utils/define-route-rules",{"title":686,"path":2430,"stem":2431,"titleTemplate":6},"/docs/5.x/api/utils/navigate-to","docs/5.x/4.api/3.utils/navigate-to",{"title":690,"path":2433,"stem":2434,"titleTemplate":6},"/docs/5.x/api/utils/on-before-route-leave","docs/5.x/4.api/3.utils/on-before-route-leave",{"title":694,"path":2436,"stem":2437,"titleTemplate":6},"/docs/5.x/api/utils/on-before-route-update","docs/5.x/4.api/3.utils/on-before-route-update",{"title":698,"path":2439,"stem":2440,"titleTemplate":6},"/docs/5.x/api/utils/on-nuxt-ready","docs/5.x/4.api/3.utils/on-nuxt-ready",{"title":702,"path":2442,"stem":2443,"titleTemplate":6},"/docs/5.x/api/utils/prefetch-components","docs/5.x/4.api/3.utils/prefetch-components",{"title":706,"path":2445,"stem":2446,"titleTemplate":6},"/docs/5.x/api/utils/preload-components","docs/5.x/4.api/3.utils/preload-components",{"title":710,"path":2448,"stem":2449,"titleTemplate":6},"/docs/5.x/api/utils/preload-route-components","docs/5.x/4.api/3.utils/preload-route-components",{"title":714,"path":2451,"stem":2452,"titleTemplate":6},"/docs/5.x/api/utils/prerender-routes","docs/5.x/4.api/3.utils/prerender-routes",{"title":718,"path":2454,"stem":2455,"titleTemplate":6},"/docs/5.x/api/utils/refresh-cookie","docs/5.x/4.api/3.utils/refresh-cookie",{"title":722,"path":2457,"stem":2458,"titleTemplate":6},"/docs/5.x/api/utils/refresh-nuxt-data","docs/5.x/4.api/3.utils/refresh-nuxt-data",{"title":726,"path":2460,"stem":2461,"titleTemplate":6},"/docs/5.x/api/utils/reload-nuxt-app","docs/5.x/4.api/3.utils/reload-nuxt-app",{"title":730,"path":2463,"stem":2464,"titleTemplate":6},"/docs/5.x/api/utils/set-page-layout","docs/5.x/4.api/3.utils/set-page-layout",{"title":734,"path":2466,"stem":2467,"titleTemplate":6},"/docs/5.x/api/utils/set-response-status","docs/5.x/4.api/3.utils/set-response-status",{"title":738,"path":2469,"stem":2470,"titleTemplate":6},"/docs/5.x/api/utils/show-error","docs/5.x/4.api/3.utils/show-error",{"title":742,"path":2472,"stem":2473,"titleTemplate":6},"/docs/5.x/api/utils/update-app-config","docs/5.x/4.api/3.utils/update-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":2475,"stem":2476,"children":2477,"page":108},"/docs/5.x/api/commands","docs/5.x/4.api/4.commands",[2478,2481,2484,2487,2490,2493,2496,2499,2502,2505,2508,2511,2514,2517,2520,2523],{"title":753,"path":2479,"stem":2480,"titleTemplate":6},"/docs/5.x/api/commands/add","docs/5.x/4.api/4.commands/add",{"title":757,"path":2482,"stem":2483,"titleTemplate":6},"/docs/5.x/api/commands/analyze","docs/5.x/4.api/4.commands/analyze",{"title":761,"path":2485,"stem":2486,"titleTemplate":6},"/docs/5.x/api/commands/build","docs/5.x/4.api/4.commands/build",{"title":765,"path":2488,"stem":2489,"titleTemplate":6},"/docs/5.x/api/commands/build-module","docs/5.x/4.api/4.commands/build-module",{"title":769,"path":2491,"stem":2492,"titleTemplate":6},"/docs/5.x/api/commands/cleanup","docs/5.x/4.api/4.commands/cleanup",{"title":773,"path":2494,"stem":2495,"titleTemplate":6},"/docs/5.x/api/commands/dev","docs/5.x/4.api/4.commands/dev",{"title":777,"path":2497,"stem":2498,"titleTemplate":6},"/docs/5.x/api/commands/devtools","docs/5.x/4.api/4.commands/devtools",{"title":781,"path":2500,"stem":2501,"titleTemplate":6},"/docs/5.x/api/commands/generate","docs/5.x/4.api/4.commands/generate",{"title":785,"path":2503,"stem":2504,"titleTemplate":6},"/docs/5.x/api/commands/info","docs/5.x/4.api/4.commands/info",{"title":789,"path":2506,"stem":2507,"titleTemplate":6},"/docs/5.x/api/commands/init","docs/5.x/4.api/4.commands/init",{"title":793,"path":2509,"stem":2510,"titleTemplate":6},"/docs/5.x/api/commands/module","docs/5.x/4.api/4.commands/module",{"title":797,"path":2512,"stem":2513,"titleTemplate":6},"/docs/5.x/api/commands/prepare","docs/5.x/4.api/4.commands/prepare",{"title":801,"path":2515,"stem":2516,"titleTemplate":6},"/docs/5.x/api/commands/preview","docs/5.x/4.api/4.commands/preview",{"title":805,"path":2518,"stem":2519,"titleTemplate":6},"/docs/5.x/api/commands/test","docs/5.x/4.api/4.commands/test",{"title":809,"path":2521,"stem":2522,"titleTemplate":6},"/docs/5.x/api/commands/typecheck","docs/5.x/4.api/4.commands/typecheck",{"title":813,"path":2524,"stem":2525,"titleTemplate":6},"/docs/5.x/api/commands/upgrade","docs/5.x/4.api/4.commands/upgrade",{"title":411,"titleTemplate":817,"icon":818,"path":2527,"stem":2528,"children":2529,"page":108},"/docs/5.x/api/kit","docs/5.x/4.api/5.kit",[2530,2533,2536,2539,2542,2545,2548,2551,2554,2557,2560,2563,2566,2569,2572,2575,2578,2581],{"title":276,"path":2531,"stem":2532,"titleTemplate":6},"/docs/5.x/api/kit/modules","docs/5.x/4.api/5.kit/1.modules",{"title":399,"path":2534,"stem":2535,"titleTemplate":6},"/docs/5.x/api/kit/runtime-config","docs/5.x/4.api/5.kit/10.runtime-config",{"title":829,"path":2537,"stem":2538,"titleTemplate":6},"/docs/5.x/api/kit/templates","docs/5.x/4.api/5.kit/10.templates",{"title":833,"path":2540,"stem":2541,"titleTemplate":6},"/docs/5.x/api/kit/nitro","docs/5.x/4.api/5.kit/11.nitro",{"title":837,"path":2543,"stem":2544,"titleTemplate":6},"/docs/5.x/api/kit/resolving","docs/5.x/4.api/5.kit/12.resolving",{"title":841,"path":2546,"stem":2547,"titleTemplate":6},"/docs/5.x/api/kit/logging","docs/5.x/4.api/5.kit/13.logging",{"title":845,"path":2549,"stem":2550,"titleTemplate":6},"/docs/5.x/api/kit/builder","docs/5.x/4.api/5.kit/14.builder",{"title":849,"path":2552,"stem":2553,"titleTemplate":6},"/docs/5.x/api/kit/examples","docs/5.x/4.api/5.kit/15.examples",{"title":84,"path":2555,"stem":2556,"titleTemplate":6},"/docs/5.x/api/kit/layers","docs/5.x/4.api/5.kit/16.layers",{"title":856,"path":2558,"stem":2559,"titleTemplate":6},"/docs/5.x/api/kit/programmatic","docs/5.x/4.api/5.kit/2.programmatic",{"title":860,"path":2561,"stem":2562,"titleTemplate":6},"/docs/5.x/api/kit/compatibility","docs/5.x/4.api/5.kit/3.compatibility",{"title":268,"path":2564,"stem":2565,"titleTemplate":6},"/docs/5.x/api/kit/autoimports","docs/5.x/4.api/5.kit/4.autoimports",{"title":434,"path":2567,"stem":2568,"titleTemplate":6},"/docs/5.x/api/kit/components","docs/5.x/4.api/5.kit/5.components",{"title":870,"path":2570,"stem":2571,"titleTemplate":6},"/docs/5.x/api/kit/context","docs/5.x/4.api/5.kit/6.context",{"title":874,"path":2573,"stem":2574,"titleTemplate":6},"/docs/5.x/api/kit/pages","docs/5.x/4.api/5.kit/7.pages",{"title":878,"path":2576,"stem":2577,"titleTemplate":6},"/docs/5.x/api/kit/layout","docs/5.x/4.api/5.kit/8.layout",{"title":882,"path":2579,"stem":2580,"titleTemplate":6},"/docs/5.x/api/kit/head","docs/5.x/4.api/5.kit/9.head",{"title":886,"path":2582,"stem":2583,"titleTemplate":6},"/docs/5.x/api/kit/plugins","docs/5.x/4.api/5.kit/9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":2585,"stem":2586,"children":2587,"page":108},"/docs/5.x/api/advanced","docs/5.x/4.api/6.advanced",[2588,2591],{"title":407,"path":2589,"stem":2590,"titleTemplate":6},"/docs/5.x/api/advanced/hooks","docs/5.x/4.api/6.advanced/1.hooks",{"title":899,"path":2592,"stem":2593,"titleTemplate":6},"/docs/5.x/api/advanced/import-meta","docs/5.x/4.api/6.advanced/2.import-meta",{"title":903,"path":2595,"stem":2596,"titleTemplate":906,"icon":32},"/docs/5.x/api/nuxt-config","docs/5.x/4.api/6.nuxt-config",{"title":849,"titleTemplate":908,"icon":909,"path":2598,"stem":2599,"children":2600,"page":108},"/docs/5.x/examples","docs/5.x/4.examples",[2601,2604,2623,2636,2667],{"title":914,"path":2602,"stem":2603,"titleTemplate":6},"/docs/5.x/examples/hello-world","docs/5.x/4.examples/0.hello-world",{"title":395,"path":2605,"stem":2606,"children":2607,"page":108},"/docs/5.x/examples/features","docs/5.x/4.examples/1.features",[2608,2611,2614,2617,2620],{"title":922,"path":2609,"stem":2610,"titleTemplate":6},"/docs/5.x/examples/features/auto-imports","docs/5.x/4.examples/1.features/1.auto-imports",{"title":64,"path":2612,"stem":2613,"titleTemplate":6},"/docs/5.x/examples/features/data-fetching","docs/5.x/4.examples/1.features/2.data-fetching",{"title":69,"path":2615,"stem":2616,"titleTemplate":6},"/docs/5.x/examples/features/state-management","docs/5.x/4.examples/1.features/3.state-management",{"title":932,"path":2618,"stem":2619,"titleTemplate":6},"/docs/5.x/examples/features/meta-tags","docs/5.x/4.examples/1.features/4.meta-tags",{"title":936,"path":2621,"stem":2622,"titleTemplate":6},"/docs/5.x/examples/features/layouts","docs/5.x/4.examples/1.features/5.layouts",{"title":49,"path":2624,"stem":2625,"children":2626,"page":108},"/docs/5.x/examples/routing","docs/5.x/4.examples/2.routing",[2627,2630,2633],{"title":944,"path":2628,"stem":2629,"titleTemplate":6},"/docs/5.x/examples/routing/middleware","docs/5.x/4.examples/2.routing/middleware",{"title":874,"path":2631,"stem":2632,"titleTemplate":6},"/docs/5.x/examples/routing/pages","docs/5.x/4.examples/2.routing/pages",{"title":951,"path":2634,"stem":2635,"titleTemplate":6},"/docs/5.x/examples/routing/universal-router","docs/5.x/4.examples/2.routing/universal-router",{"title":890,"path":2637,"stem":2638,"children":2639,"page":108},"/docs/5.x/examples/advanced","docs/5.x/4.examples/4.advanced",[2640,2643,2646,2649,2652,2655,2658,2661,2664],{"title":84,"path":2641,"stem":2642,"titleTemplate":6},"/docs/5.x/examples/advanced/config-extends","docs/5.x/4.examples/4.advanced/config-extends",{"title":74,"path":2644,"stem":2645,"titleTemplate":6},"/docs/5.x/examples/advanced/error-handling","docs/5.x/4.examples/4.advanced/error-handling",{"title":965,"path":2647,"stem":2648,"titleTemplate":6},"/docs/5.x/examples/advanced/jsx","docs/5.x/4.examples/4.advanced/jsx",{"title":969,"path":2650,"stem":2651,"titleTemplate":6},"/docs/5.x/examples/advanced/locale","docs/5.x/4.examples/4.advanced/locale",{"title":973,"path":2653,"stem":2654,"titleTemplate":6},"/docs/5.x/examples/advanced/module-extend-pages","docs/5.x/4.examples/4.advanced/module-extend-pages",{"title":977,"path":2656,"stem":2657,"titleTemplate":6},"/docs/5.x/examples/advanced/teleport","docs/5.x/4.examples/4.advanced/teleport",{"title":99,"path":2659,"stem":2660,"titleTemplate":6},"/docs/5.x/examples/advanced/testing","docs/5.x/4.examples/4.advanced/testing",{"title":519,"path":2662,"stem":2663,"titleTemplate":6},"/docs/5.x/examples/advanced/use-cookie","docs/5.x/4.examples/4.advanced/use-cookie",{"title":987,"path":2665,"stem":2666,"titleTemplate":6},"/docs/5.x/examples/advanced/use-custom-fetch-composable","docs/5.x/4.examples/4.advanced/use-custom-fetch-composable",{"title":991,"path":2668,"stem":2669,"children":2670,"page":108},"/docs/5.x/examples/experimental","docs/5.x/4.examples/7.experimental",[2671],{"title":996,"path":2672,"stem":2673,"titleTemplate":6},"/docs/5.x/examples/experimental/wasm","docs/5.x/4.examples/7.experimental/wasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":2675,"stem":2676,"children":2677,"page":108},"/docs/5.x/community","docs/5.x/5.community",[2678,2681,2684,2687,2690,2693],{"title":1007,"path":2679,"stem":2680,"titleTemplate":6,"icon":1010},"/docs/5.x/community/getting-help","docs/5.x/5.community/2.getting-help",{"title":1012,"path":2682,"stem":2683,"titleTemplate":6,"icon":1015},"/docs/5.x/community/reporting-bugs","docs/5.x/5.community/3.reporting-bugs",{"title":1017,"path":2685,"stem":2686,"titleTemplate":6,"icon":1020},"/docs/5.x/community/contribution","docs/5.x/5.community/4.contribution",{"title":1022,"path":2688,"stem":2689,"titleTemplate":6,"icon":1025},"/docs/5.x/community/framework-contribution","docs/5.x/5.community/5.framework-contribution",{"title":1027,"path":2691,"stem":2692,"titleTemplate":6,"icon":1030},"/docs/5.x/community/roadmap","docs/5.x/5.community/6.roadmap",{"title":1032,"path":2694,"stem":2695,"titleTemplate":6,"icon":1035},"/docs/5.x/community/changelog","docs/5.x/5.community/7.changelog",{"title":1037,"titleTemplate":1038,"icon":1039,"path":2697,"stem":2698,"children":2699,"page":108},"/docs/5.x/bridge","docs/5.x/6.bridge",[2700,2703,2706,2709,2712,2715,2718,2721,2724,2727],{"title":1044,"path":2701,"stem":2702,"titleTemplate":6},"/docs/5.x/bridge/overview","docs/5.x/6.bridge/1.overview",{"title":29,"path":2704,"stem":2705,"titleTemplate":6},"/docs/5.x/bridge/configuration","docs/5.x/6.bridge/10.configuration",{"title":280,"path":2707,"stem":2708,"titleTemplate":6},"/docs/5.x/bridge/typescript","docs/5.x/6.bridge/2.typescript",{"title":1054,"path":2710,"stem":2711,"titleTemplate":6},"/docs/5.x/bridge/bridge-composition-api","docs/5.x/6.bridge/3.bridge-composition-api",{"title":1058,"path":2713,"stem":2714,"titleTemplate":6},"/docs/5.x/bridge/plugins-and-middleware","docs/5.x/6.bridge/4.plugins-and-middleware",{"title":1062,"path":2716,"stem":2717,"titleTemplate":6},"/docs/5.x/bridge/nuxt3-compatible-api","docs/5.x/6.bridge/5.nuxt3-compatible-api",{"title":932,"path":2719,"stem":2720,"titleTemplate":6},"/docs/5.x/bridge/meta","docs/5.x/6.bridge/6.meta",{"title":399,"path":2722,"stem":2723,"titleTemplate":6},"/docs/5.x/bridge/runtime-config","docs/5.x/6.bridge/7.runtime-config",{"title":833,"path":2725,"stem":2726,"titleTemplate":6},"/docs/5.x/bridge/nitro","docs/5.x/6.bridge/8.nitro",{"title":1075,"path":2728,"stem":2729,"titleTemplate":6},"/docs/5.x/bridge/vite","docs/5.x/6.bridge/9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":2731,"stem":2732,"children":2733,"page":108},"/docs/5.x/migration","docs/5.x/7.migration",[2734,2737,2740,2743,2746,2749,2752,2755,2758,2761,2764],{"title":1044,"path":2735,"stem":2736,"titleTemplate":6},"/docs/5.x/migration/overview","docs/5.x/7.migration/1.overview",{"title":1088,"path":2738,"stem":2739,"titleTemplate":6},"/docs/5.x/migration/bundling","docs/5.x/7.migration/10.bundling",{"title":79,"path":2741,"stem":2742,"titleTemplate":6},"/docs/5.x/migration/server","docs/5.x/7.migration/11.server",{"title":29,"path":2744,"stem":2745,"titleTemplate":6},"/docs/5.x/migration/configuration","docs/5.x/7.migration/2.configuration",{"title":276,"path":2747,"stem":2748,"titleTemplate":6},"/docs/5.x/migration/module-authors","docs/5.x/7.migration/20.module-authors",{"title":922,"path":2750,"stem":2751,"titleTemplate":6},"/docs/5.x/migration/auto-imports","docs/5.x/7.migration/3.auto-imports",{"title":932,"path":2753,"stem":2754,"titleTemplate":6},"/docs/5.x/migration/meta","docs/5.x/7.migration/4.meta",{"title":1058,"path":2756,"stem":2757,"titleTemplate":6},"/docs/5.x/migration/plugins-and-middleware","docs/5.x/7.migration/5.plugins-and-middleware",{"title":1110,"path":2759,"stem":2760,"titleTemplate":6},"/docs/5.x/migration/pages-and-layouts","docs/5.x/7.migration/6.pages-and-layouts",{"title":1114,"path":2762,"stem":2763,"titleTemplate":6},"/docs/5.x/migration/component-options","docs/5.x/7.migration/7.component-options",{"title":399,"path":2765,"stem":2766,"titleTemplate":6},"/docs/5.x/migration/runtime-config","docs/5.x/7.migration/8.runtime-config",{"title":2768,"path":2769,"stem":2770,"children":2771,"page":108},"Blog","/blog","blog",[2772,2776,2780,2784,2788,2792,2796,2800,2804,2808,2812,2816,2820,2824,2828,2832,2836,2840,2844,2848,2852],{"title":2773,"path":2774,"stem":2775},"Announcing 3.0","/blog/v3","blog/1.v3",{"title":2777,"path":2778,"stem":2779},"Nuxt 3.3","/blog/v3-3","blog/10.v3-3",{"title":2781,"path":2782,"stem":2783},"Nuxt 3.4","/blog/v3-4","blog/11.v3-4",{"title":2785,"path":2786,"stem":2787},"Nuxt 3.5","/blog/v3-5","blog/12.v3-5",{"title":2789,"path":2790,"stem":2791},"Nuxt 3.6","/blog/v3-6","blog/13.v3-6",{"title":2793,"path":2794,"stem":2795},"Nuxt on the Edge","/blog/nuxt-on-the-edge","blog/14.nuxt-on-the-edge",{"title":2797,"path":2798,"stem":2799},"Nuxt DevTools v1.0","/blog/nuxt-devtools-v1-0","blog/18.nuxt-devtools-v1-0",{"title":2801,"path":2802,"stem":2803},"Nuxt: A vision for 2023","/blog/vision-2023","blog/2.vision-2023",{"title":2805,"path":2806,"stem":2807},"The Evolution of Shiki v1.0","/blog/shiki-v1","blog/21.shiki-v1",{"title":2809,"path":2810,"stem":2811},"Refreshed Nuxt ESLint Integrations","/blog/eslint-module","blog/24.eslint-module",{"title":2813,"path":2814,"stem":2815},"Introducing Nuxt Scripts","/blog/nuxt-scripts","blog/26.nuxt-scripts",{"title":2817,"path":2818,"stem":2819},"Introducing Nuxt Icon v1","/blog/nuxt-icon-v1-0","blog/29.nuxt-icon-v1-0",{"title":2821,"path":2822,"stem":2823},"Introducing Nuxt DevTools","/blog/introducing-nuxt-devtools","blog/3.introducing-nuxt-devtools",{"title":2825,"path":2826,"stem":2827},"Announcing Nuxt 3 Release Candidate","/blog/nuxt3-rc","blog/3.nuxt3-rc",{"title":2829,"path":2830,"stem":2831},"Nuxt 2 End-of-Life (EOL)","/blog/nuxt2-eol","blog/4.nuxt2-eol",{"title":2833,"path":2834,"stem":2835},"Introducing Nuxt 3 Beta","/blog/nuxt3-beta","blog/4.nuxt3-beta",{"title":2837,"path":2838,"stem":2839},"Going Full Static","/blog/going-full-static","blog/5.going-full-static",{"title":2841,"path":2842,"stem":2843},"Introducing Smart Prefetching","/blog/introducing-smart-prefetching","blog/6.introducing-smart-prefetching",{"title":2845,"path":2846,"stem":2847},"Understanding how fetch works in Nuxt 2.12","/blog/understanding-how-fetch-works-in-nuxt-2-12","blog/7.understanding-how-fetch-works-in-nuxt-2-12",{"title":2849,"path":2850,"stem":2851},"Nuxt 2 Static Improvements","/blog/nuxt-static-improvements","blog/8.nuxt-static-improvements",{"title":2853,"path":2854,"stem":2855},"Nuxt 2: From Terminal to Browser","/blog/nuxtjs-from-terminal-to-browser","blog/9.nuxtjs-from-terminal-to-browser",{"v5":2857,"v4":2858,"v3":2859,"v2":2860},"5 (nightly)","4.4.2","3.21.2","2.18.1",{"id":2862,"title":2805,"authors":2863,"body":2870,"category":4583,"date":4584,"description":4585,"draft":108,"extension":4586,"image":4587,"meta":4588,"navigation":1196,"path":2806,"seo":4589,"stem":2807,"tags":6,"__hash__":4590},"blog/blog/21.shiki-v1.md",[2864],{"name":2865,"avatar":2866,"to":2868,"twitter":2869},"Anthony Fu",{"src":2867},"https://github.com/antfu.png","https://github.com/antfu","antfu7",{"type":2871,"value":2872,"toc":4575},"minimark",[2873,2902,2926,3586,3589,3608,3611,3616,3629,3644,3657,3680,3764,3817,3854,3857,3860,3864,3878,3938,3947,3964,3990,4002,4043,4061,4065,4079,4082,4096,4103,4110,4119,4123,4170,4185,4197,4220,4239,4399,4433,4437,4440,4544,4551,4555,4571],[2874,2875,2876,2883,2884,2889,2890,2895,2896,2901],"p",{},[2877,2878,2882],"a",{"href":2879,"rel":2880},"https://github.com/shikijs/shiki",[2881],"nofollow","Shiki"," is a syntax highlighter that uses ",[2877,2885,2888],{"href":2886,"rel":2887},"https://code.visualstudio.com/api/language-extensions/syntax-highlight-guide#textmate-grammars",[2881],"TextMate grammars and themes",", the same engine that powers VS Code. It provides one of the most accurate and beautiful syntax highlighting for your code snippets. It was created by ",[2877,2891,2894],{"href":2892,"rel":2893},"https://github.com/octref",[2881],"Pine Wu"," back in 2018, when he was part of the VS Code team. It started as an experiment to use ",[2877,2897,2900],{"href":2898,"rel":2899},"https://github.com/microsoft/vscode-oniguruma",[2881],"Oniguruma"," to do syntax highlighting.",[2874,2903,2904,2905,2910,2911,2916,2917,2921,2922,2925],{},"Different from existing syntax highlighters like ",[2877,2906,2909],{"href":2907,"rel":2908},"https://prismjs.com/",[2881],"Prism"," and ",[2877,2912,2915],{"href":2913,"rel":2914},"https://highlightjs.org/",[2881],"Highlight.js"," that designed to run in the browser, Shiki took a different approach by ",[2918,2919,2920],"strong",{},"highlighting ahead of time",". It ships the highlighted HTML to the client, producing accurate and beautiful syntax highlighting with ",[2918,2923,2924],{},"zero JavaScript",". It soon took off and became a very popular choice, especially for static site generators and documentation sites.",[2927,2928,2930,2933,3013,3016,3579],"collapsible",{"name":2929},"Shiki Example",[2874,2931,2932],{},"For example, with the code snippet below:",[2934,2935,2940],"pre",{"className":2936,"code":2937,"language":2938,"meta":2939,"style":2939},"language-ts shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","export default defineNuxtConfig({\n  modules: [\n    '@nuxt/content',\n  ],\n})\n","ts","",[2941,2942,2943,2967,2980,2996,3004],"code",{"__ignoreMap":2939},[2944,2945,2948,2952,2955,2959,2963],"span",{"class":2946,"line":2947},"line",1,[2944,2949,2951],{"class":2950},"s8R28","export",[2944,2953,2954],{"class":2950}," default",[2944,2956,2958],{"class":2957},"s3cPz"," defineNuxtConfig",[2944,2960,2962],{"class":2961},"sZSNi","(",[2944,2964,2966],{"class":2965},"sDfIl","{\n",[2944,2968,2970,2974,2977],{"class":2946,"line":2969},2,[2944,2971,2973],{"class":2972},"sRlkE","  modules",[2944,2975,2976],{"class":2965},":",[2944,2978,2979],{"class":2961}," [\n",[2944,2981,2983,2986,2990,2993],{"class":2946,"line":2982},3,[2944,2984,2985],{"class":2965},"    '",[2944,2987,2989],{"class":2988},"sGFVr","@nuxt/content",[2944,2991,2992],{"class":2965},"'",[2944,2994,2995],{"class":2965},",\n",[2944,2997,2999,3002],{"class":2946,"line":2998},4,[2944,3000,3001],{"class":2961},"  ]",[2944,3003,2995],{"class":2965},[2944,3005,3007,3010],{"class":2946,"line":3006},5,[2944,3008,3009],{"class":2965},"}",[2944,3011,3012],{"class":2961},")\n",[2874,3014,3015],{},"Shiki will generate the following HTML:",[2934,3017,3021],{"className":3018,"code":3019,"language":3020,"meta":2939,"style":2939},"language-html shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","\u003Cpre class=\"shiki material-theme-palenight\" style=\"background-color:#292D3E;color:#babed8\" tabindex=\"0\">\n  \u003Ccode>\n    \u003Cspan class=\"line\">\u003Cspan style=\"color:#89DDFF;font-style:italic\">export\u003C/span>\u003Cspan style=\"color:#89DDFF;font-style:italic\"> default\u003C/span>\u003Cspan style=\"color:#82AAFF\"> defineNuxtConfig\u003C/span>\u003Cspan style=\"color:#BABED8\">(\u003C/span>\u003Cspan style=\"color:#89DDFF\">{\u003C/span>\u003C/span>\n    \u003Cspan class=\"line\">\u003Cspan style=\"color:#F07178\">  modules\u003C/span>\u003Cspan style=\"color:#89DDFF\">:\u003C/span>\u003Cspan style=\"color:#BABED8\"> [\u003C/span>\u003C/span>\n    \u003Cspan class=\"line\">\u003Cspan style=\"color:#89DDFF\">    '\u003C/span>\u003Cspan style=\"color:#C3E88D\">@nuxt/content\u003C/span>\u003Cspan style=\"color:#89DDFF\">'\u003C/span>\u003Cspan style=\"color:#89DDFF\">,\u003C/span>\u003C/span>\n    \u003Cspan class=\"line\">\u003Cspan style=\"color:#BABED8\">  ]\u003C/span>\u003Cspan style=\"color:#89DDFF\">,\u003C/span>\u003C/span>\n    \u003Cspan class=\"line\">\u003Cspan style=\"color:#89DDFF\">}\u003C/span>\u003Cspan style=\"color:#BABED8\">)\u003C/span>\u003C/span>\n  \u003C/code>\n\u003C/pre>\n","html",[2941,3022,3023,3072,3081,3223,3313,3425,3492,3560,3570],{"__ignoreMap":2939},[2944,3024,3025,3028,3030,3034,3037,3040,3043,3045,3048,3050,3052,3055,3057,3060,3062,3064,3067,3069],{"class":2946,"line":2947},[2944,3026,3027],{"class":2965},"\u003C",[2944,3029,2934],{"class":2972},[2944,3031,3033],{"class":3032},"smZ93"," class",[2944,3035,3036],{"class":2965},"=",[2944,3038,3039],{"class":2965},"\"",[2944,3041,3042],{"class":2988},"shiki material-theme-palenight",[2944,3044,3039],{"class":2965},[2944,3046,3047],{"class":3032}," style",[2944,3049,3036],{"class":2965},[2944,3051,3039],{"class":2965},[2944,3053,3054],{"class":2988},"background-color:#292D3E;color:#babed8",[2944,3056,3039],{"class":2965},[2944,3058,3059],{"class":3032}," tabindex",[2944,3061,3036],{"class":2965},[2944,3063,3039],{"class":2965},[2944,3065,3066],{"class":2988},"0",[2944,3068,3039],{"class":2965},[2944,3070,3071],{"class":2965},">\n",[2944,3073,3074,3077,3079],{"class":2946,"line":2969},[2944,3075,3076],{"class":2965},"  \u003C",[2944,3078,2941],{"class":2972},[2944,3080,3071],{"class":2965},[2944,3082,3083,3086,3088,3090,3092,3094,3096,3098,3101,3103,3105,3107,3109,3112,3114,3117,3119,3122,3124,3126,3128,3130,3132,3134,3136,3138,3140,3142,3144,3146,3148,3150,3152,3154,3156,3159,3161,3163,3165,3167,3169,3171,3173,3175,3177,3179,3182,3184,3186,3188,3190,3192,3194,3196,3198,3200,3202,3205,3207,3209,3212,3214,3216,3219,3221],{"class":2946,"line":2982},[2944,3084,3085],{"class":2965},"    \u003C",[2944,3087,2944],{"class":2972},[2944,3089,3033],{"class":3032},[2944,3091,3036],{"class":2965},[2944,3093,3039],{"class":2965},[2944,3095,2946],{"class":2988},[2944,3097,3039],{"class":2965},[2944,3099,3100],{"class":2965},">\u003C",[2944,3102,2944],{"class":2972},[2944,3104,3047],{"class":3032},[2944,3106,3036],{"class":2965},[2944,3108,3039],{"class":2965},[2944,3110,3111],{"class":2988},"color:#89DDFF;font-style:italic",[2944,3113,3039],{"class":2965},[2944,3115,3116],{"class":2965},">",[2944,3118,2951],{"class":2961},[2944,3120,3121],{"class":2965},"\u003C/",[2944,3123,2944],{"class":2972},[2944,3125,3100],{"class":2965},[2944,3127,2944],{"class":2972},[2944,3129,3047],{"class":3032},[2944,3131,3036],{"class":2965},[2944,3133,3039],{"class":2965},[2944,3135,3111],{"class":2988},[2944,3137,3039],{"class":2965},[2944,3139,3116],{"class":2965},[2944,3141,2954],{"class":2961},[2944,3143,3121],{"class":2965},[2944,3145,2944],{"class":2972},[2944,3147,3100],{"class":2965},[2944,3149,2944],{"class":2972},[2944,3151,3047],{"class":3032},[2944,3153,3036],{"class":2965},[2944,3155,3039],{"class":2965},[2944,3157,3158],{"class":2988},"color:#82AAFF",[2944,3160,3039],{"class":2965},[2944,3162,3116],{"class":2965},[2944,3164,2958],{"class":2961},[2944,3166,3121],{"class":2965},[2944,3168,2944],{"class":2972},[2944,3170,3100],{"class":2965},[2944,3172,2944],{"class":2972},[2944,3174,3047],{"class":3032},[2944,3176,3036],{"class":2965},[2944,3178,3039],{"class":2965},[2944,3180,3181],{"class":2988},"color:#BABED8",[2944,3183,3039],{"class":2965},[2944,3185,3116],{"class":2965},[2944,3187,2962],{"class":2961},[2944,3189,3121],{"class":2965},[2944,3191,2944],{"class":2972},[2944,3193,3100],{"class":2965},[2944,3195,2944],{"class":2972},[2944,3197,3047],{"class":3032},[2944,3199,3036],{"class":2965},[2944,3201,3039],{"class":2965},[2944,3203,3204],{"class":2988},"color:#89DDFF",[2944,3206,3039],{"class":2965},[2944,3208,3116],{"class":2965},[2944,3210,3211],{"class":2961},"{",[2944,3213,3121],{"class":2965},[2944,3215,2944],{"class":2972},[2944,3217,3218],{"class":2965},">\u003C/",[2944,3220,2944],{"class":2972},[2944,3222,3071],{"class":2965},[2944,3224,3225,3227,3229,3231,3233,3235,3237,3239,3241,3243,3245,3247,3249,3252,3254,3256,3258,3260,3262,3264,3266,3268,3270,3272,3274,3276,3278,3280,3282,3284,3286,3288,3290,3292,3294,3296,3298,3300,3303,3305,3307,3309,3311],{"class":2946,"line":2998},[2944,3226,3085],{"class":2965},[2944,3228,2944],{"class":2972},[2944,3230,3033],{"class":3032},[2944,3232,3036],{"class":2965},[2944,3234,3039],{"class":2965},[2944,3236,2946],{"class":2988},[2944,3238,3039],{"class":2965},[2944,3240,3100],{"class":2965},[2944,3242,2944],{"class":2972},[2944,3244,3047],{"class":3032},[2944,3246,3036],{"class":2965},[2944,3248,3039],{"class":2965},[2944,3250,3251],{"class":2988},"color:#F07178",[2944,3253,3039],{"class":2965},[2944,3255,3116],{"class":2965},[2944,3257,2973],{"class":2961},[2944,3259,3121],{"class":2965},[2944,3261,2944],{"class":2972},[2944,3263,3100],{"class":2965},[2944,3265,2944],{"class":2972},[2944,3267,3047],{"class":3032},[2944,3269,3036],{"class":2965},[2944,3271,3039],{"class":2965},[2944,3273,3204],{"class":2988},[2944,3275,3039],{"class":2965},[2944,3277,3116],{"class":2965},[2944,3279,2976],{"class":2961},[2944,3281,3121],{"class":2965},[2944,3283,2944],{"class":2972},[2944,3285,3100],{"class":2965},[2944,3287,2944],{"class":2972},[2944,3289,3047],{"class":3032},[2944,3291,3036],{"class":2965},[2944,3293,3039],{"class":2965},[2944,3295,3181],{"class":2988},[2944,3297,3039],{"class":2965},[2944,3299,3116],{"class":2965},[2944,3301,3302],{"class":2961}," [",[2944,3304,3121],{"class":2965},[2944,3306,2944],{"class":2972},[2944,3308,3218],{"class":2965},[2944,3310,2944],{"class":2972},[2944,3312,3071],{"class":2965},[2944,3314,3315,3317,3319,3321,3323,3325,3327,3329,3331,3333,3335,3337,3339,3341,3343,3345,3347,3349,3351,3353,3355,3357,3359,3361,3364,3366,3368,3370,3372,3374,3376,3378,3380,3382,3384,3386,3388,3390,3392,3394,3396,3398,3400,3402,3404,3406,3408,3410,3412,3415,3417,3419,3421,3423],{"class":2946,"line":3006},[2944,3316,3085],{"class":2965},[2944,3318,2944],{"class":2972},[2944,3320,3033],{"class":3032},[2944,3322,3036],{"class":2965},[2944,3324,3039],{"class":2965},[2944,3326,2946],{"class":2988},[2944,3328,3039],{"class":2965},[2944,3330,3100],{"class":2965},[2944,3332,2944],{"class":2972},[2944,3334,3047],{"class":3032},[2944,3336,3036],{"class":2965},[2944,3338,3039],{"class":2965},[2944,3340,3204],{"class":2988},[2944,3342,3039],{"class":2965},[2944,3344,3116],{"class":2965},[2944,3346,2985],{"class":2961},[2944,3348,3121],{"class":2965},[2944,3350,2944],{"class":2972},[2944,3352,3100],{"class":2965},[2944,3354,2944],{"class":2972},[2944,3356,3047],{"class":3032},[2944,3358,3036],{"class":2965},[2944,3360,3039],{"class":2965},[2944,3362,3363],{"class":2988},"color:#C3E88D",[2944,3365,3039],{"class":2965},[2944,3367,3116],{"class":2965},[2944,3369,2989],{"class":2961},[2944,3371,3121],{"class":2965},[2944,3373,2944],{"class":2972},[2944,3375,3100],{"class":2965},[2944,3377,2944],{"class":2972},[2944,3379,3047],{"class":3032},[2944,3381,3036],{"class":2965},[2944,3383,3039],{"class":2965},[2944,3385,3204],{"class":2988},[2944,3387,3039],{"class":2965},[2944,3389,3116],{"class":2965},[2944,3391,2992],{"class":2961},[2944,3393,3121],{"class":2965},[2944,3395,2944],{"class":2972},[2944,3397,3100],{"class":2965},[2944,3399,2944],{"class":2972},[2944,3401,3047],{"class":3032},[2944,3403,3036],{"class":2965},[2944,3405,3039],{"class":2965},[2944,3407,3204],{"class":2988},[2944,3409,3039],{"class":2965},[2944,3411,3116],{"class":2965},[2944,3413,3414],{"class":2961},",",[2944,3416,3121],{"class":2965},[2944,3418,2944],{"class":2972},[2944,3420,3218],{"class":2965},[2944,3422,2944],{"class":2972},[2944,3424,3071],{"class":2965},[2944,3426,3428,3430,3432,3434,3436,3438,3440,3442,3444,3446,3448,3450,3452,3454,3456,3458,3460,3462,3464,3466,3468,3470,3472,3474,3476,3478,3480,3482,3484,3486,3488,3490],{"class":2946,"line":3427},6,[2944,3429,3085],{"class":2965},[2944,3431,2944],{"class":2972},[2944,3433,3033],{"class":3032},[2944,3435,3036],{"class":2965},[2944,3437,3039],{"class":2965},[2944,3439,2946],{"class":2988},[2944,3441,3039],{"class":2965},[2944,3443,3100],{"class":2965},[2944,3445,2944],{"class":2972},[2944,3447,3047],{"class":3032},[2944,3449,3036],{"class":2965},[2944,3451,3039],{"class":2965},[2944,3453,3181],{"class":2988},[2944,3455,3039],{"class":2965},[2944,3457,3116],{"class":2965},[2944,3459,3001],{"class":2961},[2944,3461,3121],{"class":2965},[2944,3463,2944],{"class":2972},[2944,3465,3100],{"class":2965},[2944,3467,2944],{"class":2972},[2944,3469,3047],{"class":3032},[2944,3471,3036],{"class":2965},[2944,3473,3039],{"class":2965},[2944,3475,3204],{"class":2988},[2944,3477,3039],{"class":2965},[2944,3479,3116],{"class":2965},[2944,3481,3414],{"class":2961},[2944,3483,3121],{"class":2965},[2944,3485,2944],{"class":2972},[2944,3487,3218],{"class":2965},[2944,3489,2944],{"class":2972},[2944,3491,3071],{"class":2965},[2944,3493,3495,3497,3499,3501,3503,3505,3507,3509,3511,3513,3515,3517,3519,3521,3523,3525,3527,3529,3531,3533,3535,3537,3539,3541,3543,3545,3547,3550,3552,3554,3556,3558],{"class":2946,"line":3494},7,[2944,3496,3085],{"class":2965},[2944,3498,2944],{"class":2972},[2944,3500,3033],{"class":3032},[2944,3502,3036],{"class":2965},[2944,3504,3039],{"class":2965},[2944,3506,2946],{"class":2988},[2944,3508,3039],{"class":2965},[2944,3510,3100],{"class":2965},[2944,3512,2944],{"class":2972},[2944,3514,3047],{"class":3032},[2944,3516,3036],{"class":2965},[2944,3518,3039],{"class":2965},[2944,3520,3204],{"class":2988},[2944,3522,3039],{"class":2965},[2944,3524,3116],{"class":2965},[2944,3526,3009],{"class":2961},[2944,3528,3121],{"class":2965},[2944,3530,2944],{"class":2972},[2944,3532,3100],{"class":2965},[2944,3534,2944],{"class":2972},[2944,3536,3047],{"class":3032},[2944,3538,3036],{"class":2965},[2944,3540,3039],{"class":2965},[2944,3542,3181],{"class":2988},[2944,3544,3039],{"class":2965},[2944,3546,3116],{"class":2965},[2944,3548,3549],{"class":2961},")",[2944,3551,3121],{"class":2965},[2944,3553,2944],{"class":2972},[2944,3555,3218],{"class":2965},[2944,3557,2944],{"class":2972},[2944,3559,3071],{"class":2965},[2944,3561,3563,3566,3568],{"class":2946,"line":3562},8,[2944,3564,3565],{"class":2965},"  \u003C/",[2944,3567,2941],{"class":2972},[2944,3569,3071],{"class":2965},[2944,3571,3573,3575,3577],{"class":2946,"line":3572},9,[2944,3574,3121],{"class":2965},[2944,3576,2934],{"class":2972},[2944,3578,3071],{"class":2965},[2874,3580,3581,3582,3585],{},"It might look a bit overwhelming if you read it, but ",[2918,3583,3584],{},"this piece of HTML works everywhere without any JavaScript or CSS",". TextMate grammars has a very rich representation of the types of every token (TextMate scopes). Since Shiki flattens all the tokens into styled spans, it achieves accurate results that most traditional CSS-based highlighters have difficulties achieving.",[2874,3587,3588],{},"While Shiki is awesome, it's still a library that is designed to run on Node.js. This means it is limited to highlighting static code only and would have trouble with dynamic code, because Shiki doesn't work in the browser. In addition, Shiki relies on the WASM binary of Oniguruma, as well as a bunch of heavy grammar and theme files in JSON. It uses Node.js filesystem and path resolution to load these files, which is not accessible in the browser.",[2874,3590,3591,3592,3597,3598,3603,3604,3607],{},"To improve that situation, I ",[2877,3593,3596],{"href":3594,"rel":3595},"https://github.com/shikijs/shiki/issues/91",[2881],"started this RFC"," that later landed with ",[2877,3599,3602],{"href":3600,"rel":3601},"https://github.com/shikijs/shiki/pull/109",[2881],"this PR"," and shipped in Shiki v0.9. While it abstracted the file loading layer to use fetch or filesystem based on the environment, it's still quite complicated to use as you need to serve the grammars and theme files somewhere in your bundle or CDN manually, then call the ",[2941,3605,3606],{},"setCDN"," method to tell Shiki where to load these files.",[2874,3609,3610],{},"The solution is not perfect but at least it made it possible to run Shiki in the browser to highlight dynamic content. We have been using that approach since then - until the story of this article began.",[3612,3613,3615],"h2",{"id":3614},"the-start","The Start",[2874,3617,3618,3619,3622,3623,3628],{},"Nuxt is putting a lot effort in pushing the ",[2877,3620,3621],{"href":2794},"web to the edge",", making the web more accessible with lower latency and better performance. Like CDN servers, edge hosting services such as ",[2877,3624,3627],{"href":3625,"rel":3626},"https://workers.cloudflare.com/",[2881],"CloudFlare Workers"," are deployed all over the world. Users get the content from the nearest edge server without the round trips to the origin server which could be thousands of miles away. With the awesome benefits it provides, it also comes with some trade-offs. For example, edge servers use a restricted runtime environment. CloudFlare Workers also does not support file system access and usually don't preserve the state between requests. While Shiki's main overhead is loading the grammars and themes upfront, that wouldn't work well in the edge environment.",[2874,3630,3631,3632,3637,3638,3643],{},"It all started with a chat between ",[2877,3633,3636],{"href":3634,"rel":3635},"https://x.com/Atinux",[2881],"Sébastien"," and me. We were trying to make ",[2877,3639,3642],{"href":3640,"rel":3641},"https://github.com/nuxt/content",[2881],"Nuxt Content"," which uses Shiki to highlight the code blocks, to work on the edge.",[2874,3645,3646],{},[3647,3648],"img",{"alt":3649,"className":3650,"src":3656},"Chat History Between Sébastien and Anthony",[3651,3652,3653,3654,3655],"rounded-lg","shadow","max-w-[700px]","border","dark:border-gray-700","/assets/blog/shiki-start-chat.png",[2874,3658,3659,3660,3667,3668,3673,3674,3679],{},"I started the experiments by patching ",[2877,3661,3664],{"href":3662,"rel":3663},"https://github.com/pi0/shiki-es",[2881],[2941,3665,3666],{},"shiki-es"," (a ESM build of Shiki by ",[2877,3669,3672],{"href":3670,"rel":3671},"https://github.com/pi0",[2881],"Pooya Parsa",") locally, to convert the grammars and themes files into ",[2877,3675,3678],{"href":3676,"rel":3677},"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules",[2881],"ECMAScript Module (ESM)"," so that it could be understood and bundled by the build tools. This was done to create the code bundle for CloudFlare Workers to consume without using the filesystem nor making network requests.",[2934,3681,3684],{"className":2936,"code":3682,"filename":3683,"language":2938,"meta":2939,"style":2939},"import fs from 'fs/promises'\n\nconst cssGrammar = JSON.parse(await fs.readFile('../langs/css.json', 'utf-8'))\n","Before - Read JSON assets from filesystem",[2941,3685,3686,3706,3711],{"__ignoreMap":2939},[2944,3687,3688,3691,3694,3697,3700,3703],{"class":2946,"line":2947},[2944,3689,3690],{"class":2950},"import",[2944,3692,3693],{"class":2961}," fs ",[2944,3695,3696],{"class":2950},"from",[2944,3698,3699],{"class":2965}," '",[2944,3701,3702],{"class":2988},"fs/promises",[2944,3704,3705],{"class":2965},"'\n",[2944,3707,3708],{"class":2946,"line":2969},[2944,3709,3710],{"emptyLinePlaceholder":1196},"\n",[2944,3712,3713,3716,3719,3721,3724,3727,3730,3732,3735,3738,3740,3743,3745,3747,3750,3752,3754,3756,3759,3761],{"class":2946,"line":2982},[2944,3714,3715],{"class":3032},"const",[2944,3717,3718],{"class":2961}," cssGrammar ",[2944,3720,3036],{"class":2965},[2944,3722,3723],{"class":2961}," JSON",[2944,3725,3726],{"class":2965},".",[2944,3728,3729],{"class":2957},"parse",[2944,3731,2962],{"class":2961},[2944,3733,3734],{"class":2950},"await",[2944,3736,3737],{"class":2961}," fs",[2944,3739,3726],{"class":2965},[2944,3741,3742],{"class":2957},"readFile",[2944,3744,2962],{"class":2961},[2944,3746,2992],{"class":2965},[2944,3748,3749],{"class":2988},"../langs/css.json",[2944,3751,2992],{"class":2965},[2944,3753,3414],{"class":2965},[2944,3755,3699],{"class":2965},[2944,3757,3758],{"class":2988},"utf-8",[2944,3760,2992],{"class":2965},[2944,3762,3763],{"class":2961},"))\n",[2934,3765,3768],{"className":2936,"code":3766,"filename":3767,"language":2938,"meta":2939,"style":2939},"const cssGrammar = await import('../langs/css.mjs').then(m => m.default)\n","After - Using ESM import",[2941,3769,3770],{"__ignoreMap":2939},[2944,3771,3772,3774,3776,3778,3781,3784,3786,3788,3791,3793,3795,3797,3800,3802,3806,3809,3812,3814],{"class":2946,"line":2947},[2944,3773,3715],{"class":3032},[2944,3775,3718],{"class":2961},[2944,3777,3036],{"class":2965},[2944,3779,3780],{"class":2950}," await",[2944,3782,3783],{"class":2965}," import",[2944,3785,2962],{"class":2961},[2944,3787,2992],{"class":2965},[2944,3789,3790],{"class":2988},"../langs/css.mjs",[2944,3792,2992],{"class":2965},[2944,3794,3549],{"class":2961},[2944,3796,3726],{"class":2965},[2944,3798,3799],{"class":2957},"then",[2944,3801,2962],{"class":2961},[2944,3803,3805],{"class":3804},"s1nJG","m",[2944,3807,3808],{"class":3032}," =>",[2944,3810,3811],{"class":2961}," m",[2944,3813,3726],{"class":2965},[2944,3815,3816],{"class":2961},"default)\n",[2874,3818,3819,3820,3827,3828,3830,3831,3834,3835,3837,3838,2910,3843,3848,3849,3726],{},"We need to wrap the JSON files into ESM as inline literal so that we can use ",[2877,3821,3824],{"href":3822,"rel":3823},"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import",[2881],[2941,3825,3826],{},"import()"," to dynamically import them. The difference is that ",[2941,3829,3826],{}," is a standard JavaScript feature that works everywhere, while ",[2941,3832,3833],{},"fs.readFile"," is a Node.js specific API that only works in Node.js. Having ",[2941,3836,3826],{}," statically would also make bundlers like ",[2877,3839,3842],{"href":3840,"rel":3841},"https://rollupjs.org/",[2881],"Rollup",[2877,3844,3847],{"href":3845,"rel":3846},"https://webpack.js.org/",[2881],"webpack"," able to construct the module relationship graph and ",[2877,3850,3853],{"href":3851,"rel":3852},"https://rollupjs.org/tutorial/#code-splitting",[2881],"emit the bundled code as chunks",[2874,3855,3856],{},"Then, I realized that it actually takes more than that to make it work on edge runtimes. Since bundlers expect imports to be resolvable at build time (meaning that in order to support all the languages and themes), we need to list all the import statements in every single grammar and theme file in the codebase. This would end up with a huge bundle size with a bunch of grammars and themes that you might not actually use. This problem is particularly important in the edge environment, where the bundle size is critical for performance.",[2874,3858,3859],{},"So, we needed to figure out a better middle ground to make it work better.",[3612,3861,3863],{"id":3862},"the-fork-shikiji","The Fork - Shikiji",[2874,3865,3866,3867,3872,3873,3726],{},"Knowing this might fundamentally change the way Shiki works, and since we don't want to risk breaking the existing Shiki users with our experiments, I started a fork of Shiki called ",[2877,3868,3871],{"href":3869,"rel":3870},"https://github.com/antfu/shikiji",[2881],"Shikiji",". I rewrote the code from scratch while keeping the previous API design decisions in mind. The goal is to make Shiki runtime-agnostic, performant and efficient, like the philosophy we have at ",[2877,3874,3877],{"href":3875,"rel":3876},"https://github.com/unjs",[2881],"UnJS",[2874,3879,3880,3881,3886,3887,2910,3893,3900,3901,3906,3907,3909,3910,3917,3918,3923,3924,3929,3930,3937],{},"To make that happen, we need to make Shikiji completely ESM-friendly, pure and ",[2877,3882,3885],{"href":3883,"rel":3884},"https://developer.mozilla.org/en-US/docs/Glossary/Tree_shaking",[2881],"tree-shakable",". This goes all the way up to the dependencies of Shiki such as ",[2877,3888,3890],{"href":2898,"rel":3889},[2881],[2941,3891,3892],{},"vscode-oniguruma",[2877,3894,3897],{"href":3895,"rel":3896},"https://github.com/microsoft/vscode-textmate",[2881],[2941,3898,3899],{},"vscode-textmate",", which are provided in ",[2877,3902,3905],{"href":3903,"rel":3904},"https://requirejs.org/docs/commonjs.html",[2881],"Common JS (CJS)"," format.  ",[2941,3908,3892],{}," also contains a WASM binding generated by ",[2877,3911,3914],{"href":3912,"rel":3913},"https://github.com/emscripten-core/emscripten",[2881],[2941,3915,3916],{},"emscripten"," that contains ",[2877,3919,3922],{"href":3920,"rel":3921},"https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/docs/rules/no-floating-promises.md",[2881],"dangling promises"," that will make CloudFlare Workers fail to finish the request. We ended up by embedding the WASM binary into a ",[2877,3925,3928],{"href":3926,"rel":3927},"https://en.wikipedia.org/wiki/Base64",[2881],"base64 string"," and shipping it as an ES module, manually rewriting the WASM binding to avoid dangling promises, and ",[2877,3931,3934,3935],{"href":3932,"rel":3933},"https://github.com/shikijs/shiki/blob/main/CONTRIBUTING.md#clone",[2881],"vendored ",[2941,3936,3899],{}," to compile from its source code and produce the efficient ESM output.",[2874,3939,3940,3941,3946],{},"The end result was very promising. We managed to get Shikiji working on any runtime environment, with even the possibility to ",[2877,3942,3945],{"href":3943,"rel":3944},"https://shiki.style/guide/install#cdn-usage",[2881],"import it from CDN and run in the browser"," with a single line of code.",[2874,3948,3949,3950,3957,3958,3963],{},"We also took the chance to improve the API and the internal architecture of Shiki. We switched from simple string concatenation to use ",[2877,3951,3954],{"href":3952,"rel":3953},"https://github.com/syntax-tree/hast",[2881],[2941,3955,3956],{},"hast",", creating an Abstract Syntax Tree (AST) for generating the HTML output. This opens up the possibility of exposing a ",[2877,3959,3962],{"href":3960,"rel":3961},"https://shiki.style/guide/transformers",[2881],"Transformers API"," to allow users to modify the intermediate HAST and do many cool integrations that would be very hard to achieve previously.",[2874,3965,3966,3967,3972,3973,3978,3979,3984,3985,3726],{},"Dark/Light mode support ",[2877,3968,3971],{"href":3969,"rel":3970},"https://github.com/shikijs/shiki/issues/33",[2881],"was a frequently requested feature",". Because of the static approach Shiki takes, it won't be possible to change the theme on the fly at rendering. The solution in the past was to generate the highlighted HTML twice, and toggle their visibility based on the user's preference - it wasn't efficient as it duplicate the payload, or used ",[2877,3974,3977],{"href":3975,"rel":3976},"https://github.com/shikijs/shiki/pull/212",[2881],"CSS variables theme"," which lost the granular highlighting Shiki is great for. With the new architecture that Shikiji has, I took a step back and rethought the problem, and ",[2877,3980,3983],{"href":3981,"rel":3982},"https://github.com/shikijs/shiki/issues/33#issuecomment-1676362336",[2881],"came up with the idea"," of breaking down the common tokens and merge multiple themes as inlined CSS variables, which provide  efficient output while aligning with the Shiki's philosophy. You can learn more about it in ",[2877,3986,3989],{"href":3987,"rel":3988},"https://shiki.style/guide/dual-themes",[2881],"Shiki's documentation",[2874,3991,3992,3993,4001],{},"To make the migration easier, we also created the ",[2877,3994,3997,4000],{"href":3995,"rel":3996},"https://shikiji.netlify.app/guide/compat",[2881],[2941,3998,3999],{},"shikiji-compat"," compatibility layer",", which uses Shikiji's new foundation and provides backward compatibility API.",[2874,4003,4004,4005,4010,4011,4014,4015,4018,4019,4026,4027,4032,4033,4038,4039,4042],{},"To get Shikiji to work on Cloudflare Workers, we had one last challenge as they don't support ",[2877,4006,4009],{"href":4007,"rel":4008},"https://developer.mozilla.org/en-US/docs/WebAssembly/JavaScript_interface/instantiate_static",[2881],"initiating WASM instance","s from inlined binary data. Instead it requires importing the static ",[2941,4012,4013],{},".wasm"," assets for security reasons. This means that our \"All-in-ESM\" approach does not work well on CloudFlare. This would require extra work for users to provide different WASM sources, which makes the experience more difficult than we intended. At this moment, ",[2877,4016,3672],{"href":3670,"rel":4017},[2881]," stepped in and made the universal layer ",[2877,4020,4023],{"href":4021,"rel":4022},"https://github.com/unjs/unwasm",[2881],[2941,4024,4025],{},"unjs/unwasm",", which supports the upcoming ",[2877,4028,4031],{"href":4029,"rel":4030},"https://github.com/WebAssembly/esm-integration/tree/main/proposals/esm-integration",[2881],"WebAssembly/ES Module Integration"," proposal. It has been integrated into ",[2877,4034,4037],{"href":4035,"rel":4036},"https://github.com/unjs/nitro/pull/2037",[2881],"Nitro to have automated WASM targets",". We hope that ",[2941,4040,4041],{},"unwasm"," will help developers to have a better experience when working with WASM.",[2874,4044,4045,4046,4049,4050,2910,4055,4060],{},"Overall, the Shikiji rewrite works well. ",[2877,4047,3642],{"href":3640,"rel":4048},[2881],", ",[2877,4051,4054],{"href":4052,"rel":4053},"https://vitepress.dev/",[2881],"VitePress",[2877,4056,4059],{"href":4057,"rel":4058},"https://astro.build/",[2881],"Astro"," have been migrated to it. The feedback we have received has also been very positive.",[3612,4062,4064],{"id":4063},"merging-back","Merging Back",[2874,4066,4067,4068,4072,4073,4078],{},"I am a team member of Shiki and have helped to do releases from time to time. While ",[2877,4069,4071],{"href":2892,"rel":4070},[2881],"Pine"," is the lead of Shiki, he was busy on other stuff and Shiki's iterations slowed down. During the experiments in Shikiji, I ",[2877,4074,4077],{"href":4075,"rel":4076},"https://github.com/shikijs/shiki/issues/510",[2881],"proposed a few improvements"," that could help Shiki acquire a modern structure. While generally everyone agreed with that direction, there would have been quite a lot of work to do and no one started to work on that.",[2874,4080,4081],{},"While we were happy to use Shikiji to solve the problems we had, we certainly didn't want to see the community split by two different versions of Shiki. After a call with Pine, we made the consensus to merge the two projects into one:",[4083,4084,4088],"read-more",{"color":4085,"icon":4086,"to":4087},"purple","i-octicon-git-merge-24","https://github.com/shikijs/shiki/pull/557",[2874,4089,4090,4091],{},"feat!: merge Shikiji back into Shiki for v1.0 ",[2944,4092,4095],{"className":4093},[4094],"opacity-50","#557",[2874,4097,4098,4099,4102],{},"We are really happy to see that our work in Shikiji has been merged back to Shiki, that not only works for ourselves, but also benefits the entire community. With this merge, it ",[2918,4100,4101],{},"solves around 95% of the open issues"," we have had in Shiki for years:",[2874,4104,4105],{},[3647,4106],{"alt":4107,"className":4108,"src":4109},"Shikiji Merged Back to Shiki",[3651,3652],"/assets/blog/shiki-merge-pr.png",[2874,4111,4112,4113,4118],{},"Shiki now also got ",[2877,4114,4117],{"href":4115,"rel":4116},"https://shiki.style/",[2881],"a brand new documentation site"," where you can also play it right in your browser (thanks to the agnostic approach!). Many frameworks now has built-in integration with Shiki, maybe you are already using it somewhere!",[3612,4120,4122],{"id":4121},"twoslash","Twoslash",[2874,4124,4125,4129,4130,4135,4136,4141,4142,4147,4148,4153,4154,4159,4160,4165,4166,4169],{},[2877,4126,4122],{"href":4127,"rel":4128},"https://github.com/twoslashes/twoslash",[2881]," is an integration tool to retrieve type information from ",[2877,4131,4134],{"href":4132,"rel":4133},"https://github.com/microsoft/TypeScript/wiki/Using-the-Language-Service-API",[2881],"TypeScript Language Services"," and generated to your code snippet. It essentially make your static code snippet to have hover type information similar to your VS Code editor. It's made by ",[2877,4137,4140],{"href":4138,"rel":4139},"https://github.com/orta",[2881],"Orta Therox"," for the ",[2877,4143,4146],{"href":4144,"rel":4145},"https://github.com/microsoft/TypeScript-Website",[2881],"TypeScript documentation site",", there you can find ",[2877,4149,4152],{"href":4150,"rel":4151},"https://github.com/microsoft/TypeScript-Website/tree/v2/packages/ts-twoslasher",[2881],"the original source code here",". Orta also created the ",[2877,4155,4158],{"href":4156,"rel":4157},"https://github.com/shikijs/twoslash",[2881],"Twoslash integration for Shiki v0.x versions",". Back then, Shiki ",[2877,4161,4164],{"href":4162,"rel":4163},"https://github.com/shikijs/shiki/issues/380",[2881],"did not have proper plugin system",", that makes the ",[2941,4167,4168],{},"shiki-twoslash"," had to be built as a wrapper over Shiki, make it a bit hard to set up as the existing Shiki integrations won't directly work with Twoslash.",[2874,4171,4172,4173,4178,4179,4184],{},"We also took the chance to revise the Twoslash integrations when we were rewriting Shikiji, also a way to ",[2877,4174,4177],{"href":4175,"rel":4176},"https://en.wikipedia.org/wiki/Eating_your_own_dog_food",[2881],"dog-fooding"," and verify the extensibility. With the new HAST internal, we are able to ",[2877,4180,4183],{"href":4181,"rel":4182},"https://shiki.style/packages/twoslash",[2881],"integrate Twoslash as a transformer plugin",", making it works everywhere that Shiki works and also in a composable way to be used with other transformers.",[2874,4186,4187,4188,4192,4193,4196],{},"With this, we started to think that we could probably get Twoslash to work on ",[2877,4189,4191],{"href":4190},"/","nuxt.com",", the website you are looking at. nuxt.com uses ",[2877,4194,3642],{"href":3640,"rel":4195},[2881]," under the hood, and different from other documentation tools like VitePress, one of the benefits Nuxt Content provides is that it's able to handle dynamic content and runs on the edge. Since Twoslash is relying on TypeScript as well as the giant types modules graph from your dependencies, that would be not ideal to ship all those things to the edge or browser. Sounds tricky, but challenge accepted!",[2874,4198,4199,4200,4205,4206,4211,4212,4219],{},"We first come up of fetching the types on-demand from CDN, using the ",[2877,4201,4204],{"href":4202,"rel":4203},"https://github.com/microsoft/TypeScript-Website/tree/v2/packages/ata",[2881],"Auto-Type-Acquisition"," technique that you will see on the ",[2877,4207,4210],{"href":4208,"rel":4209},"https://www.typescriptlang.org/play",[2881],"TypeScript playground",". We made the ",[2877,4213,4216],{"href":4214,"rel":4215},"https://github.com/antfu/twoslash-cdn",[2881],[2941,4217,4218],{},"twoslash-cdn"," that allows Twoslash to run in any runtime. However, still, it sounds like not the most optimal solution, as it would still require to make many network requests that might defeat the purpose of running on the edge.",[2874,4221,4222,4223,4230,4231,4238],{},"After a few iterations on the underlying tools (e.g. on ",[2877,4224,4227],{"href":4225,"rel":4226},"https://github.com/nuxt-modules/mdc/pull/129",[2881],[2941,4228,4229],{},"@nuxtjs/mdc",", the markdown compiler used by Nuxt Content), we managed to take the hybrid approach and made ",[2877,4232,4235],{"href":4233,"rel":4234},"https://github.com/antfu/nuxt-content-twoslash",[2881],[2941,4236,4237],{},"nuxt-content-twoslash"," that runs Twoslash on build time and caches the results for edge rendering. This way we could avoid shipping any extra dependencies to the final bundle, but still have the rich interactive code snippets on the website:",[2934,4240,4244],{"className":4241,"code":4242,"language":4243,"meta":4121,"style":2939},"language-vue shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","\u003Cscript setup>\n// Try hover on identifiers below to see the types\nconst count = useState('counter', () => 0)\nconst double = computed(() => count.value * 2)\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cbutton>Count is: {{ count }}\u003C/button>\n  \u003Cdiv>Double is: {{ double }}\u003C/div>\n\u003C/template>\n","vue",[2941,4245,4246,4258,4264,4298,4333,4341,4345,4354,4372,4390],{"__ignoreMap":2939},[2944,4247,4248,4250,4253,4256],{"class":2946,"line":2947},[2944,4249,3027],{"class":2965},[2944,4251,4252],{"class":2972},"script",[2944,4254,4255],{"class":3032}," setup",[2944,4257,3071],{"class":2965},[2944,4259,4260],{"class":2946,"line":2969},[2944,4261,4263],{"class":4262},"sWuyu","// Try hover on identifiers below to see the types\n",[2944,4265,4266,4268,4271,4273,4276,4278,4280,4283,4285,4287,4290,4292,4296],{"class":2946,"line":2982},[2944,4267,3715],{"class":3032},[2944,4269,4270],{"class":2961}," count ",[2944,4272,3036],{"class":2965},[2944,4274,4275],{"class":2957}," useState",[2944,4277,2962],{"class":2961},[2944,4279,2992],{"class":2965},[2944,4281,4282],{"class":2988},"counter",[2944,4284,2992],{"class":2965},[2944,4286,3414],{"class":2965},[2944,4288,4289],{"class":2965}," ()",[2944,4291,3808],{"class":3032},[2944,4293,4295],{"class":4294},"sYRBq"," 0",[2944,4297,3012],{"class":2961},[2944,4299,4300,4302,4305,4307,4310,4312,4315,4317,4320,4322,4325,4328,4331],{"class":2946,"line":2998},[2944,4301,3715],{"class":3032},[2944,4303,4304],{"class":2961}," double ",[2944,4306,3036],{"class":2965},[2944,4308,4309],{"class":2957}," computed",[2944,4311,2962],{"class":2961},[2944,4313,4314],{"class":2965},"()",[2944,4316,3808],{"class":3032},[2944,4318,4319],{"class":2961}," count",[2944,4321,3726],{"class":2965},[2944,4323,4324],{"class":2961},"value ",[2944,4326,4327],{"class":2965},"*",[2944,4329,4330],{"class":4294}," 2",[2944,4332,3012],{"class":2961},[2944,4334,4335,4337,4339],{"class":2946,"line":3006},[2944,4336,3121],{"class":2965},[2944,4338,4252],{"class":2972},[2944,4340,3071],{"class":2965},[2944,4342,4343],{"class":2946,"line":3427},[2944,4344,3710],{"emptyLinePlaceholder":1196},[2944,4346,4347,4349,4352],{"class":2946,"line":3494},[2944,4348,3027],{"class":2965},[2944,4350,4351],{"class":2972},"template",[2944,4353,3071],{"class":2965},[2944,4355,4356,4358,4361,4363,4366,4368,4370],{"class":2946,"line":3562},[2944,4357,3076],{"class":2965},[2944,4359,4360],{"class":2972},"button",[2944,4362,3116],{"class":2965},[2944,4364,4365],{"class":2961},"Count is: {{ count }}",[2944,4367,3121],{"class":2965},[2944,4369,4360],{"class":2972},[2944,4371,3071],{"class":2965},[2944,4373,4374,4376,4379,4381,4384,4386,4388],{"class":2946,"line":3572},[2944,4375,3076],{"class":2965},[2944,4377,4378],{"class":2972},"div",[2944,4380,3116],{"class":2965},[2944,4382,4383],{"class":2961},"Double is: {{ double }}",[2944,4385,3121],{"class":2965},[2944,4387,4378],{"class":2972},[2944,4389,3071],{"class":2965},[2944,4391,4393,4395,4397],{"class":2946,"line":4392},10,[2944,4394,3121],{"class":2965},[2944,4396,4351],{"class":2972},[2944,4398,3071],{"class":2965},[2874,4400,4401,4402,4405,4406,4413,4414,4419,4420,2910,4425,4432],{},"During that, we also took the chance to refactor ",[2877,4403,4122],{"href":4127,"rel":4404},[2881]," with Orta to have a more efficient and modern structure. It also allows us have ",[2877,4407,4410],{"href":4408,"rel":4409},"https://github.com/twoslashes/twoslash/tree/main/packages/twoslash-vue",[2881],[2941,4411,4412],{},"twoslash-vue"," that provides the ",[2877,4415,4418],{"href":4416,"rel":4417},"https://vuejs.org/guide/scaling-up/sfc.html",[2881],"Vue SFC"," support as you are playing above. It's powered by ",[2877,4421,4424],{"href":4422,"rel":4423},"https://github.com/volarjs/volar.js",[2881],"Volar.js",[2877,4426,4429],{"href":4427,"rel":4428},"https://github.com/vuejs/language-tools",[2881],[2941,4430,4431],{},"vuejs/language-tools",". With Volar growing to be framework agnostic and frameworks to work together, we are looking forward to see such integrations to expand to more syntaxes like Astro and Svelte components files in the future.",[3612,4434,4436],{"id":4435},"integrations","Integrations",[2874,4438,4439],{},"If you want to give Shiki a try in your own website, here you can find some integrations that we have made:",[4441,4442,4443,4484,4508],"ul",{},[4444,4445,4446,4451],"li",{},[2877,4447,4450],{"href":4448,"rel":4449},"https://shiki.style/packages/nuxt",[2881],"Nuxt",[4441,4452,4453,4473],{},[4444,4454,4455,4456,4460,4461,4466,4467,4472],{},"If using ",[2877,4457,3642],{"href":4458,"rel":4459},"https://content.nuxt.com/",[2881],", Shiki is ",[2877,4462,4465],{"href":4463,"rel":4464},"https://content.nuxt.com/get-started/configuration#highlight",[2881],"build-in",". For Twoslash, you can add ",[2877,4468,4470],{"href":4233,"rel":4469},[2881],[2941,4471,4237],{}," on top.",[4444,4474,4475,4476,4483],{},"If not, you can use ",[2877,4477,4480],{"href":4478,"rel":4479},"https://github.com/pi0/nuxt-shiki",[2881],[2941,4481,4482],{},"nuxt-shiki"," to use Shiki as Vue component or composibles.",[4444,4485,4486,4490],{},[2877,4487,4054],{"href":4488,"rel":4489},"https://shiki.style/packages/vitepress",[2881],[4441,4491,4492],{},[4444,4493,4494,4495,4500,4501,3726],{},"Shiki is ",[2877,4496,4499],{"href":4497,"rel":4498},"https://vitepress.dev/guide/markdown#syntax-highlighting-in-code-blocks",[2881],"built-in",". For Twoslash, you can use ",[2877,4502,4505],{"href":4503,"rel":4504},"https://shiki.style/packages/vitepress#twoslash",[2881],[2941,4506,4507],{},"vitepress-twoslash",[4444,4509,4510,4511],{},"Low-level integrations - Shiki provides official integrations for markdown compilers:\n",[4441,4512,4513,4529],{},[4444,4514,4515,4522,4523],{},[2877,4516,4519],{"href":4517,"rel":4518},"https://shiki.style/packages/markdown-it",[2881],[2941,4520,4521],{},"markdown-it"," - Plugin for ",[2877,4524,4527],{"href":4525,"rel":4526},"https://github.com/markdown-it/markdown-it",[2881],[2941,4528,4521],{},[4444,4530,4531,4522,4538],{},[2877,4532,4535],{"href":4533,"rel":4534},"https://shiki.style/packages/rehype",[2881],[2941,4536,4537],{},"rehype",[2877,4539,4542],{"href":4540,"rel":4541},"https://github.com/rehypejs/rehype",[2881],[2941,4543,4537],{},[2874,4545,4546,4547],{},"Check out more integrations on ",[2877,4548,4550],{"href":4115,"rel":4549},[2881],"Shiki's Documentation",[3612,4552,4554],{"id":4553},"conclusions","Conclusions",[2874,4556,4557,4560,4561,4049,4564,4049,4567,4570],{},[2918,4558,4559],{},"Our mission at Nuxt is not only to make a better framework for developers, but also to make the entire frontend and web ecosystem a better place."," We are keeping pushing the boundaries and endorse the modern web standards and best practices. We hope you enjoy the new ",[2877,4562,2882],{"href":2879,"rel":4563},[2881],[2877,4565,4041],{"href":4021,"rel":4566},[2881],[2877,4568,4122],{"href":4127,"rel":4569},[2881]," and many other tools we made in the process of making Nuxt and the web better.",[4572,4573,4574],"style",{},"html pre.shiki code .s8R28, html code.shiki .s8R28{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s3cPz, html code.shiki .s3cPz{--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF}html pre.shiki code .sZSNi, html code.shiki .sZSNi{--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8}html pre.shiki code .sDfIl, html code.shiki .sDfIl{--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF}html pre.shiki code .sRlkE, html code.shiki .sRlkE{--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178}html pre.shiki code .sGFVr, html code.shiki .sGFVr{--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D}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 .smZ93, html code.shiki .smZ93{--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA}html pre.shiki code .s1nJG, html code.shiki .s1nJG{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sWuyu, html code.shiki .sWuyu{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sYRBq, html code.shiki .sYRBq{--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C}",{"title":2939,"searchDepth":2969,"depth":2969,"links":4576},[4577,4578,4579,4580,4581,4582],{"id":3614,"depth":2969,"text":3615},{"id":3862,"depth":2969,"text":3863},{"id":4063,"depth":2969,"text":4064},{"id":4121,"depth":2969,"text":4122},{"id":4435,"depth":2969,"text":4436},{"id":4553,"depth":2969,"text":4554},"Article","2024-03-11","Shiki v1.0 came with many improvements and features - see how Nuxt drives the evolution of Shiki!","md","/assets/blog/shiki-cover.png",{},{"title":2805,"description":4585},"FaYPMMnvdKXTRMr_hfQATIWOlm_ObR2ydrdzrNDWTR4",[4592,4594],{"title":2809,"path":2810,"stem":2811,"description":4593,"children":-1},"We revamped our ESLint integrations to support ESLint v9 with the flat config, as well as a new module with many more capabilities.",{"title":2797,"path":2798,"stem":2799,"description":4595,"children":-1},"Nuxt DevTools v1.0 is out, generally available to all Nuxt projects!",1774553529050]