[{"data":1,"prerenderedAt":9663},["ShallowReactive",2],{"$fGCo9l1hMtNdUiA6QzdUX5X3kLqaWcC5t2kdz4LrvCvc":3,"versions":2856,"-docs-3-x-getting-started-upgrade":2861,"-docs-3-x-getting-started-upgrade-surround":9658},[4,1120,1948,2767],{"title":5,"titleTemplate":6,"icon":7,"path":8,"stem":9,"children":10,"page":108},"Docs",null,"i-lucide-book-marked","\u002Fdocs\u002F3.x","docs\u002F3.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","\u002Fdocs\u002F3.x\u002Fgetting-started","docs\u002F3.x\u002F1.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","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fintroduction","docs\u002F3.x\u002F1.getting-started\u002F01.introduction","i-lucide-info",{"title":24,"path":25,"stem":26,"titleTemplate":6,"icon":27},"Installation","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Finstallation","docs\u002F3.x\u002F1.getting-started\u002F02.installation","i-lucide-play",{"title":29,"path":30,"stem":31,"titleTemplate":6,"icon":32},"Configuration","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fconfiguration","docs\u002F3.x\u002F1.getting-started\u002F03.configuration","i-lucide-cog",{"title":34,"path":35,"stem":36,"titleTemplate":6,"icon":37},"Views","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fviews","docs\u002F3.x\u002F1.getting-started\u002F04.views","i-lucide-panels-top-left",{"title":39,"path":40,"stem":41,"titleTemplate":6,"icon":42},"Assets","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fassets","docs\u002F3.x\u002F1.getting-started\u002F05.assets","i-lucide-image",{"title":44,"path":45,"stem":46,"titleTemplate":6,"icon":47},"Styling","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fstyling","docs\u002F3.x\u002F1.getting-started\u002F06.styling","i-lucide-palette",{"title":49,"path":50,"stem":51,"titleTemplate":6,"icon":52},"Routing","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Frouting","docs\u002F3.x\u002F1.getting-started\u002F07.routing","i-lucide-milestone",{"title":54,"path":55,"stem":56,"titleTemplate":6,"icon":57},"SEO and Meta","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fseo-meta","docs\u002F3.x\u002F1.getting-started\u002F08.seo-meta","i-lucide-file-search",{"title":59,"path":60,"stem":61,"titleTemplate":6,"icon":62},"Transitions","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ftransitions","docs\u002F3.x\u002F1.getting-started\u002F09.transitions","i-lucide-toggle-right",{"title":64,"path":65,"stem":66,"titleTemplate":6,"icon":67},"Data Fetching","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F3.x\u002F1.getting-started\u002F10.data-fetching","i-lucide-cable",{"title":69,"path":70,"stem":71,"titleTemplate":6,"icon":72},"State Management","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fstate-management","docs\u002F3.x\u002F1.getting-started\u002F11.state-management","i-lucide-database",{"title":74,"path":75,"stem":76,"titleTemplate":6,"icon":77},"Error Handling","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ferror-handling","docs\u002F3.x\u002F1.getting-started\u002F12.error-handling","i-lucide-bug-off",{"title":79,"path":80,"stem":81,"titleTemplate":6,"icon":82},"Server","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fserver","docs\u002F3.x\u002F1.getting-started\u002F13.server","i-lucide-pc-case",{"title":84,"path":85,"stem":86,"titleTemplate":6,"icon":87},"Layers","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Flayers","docs\u002F3.x\u002F1.getting-started\u002F14.layers","i-lucide-layers",{"title":89,"path":90,"stem":91,"titleTemplate":6,"icon":92},"Prerendering","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fprerendering","docs\u002F3.x\u002F1.getting-started\u002F15.prerendering","i-lucide-file-code-2",{"title":94,"path":95,"stem":96,"titleTemplate":6,"icon":97},"Deployment","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fdeployment","docs\u002F3.x\u002F1.getting-started\u002F16.deployment","i-lucide-cloud",{"title":99,"path":100,"stem":101,"titleTemplate":6,"icon":102},"Testing","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ftesting","docs\u002F3.x\u002F1.getting-started\u002F17.testing","i-lucide-circle-check",{"title":104,"path":105,"stem":106,"titleTemplate":6,"icon":107},"Upgrade Guide","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fupgrade","docs\u002F3.x\u002F1.getting-started\u002F18.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","\u002Fdocs\u002F3.x\u002Fdirectory-structure","docs\u002F3.x\u002F2.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","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F3.x\u002F2.directory-structure\u002F0.nuxt","i-vscode-icons-folder-type-temp",{"title":122,"path":123,"stem":124,"titleTemplate":6,"icon":125},".output","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Foutput","docs\u002F3.x\u002F2.directory-structure\u002F0.output","i-vscode-icons-folder-type-package",{"title":127,"path":128,"stem":129,"titleTemplate":6,"icon":130},"assets","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fassets","docs\u002F3.x\u002F2.directory-structure\u002F1.assets","i-vscode-icons-folder-type-asset",{"title":132,"path":133,"stem":134,"titleTemplate":6,"icon":135},"components","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcomponents","docs\u002F3.x\u002F2.directory-structure\u002F1.components","i-vscode-icons-folder-type-component",{"title":137,"path":138,"stem":139,"titleTemplate":6,"icon":140},"composables","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcomposables","docs\u002F3.x\u002F2.directory-structure\u002F1.composables","i-vscode-icons-folder-type-src",{"title":142,"path":143,"stem":144,"titleTemplate":6,"icon":145},"content","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcontent","docs\u002F3.x\u002F2.directory-structure\u002F1.content","i-vscode-icons-folder-type-log",{"title":147,"path":148,"stem":149,"titleTemplate":6,"icon":150},"layers","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Flayers","docs\u002F3.x\u002F2.directory-structure\u002F1.layers","i-vscode-icons-folder-type-nuxt",{"title":152,"path":153,"stem":154,"titleTemplate":6,"icon":155},"layouts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Flayouts","docs\u002F3.x\u002F2.directory-structure\u002F1.layouts","i-vscode-icons-folder-type-view",{"title":157,"path":158,"stem":159,"titleTemplate":6,"icon":160},"middleware","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fmiddleware","docs\u002F3.x\u002F2.directory-structure\u002F1.middleware","i-vscode-icons-folder-type-middleware",{"title":162,"path":163,"stem":164,"titleTemplate":6,"icon":150},"modules","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fmodules","docs\u002F3.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":167,"stem":168,"titleTemplate":6,"icon":169},"node_modules","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F3.x\u002F2.directory-structure\u002F1.node_modules","i-vscode-icons-folder-type-node",{"title":171,"path":172,"stem":173,"titleTemplate":6,"icon":155},"pages","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpages","docs\u002F3.x\u002F2.directory-structure\u002F1.pages",{"title":175,"path":176,"stem":177,"titleTemplate":6,"icon":178},"plugins","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fplugins","docs\u002F3.x\u002F2.directory-structure\u002F1.plugins","i-vscode-icons-folder-type-plugin",{"title":180,"path":181,"stem":182,"titleTemplate":6,"icon":183},"public","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpublic","docs\u002F3.x\u002F2.directory-structure\u002F1.public","i-vscode-icons-folder-type-public",{"title":185,"path":186,"stem":187,"titleTemplate":6,"icon":188},"server","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fserver","docs\u002F3.x\u002F2.directory-structure\u002F1.server","i-vscode-icons-folder-type-server",{"title":190,"path":191,"stem":192,"titleTemplate":6,"icon":193},"shared","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fshared","docs\u002F3.x\u002F2.directory-structure\u002F1.shared","i-vscode-icons-folder-type-shared",{"title":195,"path":196,"stem":197,"titleTemplate":6,"icon":198},"utils","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Futils","docs\u002F3.x\u002F2.directory-structure\u002F1.utils","i-vscode-icons-folder-type-tools",{"title":200,"path":201,"stem":202,"titleTemplate":6,"icon":203},".env","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fenv","docs\u002F3.x\u002F2.directory-structure\u002F2.env","i-vscode-icons-file-type-dotenv",{"title":205,"path":206,"stem":207,"titleTemplate":6,"icon":208},".gitignore","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F3.x\u002F2.directory-structure\u002F2.gitignore","i-vscode-icons-file-type-git",{"title":210,"path":211,"stem":212,"titleTemplate":6,"icon":213},".nuxtignore","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F3.x\u002F2.directory-structure\u002F2.nuxtignore","i-vscode-icons-file-type-nuxt",{"title":215,"path":216,"stem":217,"titleTemplate":6,"icon":213},".nuxtrc","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F3.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":219,"path":220,"stem":221,"titleTemplate":6,"icon":222},"app.vue","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fapp","docs\u002F3.x\u002F2.directory-structure\u002F3.app","i-vscode-icons-file-type-vue",{"title":224,"path":225,"stem":226,"titleTemplate":6,"icon":227},"app.config.ts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fapp-config","docs\u002F3.x\u002F2.directory-structure\u002F3.app-config","i-vscode-icons-file-type-light-config",{"title":229,"path":230,"stem":231,"titleTemplate":6,"icon":222},"error.vue","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Ferror","docs\u002F3.x\u002F2.directory-structure\u002F3.error",{"title":233,"path":234,"stem":235,"titleTemplate":6,"icon":213},"nuxt.config.ts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F3.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":238,"stem":239,"titleTemplate":6,"icon":240},"package.json","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpackage","docs\u002F3.x\u002F2.directory-structure\u002F3.package","i-vscode-icons-file-type-npm",{"title":242,"path":243,"stem":244,"titleTemplate":6,"icon":245},"tsconfig.json","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Ftsconfig","docs\u002F3.x\u002F2.directory-structure\u002F3.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","\u002Fdocs\u002F3.x\u002Fguide","docs\u002F3.x\u002F3.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","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts","docs\u002F3.x\u002F3.guide\u002F1.concepts",[259,263,267,271,275,279,283],{"title":260,"path":261,"stem":262,"titleTemplate":6},"Rendering Modes","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":265,"stem":266,"titleTemplate":6},"Nuxt Lifecycle","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":269,"stem":270,"titleTemplate":6},"Auto-imports","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":273,"stem":274,"titleTemplate":6},"Server Engine","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":277,"stem":278,"titleTemplate":6},"Modules","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":281,"stem":282,"titleTemplate":6},"TypeScript","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":285,"stem":286,"titleTemplate":6},"Code Style","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fcode-style","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F9.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","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices","docs\u002F3.x\u002F3.guide\u002F2.best-practices",[294,298,302],{"title":295,"path":296,"stem":297,"titleTemplate":6},"Nuxt and hydration","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":300,"stem":301,"titleTemplate":6},"Nuxt Performance","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":304,"stem":305,"titleTemplate":6},"Nuxt Plugins","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fplugins","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fplugins",{"title":307,"titleTemplate":308,"icon":309,"path":310,"stem":311,"children":312,"page":108},"Working with AI","Working with AI: %s","i-lucide-bot","\u002Fdocs\u002F3.x\u002Fguide\u002Fai","docs\u002F3.x\u002F3.guide\u002F3.ai",[313,317],{"title":314,"path":315,"stem":316,"titleTemplate":6},"MCP Server","\u002Fdocs\u002F3.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F3.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":319,"stem":320,"titleTemplate":6},"LLMs.txt","\u002Fdocs\u002F3.x\u002Fguide\u002Fai\u002Fllms-txt","docs\u002F3.x\u002F3.guide\u002F3.ai\u002F2.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","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules","docs\u002F3.x\u002F3.guide\u002F4.modules",[328,332,336,340,344,348,352],{"title":329,"path":330,"stem":331,"titleTemplate":6},"Create Your First Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":334,"stem":335,"titleTemplate":6},"Understand Module Structure","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":338,"stem":339,"titleTemplate":6},"Add Plugins, Components & More","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":342,"stem":343,"titleTemplate":6},"Use Hooks & Extend Types","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F4.recipes-advanced",{"title":345,"path":346,"stem":347,"titleTemplate":6},"Test Your Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F5.testing",{"title":349,"path":350,"stem":351,"titleTemplate":6},"Follow Best Practices","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F6.best-practices",{"title":353,"path":354,"stem":355,"titleTemplate":6},"Publish & Share Your Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":360,"stem":361,"children":362,"page":108},"Recipes","%s · Recipes","i-lucide-cooking-pot","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes","docs\u002F3.x\u002F3.guide\u002F5.recipes",[363,367,371,375],{"title":364,"path":365,"stem":366,"titleTemplate":6},"Custom Routing","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":368,"path":369,"stem":370,"titleTemplate":6},"Vite Plugins","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":372,"path":373,"stem":374,"titleTemplate":6},"Custom useFetch","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":376,"path":377,"stem":378,"titleTemplate":6},"Sessions and Authentication","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F4.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","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further","docs\u002F3.x\u002F3.guide\u002F6.going-further",[386,390,394,398,402,406,410,414,418,422],{"title":387,"path":388,"stem":389,"titleTemplate":6},"Custom Events","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":391,"path":392,"stem":393,"titleTemplate":6},"Experimental Features","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":395,"path":396,"stem":397,"titleTemplate":6},"Features","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":399,"path":400,"stem":401,"titleTemplate":6},"Runtime Config","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":403,"path":404,"stem":405,"titleTemplate":6},"Nightly Release Channel","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":407,"path":408,"stem":409,"titleTemplate":6},"Lifecycle Hooks","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":411,"path":412,"stem":413,"titleTemplate":6},"Nuxt Kit","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":415,"path":416,"stem":417,"titleTemplate":6},"NuxtApp","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":419,"path":420,"stem":421,"titleTemplate":6},"Authoring Nuxt Layers","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":423,"path":424,"stem":425,"titleTemplate":6},"Debugging","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":430,"stem":431,"children":432,"page":108},"API","%s · Nuxt API","i-lucide-code-xml","\u002Fdocs\u002F3.x\u002Fapi","docs\u002F3.x\u002F4.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","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents","docs\u002F3.x\u002F4.api\u002F1.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>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":444,"path":445,"stem":446,"titleTemplate":6},"\u003CDevOnly>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":448,"path":449,"stem":450,"titleTemplate":6},"\u003CNuxtClientFallback>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":452,"path":453,"stem":454,"titleTemplate":6},"\u003CNuxtPicture>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F3.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":456,"path":457,"stem":458,"titleTemplate":6},"\u003CTeleport>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F3.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":460,"path":461,"stem":462,"titleTemplate":6},"\u003CNuxtRouteAnnouncer>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F3.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":464,"path":465,"stem":466,"titleTemplate":6},"\u003CNuxtTime>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F3.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":468,"path":469,"stem":470,"titleTemplate":6},"\u003CNuxtPage>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F3.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":472,"path":473,"stem":474,"titleTemplate":6},"\u003CNuxtLayout>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F3.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":476,"path":477,"stem":478,"titleTemplate":6},"\u003CNuxtLink>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F3.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":480,"path":481,"stem":482,"titleTemplate":6},"\u003CNuxtLoadingIndicator>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F3.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":484,"path":485,"stem":486,"titleTemplate":6},"\u003CNuxtErrorBoundary>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F3.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":488,"path":489,"stem":490,"titleTemplate":6},"\u003CNuxtWelcome>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F3.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":492,"path":493,"stem":494,"titleTemplate":6},"\u003CNuxtIsland>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F3.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":496,"path":497,"stem":498,"titleTemplate":6},"\u003CNuxtImg>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F3.x\u002F4.api\u002F1.components\u002F9.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","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables","docs\u002F3.x\u002F4.api\u002F2.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","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":511,"path":512,"stem":513,"titleTemplate":6},"useAppConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":515,"path":516,"stem":517,"titleTemplate":6},"useAsyncData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":519,"path":520,"stem":521,"titleTemplate":6},"useCookie","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":523,"path":524,"stem":525,"titleTemplate":6},"useError","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":527,"path":528,"stem":529,"titleTemplate":6},"useFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":531,"path":532,"stem":533,"titleTemplate":6},"useHead","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":535,"path":536,"stem":537,"titleTemplate":6},"useHeadSafe","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":539,"path":540,"stem":541,"titleTemplate":6},"useHydration","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":543,"path":544,"stem":545,"titleTemplate":6},"useLazyAsyncData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":547,"path":548,"stem":549,"titleTemplate":6},"useLazyFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":551,"path":552,"stem":553,"titleTemplate":6},"useLoadingIndicator","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":555,"path":556,"stem":557,"titleTemplate":6},"useNuxtApp","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":559,"path":560,"stem":561,"titleTemplate":6},"useNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":563,"path":564,"stem":565,"titleTemplate":6},"usePreviewMode","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":567,"path":568,"stem":569,"titleTemplate":6},"useRequestEvent","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":571,"path":572,"stem":573,"titleTemplate":6},"useRequestFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":575,"path":576,"stem":577,"titleTemplate":6},"useRequestHeader","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":579,"path":580,"stem":581,"titleTemplate":6},"useRequestHeaders","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":583,"path":584,"stem":585,"titleTemplate":6},"useRequestURL","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":587,"path":588,"stem":589,"titleTemplate":6},"useResponseHeader","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":591,"path":592,"stem":593,"titleTemplate":6},"useRoute","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":595,"path":596,"stem":597,"titleTemplate":6},"useRouteAnnouncer","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":599,"path":600,"stem":601,"titleTemplate":6},"useRouter","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":603,"path":604,"stem":605,"titleTemplate":6},"useRuntimeConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":607,"path":608,"stem":609,"titleTemplate":6},"useRuntimeHook","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":611,"path":612,"stem":613,"titleTemplate":6},"useSeoMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":615,"path":616,"stem":617,"titleTemplate":6},"useServerSeoMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":619,"path":620,"stem":621,"titleTemplate":6},"useState","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":623,"titleTemplate":624,"icon":625,"path":626,"stem":627,"children":628,"page":108},"Utils","%s · Nuxt Utils","i-lucide-square-function","\u002Fdocs\u002F3.x\u002Fapi\u002Futils","docs\u002F3.x\u002F4.api\u002F3.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","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F3.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":634,"path":635,"stem":636,"titleTemplate":6},"abortNavigation","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":638,"path":639,"stem":640,"titleTemplate":6},"addRouteMiddleware","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":642,"path":643,"stem":644,"titleTemplate":6},"callOnce","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":646,"path":647,"stem":648,"titleTemplate":6},"clearError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":650,"path":651,"stem":652,"titleTemplate":6},"clearNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":654,"path":655,"stem":656,"titleTemplate":6},"clearNuxtState","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":658,"path":659,"stem":660,"titleTemplate":6},"createError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":662,"path":663,"stem":664,"titleTemplate":6},"defineLazyHydrationComponent","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":666,"path":667,"stem":668,"titleTemplate":6},"defineNuxtComponent","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":670,"path":671,"stem":672,"titleTemplate":6},"defineNuxtPlugin","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":674,"path":675,"stem":676,"titleTemplate":6},"defineNuxtRouteMiddleware","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":678,"path":679,"stem":680,"titleTemplate":6},"definePageMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":682,"path":683,"stem":684,"titleTemplate":6},"defineRouteRules","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":686,"path":687,"stem":688,"titleTemplate":6},"navigateTo","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":690,"path":691,"stem":692,"titleTemplate":6},"onBeforeRouteLeave","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":694,"path":695,"stem":696,"titleTemplate":6},"onBeforeRouteUpdate","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":698,"path":699,"stem":700,"titleTemplate":6},"onNuxtReady","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":702,"path":703,"stem":704,"titleTemplate":6},"prefetchComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":706,"path":707,"stem":708,"titleTemplate":6},"preloadComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":710,"path":711,"stem":712,"titleTemplate":6},"preloadRouteComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":714,"path":715,"stem":716,"titleTemplate":6},"prerenderRoutes","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":718,"path":719,"stem":720,"titleTemplate":6},"refreshCookie","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F3.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":722,"path":723,"stem":724,"titleTemplate":6},"refreshNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F3.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":726,"path":727,"stem":728,"titleTemplate":6},"reloadNuxtApp","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F3.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":730,"path":731,"stem":732,"titleTemplate":6},"setPageLayout","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":734,"path":735,"stem":736,"titleTemplate":6},"setResponseStatus","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":738,"path":739,"stem":740,"titleTemplate":6},"showError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":742,"path":743,"stem":744,"titleTemplate":6},"updateAppConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":749,"stem":750,"children":751,"page":108},"Commands","%s · Nuxt Commands","i-lucide-square-terminal","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands","docs\u002F3.x\u002F4.api\u002F4.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","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fadd",{"title":757,"path":758,"stem":759,"titleTemplate":6},"nuxt analyze","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":761,"path":762,"stem":763,"titleTemplate":6},"nuxt build","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":765,"path":766,"stem":767,"titleTemplate":6},"nuxt build-module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":769,"path":770,"stem":771,"titleTemplate":6},"nuxt cleanup","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":773,"path":774,"stem":775,"titleTemplate":6},"nuxt dev","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdev",{"title":777,"path":778,"stem":779,"titleTemplate":6},"nuxt devtools","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":781,"path":782,"stem":783,"titleTemplate":6},"nuxt generate","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":785,"path":786,"stem":787,"titleTemplate":6},"nuxt info","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finfo",{"title":789,"path":790,"stem":791,"titleTemplate":6},"create nuxt","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finit",{"title":793,"path":794,"stem":795,"titleTemplate":6},"nuxt module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":797,"path":798,"stem":799,"titleTemplate":6},"nuxt prepare","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":801,"path":802,"stem":803,"titleTemplate":6},"nuxt preview","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":805,"path":806,"stem":807,"titleTemplate":6},"nuxt test","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftest",{"title":809,"path":810,"stem":811,"titleTemplate":6},"nuxt typecheck","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":813,"path":814,"stem":815,"titleTemplate":6},"nuxt upgrade","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":411,"titleTemplate":817,"icon":818,"path":819,"stem":820,"children":821,"page":108},"%s · Nuxt Kit","i-lucide-package","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit","docs\u002F3.x\u002F4.api\u002F5.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},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F3.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":399,"path":826,"stem":827,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":829,"path":830,"stem":831,"titleTemplate":6},"Templates","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":833,"path":834,"stem":835,"titleTemplate":6},"Nitro","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F3.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":837,"path":838,"stem":839,"titleTemplate":6},"Resolving","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F3.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":841,"path":842,"stem":843,"titleTemplate":6},"Logging","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F3.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":845,"path":846,"stem":847,"titleTemplate":6},"Builder","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F3.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":849,"path":850,"stem":851,"titleTemplate":6},"Examples","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F3.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":853,"stem":854,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F3.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":856,"path":857,"stem":858,"titleTemplate":6},"Programmatic Usage","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F3.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":860,"path":861,"stem":862,"titleTemplate":6},"Compatibility","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F3.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":864,"stem":865,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F3.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":434,"path":867,"stem":868,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F3.x\u002F4.api\u002F5.kit\u002F5.components",{"title":870,"path":871,"stem":872,"titleTemplate":6},"Context","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F3.x\u002F4.api\u002F5.kit\u002F6.context",{"title":874,"path":875,"stem":876,"titleTemplate":6},"Pages","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F3.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":878,"path":879,"stem":880,"titleTemplate":6},"Layout","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F3.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":882,"path":883,"stem":884,"titleTemplate":6},"Head","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.head",{"title":886,"path":887,"stem":888,"titleTemplate":6},"Plugins","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":892,"stem":893,"children":894,"page":108},"Advanced","i-lucide-brain","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced","docs\u002F3.x\u002F4.api\u002F6.advanced",[895,898],{"title":407,"path":896,"stem":897,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":899,"path":900,"stem":901,"titleTemplate":6},"Import meta","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":903,"path":904,"stem":905,"titleTemplate":906,"icon":32},"Nuxt Configuration","\u002Fdocs\u002F3.x\u002Fapi\u002Fnuxt-config","docs\u002F3.x\u002F4.api\u002F6.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","\u002Fdocs\u002F3.x\u002Fexamples","docs\u002F3.x\u002F4.examples",[913,917,939,954,990],{"title":914,"path":915,"stem":916,"titleTemplate":6},"Hello World","\u002Fdocs\u002F3.x\u002Fexamples\u002Fhello-world","docs\u002F3.x\u002F4.examples\u002F0.hello-world",{"title":395,"path":918,"stem":919,"children":920,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures","docs\u002F3.x\u002F4.examples\u002F1.features",[921,925,928,931,935],{"title":922,"path":923,"stem":924,"titleTemplate":6},"Auto Imports","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F3.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":926,"stem":927,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F3.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":929,"stem":930,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F3.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":932,"path":933,"stem":934,"titleTemplate":6},"Meta Tags","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F3.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":936,"path":937,"stem":938,"titleTemplate":6},"Layouts","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F3.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":940,"stem":941,"children":942,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting","docs\u002F3.x\u002F4.examples\u002F2.routing",[943,947,950],{"title":944,"path":945,"stem":946,"titleTemplate":6},"Middleware","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":874,"path":948,"stem":949,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":951,"path":952,"stem":953,"titleTemplate":6},"Universal Router","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":890,"path":955,"stem":956,"children":957,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced","docs\u002F3.x\u002F4.examples\u002F4.advanced",[958,961,964,968,972,976,980,983,986],{"title":84,"path":959,"stem":960,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":962,"stem":963,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":965,"path":966,"stem":967,"titleTemplate":6},"JSX \u002F TSX","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":969,"path":970,"stem":971,"titleTemplate":6},"Locale","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":973,"path":974,"stem":975,"titleTemplate":6},"Module Extend Pages","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":977,"path":978,"stem":979,"titleTemplate":6},"Teleport","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":981,"stem":982,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":519,"path":984,"stem":985,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":987,"path":988,"stem":989,"titleTemplate":6},"Use Custom Fetch Composable","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":991,"path":992,"stem":993,"children":994,"page":108},"Experimental","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental","docs\u002F3.x\u002F4.examples\u002F7.experimental",[995],{"title":996,"path":997,"stem":998,"titleTemplate":6},"WASM","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F3.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":1003,"stem":1004,"children":1005,"page":108},"Community","%s · Nuxt Community","i-lucide-messages-square","\u002Fdocs\u002F3.x\u002Fcommunity","docs\u002F3.x\u002F5.community",[1006,1011,1016,1021,1026,1031],{"title":1007,"path":1008,"stem":1009,"titleTemplate":6,"icon":1010},"Getting Help","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fgetting-help","docs\u002F3.x\u002F5.community\u002F2.getting-help","i-lucide-life-buoy",{"title":1012,"path":1013,"stem":1014,"titleTemplate":6,"icon":1015},"Reporting Bugs","\u002Fdocs\u002F3.x\u002Fcommunity\u002Freporting-bugs","docs\u002F3.x\u002F5.community\u002F3.reporting-bugs","i-lucide-bug",{"title":1017,"path":1018,"stem":1019,"titleTemplate":6,"icon":1020},"Contribution","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fcontribution","docs\u002F3.x\u002F5.community\u002F4.contribution","i-lucide-git-pull-request",{"title":1022,"path":1023,"stem":1024,"titleTemplate":6,"icon":1025},"Framework","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fframework-contribution","docs\u002F3.x\u002F5.community\u002F5.framework-contribution","i-lucide-github",{"title":1027,"path":1028,"stem":1029,"titleTemplate":6,"icon":1030},"Roadmap","\u002Fdocs\u002F3.x\u002Fcommunity\u002Froadmap","docs\u002F3.x\u002F5.community\u002F6.roadmap","i-lucide-map",{"title":1032,"path":1033,"stem":1034,"titleTemplate":6,"icon":1035},"Releases","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fchangelog","docs\u002F3.x\u002F5.community\u002F7.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","\u002Fdocs\u002F3.x\u002Fbridge","docs\u002F3.x\u002F6.bridge",[1043,1047,1050,1053,1057,1061,1065,1068,1071,1074],{"title":1044,"path":1045,"stem":1046,"titleTemplate":6},"Overview","\u002Fdocs\u002F3.x\u002Fbridge\u002Foverview","docs\u002F3.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1048,"stem":1049,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fconfiguration","docs\u002F3.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1051,"stem":1052,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Ftypescript","docs\u002F3.x\u002F6.bridge\u002F2.typescript",{"title":1054,"path":1055,"stem":1056,"titleTemplate":6},"Legacy Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F3.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1058,"path":1059,"stem":1060,"titleTemplate":6},"Plugins and Middleware","\u002Fdocs\u002F3.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F3.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1062,"path":1063,"stem":1064,"titleTemplate":6},"New Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F3.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":932,"path":1066,"stem":1067,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fmeta","docs\u002F3.x\u002F6.bridge\u002F6.meta",{"title":399,"path":1069,"stem":1070,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fruntime-config","docs\u002F3.x\u002F6.bridge\u002F7.runtime-config",{"title":833,"path":1072,"stem":1073,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fnitro","docs\u002F3.x\u002F6.bridge\u002F8.nitro",{"title":1075,"path":1076,"stem":1077,"titleTemplate":6},"Vite","\u002Fdocs\u002F3.x\u002Fbridge\u002Fvite","docs\u002F3.x\u002F6.bridge\u002F9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":1081,"stem":1082,"children":1083,"page":108},"Migrate to Nuxt 3","Migrate to Nuxt 3: %s","\u002Fdocs\u002F3.x\u002Fmigration","docs\u002F3.x\u002F7.migration",[1084,1087,1091,1094,1097,1100,1103,1106,1109,1113,1117],{"title":1044,"path":1085,"stem":1086,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Foverview","docs\u002F3.x\u002F7.migration\u002F1.overview",{"title":1088,"path":1089,"stem":1090,"titleTemplate":6},"Build Tooling","\u002Fdocs\u002F3.x\u002Fmigration\u002Fbundling","docs\u002F3.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1092,"stem":1093,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fserver","docs\u002F3.x\u002F7.migration\u002F11.server",{"title":29,"path":1095,"stem":1096,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fconfiguration","docs\u002F3.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1098,"stem":1099,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmodule-authors","docs\u002F3.x\u002F7.migration\u002F20.module-authors",{"title":922,"path":1101,"stem":1102,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fauto-imports","docs\u002F3.x\u002F7.migration\u002F3.auto-imports",{"title":932,"path":1104,"stem":1105,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmeta","docs\u002F3.x\u002F7.migration\u002F4.meta",{"title":1058,"path":1107,"stem":1108,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F3.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1110,"path":1111,"stem":1112,"titleTemplate":6},"Pages and Layouts","\u002Fdocs\u002F3.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F3.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1114,"path":1115,"stem":1116,"titleTemplate":6},"Component Options","\u002Fdocs\u002F3.x\u002Fmigration\u002Fcomponent-options","docs\u002F3.x\u002F7.migration\u002F7.component-options",{"title":399,"path":1118,"stem":1119,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fruntime-config","docs\u002F3.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1121,"stem":1122,"children":1123,"page":108},"\u002Fdocs\u002F4.x","docs\u002F4.x",[1124,1182,1276,1404,1778,1855,1877,1911],{"title":12,"titleTemplate":13,"icon":14,"path":1125,"stem":1126,"children":1127,"page":108},"\u002Fdocs\u002F4.x\u002Fgetting-started","docs\u002F4.x\u002F1.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},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fintroduction","docs\u002F4.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1132,"stem":1133,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Finstallation","docs\u002F4.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1135,"stem":1136,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fconfiguration","docs\u002F4.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":1138,"stem":1139,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fviews","docs\u002F4.x\u002F1.getting-started\u002F04.views",{"title":39,"path":1141,"stem":1142,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fassets","docs\u002F4.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":1144,"stem":1145,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstyling","docs\u002F4.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":1147,"stem":1148,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Frouting","docs\u002F4.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":1150,"stem":1151,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fseo-meta","docs\u002F4.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":1153,"stem":1154,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftransitions","docs\u002F4.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":1156,"stem":1157,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F4.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":1159,"stem":1160,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstate-management","docs\u002F4.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":1162,"stem":1163,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ferror-handling","docs\u002F4.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":1165,"stem":1166,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fserver","docs\u002F4.x\u002F1.getting-started\u002F13.server",{"title":84,"path":1168,"stem":1169,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Flayers","docs\u002F4.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":1171,"stem":1172,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fprerendering","docs\u002F4.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":1174,"stem":1175,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdeployment","docs\u002F4.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":1177,"stem":1178,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftesting","docs\u002F4.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":1180,"stem":1181,"titleTemplate":6,"icon":107},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fupgrade","docs\u002F4.x\u002F1.getting-started\u002F18.upgrade",{"title":110,"titleTemplate":111,"icon":112,"path":1183,"stem":1184,"children":1185,"page":108},"\u002Fdocs\u002F4.x\u002Fdirectory-structure","docs\u002F4.x\u002F2.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},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F4.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":1190,"stem":1191,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Foutput","docs\u002F4.x\u002F2.directory-structure\u002F0.output",{"title":1193,"titleTemplate":111,"head":1194,"defaultOpen":1196,"icon":1197,"path":1198,"stem":1199,"children":1200,"page":108},"app",{"title":1195},"app\u002F",true,"i-vscode-icons-folder-type-app","\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app",[1201,1204,1207,1210,1213,1216,1219,1222,1225,1228,1231],{"title":127,"path":1202,"stem":1203,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":1205,"stem":1206,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":1208,"stem":1209,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":1211,"stem":1212,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":1214,"stem":1215,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":1217,"stem":1218,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":1220,"stem":1221,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":1223,"stem":1224,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":1226,"stem":1227,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":1229,"stem":1230,"titleTemplate":6,"icon":227},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp-config","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.app-config",{"title":229,"path":1232,"stem":1233,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":1235,"stem":1236,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fcontent","docs\u002F4.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":1238,"stem":1239,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Flayers","docs\u002F4.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":1241,"stem":1242,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fmodules","docs\u002F4.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":1244,"stem":1245,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F4.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":1247,"stem":1248,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpublic","docs\u002F4.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":1250,"stem":1251,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fserver","docs\u002F4.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":1253,"stem":1254,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fshared","docs\u002F4.x\u002F2.directory-structure\u002F1.shared",{"title":200,"path":1256,"stem":1257,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fenv","docs\u002F4.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":1259,"stem":1260,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F4.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":1262,"stem":1263,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":1265,"stem":1266,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":1268,"stem":1269,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F4.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":1271,"stem":1272,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpackage","docs\u002F4.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":1274,"stem":1275,"titleTemplate":6,"icon":245},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Ftsconfig","docs\u002F4.x\u002F2.directory-structure\u002F3.tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":1277,"stem":1278,"children":1279,"page":108},"\u002Fdocs\u002F4.x\u002Fguide","docs\u002F4.x\u002F3.guide",[1280,1305,1319,1329,1354,1370],{"title":253,"titleTemplate":254,"icon":255,"path":1281,"stem":1282,"children":1283,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts","docs\u002F4.x\u002F3.guide\u002F1.concepts",[1284,1287,1290,1293,1296,1299,1302],{"title":260,"path":1285,"stem":1286,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":1288,"stem":1289,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":1291,"stem":1292,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":1294,"stem":1295,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":1297,"stem":1298,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":1300,"stem":1301,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":1303,"stem":1304,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fcode-style","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":1306,"stem":1307,"children":1308,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F2.best-practices",[1309,1313,1316],{"title":1310,"path":1311,"stem":1312,"titleTemplate":6},"Nuxt and Hydration","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":1314,"stem":1315,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":1317,"stem":1318,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fplugins","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fplugins",{"title":307,"titleTemplate":308,"icon":309,"path":1320,"stem":1321,"children":1322,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai","docs\u002F4.x\u002F3.guide\u002F3.ai",[1323,1326],{"title":314,"path":1324,"stem":1325,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F4.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":1327,"stem":1328,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fllms-txt","docs\u002F4.x\u002F3.guide\u002F3.ai\u002F2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":1330,"stem":1331,"children":1332,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F4.modules",[1333,1336,1339,1342,1345,1348,1351],{"title":329,"path":1334,"stem":1335,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":1337,"stem":1338,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":1340,"stem":1341,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":1343,"stem":1344,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F4.recipes-advanced",{"title":345,"path":1346,"stem":1347,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F5.testing",{"title":349,"path":1349,"stem":1350,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F6.best-practices",{"title":353,"path":1352,"stem":1353,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":1355,"stem":1356,"children":1357,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes","docs\u002F4.x\u002F3.guide\u002F5.recipes",[1358,1361,1364,1367],{"title":364,"path":1359,"stem":1360,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":368,"path":1362,"stem":1363,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":372,"path":1365,"stem":1366,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":376,"path":1368,"stem":1369,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":1371,"stem":1372,"children":1373,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further","docs\u002F4.x\u002F3.guide\u002F6.going-further",[1374,1377,1380,1383,1386,1389,1392,1395,1398,1401],{"title":387,"path":1375,"stem":1376,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":391,"path":1378,"stem":1379,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":395,"path":1381,"stem":1382,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":399,"path":1384,"stem":1385,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":403,"path":1387,"stem":1388,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":407,"path":1390,"stem":1391,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":411,"path":1393,"stem":1394,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":415,"path":1396,"stem":1397,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":419,"path":1399,"stem":1400,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":423,"path":1402,"stem":1403,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":1405,"stem":1406,"children":1407,"page":108},"\u002Fdocs\u002F4.x\u002Fapi","docs\u002F4.x\u002F4.api",[1408,1461,1564,1655,1707,1765,1775],{"title":434,"titleTemplate":435,"icon":324,"path":1409,"stem":1410,"children":1411,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F1.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},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":444,"path":1416,"stem":1417,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":448,"path":1419,"stem":1420,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":452,"path":1422,"stem":1423,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F4.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":456,"path":1425,"stem":1426,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F4.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":460,"path":1428,"stem":1429,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":464,"path":1431,"stem":1432,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F4.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1434,"path":1435,"stem":1436,"titleTemplate":6},"\u003CNuxtAnnouncer>","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":468,"path":1438,"stem":1439,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F4.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":472,"path":1441,"stem":1442,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F4.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":476,"path":1444,"stem":1445,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F4.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":480,"path":1447,"stem":1448,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F4.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":484,"path":1450,"stem":1451,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F4.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":488,"path":1453,"stem":1454,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F4.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":492,"path":1456,"stem":1457,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F4.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":496,"path":1459,"stem":1460,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F4.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":1462,"stem":1463,"children":1464,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables","docs\u002F4.x\u002F4.api\u002F2.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","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1470,"path":1471,"stem":1472,"titleTemplate":6},"createUseFetch","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":507,"path":1474,"stem":1475,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1477,"path":1478,"stem":1479,"titleTemplate":6},"useAnnouncer","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":511,"path":1481,"stem":1482,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":515,"path":1484,"stem":1485,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":519,"path":1487,"stem":1488,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":523,"path":1490,"stem":1491,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":527,"path":1493,"stem":1494,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":531,"path":1496,"stem":1497,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":535,"path":1499,"stem":1500,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":539,"path":1502,"stem":1503,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":543,"path":1505,"stem":1506,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":547,"path":1508,"stem":1509,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":551,"path":1511,"stem":1512,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":555,"path":1514,"stem":1515,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":559,"path":1517,"stem":1518,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":563,"path":1520,"stem":1521,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":567,"path":1523,"stem":1524,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":571,"path":1526,"stem":1527,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":575,"path":1529,"stem":1530,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":579,"path":1532,"stem":1533,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":583,"path":1535,"stem":1536,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":587,"path":1538,"stem":1539,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":591,"path":1541,"stem":1542,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":595,"path":1544,"stem":1545,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":599,"path":1547,"stem":1548,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":603,"path":1550,"stem":1551,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":607,"path":1553,"stem":1554,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":611,"path":1556,"stem":1557,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":615,"path":1559,"stem":1560,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":619,"path":1562,"stem":1563,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":623,"titleTemplate":624,"icon":625,"path":1565,"stem":1566,"children":1567,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils","docs\u002F4.x\u002F4.api\u002F3.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},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F4.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":634,"path":1572,"stem":1573,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":638,"path":1575,"stem":1576,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":642,"path":1578,"stem":1579,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":646,"path":1581,"stem":1582,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":650,"path":1584,"stem":1585,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":654,"path":1587,"stem":1588,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":658,"path":1590,"stem":1591,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":662,"path":1593,"stem":1594,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":666,"path":1596,"stem":1597,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":670,"path":1599,"stem":1600,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":674,"path":1602,"stem":1603,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":678,"path":1605,"stem":1606,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":682,"path":1608,"stem":1609,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":686,"path":1611,"stem":1612,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":690,"path":1614,"stem":1615,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":694,"path":1617,"stem":1618,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":698,"path":1620,"stem":1621,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":702,"path":1623,"stem":1624,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":706,"path":1626,"stem":1627,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":710,"path":1629,"stem":1630,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":714,"path":1632,"stem":1633,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":718,"path":1635,"stem":1636,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":722,"path":1638,"stem":1639,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":726,"path":1641,"stem":1642,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F4.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":730,"path":1644,"stem":1645,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":734,"path":1647,"stem":1648,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":738,"path":1650,"stem":1651,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":742,"path":1653,"stem":1654,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":1656,"stem":1657,"children":1658,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands","docs\u002F4.x\u002F4.api\u002F4.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},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fadd",{"title":757,"path":1663,"stem":1664,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":761,"path":1666,"stem":1667,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":765,"path":1669,"stem":1670,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":769,"path":1672,"stem":1673,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":773,"path":1675,"stem":1676,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdev",{"title":777,"path":1678,"stem":1679,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":781,"path":1681,"stem":1682,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":785,"path":1684,"stem":1685,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finfo",{"title":789,"path":1687,"stem":1688,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finit",{"title":793,"path":1690,"stem":1691,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":797,"path":1693,"stem":1694,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":801,"path":1696,"stem":1697,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":805,"path":1699,"stem":1700,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftest",{"title":809,"path":1702,"stem":1703,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":813,"path":1705,"stem":1706,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":411,"titleTemplate":817,"icon":818,"path":1708,"stem":1709,"children":1710,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit","docs\u002F4.x\u002F4.api\u002F5.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},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F4.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":399,"path":1715,"stem":1716,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":829,"path":1718,"stem":1719,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":833,"path":1721,"stem":1722,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F4.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":837,"path":1724,"stem":1725,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F4.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":841,"path":1727,"stem":1728,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F4.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":845,"path":1730,"stem":1731,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F4.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":849,"path":1733,"stem":1734,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F4.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":1736,"stem":1737,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F4.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":856,"path":1739,"stem":1740,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F4.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":860,"path":1742,"stem":1743,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F4.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":1745,"stem":1746,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F4.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":434,"path":1748,"stem":1749,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F5.kit\u002F5.components",{"title":870,"path":1751,"stem":1752,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F4.x\u002F4.api\u002F5.kit\u002F6.context",{"title":874,"path":1754,"stem":1755,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F4.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":878,"path":1757,"stem":1758,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F4.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":882,"path":1760,"stem":1761,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.head",{"title":886,"path":1763,"stem":1764,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":1766,"stem":1767,"children":1768,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced","docs\u002F4.x\u002F4.api\u002F6.advanced",[1769,1772],{"title":407,"path":1770,"stem":1771,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":899,"path":1773,"stem":1774,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":903,"path":1776,"stem":1777,"titleTemplate":906,"icon":32},"\u002Fdocs\u002F4.x\u002Fapi\u002Fnuxt-config","docs\u002F4.x\u002F4.api\u002F6.nuxt-config",{"title":849,"titleTemplate":908,"icon":909,"path":1779,"stem":1780,"children":1781,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples","docs\u002F4.x\u002F4.examples",[1782,1785,1804,1817,1848],{"title":914,"path":1783,"stem":1784,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fhello-world","docs\u002F4.x\u002F4.examples\u002F0.hello-world",{"title":395,"path":1786,"stem":1787,"children":1788,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures","docs\u002F4.x\u002F4.examples\u002F1.features",[1789,1792,1795,1798,1801],{"title":922,"path":1790,"stem":1791,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F4.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":1793,"stem":1794,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F4.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":1796,"stem":1797,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F4.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":932,"path":1799,"stem":1800,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F4.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":936,"path":1802,"stem":1803,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F4.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":1805,"stem":1806,"children":1807,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting","docs\u002F4.x\u002F4.examples\u002F2.routing",[1808,1811,1814],{"title":944,"path":1809,"stem":1810,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":874,"path":1812,"stem":1813,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":951,"path":1815,"stem":1816,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":890,"path":1818,"stem":1819,"children":1820,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced","docs\u002F4.x\u002F4.examples\u002F4.advanced",[1821,1824,1827,1830,1833,1836,1839,1842,1845],{"title":84,"path":1822,"stem":1823,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":1825,"stem":1826,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":965,"path":1828,"stem":1829,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":969,"path":1831,"stem":1832,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":973,"path":1834,"stem":1835,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":977,"path":1837,"stem":1838,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":1840,"stem":1841,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":519,"path":1843,"stem":1844,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":987,"path":1846,"stem":1847,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":991,"path":1849,"stem":1850,"children":1851,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental","docs\u002F4.x\u002F4.examples\u002F7.experimental",[1852],{"title":996,"path":1853,"stem":1854,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F4.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":1856,"stem":1857,"children":1858,"page":108},"\u002Fdocs\u002F4.x\u002Fcommunity","docs\u002F4.x\u002F5.community",[1859,1862,1865,1868,1871,1874],{"title":1007,"path":1860,"stem":1861,"titleTemplate":6,"icon":1010},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fgetting-help","docs\u002F4.x\u002F5.community\u002F2.getting-help",{"title":1012,"path":1863,"stem":1864,"titleTemplate":6,"icon":1015},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Freporting-bugs","docs\u002F4.x\u002F5.community\u002F3.reporting-bugs",{"title":1017,"path":1866,"stem":1867,"titleTemplate":6,"icon":1020},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fcontribution","docs\u002F4.x\u002F5.community\u002F4.contribution",{"title":1022,"path":1869,"stem":1870,"titleTemplate":6,"icon":1025},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fframework-contribution","docs\u002F4.x\u002F5.community\u002F5.framework-contribution",{"title":1027,"path":1872,"stem":1873,"titleTemplate":6,"icon":1030},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Froadmap","docs\u002F4.x\u002F5.community\u002F6.roadmap",{"title":1032,"path":1875,"stem":1876,"titleTemplate":6,"icon":1035},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fchangelog","docs\u002F4.x\u002F5.community\u002F7.changelog",{"title":1037,"titleTemplate":1038,"icon":1039,"path":1878,"stem":1879,"children":1880,"page":108},"\u002Fdocs\u002F4.x\u002Fbridge","docs\u002F4.x\u002F6.bridge",[1881,1884,1887,1890,1893,1896,1899,1902,1905,1908],{"title":1044,"path":1882,"stem":1883,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Foverview","docs\u002F4.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1885,"stem":1886,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fconfiguration","docs\u002F4.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1888,"stem":1889,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Ftypescript","docs\u002F4.x\u002F6.bridge\u002F2.typescript",{"title":1054,"path":1891,"stem":1892,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F4.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1058,"path":1894,"stem":1895,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F4.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1062,"path":1897,"stem":1898,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F4.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":932,"path":1900,"stem":1901,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fmeta","docs\u002F4.x\u002F6.bridge\u002F6.meta",{"title":399,"path":1903,"stem":1904,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fruntime-config","docs\u002F4.x\u002F6.bridge\u002F7.runtime-config",{"title":833,"path":1906,"stem":1907,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnitro","docs\u002F4.x\u002F6.bridge\u002F8.nitro",{"title":1075,"path":1909,"stem":1910,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fvite","docs\u002F4.x\u002F6.bridge\u002F9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":1912,"stem":1913,"children":1914,"page":108},"\u002Fdocs\u002F4.x\u002Fmigration","docs\u002F4.x\u002F7.migration",[1915,1918,1921,1924,1927,1930,1933,1936,1939,1942,1945],{"title":1044,"path":1916,"stem":1917,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Foverview","docs\u002F4.x\u002F7.migration\u002F1.overview",{"title":1088,"path":1919,"stem":1920,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fbundling","docs\u002F4.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1922,"stem":1923,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fserver","docs\u002F4.x\u002F7.migration\u002F11.server",{"title":29,"path":1925,"stem":1926,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fconfiguration","docs\u002F4.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1928,"stem":1929,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmodule-authors","docs\u002F4.x\u002F7.migration\u002F20.module-authors",{"title":922,"path":1931,"stem":1932,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fauto-imports","docs\u002F4.x\u002F7.migration\u002F3.auto-imports",{"title":932,"path":1934,"stem":1935,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmeta","docs\u002F4.x\u002F7.migration\u002F4.meta",{"title":1058,"path":1937,"stem":1938,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F4.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1110,"path":1940,"stem":1941,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F4.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1114,"path":1943,"stem":1944,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fcomponent-options","docs\u002F4.x\u002F7.migration\u002F7.component-options",{"title":399,"path":1946,"stem":1947,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fruntime-config","docs\u002F4.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1949,"stem":1950,"children":1951,"page":108},"\u002Fdocs\u002F5.x","docs\u002F5.x",[1952,2010,2100,2227,2597,2674,2696,2730],{"title":12,"titleTemplate":13,"icon":14,"path":1953,"stem":1954,"children":1955,"page":108},"\u002Fdocs\u002F5.x\u002Fgetting-started","docs\u002F5.x\u002F1.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},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fintroduction","docs\u002F5.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1960,"stem":1961,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Finstallation","docs\u002F5.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1963,"stem":1964,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fconfiguration","docs\u002F5.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":1966,"stem":1967,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fviews","docs\u002F5.x\u002F1.getting-started\u002F04.views",{"title":39,"path":1969,"stem":1970,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fassets","docs\u002F5.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":1972,"stem":1973,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstyling","docs\u002F5.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":1975,"stem":1976,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Frouting","docs\u002F5.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":1978,"stem":1979,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fseo-meta","docs\u002F5.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":1981,"stem":1982,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftransitions","docs\u002F5.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":1984,"stem":1985,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F5.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":1987,"stem":1988,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstate-management","docs\u002F5.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":1990,"stem":1991,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ferror-handling","docs\u002F5.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":1993,"stem":1994,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fserver","docs\u002F5.x\u002F1.getting-started\u002F13.server",{"title":84,"path":1996,"stem":1997,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Flayers","docs\u002F5.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":1999,"stem":2000,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fprerendering","docs\u002F5.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":2002,"stem":2003,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdeployment","docs\u002F5.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":2005,"stem":2006,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftesting","docs\u002F5.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":2008,"stem":2009,"titleTemplate":6,"icon":107},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fupgrade","docs\u002F5.x\u002F1.getting-started\u002F18.upgrade",{"title":110,"titleTemplate":111,"icon":112,"path":2011,"stem":2012,"children":2013,"page":108},"\u002Fdocs\u002F5.x\u002Fdirectory-structure","docs\u002F5.x\u002F2.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},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F5.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":2018,"stem":2019,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Foutput","docs\u002F5.x\u002F2.directory-structure\u002F0.output",{"title":1193,"titleTemplate":111,"head":2021,"defaultOpen":1196,"icon":1197,"path":2022,"stem":2023,"children":2024,"page":108},{"title":1195},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app",[2025,2028,2031,2034,2037,2040,2043,2046,2049,2052,2055],{"title":127,"path":2026,"stem":2027,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":2029,"stem":2030,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":2032,"stem":2033,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":2035,"stem":2036,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":2038,"stem":2039,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":2041,"stem":2042,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":2044,"stem":2045,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":2047,"stem":2048,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":2050,"stem":2051,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":2053,"stem":2054,"titleTemplate":6,"icon":227},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp-config","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.app-config",{"title":229,"path":2056,"stem":2057,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":2059,"stem":2060,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fcontent","docs\u002F5.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":2062,"stem":2063,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Flayers","docs\u002F5.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":2065,"stem":2066,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fmodules","docs\u002F5.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":2068,"stem":2069,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F5.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":2071,"stem":2072,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpublic","docs\u002F5.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":2074,"stem":2075,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fserver","docs\u002F5.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":2077,"stem":2078,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fshared","docs\u002F5.x\u002F2.directory-structure\u002F1.shared",{"title":200,"path":2080,"stem":2081,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fenv","docs\u002F5.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":2083,"stem":2084,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F5.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":2086,"stem":2087,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":2089,"stem":2090,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":2092,"stem":2093,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F5.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":2095,"stem":2096,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpackage","docs\u002F5.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":2098,"stem":2099,"titleTemplate":6,"icon":245},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Ftsconfig","docs\u002F5.x\u002F2.directory-structure\u002F3.tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":2101,"stem":2102,"children":2103,"page":108},"\u002Fdocs\u002F5.x\u002Fguide","docs\u002F5.x\u002F3.guide",[2104,2129,2142,2152,2177,2193],{"title":253,"titleTemplate":254,"icon":255,"path":2105,"stem":2106,"children":2107,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts","docs\u002F5.x\u002F3.guide\u002F1.concepts",[2108,2111,2114,2117,2120,2123,2126],{"title":260,"path":2109,"stem":2110,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":2112,"stem":2113,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":2115,"stem":2116,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":2118,"stem":2119,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":2121,"stem":2122,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":2124,"stem":2125,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":2127,"stem":2128,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fcode-style","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":2130,"stem":2131,"children":2132,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F2.best-practices",[2133,2136,2139],{"title":1310,"path":2134,"stem":2135,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":2137,"stem":2138,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":2140,"stem":2141,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fplugins","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fplugins",{"title":307,"titleTemplate":308,"icon":309,"path":2143,"stem":2144,"children":2145,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai","docs\u002F5.x\u002F3.guide\u002F3.ai",[2146,2149],{"title":314,"path":2147,"stem":2148,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F5.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":2150,"stem":2151,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fllms-txt","docs\u002F5.x\u002F3.guide\u002F3.ai\u002F2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":2153,"stem":2154,"children":2155,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F4.modules",[2156,2159,2162,2165,2168,2171,2174],{"title":329,"path":2157,"stem":2158,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":2160,"stem":2161,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":2163,"stem":2164,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":2166,"stem":2167,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F4.recipes-advanced",{"title":345,"path":2169,"stem":2170,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F5.testing",{"title":349,"path":2172,"stem":2173,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F6.best-practices",{"title":353,"path":2175,"stem":2176,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":2178,"stem":2179,"children":2180,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes","docs\u002F5.x\u002F3.guide\u002F5.recipes",[2181,2184,2187,2190],{"title":364,"path":2182,"stem":2183,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":368,"path":2185,"stem":2186,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":372,"path":2188,"stem":2189,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":376,"path":2191,"stem":2192,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":2194,"stem":2195,"children":2196,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further","docs\u002F5.x\u002F3.guide\u002F6.going-further",[2197,2200,2203,2206,2209,2212,2215,2218,2221,2224],{"title":387,"path":2198,"stem":2199,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":391,"path":2201,"stem":2202,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":395,"path":2204,"stem":2205,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":399,"path":2207,"stem":2208,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":403,"path":2210,"stem":2211,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":407,"path":2213,"stem":2214,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":411,"path":2216,"stem":2217,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":415,"path":2219,"stem":2220,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":419,"path":2222,"stem":2223,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":423,"path":2225,"stem":2226,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":2228,"stem":2229,"children":2230,"page":108},"\u002Fdocs\u002F5.x\u002Fapi","docs\u002F5.x\u002F4.api",[2231,2283,2383,2474,2526,2584,2594],{"title":434,"titleTemplate":435,"icon":324,"path":2232,"stem":2233,"children":2234,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F1.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},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":444,"path":2239,"stem":2240,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":448,"path":2242,"stem":2243,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":452,"path":2245,"stem":2246,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F5.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":456,"path":2248,"stem":2249,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F5.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":460,"path":2251,"stem":2252,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":464,"path":2254,"stem":2255,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F5.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1434,"path":2257,"stem":2258,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":468,"path":2260,"stem":2261,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F5.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":472,"path":2263,"stem":2264,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F5.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":476,"path":2266,"stem":2267,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F5.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":480,"path":2269,"stem":2270,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F5.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":484,"path":2272,"stem":2273,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F5.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":488,"path":2275,"stem":2276,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F5.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":492,"path":2278,"stem":2279,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F5.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":496,"path":2281,"stem":2282,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F5.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":2284,"stem":2285,"children":2286,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables","docs\u002F5.x\u002F4.api\u002F2.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},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1470,"path":2291,"stem":2292,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":507,"path":2294,"stem":2295,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1477,"path":2297,"stem":2298,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":511,"path":2300,"stem":2301,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":515,"path":2303,"stem":2304,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":519,"path":2306,"stem":2307,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":523,"path":2309,"stem":2310,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":527,"path":2312,"stem":2313,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":531,"path":2315,"stem":2316,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":535,"path":2318,"stem":2319,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":539,"path":2321,"stem":2322,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":543,"path":2324,"stem":2325,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":547,"path":2327,"stem":2328,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":551,"path":2330,"stem":2331,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":555,"path":2333,"stem":2334,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":559,"path":2336,"stem":2337,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":563,"path":2339,"stem":2340,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":567,"path":2342,"stem":2343,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":571,"path":2345,"stem":2346,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":575,"path":2348,"stem":2349,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":579,"path":2351,"stem":2352,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":583,"path":2354,"stem":2355,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":587,"path":2357,"stem":2358,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":591,"path":2360,"stem":2361,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":595,"path":2363,"stem":2364,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":599,"path":2366,"stem":2367,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":603,"path":2369,"stem":2370,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":607,"path":2372,"stem":2373,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":611,"path":2375,"stem":2376,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":615,"path":2378,"stem":2379,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":619,"path":2381,"stem":2382,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":623,"titleTemplate":624,"icon":625,"path":2384,"stem":2385,"children":2386,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils","docs\u002F5.x\u002F4.api\u002F3.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},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F5.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":634,"path":2391,"stem":2392,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":638,"path":2394,"stem":2395,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":642,"path":2397,"stem":2398,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":646,"path":2400,"stem":2401,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":650,"path":2403,"stem":2404,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":654,"path":2406,"stem":2407,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":658,"path":2409,"stem":2410,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":662,"path":2412,"stem":2413,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":666,"path":2415,"stem":2416,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":670,"path":2418,"stem":2419,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":674,"path":2421,"stem":2422,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":678,"path":2424,"stem":2425,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":682,"path":2427,"stem":2428,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":686,"path":2430,"stem":2431,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":690,"path":2433,"stem":2434,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":694,"path":2436,"stem":2437,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":698,"path":2439,"stem":2440,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":702,"path":2442,"stem":2443,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":706,"path":2445,"stem":2446,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":710,"path":2448,"stem":2449,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":714,"path":2451,"stem":2452,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":718,"path":2454,"stem":2455,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":722,"path":2457,"stem":2458,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":726,"path":2460,"stem":2461,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F5.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":730,"path":2463,"stem":2464,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":734,"path":2466,"stem":2467,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":738,"path":2469,"stem":2470,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":742,"path":2472,"stem":2473,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":2475,"stem":2476,"children":2477,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands","docs\u002F5.x\u002F4.api\u002F4.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},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fadd",{"title":757,"path":2482,"stem":2483,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":761,"path":2485,"stem":2486,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":765,"path":2488,"stem":2489,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":769,"path":2491,"stem":2492,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":773,"path":2494,"stem":2495,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdev",{"title":777,"path":2497,"stem":2498,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":781,"path":2500,"stem":2501,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":785,"path":2503,"stem":2504,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finfo",{"title":789,"path":2506,"stem":2507,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finit",{"title":793,"path":2509,"stem":2510,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":797,"path":2512,"stem":2513,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":801,"path":2515,"stem":2516,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":805,"path":2518,"stem":2519,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftest",{"title":809,"path":2521,"stem":2522,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":813,"path":2524,"stem":2525,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":411,"titleTemplate":817,"icon":818,"path":2527,"stem":2528,"children":2529,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit","docs\u002F5.x\u002F4.api\u002F5.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},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F5.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":399,"path":2534,"stem":2535,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":829,"path":2537,"stem":2538,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":833,"path":2540,"stem":2541,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F5.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":837,"path":2543,"stem":2544,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F5.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":841,"path":2546,"stem":2547,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F5.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":845,"path":2549,"stem":2550,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F5.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":849,"path":2552,"stem":2553,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F5.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":2555,"stem":2556,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F5.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":856,"path":2558,"stem":2559,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F5.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":860,"path":2561,"stem":2562,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F5.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":2564,"stem":2565,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F5.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":434,"path":2567,"stem":2568,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F5.kit\u002F5.components",{"title":870,"path":2570,"stem":2571,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F5.x\u002F4.api\u002F5.kit\u002F6.context",{"title":874,"path":2573,"stem":2574,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F5.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":878,"path":2576,"stem":2577,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F5.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":882,"path":2579,"stem":2580,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.head",{"title":886,"path":2582,"stem":2583,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":2585,"stem":2586,"children":2587,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced","docs\u002F5.x\u002F4.api\u002F6.advanced",[2588,2591],{"title":407,"path":2589,"stem":2590,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":899,"path":2592,"stem":2593,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":903,"path":2595,"stem":2596,"titleTemplate":906,"icon":32},"\u002Fdocs\u002F5.x\u002Fapi\u002Fnuxt-config","docs\u002F5.x\u002F4.api\u002F6.nuxt-config",{"title":849,"titleTemplate":908,"icon":909,"path":2598,"stem":2599,"children":2600,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples","docs\u002F5.x\u002F4.examples",[2601,2604,2623,2636,2667],{"title":914,"path":2602,"stem":2603,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fhello-world","docs\u002F5.x\u002F4.examples\u002F0.hello-world",{"title":395,"path":2605,"stem":2606,"children":2607,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures","docs\u002F5.x\u002F4.examples\u002F1.features",[2608,2611,2614,2617,2620],{"title":922,"path":2609,"stem":2610,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F5.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":2612,"stem":2613,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F5.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":2615,"stem":2616,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F5.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":932,"path":2618,"stem":2619,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F5.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":936,"path":2621,"stem":2622,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F5.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":2624,"stem":2625,"children":2626,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting","docs\u002F5.x\u002F4.examples\u002F2.routing",[2627,2630,2633],{"title":944,"path":2628,"stem":2629,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":874,"path":2631,"stem":2632,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":951,"path":2634,"stem":2635,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":890,"path":2637,"stem":2638,"children":2639,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced","docs\u002F5.x\u002F4.examples\u002F4.advanced",[2640,2643,2646,2649,2652,2655,2658,2661,2664],{"title":84,"path":2641,"stem":2642,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":2644,"stem":2645,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":965,"path":2647,"stem":2648,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":969,"path":2650,"stem":2651,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":973,"path":2653,"stem":2654,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":977,"path":2656,"stem":2657,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":2659,"stem":2660,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":519,"path":2662,"stem":2663,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":987,"path":2665,"stem":2666,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":991,"path":2668,"stem":2669,"children":2670,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental","docs\u002F5.x\u002F4.examples\u002F7.experimental",[2671],{"title":996,"path":2672,"stem":2673,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F5.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":2675,"stem":2676,"children":2677,"page":108},"\u002Fdocs\u002F5.x\u002Fcommunity","docs\u002F5.x\u002F5.community",[2678,2681,2684,2687,2690,2693],{"title":1007,"path":2679,"stem":2680,"titleTemplate":6,"icon":1010},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fgetting-help","docs\u002F5.x\u002F5.community\u002F2.getting-help",{"title":1012,"path":2682,"stem":2683,"titleTemplate":6,"icon":1015},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Freporting-bugs","docs\u002F5.x\u002F5.community\u002F3.reporting-bugs",{"title":1017,"path":2685,"stem":2686,"titleTemplate":6,"icon":1020},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fcontribution","docs\u002F5.x\u002F5.community\u002F4.contribution",{"title":1022,"path":2688,"stem":2689,"titleTemplate":6,"icon":1025},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fframework-contribution","docs\u002F5.x\u002F5.community\u002F5.framework-contribution",{"title":1027,"path":2691,"stem":2692,"titleTemplate":6,"icon":1030},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Froadmap","docs\u002F5.x\u002F5.community\u002F6.roadmap",{"title":1032,"path":2694,"stem":2695,"titleTemplate":6,"icon":1035},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fchangelog","docs\u002F5.x\u002F5.community\u002F7.changelog",{"title":1037,"titleTemplate":1038,"icon":1039,"path":2697,"stem":2698,"children":2699,"page":108},"\u002Fdocs\u002F5.x\u002Fbridge","docs\u002F5.x\u002F6.bridge",[2700,2703,2706,2709,2712,2715,2718,2721,2724,2727],{"title":1044,"path":2701,"stem":2702,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Foverview","docs\u002F5.x\u002F6.bridge\u002F1.overview",{"title":29,"path":2704,"stem":2705,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fconfiguration","docs\u002F5.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":2707,"stem":2708,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Ftypescript","docs\u002F5.x\u002F6.bridge\u002F2.typescript",{"title":1054,"path":2710,"stem":2711,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F5.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1058,"path":2713,"stem":2714,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F5.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1062,"path":2716,"stem":2717,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F5.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":932,"path":2719,"stem":2720,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fmeta","docs\u002F5.x\u002F6.bridge\u002F6.meta",{"title":399,"path":2722,"stem":2723,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fruntime-config","docs\u002F5.x\u002F6.bridge\u002F7.runtime-config",{"title":833,"path":2725,"stem":2726,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnitro","docs\u002F5.x\u002F6.bridge\u002F8.nitro",{"title":1075,"path":2728,"stem":2729,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fvite","docs\u002F5.x\u002F6.bridge\u002F9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":2731,"stem":2732,"children":2733,"page":108},"\u002Fdocs\u002F5.x\u002Fmigration","docs\u002F5.x\u002F7.migration",[2734,2737,2740,2743,2746,2749,2752,2755,2758,2761,2764],{"title":1044,"path":2735,"stem":2736,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Foverview","docs\u002F5.x\u002F7.migration\u002F1.overview",{"title":1088,"path":2738,"stem":2739,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fbundling","docs\u002F5.x\u002F7.migration\u002F10.bundling",{"title":79,"path":2741,"stem":2742,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fserver","docs\u002F5.x\u002F7.migration\u002F11.server",{"title":29,"path":2744,"stem":2745,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fconfiguration","docs\u002F5.x\u002F7.migration\u002F2.configuration",{"title":276,"path":2747,"stem":2748,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmodule-authors","docs\u002F5.x\u002F7.migration\u002F20.module-authors",{"title":922,"path":2750,"stem":2751,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fauto-imports","docs\u002F5.x\u002F7.migration\u002F3.auto-imports",{"title":932,"path":2753,"stem":2754,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmeta","docs\u002F5.x\u002F7.migration\u002F4.meta",{"title":1058,"path":2756,"stem":2757,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F5.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1110,"path":2759,"stem":2760,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F5.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1114,"path":2762,"stem":2763,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fcomponent-options","docs\u002F5.x\u002F7.migration\u002F7.component-options",{"title":399,"path":2765,"stem":2766,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fruntime-config","docs\u002F5.x\u002F7.migration\u002F8.runtime-config",{"title":2768,"path":2769,"stem":2770,"children":2771,"page":108},"Blog","\u002Fblog","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","\u002Fblog\u002Fv3","blog\u002F1.v3",{"title":2777,"path":2778,"stem":2779},"Nuxt 3.3","\u002Fblog\u002Fv3-3","blog\u002F10.v3-3",{"title":2781,"path":2782,"stem":2783},"Nuxt 3.4","\u002Fblog\u002Fv3-4","blog\u002F11.v3-4",{"title":2785,"path":2786,"stem":2787},"Nuxt 3.5","\u002Fblog\u002Fv3-5","blog\u002F12.v3-5",{"title":2789,"path":2790,"stem":2791},"Nuxt 3.6","\u002Fblog\u002Fv3-6","blog\u002F13.v3-6",{"title":2793,"path":2794,"stem":2795},"Nuxt on the Edge","\u002Fblog\u002Fnuxt-on-the-edge","blog\u002F14.nuxt-on-the-edge",{"title":2797,"path":2798,"stem":2799},"Nuxt DevTools v1.0","\u002Fblog\u002Fnuxt-devtools-v1-0","blog\u002F18.nuxt-devtools-v1-0",{"title":2801,"path":2802,"stem":2803},"Nuxt: A vision for 2023","\u002Fblog\u002Fvision-2023","blog\u002F2.vision-2023",{"title":2805,"path":2806,"stem":2807},"The Evolution of Shiki v1.0","\u002Fblog\u002Fshiki-v1","blog\u002F21.shiki-v1",{"title":2809,"path":2810,"stem":2811},"Refreshed Nuxt ESLint Integrations","\u002Fblog\u002Feslint-module","blog\u002F24.eslint-module",{"title":2813,"path":2814,"stem":2815},"Introducing Nuxt Scripts","\u002Fblog\u002Fnuxt-scripts","blog\u002F26.nuxt-scripts",{"title":2817,"path":2818,"stem":2819},"Introducing Nuxt Icon v1","\u002Fblog\u002Fnuxt-icon-v1-0","blog\u002F29.nuxt-icon-v1-0",{"title":2821,"path":2822,"stem":2823},"Introducing Nuxt DevTools","\u002Fblog\u002Fintroducing-nuxt-devtools","blog\u002F3.introducing-nuxt-devtools",{"title":2825,"path":2826,"stem":2827},"Announcing Nuxt 3 Release Candidate","\u002Fblog\u002Fnuxt3-rc","blog\u002F3.nuxt3-rc",{"title":2829,"path":2830,"stem":2831},"Nuxt 2 End-of-Life (EOL)","\u002Fblog\u002Fnuxt2-eol","blog\u002F4.nuxt2-eol",{"title":2833,"path":2834,"stem":2835},"Introducing Nuxt 3 Beta","\u002Fblog\u002Fnuxt3-beta","blog\u002F4.nuxt3-beta",{"title":2837,"path":2838,"stem":2839},"Going Full Static","\u002Fblog\u002Fgoing-full-static","blog\u002F5.going-full-static",{"title":2841,"path":2842,"stem":2843},"Introducing Smart Prefetching","\u002Fblog\u002Fintroducing-smart-prefetching","blog\u002F6.introducing-smart-prefetching",{"title":2845,"path":2846,"stem":2847},"Understanding how fetch works in Nuxt 2.12","\u002Fblog\u002Funderstanding-how-fetch-works-in-nuxt-2-12","blog\u002F7.understanding-how-fetch-works-in-nuxt-2-12",{"title":2849,"path":2850,"stem":2851},"Nuxt 2 Static Improvements","\u002Fblog\u002Fnuxt-static-improvements","blog\u002F8.nuxt-static-improvements",{"title":2853,"path":2854,"stem":2855},"Nuxt 2: From Terminal to Browser","\u002Fblog\u002Fnuxtjs-from-terminal-to-browser","blog\u002F9.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":104,"body":2863,"description":9652,"extension":9653,"links":6,"meta":9654,"navigation":9655,"path":105,"seo":9656,"stem":106,"titleTemplate":6,"__hash__":9657},"docsv3\u002Fdocs\u002F3.x\u002F1.getting-started\u002F18.upgrade.md",{"type":2864,"value":2865,"toc":9603},"minimark",[2866,2871,2876,2896,2989,3015,3019,3028,3101,3104,3111,3125,3129,3140,3143,3148,3152,3158,3165,3424,3429,3439,3442,3446,3455,3464,3472,3479,3578,3581,3585,3592,3599,3607,3612,3702,3885,3893,3897,3930,3935,3939,4025,4034,4073,4076,4154,4158,4163,4166,4174,4242,4245,4250,4253,4669,4672,4730,4734,4739,4742,4749,4752,4766,4769,4785,4788,4791,4802,4805,4811,4814,4834,4837,5001,5012,5026,5030,5034,5037,5057,5060,5063,5070,5073,5076,5105,5109,5113,5116,5119,5122,5152,5163,5169,5172,5175,5189,5191,5237,5241,5245,5248,5260,5283,5286,5289,5292,5297,5345,5361,5478,5490,5509,5516,5563,5567,5571,5574,5589,5635,5638,5671,5674,5677,5680,5694,5697,5748,5755,5759,5768,5771,5779,5836,5839,5885,5889,5893,5896,5899,5910,5913,5920,5967,5971,5975,5978,5992,5995,6005,6008,6016,6074,6076,6122,6126,6131,6134,6147,6150,6161,6167,6170,6179,6358,6361,6407,6420,6424,6427,6440,6443,6463,6466,6482,6490,6493,6585,6588,6608,6612,6615,6637,6744,6747,6750,6762,6792,6795,6797,6852,6859,6869,6873,6876,6891,6894,6903,6906,6909,6955,6958,6970,6974,6995,6998,7017,7020,7032,7035,7047,7127,7130,7176,7184,7188,7191,7205,7211,7219,7222,7243,7246,7252,7287,7290,7341,7349,7353,7373,7376,7385,7388,7398,7401,7404,7501,7509,7516,7520,7523,7531,7534,7540,7543,7551,7557,7595,7602,7610,7613,7619,7622,7634,7637,7643,7662,7666,7670,7673,7683,7686,7693,7701,7704,7707,7836,7840,7844,7847,7858,7871,7874,7881,7891,7900,7903,7906,7931,8008,8021,8429,8436,8440,8444,8447,8458,8461,8475,8478,8481,8564,8568,8572,8575,8578,8652,8655,8658,8683,8695,8698,8704,8707,9116,9119,9123,9127,9130,9133,9175,9178,9181,9184,9208,9216,9220,9223,9229,9243,9246,9256,9259,9268,9350,9357,9361,9364,9570,9574,9577,9585,9589,9592,9599],[2867,2868,2870],"h2",{"id":2869},"upgrading-nuxt","Upgrading Nuxt",[2872,2873,2875],"h3",{"id":2874},"latest-nuxt-3-release","Latest Nuxt 3 release",[2877,2878,2879,2880,2887,2888,2891,2892,2895],"p",{},"To upgrade Nuxt to the ",[2881,2882,2886],"a",{"href":2883,"rel":2884},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Freleases",[2885],"nofollow","latest v3 release",", use the ",[2889,2890,813],"code",{}," command with ",[2889,2893,2894],{},"--channel=v3"," flag.",[2897,2898,2900,2932,2950,2968],"code-group",{"sync":2899},"pm",[2901,2902,2908],"pre",{"className":2903,"code":2904,"filename":2905,"language":2906,"meta":2907,"style":2907},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","npx nuxt upgrade --dedupe --channel=v3\n","npm","bash","",[2889,2909,2910],{"__ignoreMap":2907},[2911,2912,2915,2919,2923,2926,2929],"span",{"class":2913,"line":2914},"line",1,[2911,2916,2918],{"class":2917},"s52Pk","npx",[2911,2920,2922],{"class":2921},"sGFVr"," nuxt",[2911,2924,2925],{"class":2921}," upgrade",[2911,2927,2928],{"class":2921}," --dedupe",[2911,2930,2931],{"class":2921}," --channel=v3\n",[2901,2933,2936],{"className":2903,"code":2934,"filename":2935,"language":2906,"meta":2907,"style":2907},"yarn nuxt upgrade --dedupe --channel=v3\n","yarn",[2889,2937,2938],{"__ignoreMap":2907},[2911,2939,2940,2942,2944,2946,2948],{"class":2913,"line":2914},[2911,2941,2935],{"class":2917},[2911,2943,2922],{"class":2921},[2911,2945,2925],{"class":2921},[2911,2947,2928],{"class":2921},[2911,2949,2931],{"class":2921},[2901,2951,2954],{"className":2903,"code":2952,"filename":2953,"language":2906,"meta":2907,"style":2907},"pnpm nuxt upgrade --dedupe --channel=v3\n","pnpm",[2889,2955,2956],{"__ignoreMap":2907},[2911,2957,2958,2960,2962,2964,2966],{"class":2913,"line":2914},[2911,2959,2953],{"class":2917},[2911,2961,2922],{"class":2921},[2911,2963,2925],{"class":2921},[2911,2965,2928],{"class":2921},[2911,2967,2931],{"class":2921},[2901,2969,2972],{"className":2903,"code":2970,"filename":2971,"language":2906,"meta":2907,"style":2907},"bun x nuxt upgrade --dedupe --channel=v3\n","bun",[2889,2973,2974],{"__ignoreMap":2907},[2911,2975,2976,2978,2981,2983,2985,2987],{"class":2913,"line":2914},[2911,2977,2971],{"class":2917},[2911,2979,2980],{"class":2921}," x",[2911,2982,2922],{"class":2921},[2911,2984,2925],{"class":2921},[2911,2986,2928],{"class":2921},[2911,2988,2931],{"class":2921},[2990,2991,2992],"note",{},[2877,2993,2994,2995,2999,3000,3003,3004,3007,3008,3011,3012],{},"This will only work if you ",[2996,2997,2998],"em",{},"already have"," a version of ",[2889,3001,3002],{},"@nuxt\u002Fcli"," which has the ",[2889,3005,3006],{},"--channel"," flag implemented. If this does not work, you can instead use ",[2889,3009,3010],{},"nuxi@latest"," for the initial upgrade.\nE.g. ",[2889,3013,3014],{},"npx nuxi@latest upgrade --dedupe --channel=v3",[2872,3016,3018],{"id":3017},"latest-release","Latest release",[2877,3020,2879,3021,2887,3025,3027],{},[2881,3022,3024],{"href":2883,"rel":3023},[2885],"latest release",[2889,3026,813],{}," command.",[2897,3029,3030,3044,3057,3070,3085],{"sync":2899},[2901,3031,3033],{"className":2903,"code":3032,"filename":2905,"language":2906,"meta":2907,"style":2907},"npx nuxt upgrade\n",[2889,3034,3035],{"__ignoreMap":2907},[2911,3036,3037,3039,3041],{"class":2913,"line":2914},[2911,3038,2918],{"class":2917},[2911,3040,2922],{"class":2921},[2911,3042,3043],{"class":2921}," upgrade\n",[2901,3045,3047],{"className":2903,"code":3046,"filename":2935,"language":2906,"meta":2907,"style":2907},"yarn nuxt upgrade\n",[2889,3048,3049],{"__ignoreMap":2907},[2911,3050,3051,3053,3055],{"class":2913,"line":2914},[2911,3052,2935],{"class":2917},[2911,3054,2922],{"class":2921},[2911,3056,3043],{"class":2921},[2901,3058,3060],{"className":2903,"code":3059,"filename":2953,"language":2906,"meta":2907,"style":2907},"pnpm nuxt upgrade\n",[2889,3061,3062],{"__ignoreMap":2907},[2911,3063,3064,3066,3068],{"class":2913,"line":2914},[2911,3065,2953],{"class":2917},[2911,3067,2922],{"class":2921},[2911,3069,3043],{"class":2921},[2901,3071,3073],{"className":2903,"code":3072,"filename":2971,"language":2906,"meta":2907,"style":2907},"bun x nuxt upgrade\n",[2889,3074,3075],{"__ignoreMap":2907},[2911,3076,3077,3079,3081,3083],{"class":2913,"line":2914},[2911,3078,2971],{"class":2917},[2911,3080,2980],{"class":2921},[2911,3082,2922],{"class":2921},[2911,3084,3043],{"class":2921},[2901,3086,3089],{"className":2903,"code":3087,"filename":3088,"language":2906,"meta":2907,"style":2907},"deno x nuxt upgrade\n","deno",[2889,3090,3091],{"__ignoreMap":2907},[2911,3092,3093,3095,3097,3099],{"class":2913,"line":2914},[2911,3094,3088],{"class":2917},[2911,3096,2980],{"class":2921},[2911,3098,2922],{"class":2921},[2911,3100,3043],{"class":2921},[2872,3102,403],{"id":3103},"nightly-release-channel",[2877,3105,3106,3107,3110],{},"To use the latest Nuxt build and test features before their release, read about the ",[2881,3108,3109],{"href":404},"nightly release channel"," guide.",[3112,3113,3114],"warning",{},[2877,3115,3116,3117,3120,3121,3124],{},"The nightly release channel ",[2889,3118,3119],{},"latest"," tag is currently tracking the Nuxt v4 branch, meaning that it is particularly likely to have breaking changes right now — be careful! You can opt in to the 3.x branch nightly releases with ",[2889,3122,3123],{},"\"nuxt\": \"npm:nuxt-nightly@3x\"",".",[2867,3126,3128],{"id":3127},"testing-nuxt-4","Testing Nuxt 4",[2877,3130,3131,3132,3136,3137,3124],{},"Nuxt 4 is ",[3133,3134,3135],"strong",{},"scheduled for release in Q2 2025",". It will include all the features currently available through ",[2889,3138,3139],{},"compatibilityVersion: 4",[2877,3141,3142],{},"Until the release, it is possible to test many of Nuxt 4's breaking changes from Nuxt version 3.12+.",[3144,3145],"video-accordion",{"title":3146,"video-id":3147},"Watch a video from Alexander Lichter showing how to opt in to Nuxt 4's breaking changes already","r4wFKlcJK6c",[2872,3149,3151],{"id":3150},"opting-in-to-nuxt-4","Opting in to Nuxt 4",[2877,3153,3154,3155,3124],{},"First, upgrade Nuxt to the ",[2881,3156,3024],{"href":2883,"rel":3157},[2885],[2877,3159,3160,3161,3164],{},"Then you can set your ",[2889,3162,3163],{},"compatibilityVersion"," to match Nuxt 4 behavior:",[3166,3167,3168],"code-collapse",{},[2901,3169,3174],{"className":3170,"code":3171,"filename":233,"language":3172,"meta":3173,"style":2907},"language-ts shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","export default defineNuxtConfig({\n  future: {\n    compatibilityVersion: 4,\n  },\n  \u002F\u002F To re-enable _all_ Nuxt v3 behavior, set the following options:\n  \u002F\u002F srcDir: '.',\n  \u002F\u002F dir: {\n  \u002F\u002F   app: 'app'\n  \u002F\u002F },\n  \u002F\u002F experimental: {\n  \u002F\u002F   scanPageMeta: 'after-resolve',\n  \u002F\u002F   sharedPrerenderData: false,\n  \u002F\u002F   compileTemplate: true,\n  \u002F\u002F   resetAsyncDataToUndefined: true,\n  \u002F\u002F   templateUtils: true,\n  \u002F\u002F   relativeWatchPaths: true,\n  \u002F\u002F   normalizeComponentNames: false,\n  \u002F\u002F   spaLoadingTemplateLocation: 'within',\n  \u002F\u002F   parseErrorData: false,\n  \u002F\u002F   pendingWhenIdle: true,\n  \u002F\u002F   alwaysRunFetchOnKeyChange: true,\n  \u002F\u002F   defaults: {\n  \u002F\u002F     useAsyncData: {\n  \u002F\u002F       deep: true\n  \u002F\u002F     }\n  \u002F\u002F   }\n  \u002F\u002F },\n  \u002F\u002F features: {\n  \u002F\u002F   inlineStyles: true\n  \u002F\u002F },\n  \u002F\u002F unhead: {\n  \u002F\u002F   renderSSRHeadOptions: {\n  \u002F\u002F     omitLineBreaks: false\n  \u002F\u002F   }\n  \u002F\u002F }\n})\n","ts","twoslash",[2889,3175,3176,3197,3210,3225,3231,3238,3244,3250,3256,3262,3268,3274,3280,3286,3292,3298,3304,3310,3316,3322,3328,3334,3340,3346,3352,3358,3364,3369,3375,3381,3386,3392,3398,3404,3409,3415],{"__ignoreMap":2907},[2911,3177,3178,3182,3185,3189,3193],{"class":2913,"line":2914},[2911,3179,3181],{"class":3180},"s8R28","export",[2911,3183,3184],{"class":3180}," default",[2911,3186,3188],{"class":3187},"s3cPz"," defineNuxtConfig",[2911,3190,3192],{"class":3191},"sZSNi","(",[2911,3194,3196],{"class":3195},"sDfIl","{\n",[2911,3198,3200,3204,3207],{"class":2913,"line":3199},2,[2911,3201,3203],{"class":3202},"sRlkE","  future",[2911,3205,3206],{"class":3195},":",[2911,3208,3209],{"class":3195}," {\n",[2911,3211,3213,3216,3218,3222],{"class":2913,"line":3212},3,[2911,3214,3215],{"class":3202},"    compatibilityVersion",[2911,3217,3206],{"class":3195},[2911,3219,3221],{"class":3220},"sYRBq"," 4",[2911,3223,3224],{"class":3195},",\n",[2911,3226,3228],{"class":2913,"line":3227},4,[2911,3229,3230],{"class":3195},"  },\n",[2911,3232,3234],{"class":2913,"line":3233},5,[2911,3235,3237],{"class":3236},"sWuyu","  \u002F\u002F To re-enable _all_ Nuxt v3 behavior, set the following options:\n",[2911,3239,3241],{"class":2913,"line":3240},6,[2911,3242,3243],{"class":3236},"  \u002F\u002F srcDir: '.',\n",[2911,3245,3247],{"class":2913,"line":3246},7,[2911,3248,3249],{"class":3236},"  \u002F\u002F dir: {\n",[2911,3251,3253],{"class":2913,"line":3252},8,[2911,3254,3255],{"class":3236},"  \u002F\u002F   app: 'app'\n",[2911,3257,3259],{"class":2913,"line":3258},9,[2911,3260,3261],{"class":3236},"  \u002F\u002F },\n",[2911,3263,3265],{"class":2913,"line":3264},10,[2911,3266,3267],{"class":3236},"  \u002F\u002F experimental: {\n",[2911,3269,3271],{"class":2913,"line":3270},11,[2911,3272,3273],{"class":3236},"  \u002F\u002F   scanPageMeta: 'after-resolve',\n",[2911,3275,3277],{"class":2913,"line":3276},12,[2911,3278,3279],{"class":3236},"  \u002F\u002F   sharedPrerenderData: false,\n",[2911,3281,3283],{"class":2913,"line":3282},13,[2911,3284,3285],{"class":3236},"  \u002F\u002F   compileTemplate: true,\n",[2911,3287,3289],{"class":2913,"line":3288},14,[2911,3290,3291],{"class":3236},"  \u002F\u002F   resetAsyncDataToUndefined: true,\n",[2911,3293,3295],{"class":2913,"line":3294},15,[2911,3296,3297],{"class":3236},"  \u002F\u002F   templateUtils: true,\n",[2911,3299,3301],{"class":2913,"line":3300},16,[2911,3302,3303],{"class":3236},"  \u002F\u002F   relativeWatchPaths: true,\n",[2911,3305,3307],{"class":2913,"line":3306},17,[2911,3308,3309],{"class":3236},"  \u002F\u002F   normalizeComponentNames: false,\n",[2911,3311,3313],{"class":2913,"line":3312},18,[2911,3314,3315],{"class":3236},"  \u002F\u002F   spaLoadingTemplateLocation: 'within',\n",[2911,3317,3319],{"class":2913,"line":3318},19,[2911,3320,3321],{"class":3236},"  \u002F\u002F   parseErrorData: false,\n",[2911,3323,3325],{"class":2913,"line":3324},20,[2911,3326,3327],{"class":3236},"  \u002F\u002F   pendingWhenIdle: true,\n",[2911,3329,3331],{"class":2913,"line":3330},21,[2911,3332,3333],{"class":3236},"  \u002F\u002F   alwaysRunFetchOnKeyChange: true,\n",[2911,3335,3337],{"class":2913,"line":3336},22,[2911,3338,3339],{"class":3236},"  \u002F\u002F   defaults: {\n",[2911,3341,3343],{"class":2913,"line":3342},23,[2911,3344,3345],{"class":3236},"  \u002F\u002F     useAsyncData: {\n",[2911,3347,3349],{"class":2913,"line":3348},24,[2911,3350,3351],{"class":3236},"  \u002F\u002F       deep: true\n",[2911,3353,3355],{"class":2913,"line":3354},25,[2911,3356,3357],{"class":3236},"  \u002F\u002F     }\n",[2911,3359,3361],{"class":2913,"line":3360},26,[2911,3362,3363],{"class":3236},"  \u002F\u002F   }\n",[2911,3365,3367],{"class":2913,"line":3366},27,[2911,3368,3261],{"class":3236},[2911,3370,3372],{"class":2913,"line":3371},28,[2911,3373,3374],{"class":3236},"  \u002F\u002F features: {\n",[2911,3376,3378],{"class":2913,"line":3377},29,[2911,3379,3380],{"class":3236},"  \u002F\u002F   inlineStyles: true\n",[2911,3382,3384],{"class":2913,"line":3383},30,[2911,3385,3261],{"class":3236},[2911,3387,3389],{"class":2913,"line":3388},31,[2911,3390,3391],{"class":3236},"  \u002F\u002F unhead: {\n",[2911,3393,3395],{"class":2913,"line":3394},32,[2911,3396,3397],{"class":3236},"  \u002F\u002F   renderSSRHeadOptions: {\n",[2911,3399,3401],{"class":2913,"line":3400},33,[2911,3402,3403],{"class":3236},"  \u002F\u002F     omitLineBreaks: false\n",[2911,3405,3407],{"class":2913,"line":3406},34,[2911,3408,3363],{"class":3236},[2911,3410,3412],{"class":2913,"line":3411},35,[2911,3413,3414],{"class":3236},"  \u002F\u002F }\n",[2911,3416,3418,3421],{"class":2913,"line":3417},36,[2911,3419,3420],{"class":3195},"}",[2911,3422,3423],{"class":3191},")\n",[2990,3425,3426],{},[2877,3427,3428],{},"For now, you need to define the compatibility version in each layer that opts into Nuxt 4 behavior. This will not be required after Nuxt 4 is released.",[2877,3430,3431,3432,3434,3435,3438],{},"When you set your ",[2889,3433,3163],{}," to ",[2889,3436,3437],{},"4",", defaults throughout your Nuxt configuration will change to opt in to Nuxt v4 behavior, but you can granularly re-enable Nuxt v3 behavior when testing, following the commented out lines above. Please file issues if so, so that we can address them in Nuxt or in the ecosystem.",[2877,3440,3441],{},"Breaking or significant changes are documented below along with migration steps and available configuration options.",[2872,3443,3445],{"id":3444},"migrating-using-codemods","Migrating Using Codemods",[2877,3447,3448,3449,3454],{},"To facilitate the upgrade process, we have collaborated with the ",[2881,3450,3453],{"href":3451,"rel":3452},"https:\u002F\u002Fgithub.com\u002Fcodemod\u002Fcodemod",[2885],"Codemod"," team to automate many migration steps with some open-source codemods.",[2990,3456,3457],{},[2877,3458,3459,3460,3463],{},"If you encounter any issues, please report them to the Codemod team with ",[2889,3461,3462],{},"npx codemod feedback"," 🙏",[2877,3465,3466,3467,3124],{},"For a complete list of Nuxt 4 codemods, detailed information on each, their source, and various ways to run them, visit the ",[2881,3468,3471],{"href":3469,"rel":3470},"https:\u002F\u002Fapp.codemod.com\u002Fregistry",[2885],"Codemod Registry",[2877,3473,3474,3475,3478],{},"You can run all the codemods mentioned in this guide using the following ",[2889,3476,3477],{},"codemod"," recipe:",[2897,3480,3481,3501,3521,3540,3559],{},[2901,3482,3484],{"className":2903,"code":3483,"filename":2905,"language":2906,"meta":2907,"style":2907},"# Using pinned version due to https:\u002F\u002Fgithub.com\u002Fcodemod\u002Fcodemod\u002Fissues\u002F1710\nnpx codemod@0.18.7 nuxt\u002F4\u002Fmigration-recipe\n",[2889,3485,3486,3491],{"__ignoreMap":2907},[2911,3487,3488],{"class":2913,"line":2914},[2911,3489,3490],{"class":3236},"# Using pinned version due to https:\u002F\u002Fgithub.com\u002Fcodemod\u002Fcodemod\u002Fissues\u002F1710\n",[2911,3492,3493,3495,3498],{"class":2913,"line":3199},[2911,3494,2918],{"class":2917},[2911,3496,3497],{"class":2921}," codemod@0.18.7",[2911,3499,3500],{"class":2921}," nuxt\u002F4\u002Fmigration-recipe\n",[2901,3502,3504],{"className":2903,"code":3503,"filename":2935,"language":2906,"meta":2907,"style":2907},"# Using pinned version due to https:\u002F\u002Fgithub.com\u002Fcodemod\u002Fcodemod\u002Fissues\u002F1710\nyarn dlx codemod@0.18.7 nuxt\u002F4\u002Fmigration-recipe\n",[2889,3505,3506,3510],{"__ignoreMap":2907},[2911,3507,3508],{"class":2913,"line":2914},[2911,3509,3490],{"class":3236},[2911,3511,3512,3514,3517,3519],{"class":2913,"line":3199},[2911,3513,2935],{"class":2917},[2911,3515,3516],{"class":2921}," dlx",[2911,3518,3497],{"class":2921},[2911,3520,3500],{"class":2921},[2901,3522,3524],{"className":2903,"code":3523,"filename":2953,"language":2906,"meta":2907,"style":2907},"# Using pinned version due to https:\u002F\u002Fgithub.com\u002Fcodemod\u002Fcodemod\u002Fissues\u002F1710\npnpm dlx codemod@0.18.7 nuxt\u002F4\u002Fmigration-recipe\n",[2889,3525,3526,3530],{"__ignoreMap":2907},[2911,3527,3528],{"class":2913,"line":2914},[2911,3529,3490],{"class":3236},[2911,3531,3532,3534,3536,3538],{"class":2913,"line":3199},[2911,3533,2953],{"class":2917},[2911,3535,3516],{"class":2921},[2911,3537,3497],{"class":2921},[2911,3539,3500],{"class":2921},[2901,3541,3543],{"className":2903,"code":3542,"filename":2971,"language":2906,"meta":2907,"style":2907},"# Using pinned version due to https:\u002F\u002Fgithub.com\u002Fcodemod\u002Fcodemod\u002Fissues\u002F1710\nbun x codemod@0.18.7 nuxt\u002F4\u002Fmigration-recipe\n",[2889,3544,3545,3549],{"__ignoreMap":2907},[2911,3546,3547],{"class":2913,"line":2914},[2911,3548,3490],{"class":3236},[2911,3550,3551,3553,3555,3557],{"class":2913,"line":3199},[2911,3552,2971],{"class":2917},[2911,3554,2980],{"class":2921},[2911,3556,3497],{"class":2921},[2911,3558,3500],{"class":2921},[2901,3560,3562],{"className":2903,"code":3561,"filename":3088,"language":2906,"meta":2907,"style":2907},"# Using pinned version due to https:\u002F\u002Fgithub.com\u002Fcodemod\u002Fcodemod\u002Fissues\u002F1710\ndeno x codemod@0.18.7 nuxt\u002F4\u002Fmigration-recipe\n",[2889,3563,3564,3568],{"__ignoreMap":2907},[2911,3565,3566],{"class":2913,"line":2914},[2911,3567,3490],{"class":3236},[2911,3569,3570,3572,3574,3576],{"class":2913,"line":3199},[2911,3571,3088],{"class":2917},[2911,3573,2980],{"class":2921},[2911,3575,3497],{"class":2921},[2911,3577,3500],{"class":2921},[2877,3579,3580],{},"This command will execute all codemods in sequence, with the option to deselect any that you do not wish to run. Each codemod is also listed below alongside its respective change and can be executed independently.",[2872,3582,3584],{"id":3583},"new-directory-structure","New Directory Structure",[2877,3586,3587,3588,3591],{},"🚦 ",[3133,3589,3590],{},"Impact Level",": Significant",[2877,3593,3594,3595,3598],{},"Nuxt now defaults to a new directory structure, with backwards compatibility (so if Nuxt detects you are using the old structure, such as with a top-level ",[2889,3596,3597],{},"pages\u002F"," directory, this new structure will not apply).",[2877,3600,3601,3602],{},"👉 ",[2881,3603,3606],{"href":3604,"rel":3605},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F26444",[2885],"See full RFC",[3608,3609,3611],"h4",{"id":3610},"what-changed","What Changed",[3613,3614,3615,3626,3639,3657,3671,3688],"ul",{},[3616,3617,3618,3619,3622,3623,3625],"li",{},"the new Nuxt default ",[2889,3620,3621],{},"srcDir"," is ",[2889,3624,1195],{}," by default, and most things are resolved from there.",[3616,3627,3628,3631,3632,3635,3636],{},[2889,3629,3630],{},"serverDir"," now defaults to ",[2889,3633,3634],{},"\u003CrootDir>\u002Fserver"," rather than ",[2889,3637,3638],{},"\u003CsrcDir>\u002Fserver",[3616,3640,3641,3644,3645,3648,3649,3652,3653,3656],{},[2889,3642,3643],{},"layers\u002F",", ",[2889,3646,3647],{},"modules\u002F"," and ",[2889,3650,3651],{},"public\u002F"," are resolved relative to ",[2889,3654,3655],{},"\u003CrootDir>"," by default",[3616,3658,3659,3660,3644,3665,3668,3669],{},"if using ",[2881,3661,3664],{"href":3662,"rel":3663},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fcontent\u002Fpull\u002F2649",[2885],"Nuxt Content v2.13+",[2889,3666,3667],{},"content\u002F"," is resolved relative to ",[2889,3670,3655],{},[3616,3672,3673,3674,3677,3678,3648,3681,3684,3685],{},"a new ",[2889,3675,3676],{},"dir.app"," is added, which is the directory we look for ",[2889,3679,3680],{},"router.options.ts",[2889,3682,3683],{},"spa-loading-template.html"," - this defaults to ",[2889,3686,3687],{},"\u003CsrcDir>\u002F",[3616,3689,3673,3690,3695,3696,3648,3699],{},[2881,3691,3692],{"href":191},[2889,3693,3694],{},"shared\u002F"," directory is available for code shared between the Vue app and the Nitro server, with auto-imports for ",[2889,3697,3698],{},"shared\u002Futils\u002F",[2889,3700,3701],{},"shared\u002Ftypes\u002F",[3703,3704,3705,3709,3857],"details",{},[3706,3707,3708],"summary",{},"An example v4 folder structure.",[2901,3710,3714],{"className":3711,"code":3712,"language":3713,"meta":2907,"style":2907},"language-sh shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight",".output\u002F\n.nuxt\u002F\napp\u002F\n  assets\u002F\n  components\u002F\n  composables\u002F\n  layouts\u002F\n  middleware\u002F\n  pages\u002F\n  plugins\u002F\n  utils\u002F\n  app.config.ts\n  app.vue\n  router.options.ts\ncontent\u002F\nlayers\u002F\nmodules\u002F\nnode_modules\u002F\npublic\u002F\nshared\u002F\n  types\u002F\n  utils\u002F\nserver\u002F\n  api\u002F\n  middleware\u002F\n  plugins\u002F\n  routes\u002F\n  utils\u002F\nnuxt.config.ts\n","sh",[2889,3715,3716,3721,3726,3731,3736,3741,3746,3751,3756,3761,3766,3771,3776,3781,3786,3791,3796,3801,3806,3811,3816,3821,3825,3830,3835,3839,3843,3848,3852],{"__ignoreMap":2907},[2911,3717,3718],{"class":2913,"line":2914},[2911,3719,3720],{"class":2917},".output\u002F\n",[2911,3722,3723],{"class":2913,"line":3199},[2911,3724,3725],{"class":2917},".nuxt\u002F\n",[2911,3727,3728],{"class":2913,"line":3212},[2911,3729,3730],{"class":2917},"app\u002F\n",[2911,3732,3733],{"class":2913,"line":3227},[2911,3734,3735],{"class":2917},"  assets\u002F\n",[2911,3737,3738],{"class":2913,"line":3233},[2911,3739,3740],{"class":2917},"  components\u002F\n",[2911,3742,3743],{"class":2913,"line":3240},[2911,3744,3745],{"class":2917},"  composables\u002F\n",[2911,3747,3748],{"class":2913,"line":3246},[2911,3749,3750],{"class":2917},"  layouts\u002F\n",[2911,3752,3753],{"class":2913,"line":3252},[2911,3754,3755],{"class":2917},"  middleware\u002F\n",[2911,3757,3758],{"class":2913,"line":3258},[2911,3759,3760],{"class":2917},"  pages\u002F\n",[2911,3762,3763],{"class":2913,"line":3264},[2911,3764,3765],{"class":2917},"  plugins\u002F\n",[2911,3767,3768],{"class":2913,"line":3270},[2911,3769,3770],{"class":2917},"  utils\u002F\n",[2911,3772,3773],{"class":2913,"line":3276},[2911,3774,3775],{"class":2917},"  app.config.ts\n",[2911,3777,3778],{"class":2913,"line":3282},[2911,3779,3780],{"class":2917},"  app.vue\n",[2911,3782,3783],{"class":2913,"line":3288},[2911,3784,3785],{"class":2917},"  router.options.ts\n",[2911,3787,3788],{"class":2913,"line":3294},[2911,3789,3790],{"class":2917},"content\u002F\n",[2911,3792,3793],{"class":2913,"line":3300},[2911,3794,3795],{"class":2917},"layers\u002F\n",[2911,3797,3798],{"class":2913,"line":3306},[2911,3799,3800],{"class":2917},"modules\u002F\n",[2911,3802,3803],{"class":2913,"line":3312},[2911,3804,3805],{"class":2917},"node_modules\u002F\n",[2911,3807,3808],{"class":2913,"line":3318},[2911,3809,3810],{"class":2917},"public\u002F\n",[2911,3812,3813],{"class":2913,"line":3324},[2911,3814,3815],{"class":2917},"shared\u002F\n",[2911,3817,3818],{"class":2913,"line":3330},[2911,3819,3820],{"class":2917},"  types\u002F\n",[2911,3822,3823],{"class":2913,"line":3336},[2911,3824,3770],{"class":2917},[2911,3826,3827],{"class":2913,"line":3342},[2911,3828,3829],{"class":2917},"server\u002F\n",[2911,3831,3832],{"class":2913,"line":3348},[2911,3833,3834],{"class":2917},"  api\u002F\n",[2911,3836,3837],{"class":2913,"line":3354},[2911,3838,3755],{"class":2917},[2911,3840,3841],{"class":2913,"line":3360},[2911,3842,3765],{"class":2917},[2911,3844,3845],{"class":2913,"line":3366},[2911,3846,3847],{"class":2917},"  routes\u002F\n",[2911,3849,3850],{"class":2913,"line":3371},[2911,3851,3770],{"class":2917},[2911,3853,3854],{"class":2913,"line":3377},[2911,3855,3856],{"class":2917},"nuxt.config.ts\n",[2990,3858,3859],{},[2877,3860,3861,3862,3865,3866,3868,3869,3871,3872,3875,3876,3644,3879,3434,3882,3884],{},"With this new structure, the ",[2889,3863,3864],{},"~"," alias now points to the ",[2889,3867,1195],{}," directory by default (your ",[2889,3870,3621],{},"). This means ",[2889,3873,3874],{},"~\u002Fcomponents"," resolves to ",[2889,3877,3878],{},"components\u002F",[2889,3880,3881],{},"~\u002Fpages",[2889,3883,3597],{},", etc.",[2877,3886,3887,3888,3124],{},"👉 For more details, see the ",[2881,3889,3892],{"href":3890,"rel":3891},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fpull\u002F27029",[2885],"PR implementing this change",[3608,3894,3896],{"id":3895},"reasons-for-change","Reasons for Change",[3898,3899,3900,3913],"ol",{},[3616,3901,3902,3905,3906,3648,3909,3912],{},[3133,3903,3904],{},"Performance"," - placing all your code in the root of your repo causes issues with ",[2889,3907,3908],{},".git\u002F",[2889,3910,3911],{},"node_modules\u002F"," folders being scanned\u002Fincluded by FS watchers which can significantly delay startup on non-Mac OSes.",[3616,3914,3915,3918,3919,3922,3923,3925,3926,3929],{},[3133,3916,3917],{},"IDE type-safety"," - ",[2889,3920,3921],{},"server\u002F"," and the rest of your app are running in two entirely different contexts with different global imports available, and making sure ",[2889,3924,3921],{}," isn't ",[2996,3927,3928],{},"inside"," the same folder as the rest of your app is a big first step to ensuring you get good auto-completes in your IDE.",[3144,3931],{"title":3932,"video-id":3933,"platform":3934},"Watch a video from Vue School on the new directory structure","1031028378","vimeo",[3608,3936,3938],{"id":3937},"migration-steps","Migration Steps",[3898,3940,3941,3946,3987,4008],{},[3616,3942,3943,3944,3124],{},"Create a new directory called ",[2889,3945,1195],{},[3616,3947,3948,3949,3644,3952,3644,3954,3644,3957,3644,3960,3644,3963,3644,3965,3648,3968,3971,3972,3644,3974,3644,3976,3978,3979,3982,3983,3986],{},"Move your ",[2889,3950,3951],{},"assets\u002F",[2889,3953,3878],{},[2889,3955,3956],{},"composables\u002F",[2889,3958,3959],{},"layouts\u002F",[2889,3961,3962],{},"middleware\u002F",[2889,3964,3597],{},[2889,3966,3967],{},"plugins\u002F",[2889,3969,3970],{},"utils\u002F"," folders under it, as well as ",[2889,3973,219],{},[2889,3975,229],{},[2889,3977,224],{},". If you have an ",[2889,3980,3981],{},"app\u002Frouter-options.ts"," or ",[2889,3984,3985],{},"app\u002Fspa-loading-template.html",", these paths remain the same.",[3616,3988,3989,3990,3644,3992,3644,3994,3644,3996,3644,3998,3644,4000,3648,4002,4004,4005,4007],{},"Make sure your ",[2889,3991,233],{},[2889,3993,3667],{},[2889,3995,3643],{},[2889,3997,3647],{},[2889,3999,3651],{},[2889,4001,3694],{},[2889,4003,3921],{}," folders remain outside the ",[2889,4006,1195],{}," folder, in the root of your project.",[3616,4009,4010,4011,3982,4014,4017,4018,4021,4022,4024],{},"Remember to update any third-party configuration files to work with the new directory structure, such as your ",[2889,4012,4013],{},"tailwindcss",[2889,4015,4016],{},"eslint"," configuration (if required - ",[2889,4019,4020],{},"@nuxtjs\u002Ftailwindcss"," should automatically configure ",[2889,4023,4013],{}," correctly).",[4026,4027,4028],"tip",{},[2877,4029,4030,4031],{},"You can automate this migration by running ",[2889,4032,4033],{},"npx codemod@latest nuxt\u002F4\u002Ffile-structure",[2877,4035,4036,4037,4040,4041,4044,4045,4047,4048,3644,4050,3644,4052,3648,4054,4056,4057,4060,4061,4063,4064,3644,4067,3648,4070,4072],{},"However, migration is ",[2996,4038,4039],{},"not required",". If you wish to keep your current folder structure, Nuxt should auto-detect it. (If it does not, please raise an issue.) The one exception is that if you ",[2996,4042,4043],{},"already"," have a custom ",[2889,4046,3621],{},". In this case, you should be aware that your ",[2889,4049,3647],{},[2889,4051,3651],{},[2889,4053,3694],{},[2889,4055,3921],{}," folders will be resolved from your ",[2889,4058,4059],{},"rootDir"," rather than from your custom ",[2889,4062,3621],{},". You can override this by configuring ",[2889,4065,4066],{},"dir.modules",[2889,4068,4069],{},"dir.public",[2889,4071,3630],{}," if you need to.",[2877,4074,4075],{},"You can also force a v3 folder structure with the following configuration:",[2901,4077,4079],{"className":3170,"code":4078,"filename":233,"language":3172,"meta":2907,"style":2907},"export default defineNuxtConfig({\n  \u002F\u002F This reverts the new srcDir default from `app` back to your root directory\n  srcDir: '.',\n  \u002F\u002F This specifies the directory prefix for `app\u002Frouter.options.ts` and `app\u002Fspa-loading-template.html`\n  dir: {\n    app: 'app',\n  },\n})\n",[2889,4080,4081,4093,4098,4115,4120,4129,4144,4148],{"__ignoreMap":2907},[2911,4082,4083,4085,4087,4089,4091],{"class":2913,"line":2914},[2911,4084,3181],{"class":3180},[2911,4086,3184],{"class":3180},[2911,4088,3188],{"class":3187},[2911,4090,3192],{"class":3191},[2911,4092,3196],{"class":3195},[2911,4094,4095],{"class":2913,"line":3199},[2911,4096,4097],{"class":3236},"  \u002F\u002F This reverts the new srcDir default from `app` back to your root directory\n",[2911,4099,4100,4103,4105,4108,4110,4113],{"class":2913,"line":3212},[2911,4101,4102],{"class":3202},"  srcDir",[2911,4104,3206],{"class":3195},[2911,4106,4107],{"class":3195}," '",[2911,4109,3124],{"class":2921},[2911,4111,4112],{"class":3195},"'",[2911,4114,3224],{"class":3195},[2911,4116,4117],{"class":2913,"line":3227},[2911,4118,4119],{"class":3236},"  \u002F\u002F This specifies the directory prefix for `app\u002Frouter.options.ts` and `app\u002Fspa-loading-template.html`\n",[2911,4121,4122,4125,4127],{"class":2913,"line":3233},[2911,4123,4124],{"class":3202},"  dir",[2911,4126,3206],{"class":3195},[2911,4128,3209],{"class":3195},[2911,4130,4131,4134,4136,4138,4140,4142],{"class":2913,"line":3240},[2911,4132,4133],{"class":3202},"    app",[2911,4135,3206],{"class":3195},[2911,4137,4107],{"class":3195},[2911,4139,1193],{"class":2921},[2911,4141,4112],{"class":3195},[2911,4143,3224],{"class":3195},[2911,4145,4146],{"class":2913,"line":3246},[2911,4147,3230],{"class":3195},[2911,4149,4150,4152],{"class":2913,"line":3252},[2911,4151,3420],{"class":3195},[2911,4153,3423],{"class":3191},[2872,4155,4157],{"id":4156},"singleton-data-fetching-layer","Singleton Data Fetching Layer",[2877,4159,3587,4160,4162],{},[3133,4161,3590],{},": Moderate",[3608,4164,3611],{"id":4165},"what-changed-1",[2877,4167,4168,4169,3648,4171,4173],{},"Nuxt's data fetching system (",[2889,4170,515],{},[2889,4172,527],{},") has been significantly reorganized for better performance and consistency:",[3898,4175,4176,4213,4227,4233],{},[3616,4177,4178,4181,4182,3982,4184,4186,4187,3644,4190,3648,4193,4196,4197,3644,4200,3644,4203,3644,4206,3982,4209,4212],{},[3133,4179,4180],{},"Shared refs for the same key",": All calls to ",[2889,4183,515],{},[2889,4185,527],{}," with the same key now share the same ",[2889,4188,4189],{},"data",[2889,4191,4192],{},"error",[2889,4194,4195],{},"status"," refs. This means that it is important that all calls with an explicit key must not have conflicting ",[2889,4198,4199],{},"deep",[2889,4201,4202],{},"transform",[2889,4204,4205],{},"pick",[2889,4207,4208],{},"getCachedData",[2889,4210,4211],{},"default"," options.",[3616,4214,4215,4220,4221,4223,4224,4226],{},[3133,4216,4217,4218],{},"More control over ",[2889,4219,4208],{},": The ",[2889,4222,4208],{}," function is now called every time data is fetched, even if this is caused by a watcher or calling ",[2889,4225,722],{},". (Previously, new data was always fetched and this function was not called in these cases.) To allow more control over when to use cached data and when to refetch, the function now receives a context object with the cause of the request.",[3616,4228,4229,4232],{},[3133,4230,4231],{},"Reactive key support",": You can now use computed refs, plain refs or getter functions as keys, which enables automatic data refetching (and stores data separately).",[3616,4234,4235,4238,4239,4241],{},[3133,4236,4237],{},"Data cleanup",": When the last component using data fetched with ",[2889,4240,515],{}," is unmounted, Nuxt will remove that data to avoid ever-growing memory usage.",[3608,4243,3896],{"id":4244},"reasons-for-change-1",[2877,4246,4247,4248,3124],{},"These changes have been made to improve memory usage and increase consistency with loading states across calls of ",[2889,4249,515],{},[3608,4251,3938],{"id":4252},"migration-steps-1",[3898,4254,4255,4568],{},[3616,4256,4257,4260,4261,4407,4410,4411,4413,4414],{},[3133,4258,4259],{},"Check for inconsistent options",": Review any components using the same key with different options or fetch functions.",[2901,4262,4264],{"className":3170,"code":4263,"language":3172,"meta":2907,"style":2907},"\u002F\u002F This will now trigger a warning\nconst { data: users1 } = useAsyncData('users', () => $fetch('\u002Fapi\u002Fusers'), { deep: false })\nconst { data: users2 } = useAsyncData('users', () => $fetch('\u002Fapi\u002Fusers'), { deep: true })\n",[2889,4265,4266,4271,4347],{"__ignoreMap":2907},[2911,4267,4268],{"class":2913,"line":2914},[2911,4269,4270],{"class":3236},"\u002F\u002F This will now trigger a warning\n",[2911,4272,4273,4277,4280,4283,4285,4288,4290,4293,4296,4298,4300,4303,4305,4308,4311,4314,4317,4319,4321,4324,4326,4329,4331,4333,4336,4338,4342,4345],{"class":2913,"line":3199},[2911,4274,4276],{"class":4275},"smZ93","const",[2911,4278,4279],{"class":3195}," {",[2911,4281,4282],{"class":3202}," data",[2911,4284,3206],{"class":3195},[2911,4286,4287],{"class":3191}," users1 ",[2911,4289,3420],{"class":3195},[2911,4291,4292],{"class":3195}," =",[2911,4294,4295],{"class":3187}," useAsyncData",[2911,4297,3192],{"class":3191},[2911,4299,4112],{"class":3195},[2911,4301,4302],{"class":2921},"users",[2911,4304,4112],{"class":3195},[2911,4306,4307],{"class":3195},",",[2911,4309,4310],{"class":3195}," ()",[2911,4312,4313],{"class":4275}," =>",[2911,4315,4316],{"class":3187}," $fetch",[2911,4318,3192],{"class":3191},[2911,4320,4112],{"class":3195},[2911,4322,4323],{"class":2921},"\u002Fapi\u002Fusers",[2911,4325,4112],{"class":3195},[2911,4327,4328],{"class":3191},")",[2911,4330,4307],{"class":3195},[2911,4332,4279],{"class":3195},[2911,4334,4335],{"class":3202}," deep",[2911,4337,3206],{"class":3195},[2911,4339,4341],{"class":4340},"sbKd-"," false",[2911,4343,4344],{"class":3195}," }",[2911,4346,3423],{"class":3191},[2911,4348,4349,4351,4353,4355,4357,4360,4362,4364,4366,4368,4370,4372,4374,4376,4378,4380,4382,4384,4386,4388,4390,4392,4394,4396,4398,4400,4403,4405],{"class":2913,"line":3212},[2911,4350,4276],{"class":4275},[2911,4352,4279],{"class":3195},[2911,4354,4282],{"class":3202},[2911,4356,3206],{"class":3195},[2911,4358,4359],{"class":3191}," users2 ",[2911,4361,3420],{"class":3195},[2911,4363,4292],{"class":3195},[2911,4365,4295],{"class":3187},[2911,4367,3192],{"class":3191},[2911,4369,4112],{"class":3195},[2911,4371,4302],{"class":2921},[2911,4373,4112],{"class":3195},[2911,4375,4307],{"class":3195},[2911,4377,4310],{"class":3195},[2911,4379,4313],{"class":4275},[2911,4381,4316],{"class":3187},[2911,4383,3192],{"class":3191},[2911,4385,4112],{"class":3195},[2911,4387,4323],{"class":2921},[2911,4389,4112],{"class":3195},[2911,4391,4328],{"class":3191},[2911,4393,4307],{"class":3195},[2911,4395,4279],{"class":3195},[2911,4397,4335],{"class":3202},[2911,4399,3206],{"class":3195},[2911,4401,4402],{"class":4340}," true",[2911,4404,4344],{"class":3195},[2911,4406,3423],{"class":3191},[4408,4409],"br",{},"It may be beneficial to extract any calls to ",[2889,4412,515],{}," that share an explicit key (and have custom options) into their own composable:",[2901,4415,4418],{"className":3170,"code":4416,"filename":4417,"language":3172,"meta":2907,"style":2907},"export function useUserData (userId: string) {\n  return useAsyncData(\n    `user-${userId}`,\n    () => fetchUser(userId),\n    {\n      deep: true,\n      transform: user => ({ ...user, lastAccessed: new Date() }),\n    },\n  )\n}\n","composables\u002FuseUserData.ts",[2889,4419,4420,4446,4456,4474,4492,4497,4508,4553,4558,4563],{"__ignoreMap":2907},[2911,4421,4422,4424,4427,4430,4433,4437,4439,4442,4444],{"class":2913,"line":2914},[2911,4423,3181],{"class":3180},[2911,4425,4426],{"class":4275}," function",[2911,4428,4429],{"class":3187}," useUserData",[2911,4431,4432],{"class":3195}," (",[2911,4434,4436],{"class":4435},"s1nJG","userId",[2911,4438,3206],{"class":3195},[2911,4440,4441],{"class":2917}," string",[2911,4443,4328],{"class":3195},[2911,4445,3209],{"class":3195},[2911,4447,4448,4451,4453],{"class":2913,"line":3199},[2911,4449,4450],{"class":3180},"  return",[2911,4452,4295],{"class":3187},[2911,4454,4455],{"class":3202},"(\n",[2911,4457,4458,4461,4464,4467,4469,4472],{"class":2913,"line":3212},[2911,4459,4460],{"class":3195},"    `",[2911,4462,4463],{"class":2921},"user-",[2911,4465,4466],{"class":3195},"${",[2911,4468,4436],{"class":3191},[2911,4470,4471],{"class":3195},"}`",[2911,4473,3224],{"class":3195},[2911,4475,4476,4479,4481,4484,4486,4488,4490],{"class":2913,"line":3227},[2911,4477,4478],{"class":3195},"    ()",[2911,4480,4313],{"class":4275},[2911,4482,4483],{"class":3187}," fetchUser",[2911,4485,3192],{"class":3202},[2911,4487,4436],{"class":3191},[2911,4489,4328],{"class":3202},[2911,4491,3224],{"class":3195},[2911,4493,4494],{"class":2913,"line":3233},[2911,4495,4496],{"class":3195},"    {\n",[2911,4498,4499,4502,4504,4506],{"class":2913,"line":3240},[2911,4500,4501],{"class":3202},"      deep",[2911,4503,3206],{"class":3195},[2911,4505,4402],{"class":4340},[2911,4507,3224],{"class":3195},[2911,4509,4510,4513,4515,4518,4520,4522,4525,4528,4531,4533,4536,4538,4541,4544,4547,4549,4551],{"class":2913,"line":3246},[2911,4511,4512],{"class":3187},"      transform",[2911,4514,3206],{"class":3195},[2911,4516,4517],{"class":4435}," user",[2911,4519,4313],{"class":4275},[2911,4521,4432],{"class":3202},[2911,4523,4524],{"class":3195},"{",[2911,4526,4527],{"class":3195}," ...",[2911,4529,4530],{"class":3191},"user",[2911,4532,4307],{"class":3195},[2911,4534,4535],{"class":3202}," lastAccessed",[2911,4537,3206],{"class":3195},[2911,4539,4540],{"class":3195}," new",[2911,4542,4543],{"class":3187}," Date",[2911,4545,4546],{"class":3202},"() ",[2911,4548,3420],{"class":3195},[2911,4550,4328],{"class":3202},[2911,4552,3224],{"class":3195},[2911,4554,4555],{"class":2913,"line":3252},[2911,4556,4557],{"class":3195},"    },\n",[2911,4559,4560],{"class":2913,"line":3258},[2911,4561,4562],{"class":3202},"  )\n",[2911,4564,4565],{"class":2913,"line":3264},[2911,4566,4567],{"class":3195},"}\n",[3616,4569,4570,3206,4576],{},[3133,4571,4572,4573,4575],{},"Update ",[2889,4574,4208],{}," implementations",[2901,4577,4581],{"className":4578,"code":4579,"language":4580,"meta":2907,"style":2907},"language-diff shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","useAsyncData('key', fetchFunction, {\n-  getCachedData: (key, nuxtApp) => {\n-    return cachedData[key]\n-  }\n+  getCachedData: (key, nuxtApp, ctx) => {\n+    \u002F\u002F ctx.cause - can be 'initial' | 'refresh:hook' | 'refresh:manual' | 'watch'\n+    \n+    \u002F\u002F Example: Don't use cache on manual refresh\n+    if (ctx.cause === 'refresh:manual') return undefined\n+    \n+    return cachedData[key]\n+  }\n})\n","diff",[2889,4582,4583,4588,4596,4603,4610,4618,4625,4632,4639,4646,4652,4658,4664],{"__ignoreMap":2907},[2911,4584,4585],{"class":2913,"line":2914},[2911,4586,4587],{"class":3191},"useAsyncData('key', fetchFunction, {\n",[2911,4589,4590,4593],{"class":2913,"line":3199},[2911,4591,4592],{"class":3195},"-",[2911,4594,4595],{"class":3202},"  getCachedData: (key, nuxtApp) => {\n",[2911,4597,4598,4600],{"class":2913,"line":3212},[2911,4599,4592],{"class":3195},[2911,4601,4602],{"class":3202},"    return cachedData[key]\n",[2911,4604,4605,4607],{"class":2913,"line":3227},[2911,4606,4592],{"class":3195},[2911,4608,4609],{"class":3202},"  }\n",[2911,4611,4612,4615],{"class":2913,"line":3233},[2911,4613,4614],{"class":3195},"+",[2911,4616,4617],{"class":2921},"  getCachedData: (key, nuxtApp, ctx) => {\n",[2911,4619,4620,4622],{"class":2913,"line":3240},[2911,4621,4614],{"class":3195},[2911,4623,4624],{"class":2921},"    \u002F\u002F ctx.cause - can be 'initial' | 'refresh:hook' | 'refresh:manual' | 'watch'\n",[2911,4626,4627,4629],{"class":2913,"line":3246},[2911,4628,4614],{"class":3195},[2911,4630,4631],{"class":2921},"    \n",[2911,4633,4634,4636],{"class":2913,"line":3252},[2911,4635,4614],{"class":3195},[2911,4637,4638],{"class":2921},"    \u002F\u002F Example: Don't use cache on manual refresh\n",[2911,4640,4641,4643],{"class":2913,"line":3258},[2911,4642,4614],{"class":3195},[2911,4644,4645],{"class":2921},"    if (ctx.cause === 'refresh:manual') return undefined\n",[2911,4647,4648,4650],{"class":2913,"line":3264},[2911,4649,4614],{"class":3195},[2911,4651,4631],{"class":2921},[2911,4653,4654,4656],{"class":2913,"line":3270},[2911,4655,4614],{"class":3195},[2911,4657,4602],{"class":2921},[2911,4659,4660,4662],{"class":2913,"line":3276},[2911,4661,4614],{"class":3195},[2911,4663,4609],{"class":2921},[2911,4665,4666],{"class":2913,"line":3282},[2911,4667,4668],{"class":3191},"})\n",[2877,4670,4671],{},"Alternatively, for now, you can disable this behaviour with:",[2901,4673,4675],{"className":3170,"code":4674,"filename":233,"language":3172,"meta":3173,"style":2907},"export default defineNuxtConfig({\n  experimental: {\n    granularCachedData: false,\n    purgeCachedData: false,\n  },\n})\n",[2889,4676,4677,4689,4698,4709,4720,4724],{"__ignoreMap":2907},[2911,4678,4679,4681,4683,4685,4687],{"class":2913,"line":2914},[2911,4680,3181],{"class":3180},[2911,4682,3184],{"class":3180},[2911,4684,3188],{"class":3187},[2911,4686,3192],{"class":3191},[2911,4688,3196],{"class":3195},[2911,4690,4691,4694,4696],{"class":2913,"line":3199},[2911,4692,4693],{"class":3202},"  experimental",[2911,4695,3206],{"class":3195},[2911,4697,3209],{"class":3195},[2911,4699,4700,4703,4705,4707],{"class":2913,"line":3212},[2911,4701,4702],{"class":3202},"    granularCachedData",[2911,4704,3206],{"class":3195},[2911,4706,4341],{"class":4340},[2911,4708,3224],{"class":3195},[2911,4710,4711,4714,4716,4718],{"class":2913,"line":3227},[2911,4712,4713],{"class":3202},"    purgeCachedData",[2911,4715,3206],{"class":3195},[2911,4717,4341],{"class":4340},[2911,4719,3224],{"class":3195},[2911,4721,4722],{"class":2913,"line":3233},[2911,4723,3230],{"class":3195},[2911,4725,4726,4728],{"class":2913,"line":3240},[2911,4727,3420],{"class":3195},[2911,4729,3423],{"class":3191},[2872,4731,4733],{"id":4732},"corrected-module-loading-order-in-layers","Corrected Module Loading Order in Layers",[2877,4735,3587,4736,4738],{},[3133,4737,3590],{},": Minimal",[3608,4740,3611],{"id":4741},"what-changed-2",[2877,4743,4744,4745,4748],{},"The order in which modules are loaded when using ",[2881,4746,4747],{"href":420},"Nuxt layers"," has been corrected. Previously, modules from the project root were loaded before modules from extended layers, which was the reverse of the expected behavior.",[2877,4750,4751],{},"Now modules are loaded in the correct order:",[3898,4753,4754,4760],{},[3616,4755,4756,4759],{},[3133,4757,4758],{},"Layer modules first"," (in extend order - deeper layers first)",[3616,4761,4762,4765],{},[3133,4763,4764],{},"Project modules last"," (highest priority)",[2877,4767,4768],{},"This affects both:",[3613,4770,4771,4779],{},[3616,4772,4773,4774,4776,4777],{},"Modules defined in the ",[2889,4775,162],{}," array in ",[2889,4778,233],{},[3616,4780,4781,4782,4784],{},"Auto-discovered modules from the ",[2889,4783,3647],{}," directory",[3608,4786,3896],{"id":4787},"reasons-for-change-2",[2877,4789,4790],{},"This change ensures that:",[3613,4792,4793,4796,4799],{},[3616,4794,4795],{},"Extended layers have lower priority than the consuming project",[3616,4797,4798],{},"Module execution order matches the intuitive layer inheritance pattern",[3616,4800,4801],{},"Module configuration and hooks work as expected in multi-layer setups",[3608,4803,3938],{"id":4804},"migration-steps-2",[2877,4806,4807,4810],{},[3133,4808,4809],{},"Most projects will not need changes",", as this corrects the loading order to match expected behavior.",[2877,4812,4813],{},"However, if your project was relying on the previous incorrect order, you may need to:",[3898,4815,4816,4822,4828],{},[3616,4817,4818,4821],{},[3133,4819,4820],{},"Review module dependencies",": Check if any modules depend on specific loading order",[3616,4823,4824,4827],{},[3133,4825,4826],{},"Adjust module configuration",": If modules were configured to work around the incorrect order",[3616,4829,4830,4833],{},[3133,4831,4832],{},"Test thoroughly",": Ensure all functionality works as expected with the corrected order",[2877,4835,4836],{},"Example of the new correct order:",[2901,4838,4840],{"className":3170,"code":4839,"language":3172,"meta":2907,"style":2907},"\u002F\u002F Layer: my-layer\u002Fnuxt.config.ts\nexport default defineNuxtConfig({\n  modules: ['layer-module-1', 'layer-module-2'],\n})\n\n\u002F\u002F Project: nuxt.config.ts\nexport default defineNuxtConfig({\n  extends: ['.\u002Fmy-layer'],\n  modules: ['project-module-1', 'project-module-2'],\n})\n\n\u002F\u002F Loading order (corrected):\n\u002F\u002F 1. layer-module-1\n\u002F\u002F 2. layer-module-2\n\u002F\u002F 3. project-module-1 (can override layer modules)\n\u002F\u002F 4. project-module-2 (can override layer modules)\n",[2889,4841,4842,4847,4859,4890,4896,4901,4906,4918,4938,4966,4972,4976,4981,4986,4991,4996],{"__ignoreMap":2907},[2911,4843,4844],{"class":2913,"line":2914},[2911,4845,4846],{"class":3236},"\u002F\u002F Layer: my-layer\u002Fnuxt.config.ts\n",[2911,4848,4849,4851,4853,4855,4857],{"class":2913,"line":3199},[2911,4850,3181],{"class":3180},[2911,4852,3184],{"class":3180},[2911,4854,3188],{"class":3187},[2911,4856,3192],{"class":3191},[2911,4858,3196],{"class":3195},[2911,4860,4861,4864,4866,4869,4871,4874,4876,4878,4880,4883,4885,4888],{"class":2913,"line":3212},[2911,4862,4863],{"class":3202},"  modules",[2911,4865,3206],{"class":3195},[2911,4867,4868],{"class":3191}," [",[2911,4870,4112],{"class":3195},[2911,4872,4873],{"class":2921},"layer-module-1",[2911,4875,4112],{"class":3195},[2911,4877,4307],{"class":3195},[2911,4879,4107],{"class":3195},[2911,4881,4882],{"class":2921},"layer-module-2",[2911,4884,4112],{"class":3195},[2911,4886,4887],{"class":3191},"]",[2911,4889,3224],{"class":3195},[2911,4891,4892,4894],{"class":2913,"line":3227},[2911,4893,3420],{"class":3195},[2911,4895,3423],{"class":3191},[2911,4897,4898],{"class":2913,"line":3233},[2911,4899,4900],{"emptyLinePlaceholder":1196},"\n",[2911,4902,4903],{"class":2913,"line":3240},[2911,4904,4905],{"class":3236},"\u002F\u002F Project: nuxt.config.ts\n",[2911,4907,4908,4910,4912,4914,4916],{"class":2913,"line":3246},[2911,4909,3181],{"class":3180},[2911,4911,3184],{"class":3180},[2911,4913,3188],{"class":3187},[2911,4915,3192],{"class":3191},[2911,4917,3196],{"class":3195},[2911,4919,4920,4923,4925,4927,4929,4932,4934,4936],{"class":2913,"line":3252},[2911,4921,4922],{"class":3202},"  extends",[2911,4924,3206],{"class":3195},[2911,4926,4868],{"class":3191},[2911,4928,4112],{"class":3195},[2911,4930,4931],{"class":2921},".\u002Fmy-layer",[2911,4933,4112],{"class":3195},[2911,4935,4887],{"class":3191},[2911,4937,3224],{"class":3195},[2911,4939,4940,4942,4944,4946,4948,4951,4953,4955,4957,4960,4962,4964],{"class":2913,"line":3258},[2911,4941,4863],{"class":3202},[2911,4943,3206],{"class":3195},[2911,4945,4868],{"class":3191},[2911,4947,4112],{"class":3195},[2911,4949,4950],{"class":2921},"project-module-1",[2911,4952,4112],{"class":3195},[2911,4954,4307],{"class":3195},[2911,4956,4107],{"class":3195},[2911,4958,4959],{"class":2921},"project-module-2",[2911,4961,4112],{"class":3195},[2911,4963,4887],{"class":3191},[2911,4965,3224],{"class":3195},[2911,4967,4968,4970],{"class":2913,"line":3264},[2911,4969,3420],{"class":3195},[2911,4971,3423],{"class":3191},[2911,4973,4974],{"class":2913,"line":3270},[2911,4975,4900],{"emptyLinePlaceholder":1196},[2911,4977,4978],{"class":2913,"line":3276},[2911,4979,4980],{"class":3236},"\u002F\u002F Loading order (corrected):\n",[2911,4982,4983],{"class":2913,"line":3282},[2911,4984,4985],{"class":3236},"\u002F\u002F 1. layer-module-1\n",[2911,4987,4988],{"class":2913,"line":3288},[2911,4989,4990],{"class":3236},"\u002F\u002F 2. layer-module-2\n",[2911,4992,4993],{"class":2913,"line":3294},[2911,4994,4995],{"class":3236},"\u002F\u002F 3. project-module-1 (can override layer modules)\n",[2911,4997,4998],{"class":2913,"line":3300},[2911,4999,5000],{"class":3236},"\u002F\u002F 4. project-module-2 (can override layer modules)\n",[2877,5002,5003,5004,5011],{},"If you encounter issues with module order dependencies due to needing to register a hook, consider using the ",[2881,5005,5007,5010],{"href":5006},"\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules#custom-hooks",[2889,5008,5009],{},"modules:done"," hook"," for modules that need to call a hook. This is run after all other modules have been loaded, which means it is safe to use.",[2877,5013,5014,5015,3648,5020,5025],{},"👉 See ",[2881,5016,5019],{"href":5017,"rel":5018},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fpull\u002F31507",[2885],"PR #31507",[2881,5021,5024],{"href":5022,"rel":5023},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F25719",[2885],"issue #25719"," for more details.",[2872,5027,5029],{"id":5028},"deduplication-of-route-metadata","Deduplication of Route Metadata",[2877,5031,3587,5032,4738],{},[3133,5033,3590],{},[3608,5035,3611],{"id":5036},"what-changed-3",[2877,5038,5039,5040,5042,5043,3644,5046,5049,5050,3648,5053,5056],{},"It's possible to set some route metadata using ",[2889,5041,678],{},", such as the ",[2889,5044,5045],{},"name",[2889,5047,5048],{},"path",", and so on. Previously these were available both on the route and on route metadata (for example, ",[2889,5051,5052],{},"route.name",[2889,5054,5055],{},"route.meta.name",").",[2877,5058,5059],{},"Now, they are only accessible on the route object.",[3608,5061,3896],{"id":5062},"reasons-for-change-3",[2877,5064,5065,5066,5069],{},"This is a result of enabling ",[2889,5067,5068],{},"experimental.scanPageMeta"," by default, and is a performance optimization.",[3608,5071,3938],{"id":5072},"migration-steps-3",[2877,5074,5075],{},"The migration should be straightforward:",[2901,5077,5079],{"className":4578,"code":5078,"language":4580,"meta":2907,"style":2907},"  const route = useRoute()\n  \n- console.log(route.meta.name)\n+ console.log(route.name)\n",[2889,5080,5081,5086,5091,5098],{"__ignoreMap":2907},[2911,5082,5083],{"class":2913,"line":2914},[2911,5084,5085],{"class":3191},"  const route = useRoute()\n",[2911,5087,5088],{"class":2913,"line":3199},[2911,5089,5090],{"class":3191},"  \n",[2911,5092,5093,5095],{"class":2913,"line":3212},[2911,5094,4592],{"class":3195},[2911,5096,5097],{"class":3202}," console.log(route.meta.name)\n",[2911,5099,5100,5102],{"class":2913,"line":3227},[2911,5101,4614],{"class":3195},[2911,5103,5104],{"class":2921}," console.log(route.name)\n",[2872,5106,5108],{"id":5107},"normalized-component-names","Normalized Component Names",[2877,5110,3587,5111,4162],{},[3133,5112,3590],{},[2877,5114,5115],{},"Vue will now generate component names that match the Nuxt pattern for component naming.",[3608,5117,3611],{"id":5118},"what-changed-4",[2877,5120,5121],{},"By default, if you haven't set it manually, Vue will assign a component name that matches\nthe filename of the component.",[2901,5123,5126],{"className":2903,"code":5124,"filename":5125,"language":2906,"meta":2907,"style":2907},"├─ components\u002F\n├─── SomeFolder\u002F\n├───── MyComponent.vue\n","Directory structure",[2889,5127,5128,5136,5144],{"__ignoreMap":2907},[2911,5129,5130,5133],{"class":2913,"line":2914},[2911,5131,5132],{"class":2917},"├─",[2911,5134,5135],{"class":2921}," components\u002F\n",[2911,5137,5138,5141],{"class":2913,"line":3199},[2911,5139,5140],{"class":2917},"├───",[2911,5142,5143],{"class":2921}," SomeFolder\u002F\n",[2911,5145,5146,5149],{"class":2913,"line":3212},[2911,5147,5148],{"class":2917},"├─────",[2911,5150,5151],{"class":2921}," MyComponent.vue\n",[2877,5153,5154,5155,5158,5159,5162],{},"In this case, the component name would be ",[2889,5156,5157],{},"MyComponent",", as far as Vue is concerned. If you wanted to use ",[2889,5160,5161],{},"\u003CKeepAlive>"," with it, or identify it in the Vue DevTools, you would need to use this name.",[2877,5164,5165,5166,3124],{},"But in order to auto-import it, you would need to use ",[2889,5167,5168],{},"SomeFolderMyComponent",[2877,5170,5171],{},"With this change, these two values will match, and Vue will generate a component name that matches the Nuxt pattern for component naming.",[3608,5173,3938],{"id":5174},"migration-steps-4",[2877,5176,5177,5178,5181,5182,5185,5186,5188],{},"Ensure that you use the updated name in any tests which use ",[2889,5179,5180],{},"findComponent"," from ",[2889,5183,5184],{},"@vue\u002Ftest-utils"," and in any ",[2889,5187,5161],{}," which depends on the name of your component.",[2877,5190,4671],{},[2901,5192,5194],{"className":3170,"code":5193,"filename":233,"language":3172,"meta":3173,"style":2907},"export default defineNuxtConfig({\n  experimental: {\n    normalizeComponentNames: false,\n  },\n})\n",[2889,5195,5196,5208,5216,5227,5231],{"__ignoreMap":2907},[2911,5197,5198,5200,5202,5204,5206],{"class":2913,"line":2914},[2911,5199,3181],{"class":3180},[2911,5201,3184],{"class":3180},[2911,5203,3188],{"class":3187},[2911,5205,3192],{"class":3191},[2911,5207,3196],{"class":3195},[2911,5209,5210,5212,5214],{"class":2913,"line":3199},[2911,5211,4693],{"class":3202},[2911,5213,3206],{"class":3195},[2911,5215,3209],{"class":3195},[2911,5217,5218,5221,5223,5225],{"class":2913,"line":3212},[2911,5219,5220],{"class":3202},"    normalizeComponentNames",[2911,5222,3206],{"class":3195},[2911,5224,4341],{"class":4340},[2911,5226,3224],{"class":3195},[2911,5228,5229],{"class":2913,"line":3227},[2911,5230,3230],{"class":3195},[2911,5232,5233,5235],{"class":2913,"line":3233},[2911,5234,3420],{"class":3195},[2911,5236,3423],{"class":3191},[2872,5238,5240],{"id":5239},"unhead-v2","Unhead v2",[2877,5242,3587,5243,4738],{},[3133,5244,3590],{},[3608,5246,3611],{"id":5247},"what-changed-5",[2877,5249,5250,5255,5256,5259],{},[2881,5251,5254],{"href":5252,"rel":5253},"https:\u002F\u002Funhead.unjs.io\u002F",[2885],"Unhead",", used to generate ",[2889,5257,5258],{},"\u003Chead>"," tags, has been updated to version 2. While mostly compatible it includes several breaking changes\nfor lower-level APIs.",[3613,5261,5262,5277,5280],{},[3616,5263,5264,5265,3644,5268,3644,5271,3644,5274,3124],{},"Removed props: ",[2889,5266,5267],{},"vmid",[2889,5269,5270],{},"hid",[2889,5272,5273],{},"children",[2889,5275,5276],{},"body",[3616,5278,5279],{},"Promise input no longer supported.",[3616,5281,5282],{},"Tags are now sorted using Capo.js by default.",[3608,5284,3938],{"id":5285},"migration-steps-5",[2877,5287,5288],{},"The above changes should have minimal impact on your app.",[2877,5290,5291],{},"If you have issues you should verify:",[3613,5293,5294],{},[3616,5295,5296],{},"You're not using any of the removed props.",[2901,5298,5300],{"className":4578,"code":5299,"language":4580,"meta":2907,"style":2907},"useHead({\n  meta: [{ \n    name: 'description', \n    \u002F\u002F meta tags don't need a vmid, or a key    \n-   vmid: 'description' \n-   hid: 'description'\n  }]\n})\n",[2889,5301,5302,5307,5312,5317,5322,5329,5336,5341],{"__ignoreMap":2907},[2911,5303,5304],{"class":2913,"line":2914},[2911,5305,5306],{"class":3191},"useHead({\n",[2911,5308,5309],{"class":2913,"line":3199},[2911,5310,5311],{"class":3191},"  meta: [{ \n",[2911,5313,5314],{"class":2913,"line":3212},[2911,5315,5316],{"class":3191},"    name: 'description', \n",[2911,5318,5319],{"class":2913,"line":3227},[2911,5320,5321],{"class":3191},"    \u002F\u002F meta tags don't need a vmid, or a key    \n",[2911,5323,5324,5326],{"class":2913,"line":3233},[2911,5325,4592],{"class":3195},[2911,5327,5328],{"class":3202},"   vmid: 'description' \n",[2911,5330,5331,5333],{"class":2913,"line":3240},[2911,5332,4592],{"class":3195},[2911,5334,5335],{"class":3202},"   hid: 'description'\n",[2911,5337,5338],{"class":2913,"line":3246},[2911,5339,5340],{"class":3191},"  }]\n",[2911,5342,5343],{"class":2913,"line":3252},[2911,5344,4668],{"class":3191},[3613,5346,5347],{},[3616,5348,5349,5350,3982,5355,5360],{},"If you're using ",[2881,5351,5354],{"href":5352,"rel":5353},"https:\u002F\u002Funhead.unjs.io\u002Fdocs\u002Fhead\u002Fguides\u002Fplugins\u002Ftemplate-params",[2885],"Template Params",[2881,5356,5359],{"href":5357,"rel":5358},"https:\u002F\u002Funhead.unjs.io\u002Fdocs\u002Fhead\u002Fguides\u002Fplugins\u002Falias-sorting",[2885],"Alias Tag Sorting",", you will need to explicitly opt in to these features now.",[2901,5362,5364],{"className":3170,"code":5363,"language":3172,"meta":2907,"style":2907},"import { AliasSortingPlugin, TemplateParamsPlugin } from '@unhead\u002Fvue\u002Fplugins'\n\nexport default defineNuxtPlugin({\n  setup () {\n    const unhead = injectHead()\n    unhead.use(TemplateParamsPlugin)\n    unhead.use(AliasSortingPlugin)\n  },\n})\n",[2889,5365,5366,5394,5398,5411,5420,5436,5453,5468,5472],{"__ignoreMap":2907},[2911,5367,5368,5371,5373,5376,5378,5381,5383,5386,5388,5391],{"class":2913,"line":2914},[2911,5369,5370],{"class":3180},"import",[2911,5372,4279],{"class":3195},[2911,5374,5375],{"class":3191}," AliasSortingPlugin",[2911,5377,4307],{"class":3195},[2911,5379,5380],{"class":3191}," TemplateParamsPlugin",[2911,5382,4344],{"class":3195},[2911,5384,5385],{"class":3180}," from",[2911,5387,4107],{"class":3195},[2911,5389,5390],{"class":2921},"@unhead\u002Fvue\u002Fplugins",[2911,5392,5393],{"class":3195},"'\n",[2911,5395,5396],{"class":2913,"line":3199},[2911,5397,4900],{"emptyLinePlaceholder":1196},[2911,5399,5400,5402,5404,5407,5409],{"class":2913,"line":3212},[2911,5401,3181],{"class":3180},[2911,5403,3184],{"class":3180},[2911,5405,5406],{"class":3187}," defineNuxtPlugin",[2911,5408,3192],{"class":3191},[2911,5410,3196],{"class":3195},[2911,5412,5413,5416,5418],{"class":2913,"line":3227},[2911,5414,5415],{"class":3202},"  setup",[2911,5417,4310],{"class":3195},[2911,5419,3209],{"class":3195},[2911,5421,5422,5425,5428,5430,5433],{"class":2913,"line":3233},[2911,5423,5424],{"class":4275},"    const",[2911,5426,5427],{"class":3191}," unhead",[2911,5429,4292],{"class":3195},[2911,5431,5432],{"class":3187}," injectHead",[2911,5434,5435],{"class":3202},"()\n",[2911,5437,5438,5441,5443,5446,5448,5451],{"class":2913,"line":3240},[2911,5439,5440],{"class":3191},"    unhead",[2911,5442,3124],{"class":3195},[2911,5444,5445],{"class":3187},"use",[2911,5447,3192],{"class":3202},[2911,5449,5450],{"class":3191},"TemplateParamsPlugin",[2911,5452,3423],{"class":3202},[2911,5454,5455,5457,5459,5461,5463,5466],{"class":2913,"line":3246},[2911,5456,5440],{"class":3191},[2911,5458,3124],{"class":3195},[2911,5460,5445],{"class":3187},[2911,5462,3192],{"class":3202},[2911,5464,5465],{"class":3191},"AliasSortingPlugin",[2911,5467,3423],{"class":3202},[2911,5469,5470],{"class":2913,"line":3252},[2911,5471,3230],{"class":3195},[2911,5473,5474,5476],{"class":2913,"line":3258},[2911,5475,3420],{"class":3195},[2911,5477,3423],{"class":3191},[2877,5479,5480,5481,3434,5484,3982,5487,3124],{},"While not required it's recommended to update any imports from ",[2889,5482,5483],{},"@unhead\u002Fvue",[2889,5485,5486],{},"#imports",[2889,5488,5489],{},"nuxt\u002Fapp",[2901,5491,5493],{"className":4578,"code":5492,"language":4580,"meta":2907,"style":2907},"-import { useHead } from '@unhead\u002Fvue'\n+import { useHead } from '#imports'\n",[2889,5494,5495,5502],{"__ignoreMap":2907},[2911,5496,5497,5499],{"class":2913,"line":2914},[2911,5498,4592],{"class":3195},[2911,5500,5501],{"class":3202},"import { useHead } from '@unhead\u002Fvue'\n",[2911,5503,5504,5506],{"class":2913,"line":3199},[2911,5505,4614],{"class":3195},[2911,5507,5508],{"class":2921},"import { useHead } from '#imports'\n",[2877,5510,5511,5512,5515],{},"If you still have issues you may revert to the v1 behavior by enabling the ",[2889,5513,5514],{},"head.legacy"," config.",[2901,5517,5519],{"className":3170,"code":5518,"language":3172,"meta":2907,"style":2907},"export default defineNuxtConfig({\n  unhead: {\n    legacy: true,\n  },\n})\n",[2889,5520,5521,5533,5542,5553,5557],{"__ignoreMap":2907},[2911,5522,5523,5525,5527,5529,5531],{"class":2913,"line":2914},[2911,5524,3181],{"class":3180},[2911,5526,3184],{"class":3180},[2911,5528,3188],{"class":3187},[2911,5530,3192],{"class":3191},[2911,5532,3196],{"class":3195},[2911,5534,5535,5538,5540],{"class":2913,"line":3199},[2911,5536,5537],{"class":3202},"  unhead",[2911,5539,3206],{"class":3195},[2911,5541,3209],{"class":3195},[2911,5543,5544,5547,5549,5551],{"class":2913,"line":3212},[2911,5545,5546],{"class":3202},"    legacy",[2911,5548,3206],{"class":3195},[2911,5550,4402],{"class":4340},[2911,5552,3224],{"class":3195},[2911,5554,5555],{"class":2913,"line":3227},[2911,5556,3230],{"class":3195},[2911,5558,5559,5561],{"class":2913,"line":3233},[2911,5560,3420],{"class":3195},[2911,5562,3423],{"class":3191},[2872,5564,5566],{"id":5565},"new-dom-location-for-spa-loading-screen","New DOM Location for SPA Loading Screen",[2877,5568,3587,5569,4738],{},[3133,5570,3590],{},[3608,5572,3611],{"id":5573},"what-changed-6",[2877,5575,5576,5577,5580,5581,5584,5585,5588],{},"When rendering a client-only page (with ",[2889,5578,5579],{},"ssr: false","), we optionally render a loading screen (from ",[2889,5582,5583],{},"~\u002Fapp\u002Fspa-loading-template.html"," - note that this has also changed to ",[2889,5586,5587],{},"~\u002Fspa-loading-template.html"," in Nuxt 4), within the Nuxt app root:",[2901,5590,5594],{"className":5591,"code":5592,"language":5593,"meta":2907,"style":2907},"language-html shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","\u003Cdiv id=\"__nuxt\">\n  \u003C!-- spa loading template -->\n\u003C\u002Fdiv>\n","html",[2889,5595,5596,5621,5626],{"__ignoreMap":2907},[2911,5597,5598,5601,5604,5607,5610,5613,5616,5618],{"class":2913,"line":2914},[2911,5599,5600],{"class":3195},"\u003C",[2911,5602,5603],{"class":3202},"div",[2911,5605,5606],{"class":4275}," id",[2911,5608,5609],{"class":3195},"=",[2911,5611,5612],{"class":3195},"\"",[2911,5614,5615],{"class":2921},"__nuxt",[2911,5617,5612],{"class":3195},[2911,5619,5620],{"class":3195},">\n",[2911,5622,5623],{"class":2913,"line":3199},[2911,5624,5625],{"class":3236},"  \u003C!-- spa loading template -->\n",[2911,5627,5628,5631,5633],{"class":2913,"line":3212},[2911,5629,5630],{"class":3195},"\u003C\u002F",[2911,5632,5603],{"class":3202},[2911,5634,5620],{"class":3195},[2877,5636,5637],{},"Now, we default to rendering the template alongside the Nuxt app root:",[2901,5639,5641],{"className":5591,"code":5640,"language":5593,"meta":2907,"style":2907},"\u003Cdiv id=\"__nuxt\">\u003C\u002Fdiv>\n\u003C!-- spa loading template -->\n",[2889,5642,5643,5666],{"__ignoreMap":2907},[2911,5644,5645,5647,5649,5651,5653,5655,5657,5659,5662,5664],{"class":2913,"line":2914},[2911,5646,5600],{"class":3195},[2911,5648,5603],{"class":3202},[2911,5650,5606],{"class":4275},[2911,5652,5609],{"class":3195},[2911,5654,5612],{"class":3195},[2911,5656,5615],{"class":2921},[2911,5658,5612],{"class":3195},[2911,5660,5661],{"class":3195},">\u003C\u002F",[2911,5663,5603],{"class":3202},[2911,5665,5620],{"class":3195},[2911,5667,5668],{"class":2913,"line":3199},[2911,5669,5670],{"class":3236},"\u003C!-- spa loading template -->\n",[3608,5672,3896],{"id":5673},"reasons-for-change-4",[2877,5675,5676],{},"This allows the spa loading template to remain in the DOM until the Vue app suspense resolves, preventing a flash of white.",[3608,5678,3938],{"id":5679},"migration-steps-6",[2877,5681,5682,5683,5686,5687,3648,5690,5693],{},"If you were targeting the spa loading template with CSS or ",[2889,5684,5685],{},"document.queryElement"," you will need to update your selectors. For this purpose you can use the new ",[2889,5688,5689],{},"app.spaLoaderTag",[2889,5691,5692],{},"app.spaLoaderAttrs"," configuration options.",[2877,5695,5696],{},"Alternatively, you can revert to the previous behaviour with:",[2901,5698,5700],{"className":3170,"code":5699,"filename":233,"language":3172,"meta":3173,"style":2907},"export default defineNuxtConfig({\n  experimental: {\n    spaLoadingTemplateLocation: 'within',\n  },\n})\n",[2889,5701,5702,5714,5722,5738,5742],{"__ignoreMap":2907},[2911,5703,5704,5706,5708,5710,5712],{"class":2913,"line":2914},[2911,5705,3181],{"class":3180},[2911,5707,3184],{"class":3180},[2911,5709,3188],{"class":3187},[2911,5711,3192],{"class":3191},[2911,5713,3196],{"class":3195},[2911,5715,5716,5718,5720],{"class":2913,"line":3199},[2911,5717,4693],{"class":3202},[2911,5719,3206],{"class":3195},[2911,5721,3209],{"class":3195},[2911,5723,5724,5727,5729,5731,5734,5736],{"class":2913,"line":3212},[2911,5725,5726],{"class":3202},"    spaLoadingTemplateLocation",[2911,5728,3206],{"class":3195},[2911,5730,4107],{"class":3195},[2911,5732,5733],{"class":2921},"within",[2911,5735,4112],{"class":3195},[2911,5737,3224],{"class":3195},[2911,5739,5740],{"class":2913,"line":3227},[2911,5741,3230],{"class":3195},[2911,5743,5744,5746],{"class":2913,"line":3233},[2911,5745,3420],{"class":3195},[2911,5747,3423],{"class":3191},[2872,5749,5751,5752],{"id":5750},"parsed-errordata","Parsed ",[2889,5753,5754],{},"error.data",[2877,5756,3587,5757,4738],{},[3133,5758,3590],{},[2877,5760,5761,5762,5764,5765,5767],{},"It was possible to throw an error with a ",[2889,5763,4189],{}," property, but this was not parsed. Now, it is parsed and made available in the ",[2889,5766,4192],{}," object. Although a fix, this is technically a breaking change if you were relying on the previous behavior and parsing it manually.",[3608,5769,3938],{"id":5770},"migration-steps-7",[2877,5772,5773,5774,5776,5777,3206],{},"Update your custom ",[2889,5775,229],{}," to remove any additional parsing of ",[2889,5778,5754],{},[2901,5780,5782],{"className":4578,"code":5781,"language":4580,"meta":2907,"style":2907},"  \u003Cscript setup lang=\"ts\">\n  import type { NuxtError } from '#app'\n\n  const props = defineProps({\n    error: Object as () => NuxtError\n  })\n\n- const data = JSON.parse(error.data)\n+ const data = error.data\n  \u003C\u002Fscript>\n",[2889,5783,5784,5789,5794,5798,5803,5808,5813,5817,5824,5831],{"__ignoreMap":2907},[2911,5785,5786],{"class":2913,"line":2914},[2911,5787,5788],{"class":3191},"  \u003Cscript setup lang=\"ts\">\n",[2911,5790,5791],{"class":2913,"line":3199},[2911,5792,5793],{"class":3191},"  import type { NuxtError } from '#app'\n",[2911,5795,5796],{"class":2913,"line":3212},[2911,5797,4900],{"emptyLinePlaceholder":1196},[2911,5799,5800],{"class":2913,"line":3227},[2911,5801,5802],{"class":3191},"  const props = defineProps({\n",[2911,5804,5805],{"class":2913,"line":3233},[2911,5806,5807],{"class":3191},"    error: Object as () => NuxtError\n",[2911,5809,5810],{"class":2913,"line":3240},[2911,5811,5812],{"class":3191},"  })\n",[2911,5814,5815],{"class":2913,"line":3246},[2911,5816,4900],{"emptyLinePlaceholder":1196},[2911,5818,5819,5821],{"class":2913,"line":3252},[2911,5820,4592],{"class":3195},[2911,5822,5823],{"class":3202}," const data = JSON.parse(error.data)\n",[2911,5825,5826,5828],{"class":2913,"line":3258},[2911,5827,4614],{"class":3195},[2911,5829,5830],{"class":2921}," const data = error.data\n",[2911,5832,5833],{"class":2913,"line":3264},[2911,5834,5835],{"class":3191},"  \u003C\u002Fscript>\n",[2877,5837,5838],{},"Alternatively, you can disable this change:",[2901,5840,5842],{"className":3170,"code":5841,"filename":233,"language":3172,"meta":3173,"style":2907},"export default defineNuxtConfig({\n  experimental: {\n    parseErrorData: false,\n  },\n})\n",[2889,5843,5844,5856,5864,5875,5879],{"__ignoreMap":2907},[2911,5845,5846,5848,5850,5852,5854],{"class":2913,"line":2914},[2911,5847,3181],{"class":3180},[2911,5849,3184],{"class":3180},[2911,5851,3188],{"class":3187},[2911,5853,3192],{"class":3191},[2911,5855,3196],{"class":3195},[2911,5857,5858,5860,5862],{"class":2913,"line":3199},[2911,5859,4693],{"class":3202},[2911,5861,3206],{"class":3195},[2911,5863,3209],{"class":3195},[2911,5865,5866,5869,5871,5873],{"class":2913,"line":3212},[2911,5867,5868],{"class":3202},"    parseErrorData",[2911,5870,3206],{"class":3195},[2911,5872,4341],{"class":4340},[2911,5874,3224],{"class":3195},[2911,5876,5877],{"class":2913,"line":3227},[2911,5878,3230],{"class":3195},[2911,5880,5881,5883],{"class":2913,"line":3233},[2911,5882,3420],{"class":3195},[2911,5884,3423],{"class":3191},[2872,5886,5888],{"id":5887},"more-granular-inline-styles","More Granular Inline Styles",[2877,5890,3587,5891,4162],{},[3133,5892,3590],{},[2877,5894,5895],{},"Nuxt will now only inline styles for Vue components, not global CSS.",[3608,5897,3611],{"id":5898},"what-changed-7",[2877,5900,5901,5902,5905,5906,5909],{},"Previously, Nuxt would inline all CSS, including global styles, and remove ",[2889,5903,5904],{},"\u003Clink>"," elements to separate CSS files. Now, Nuxt will only do this for Vue components (which previously produced separate chunks of CSS). We think this is a better balance of reducing separate network requests (just as before, there will not be separate requests for individual ",[2889,5907,5908],{},".css"," files per-page or per-component on the initial load), as well as allowing caching of a single global CSS file and reducing the document download size of the initial request.",[3608,5911,3938],{"id":5912},"migration-steps-8",[2877,5914,5915,5916,5919],{},"This feature is fully configurable and you can revert to the previous behavior by setting ",[2889,5917,5918],{},"inlineStyles: true"," to inline global CSS as well as per-component CSS.",[2901,5921,5923],{"className":3170,"code":5922,"filename":233,"language":3172,"meta":3173,"style":2907},"export default defineNuxtConfig({\n  features: {\n    inlineStyles: true,\n  },\n})\n",[2889,5924,5925,5937,5946,5957,5961],{"__ignoreMap":2907},[2911,5926,5927,5929,5931,5933,5935],{"class":2913,"line":2914},[2911,5928,3181],{"class":3180},[2911,5930,3184],{"class":3180},[2911,5932,3188],{"class":3187},[2911,5934,3192],{"class":3191},[2911,5936,3196],{"class":3195},[2911,5938,5939,5942,5944],{"class":2913,"line":3199},[2911,5940,5941],{"class":3202},"  features",[2911,5943,3206],{"class":3195},[2911,5945,3209],{"class":3195},[2911,5947,5948,5951,5953,5955],{"class":2913,"line":3212},[2911,5949,5950],{"class":3202},"    inlineStyles",[2911,5952,3206],{"class":3195},[2911,5954,4402],{"class":4340},[2911,5956,3224],{"class":3195},[2911,5958,5959],{"class":2913,"line":3227},[2911,5960,3230],{"class":3195},[2911,5962,5963,5965],{"class":2913,"line":3233},[2911,5964,3420],{"class":3195},[2911,5966,3423],{"class":3191},[2872,5968,5970],{"id":5969},"scan-page-meta-after-resolution","Scan Page Meta After Resolution",[2877,5972,3587,5973,4738],{},[3133,5974,3590],{},[3608,5976,3611],{"id":5977},"what-changed-8",[2877,5979,5980,5981,5983,5984,5987,5988,5991],{},"We now scan page metadata (defined in ",[2889,5982,678],{},") ",[2996,5985,5986],{},"after"," calling the ",[2889,5989,5990],{},"pages:extend"," hook rather than before.",[3608,5993,3896],{"id":5994},"reasons-for-change-5",[2877,5996,5997,5998,6000,6001,6004],{},"This was to allow scanning metadata for pages that users wanted to add in ",[2889,5999,5990],{},". We still offer an opportunity to change or override page metadata in a new ",[2889,6002,6003],{},"pages:resolved"," hook.",[3608,6006,3938],{"id":6007},"migration-steps-9",[2877,6009,6010,6011,6013,6014,3124],{},"If you want to override page metadata, do that in ",[2889,6012,6003],{}," rather than in ",[2889,6015,5990],{},[2901,6017,6019],{"className":4578,"code":6018,"language":4580,"meta":2907,"style":2907},"  export default defineNuxtConfig({\n    hooks: {\n-     'pages:extend'(pages) {\n+     'pages:resolved'(pages) {\n        const myPage = pages.find(page => page.path === '\u002F')\n        myPage.meta ||= {}\n        myPage.meta.layout = 'overridden-layout'\n      }\n    }\n  })\n",[2889,6020,6021,6026,6031,6038,6045,6050,6055,6060,6065,6070],{"__ignoreMap":2907},[2911,6022,6023],{"class":2913,"line":2914},[2911,6024,6025],{"class":3191},"  export default defineNuxtConfig({\n",[2911,6027,6028],{"class":2913,"line":3199},[2911,6029,6030],{"class":3191},"    hooks: {\n",[2911,6032,6033,6035],{"class":2913,"line":3212},[2911,6034,4592],{"class":3195},[2911,6036,6037],{"class":3202},"     'pages:extend'(pages) {\n",[2911,6039,6040,6042],{"class":2913,"line":3227},[2911,6041,4614],{"class":3195},[2911,6043,6044],{"class":2921},"     'pages:resolved'(pages) {\n",[2911,6046,6047],{"class":2913,"line":3233},[2911,6048,6049],{"class":3191},"        const myPage = pages.find(page => page.path === '\u002F')\n",[2911,6051,6052],{"class":2913,"line":3240},[2911,6053,6054],{"class":3191},"        myPage.meta ||= {}\n",[2911,6056,6057],{"class":2913,"line":3246},[2911,6058,6059],{"class":3191},"        myPage.meta.layout = 'overridden-layout'\n",[2911,6061,6062],{"class":2913,"line":3252},[2911,6063,6064],{"class":3191},"      }\n",[2911,6066,6067],{"class":2913,"line":3258},[2911,6068,6069],{"class":3191},"    }\n",[2911,6071,6072],{"class":2913,"line":3264},[2911,6073,5812],{"class":3191},[2877,6075,5696],{},[2901,6077,6079],{"className":3170,"code":6078,"filename":233,"language":3172,"meta":3173,"style":2907},"export default defineNuxtConfig({\n  experimental: {\n    scanPageMeta: true,\n  },\n})\n",[2889,6080,6081,6093,6101,6112,6116],{"__ignoreMap":2907},[2911,6082,6083,6085,6087,6089,6091],{"class":2913,"line":2914},[2911,6084,3181],{"class":3180},[2911,6086,3184],{"class":3180},[2911,6088,3188],{"class":3187},[2911,6090,3192],{"class":3191},[2911,6092,3196],{"class":3195},[2911,6094,6095,6097,6099],{"class":2913,"line":3199},[2911,6096,4693],{"class":3202},[2911,6098,3206],{"class":3195},[2911,6100,3209],{"class":3195},[2911,6102,6103,6106,6108,6110],{"class":2913,"line":3212},[2911,6104,6105],{"class":3202},"    scanPageMeta",[2911,6107,3206],{"class":3195},[2911,6109,4402],{"class":4340},[2911,6111,3224],{"class":3195},[2911,6113,6114],{"class":2913,"line":3227},[2911,6115,3230],{"class":3195},[2911,6117,6118,6120],{"class":2913,"line":3233},[2911,6119,3420],{"class":3195},[2911,6121,3423],{"class":3191},[2872,6123,6125],{"id":6124},"shared-prerender-data","Shared Prerender Data",[2877,6127,3587,6128,6130],{},[3133,6129,3590],{},": Medium",[3608,6132,3611],{"id":6133},"what-changed-9",[2877,6135,6136,6137,3648,6139,6141,6142,3124],{},"We enabled a previously experimental feature to share data from ",[2889,6138,515],{},[2889,6140,527],{}," calls, across different pages. See ",[2881,6143,6146],{"href":6144,"rel":6145},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fpull\u002F24894",[2885],"original PR",[3608,6148,3896],{"id":6149},"reasons-for-change-6",[2877,6151,6152,6153,6155,6156,3982,6158,6160],{},"This feature automatically shares payload ",[2996,6154,4189],{}," between pages that are prerendered. This can result in a significant performance improvement when prerendering sites that use ",[2889,6157,515],{},[2889,6159,527],{}," and fetch the same data in different pages.",[2877,6162,6163,6164,6166],{},"For example, if your site requires a ",[2889,6165,527],{}," call for every page (for example, to get navigation data for a menu, or site settings from a CMS), this data would only be fetched once when prerendering the first page that uses it, and then cached for use when prerendering other pages.",[3608,6168,3938],{"id":6169},"migration-steps-10",[2877,6171,6172,6173,6175,6176,6178],{},"Make sure that any unique key of your data is always resolvable to the same data. For example, if you are using ",[2889,6174,515],{}," to fetch data related to a particular page, you should provide a key that uniquely matches that data. (",[2889,6177,527],{}," should do this automatically for you.)",[2901,6180,6183],{"className":3170,"code":6181,"filename":6182,"language":3172,"meta":2907,"style":2907},"\u002F\u002F This would be unsafe in a dynamic page (e.g. `[slug].vue`) because the route slug makes a difference\n\u002F\u002F to the data fetched, but Nuxt can't know that because it's not reflected in the key.\nconst route = useRoute()\nconst { data } = await useAsyncData(async () => {\n  return await $fetch(`\u002Fapi\u002Fmy-page\u002F${route.params.slug}`)\n})\n\u002F\u002F Instead, you should use a key that uniquely identifies the data fetched.\nconst { data } = await useAsyncData(route.params.slug, async () => {\n  return await $fetch(`\u002Fapi\u002Fmy-page\u002F${route.params.slug}`)\n})\n","pages\u002Ftest\u002F[slug].vue",[2889,6184,6185,6190,6195,6209,6238,6273,6279,6284,6322,6352],{"__ignoreMap":2907},[2911,6186,6187],{"class":2913,"line":2914},[2911,6188,6189],{"class":3236},"\u002F\u002F This would be unsafe in a dynamic page (e.g. `[slug].vue`) because the route slug makes a difference\n",[2911,6191,6192],{"class":2913,"line":3199},[2911,6193,6194],{"class":3236},"\u002F\u002F to the data fetched, but Nuxt can't know that because it's not reflected in the key.\n",[2911,6196,6197,6199,6202,6204,6207],{"class":2913,"line":3212},[2911,6198,4276],{"class":4275},[2911,6200,6201],{"class":3191}," route ",[2911,6203,5609],{"class":3195},[2911,6205,6206],{"class":3187}," useRoute",[2911,6208,5435],{"class":3191},[2911,6210,6211,6213,6215,6218,6220,6222,6225,6227,6229,6232,6234,6236],{"class":2913,"line":3227},[2911,6212,4276],{"class":4275},[2911,6214,4279],{"class":3195},[2911,6216,6217],{"class":3191}," data ",[2911,6219,3420],{"class":3195},[2911,6221,4292],{"class":3195},[2911,6223,6224],{"class":3180}," await",[2911,6226,4295],{"class":3187},[2911,6228,3192],{"class":3191},[2911,6230,6231],{"class":4275},"async",[2911,6233,4310],{"class":3195},[2911,6235,4313],{"class":4275},[2911,6237,3209],{"class":3195},[2911,6239,6240,6242,6244,6246,6248,6251,6254,6256,6259,6261,6264,6266,6269,6271],{"class":2913,"line":3233},[2911,6241,4450],{"class":3180},[2911,6243,6224],{"class":3180},[2911,6245,4316],{"class":3187},[2911,6247,3192],{"class":3202},[2911,6249,6250],{"class":3195},"`",[2911,6252,6253],{"class":2921},"\u002Fapi\u002Fmy-page\u002F",[2911,6255,4466],{"class":3195},[2911,6257,6258],{"class":3191},"route",[2911,6260,3124],{"class":3195},[2911,6262,6263],{"class":3191},"params",[2911,6265,3124],{"class":3195},[2911,6267,6268],{"class":3191},"slug",[2911,6270,4471],{"class":3195},[2911,6272,3423],{"class":3202},[2911,6274,6275,6277],{"class":2913,"line":3240},[2911,6276,3420],{"class":3195},[2911,6278,3423],{"class":3191},[2911,6280,6281],{"class":2913,"line":3246},[2911,6282,6283],{"class":3236},"\u002F\u002F Instead, you should use a key that uniquely identifies the data fetched.\n",[2911,6285,6286,6288,6290,6292,6294,6296,6298,6300,6303,6305,6307,6309,6311,6313,6316,6318,6320],{"class":2913,"line":3252},[2911,6287,4276],{"class":4275},[2911,6289,4279],{"class":3195},[2911,6291,6217],{"class":3191},[2911,6293,3420],{"class":3195},[2911,6295,4292],{"class":3195},[2911,6297,6224],{"class":3180},[2911,6299,4295],{"class":3187},[2911,6301,6302],{"class":3191},"(route",[2911,6304,3124],{"class":3195},[2911,6306,6263],{"class":3191},[2911,6308,3124],{"class":3195},[2911,6310,6268],{"class":3191},[2911,6312,4307],{"class":3195},[2911,6314,6315],{"class":4275}," async",[2911,6317,4310],{"class":3195},[2911,6319,4313],{"class":4275},[2911,6321,3209],{"class":3195},[2911,6323,6324,6326,6328,6330,6332,6334,6336,6338,6340,6342,6344,6346,6348,6350],{"class":2913,"line":3258},[2911,6325,4450],{"class":3180},[2911,6327,6224],{"class":3180},[2911,6329,4316],{"class":3187},[2911,6331,3192],{"class":3202},[2911,6333,6250],{"class":3195},[2911,6335,6253],{"class":2921},[2911,6337,4466],{"class":3195},[2911,6339,6258],{"class":3191},[2911,6341,3124],{"class":3195},[2911,6343,6263],{"class":3191},[2911,6345,3124],{"class":3195},[2911,6347,6268],{"class":3191},[2911,6349,4471],{"class":3195},[2911,6351,3423],{"class":3202},[2911,6353,6354,6356],{"class":2913,"line":3264},[2911,6355,3420],{"class":3195},[2911,6357,3423],{"class":3191},[2877,6359,6360],{},"Alternatively, you can disable this feature with:",[2901,6362,6364],{"className":3170,"code":6363,"filename":233,"language":3172,"meta":3173,"style":2907},"export default defineNuxtConfig({\n  experimental: {\n    sharedPrerenderData: false,\n  },\n})\n",[2889,6365,6366,6378,6386,6397,6401],{"__ignoreMap":2907},[2911,6367,6368,6370,6372,6374,6376],{"class":2913,"line":2914},[2911,6369,3181],{"class":3180},[2911,6371,3184],{"class":3180},[2911,6373,3188],{"class":3187},[2911,6375,3192],{"class":3191},[2911,6377,3196],{"class":3195},[2911,6379,6380,6382,6384],{"class":2913,"line":3199},[2911,6381,4693],{"class":3202},[2911,6383,3206],{"class":3195},[2911,6385,3209],{"class":3195},[2911,6387,6388,6391,6393,6395],{"class":2913,"line":3212},[2911,6389,6390],{"class":3202},"    sharedPrerenderData",[2911,6392,3206],{"class":3195},[2911,6394,4341],{"class":4340},[2911,6396,3224],{"class":3195},[2911,6398,6399],{"class":2913,"line":3227},[2911,6400,3230],{"class":3195},[2911,6402,6403,6405],{"class":2913,"line":3233},[2911,6404,3420],{"class":3195},[2911,6406,3423],{"class":3191},[2872,6408,6410,6411,3648,6413,6415,6416,3648,6418],{"id":6409},"default-data-and-error-values-in-useasyncdata-and-usefetch","Default ",[2889,6412,4189],{},[2889,6414,4192],{}," values in ",[2889,6417,515],{},[2889,6419,527],{},[2877,6421,3587,6422,4738],{},[3133,6423,3590],{},[3608,6425,3611],{"id":6426},"what-changed-10",[2877,6428,6429,3648,6431,6433,6434,6436,6437,3124],{},[2889,6430,4189],{},[2889,6432,4192],{}," objects returned from ",[2889,6435,515],{}," will now default to ",[2889,6438,6439],{},"undefined",[3608,6441,3896],{"id":6442},"reasons-for-change-7",[2877,6444,6445,6446,6448,6449,6452,6453,3434,6455,6457,6458,6448,6460,6462],{},"Previously ",[2889,6447,4189],{}," was initialized to ",[2889,6450,6451],{},"null"," but reset in ",[2889,6454,650],{},[2889,6456,6439],{},". ",[2889,6459,4192],{},[2889,6461,6451],{},". This change is to bring greater consistency.",[3608,6464,3938],{"id":6465},"migration-steps-11",[2877,6467,6468,6469,3982,6472,6475,6476,6478,6479,6481],{},"If you were checking if ",[2889,6470,6471],{},"data.value",[2889,6473,6474],{},"error.value"," were ",[2889,6477,6451],{},", you can update these checks to check for ",[2889,6480,6439],{}," instead.",[4026,6483,6484],{},[2877,6485,6486,6487],{},"You can automate this step by running ",[2889,6488,6489],{},"npx codemod@latest nuxt\u002F4\u002Fdefault-data-error-value",[2877,6491,6492],{},"If you encounter any issues you can revert back to the previous behavior with:",[2901,6494,6496],{"className":3170,"code":6495,"filename":233,"language":3172,"meta":3173,"style":2907},"export default defineNuxtConfig({\n  experimental: {\n    defaults: {\n      useAsyncData: {\n        value: 'null',\n        errorValue: 'null',\n      },\n    },\n  },\n})\n",[2889,6497,6498,6510,6518,6527,6536,6551,6566,6571,6575,6579],{"__ignoreMap":2907},[2911,6499,6500,6502,6504,6506,6508],{"class":2913,"line":2914},[2911,6501,3181],{"class":3180},[2911,6503,3184],{"class":3180},[2911,6505,3188],{"class":3187},[2911,6507,3192],{"class":3191},[2911,6509,3196],{"class":3195},[2911,6511,6512,6514,6516],{"class":2913,"line":3199},[2911,6513,4693],{"class":3202},[2911,6515,3206],{"class":3195},[2911,6517,3209],{"class":3195},[2911,6519,6520,6523,6525],{"class":2913,"line":3212},[2911,6521,6522],{"class":3202},"    defaults",[2911,6524,3206],{"class":3195},[2911,6526,3209],{"class":3195},[2911,6528,6529,6532,6534],{"class":2913,"line":3227},[2911,6530,6531],{"class":3202},"      useAsyncData",[2911,6533,3206],{"class":3195},[2911,6535,3209],{"class":3195},[2911,6537,6538,6541,6543,6545,6547,6549],{"class":2913,"line":3233},[2911,6539,6540],{"class":3202},"        value",[2911,6542,3206],{"class":3195},[2911,6544,4107],{"class":3195},[2911,6546,6451],{"class":2921},[2911,6548,4112],{"class":3195},[2911,6550,3224],{"class":3195},[2911,6552,6553,6556,6558,6560,6562,6564],{"class":2913,"line":3240},[2911,6554,6555],{"class":3202},"        errorValue",[2911,6557,3206],{"class":3195},[2911,6559,4107],{"class":3195},[2911,6561,6451],{"class":2921},[2911,6563,4112],{"class":3195},[2911,6565,3224],{"class":3195},[2911,6567,6568],{"class":2913,"line":3246},[2911,6569,6570],{"class":3195},"      },\n",[2911,6572,6573],{"class":2913,"line":3252},[2911,6574,4557],{"class":3195},[2911,6576,6577],{"class":2913,"line":3258},[2911,6578,3230],{"class":3195},[2911,6580,6581,6583],{"class":2913,"line":3264},[2911,6582,3420],{"class":3195},[2911,6584,3423],{"class":3191},[2877,6586,6587],{},"Please report an issue if you are doing this, as we do not plan to keep this as configurable.",[2872,6589,6591,6592,6595,6596,6599,6600,6603,6604,3648,6606],{"id":6590},"removal-of-deprecated-boolean-values-for-dedupe-option-when-calling-refresh-in-useasyncdata-and-usefetch","Removal of deprecated ",[2889,6593,6594],{},"boolean"," values for ",[2889,6597,6598],{},"dedupe"," option when calling ",[2889,6601,6602],{},"refresh"," in ",[2889,6605,515],{},[2889,6607,527],{},[2877,6609,3587,6610,4738],{},[3133,6611,3590],{},[3608,6613,3611],{"id":6614},"what-changed-11",[2877,6616,6617,6618,3434,6621,6623,6624,4432,6627,6630,6631,4432,6634,5056],{},"Previously it was possible to pass ",[2889,6619,6620],{},"dedupe: boolean",[2889,6622,6602],{},". These were aliases of ",[2889,6625,6626],{},"cancel",[2889,6628,6629],{},"true",") and ",[2889,6632,6633],{},"defer",[2889,6635,6636],{},"false",[2901,6638,6640],{"className":3170,"code":6639,"filename":219,"language":3172,"meta":3173,"style":2907},"\u002F\u002F @errors: 2322\nconst { refresh } = await useAsyncData(() => Promise.resolve({ message: 'Hello, Nuxt!' }))\n\nasync function refreshData () {\n  await refresh({ dedupe: true })\n}\n",[2889,6641,6642,6647,6700,6704,6717,6740],{"__ignoreMap":2907},[2911,6643,6644],{"class":2913,"line":2914},[2911,6645,6646],{"class":3236},"\u002F\u002F @errors: 2322\n",[2911,6648,6649,6651,6653,6656,6658,6660,6662,6664,6666,6669,6671,6674,6676,6679,6681,6683,6686,6688,6690,6693,6695,6697],{"class":2913,"line":3199},[2911,6650,4276],{"class":4275},[2911,6652,4279],{"class":3195},[2911,6654,6655],{"class":3191}," refresh ",[2911,6657,3420],{"class":3195},[2911,6659,4292],{"class":3195},[2911,6661,6224],{"class":3180},[2911,6663,4295],{"class":3187},[2911,6665,3192],{"class":3191},[2911,6667,6668],{"class":3195},"()",[2911,6670,4313],{"class":4275},[2911,6672,6673],{"class":2917}," Promise",[2911,6675,3124],{"class":3195},[2911,6677,6678],{"class":3187},"resolve",[2911,6680,3192],{"class":3191},[2911,6682,4524],{"class":3195},[2911,6684,6685],{"class":3202}," message",[2911,6687,3206],{"class":3195},[2911,6689,4107],{"class":3195},[2911,6691,6692],{"class":2921},"Hello, Nuxt!",[2911,6694,4112],{"class":3195},[2911,6696,4344],{"class":3195},[2911,6698,6699],{"class":3191},"))\n",[2911,6701,6702],{"class":2913,"line":3212},[2911,6703,4900],{"emptyLinePlaceholder":1196},[2911,6705,6706,6708,6710,6713,6715],{"class":2913,"line":3227},[2911,6707,6231],{"class":4275},[2911,6709,4426],{"class":4275},[2911,6711,6712],{"class":3187}," refreshData",[2911,6714,4310],{"class":3195},[2911,6716,3209],{"class":3195},[2911,6718,6719,6722,6725,6727,6729,6732,6734,6736,6738],{"class":2913,"line":3233},[2911,6720,6721],{"class":3180},"  await",[2911,6723,6724],{"class":3187}," refresh",[2911,6726,3192],{"class":3202},[2911,6728,4524],{"class":3195},[2911,6730,6731],{"class":3202}," dedupe",[2911,6733,3206],{"class":3195},[2911,6735,4402],{"class":4340},[2911,6737,4344],{"class":3195},[2911,6739,3423],{"class":3202},[2911,6741,6742],{"class":2913,"line":3240},[2911,6743,4567],{"class":3195},[3608,6745,3896],{"id":6746},"reasons-for-change-8",[2877,6748,6749],{},"These aliases were removed, for greater clarity.",[2877,6751,6752,6753,6755,6756,6758,6759,3124],{},"The issue came up when adding ",[2889,6754,6598],{}," as an option to ",[2889,6757,515],{},", and we removed the boolean values as they ended up being ",[2996,6760,6761],{},"opposites",[2877,6763,6764,6767,6768,6774,6775,6778,6779,6781,6782,6785,6786,6791],{},[2889,6765,6766],{},"refresh({ dedupe: false })"," meant ",[3133,6769,6770,6771,6773],{},"do not ",[2996,6772,6626],{}," existing requests in favour of this new one",". But passing ",[2889,6776,6777],{},"dedupe: true"," within the options of ",[2889,6780,515],{}," means ",[3133,6783,6784],{},"do not make any new requests if there is an existing pending request."," (See ",[2881,6787,6790],{"href":6788,"rel":6789},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fpull\u002F24564#pullrequestreview-1764584361",[2885],"PR",".)",[3608,6793,3938],{"id":6794},"migration-steps-12",[2877,6796,5075],{},[2901,6798,6800],{"className":4578,"code":6799,"language":4580,"meta":2907,"style":2907},"  const { refresh } = await useAsyncData(async () => ({ message: 'Hello, Nuxt 3!' }))\n  \n  async function refreshData () {\n-   await refresh({ dedupe: true })\n+   await refresh({ dedupe: 'cancel' })\n\n-   await refresh({ dedupe: false })\n+   await refresh({ dedupe: 'defer' })\n  }\n",[2889,6801,6802,6807,6811,6816,6823,6830,6834,6841,6848],{"__ignoreMap":2907},[2911,6803,6804],{"class":2913,"line":2914},[2911,6805,6806],{"class":3191},"  const { refresh } = await useAsyncData(async () => ({ message: 'Hello, Nuxt 3!' }))\n",[2911,6808,6809],{"class":2913,"line":3199},[2911,6810,5090],{"class":3191},[2911,6812,6813],{"class":2913,"line":3212},[2911,6814,6815],{"class":3191},"  async function refreshData () {\n",[2911,6817,6818,6820],{"class":2913,"line":3227},[2911,6819,4592],{"class":3195},[2911,6821,6822],{"class":3202},"   await refresh({ dedupe: true })\n",[2911,6824,6825,6827],{"class":2913,"line":3233},[2911,6826,4614],{"class":3195},[2911,6828,6829],{"class":2921},"   await refresh({ dedupe: 'cancel' })\n",[2911,6831,6832],{"class":2913,"line":3240},[2911,6833,4900],{"emptyLinePlaceholder":1196},[2911,6835,6836,6838],{"class":2913,"line":3246},[2911,6837,4592],{"class":3195},[2911,6839,6840],{"class":3202},"   await refresh({ dedupe: false })\n",[2911,6842,6843,6845],{"class":2913,"line":3252},[2911,6844,4614],{"class":3195},[2911,6846,6847],{"class":2921},"   await refresh({ dedupe: 'defer' })\n",[2911,6849,6850],{"class":2913,"line":3258},[2911,6851,4609],{"class":3191},[4026,6853,6854],{},[2877,6855,6486,6856],{},[2889,6857,6858],{},"npx codemod@latest nuxt\u002F4\u002Fdeprecated-dedupe-value",[2872,6860,6862,6863,6603,6865,3648,6867],{"id":6861},"respect-defaults-when-clearing-data-in-useasyncdata-and-usefetch","Respect defaults when clearing ",[2889,6864,4189],{},[2889,6866,515],{},[2889,6868,527],{},[2877,6870,3587,6871,4738],{},[3133,6872,3590],{},[3608,6874,3611],{"id":6875},"what-changed-12",[2877,6877,6878,6879,6881,6882,6884,6885,3982,6888,6890],{},"If you provide a custom ",[2889,6880,4211],{}," value for ",[2889,6883,515],{},", this will now be used when calling ",[2889,6886,6887],{},"clear",[2889,6889,650],{}," and it will be reset to its default value rather than simply unset.",[3608,6892,3896],{"id":6893},"reasons-for-change-9",[2877,6895,6896,6897,6899,6900,6902],{},"Often users set an appropriately empty value, such as an empty array, to avoid the need to check for ",[2889,6898,6451],{},"\u002F",[2889,6901,6439],{}," when iterating over it. This should be respected when resetting\u002Fclearing the data.",[3608,6904,3938],{"id":6905},"migration-steps-13",[2877,6907,6908],{},"If you encounter any issues you can revert back to the previous behavior, for now, with:",[2901,6910,6912],{"className":3170,"code":6911,"filename":233,"language":3172,"meta":3173,"style":2907},"export default defineNuxtConfig({\n  experimental: {\n    resetAsyncDataToUndefined: true,\n  },\n})\n",[2889,6913,6914,6926,6934,6945,6949],{"__ignoreMap":2907},[2911,6915,6916,6918,6920,6922,6924],{"class":2913,"line":2914},[2911,6917,3181],{"class":3180},[2911,6919,3184],{"class":3180},[2911,6921,3188],{"class":3187},[2911,6923,3192],{"class":3191},[2911,6925,3196],{"class":3195},[2911,6927,6928,6930,6932],{"class":2913,"line":3199},[2911,6929,4693],{"class":3202},[2911,6931,3206],{"class":3195},[2911,6933,3209],{"class":3195},[2911,6935,6936,6939,6941,6943],{"class":2913,"line":3212},[2911,6937,6938],{"class":3202},"    resetAsyncDataToUndefined",[2911,6940,3206],{"class":3195},[2911,6942,4402],{"class":4340},[2911,6944,3224],{"class":3195},[2911,6946,6947],{"class":2913,"line":3227},[2911,6948,3230],{"class":3195},[2911,6950,6951,6953],{"class":2913,"line":3233},[2911,6952,3420],{"class":3195},[2911,6954,3423],{"class":3191},[2877,6956,6957],{},"Please report an issue if you are doing so, as we do not plan to keep this as configurable.",[2872,6959,6961,6962,6965,6966,3648,6968],{"id":6960},"alignment-of-pending-value-in-useasyncdata-and-usefetch","Alignment of ",[2889,6963,6964],{},"pending"," value in ",[2889,6967,515],{},[2889,6969,527],{},[2877,6971,3587,6972,6130],{},[3133,6973,3590],{},[2877,6975,6976,6977,6979,6980,3644,6982,3644,6984,3648,6986,6988,6989,6991,6992,6994],{},"The ",[2889,6978,6964],{}," object returned from ",[2889,6981,515],{},[2889,6983,527],{},[2889,6985,543],{},[2889,6987,547],{}," is now a computed property that is ",[2889,6990,6629],{}," only when ",[2889,6993,4195],{}," is also pending.",[3608,6996,3611],{"id":6997},"what-changed-13",[2877,6999,7000,7001,7004,7005,7007,7008,7010,7011,7013,7014,7016],{},"Now, when ",[2889,7002,7003],{},"immediate: false"," is passed, ",[2889,7006,6964],{}," will be ",[2889,7009,6636],{}," until the first request is made. This is a change from the previous behavior, where ",[2889,7012,6964],{}," was always ",[2889,7015,6629],{}," until the first request was made.",[3608,7018,3896],{"id":7019},"reasons-for-change-10",[2877,7021,7022,7023,7025,7026,7028,7029,7031],{},"This aligns the meaning of ",[2889,7024,6964],{}," with the ",[2889,7027,4195],{}," property, which is also ",[2889,7030,6964],{}," when the request is in progress.",[3608,7033,3938],{"id":7034},"migration-steps-14",[2877,7036,7037,7038,7040,7041,7043,7044,7046],{},"If you rely on the ",[2889,7039,6964],{}," property, ensure that your logic accounts for the new behavior where ",[2889,7042,6964],{}," will only be ",[2889,7045,6629],{}," when the status is also pending.",[2901,7048,7050],{"className":4578,"code":7049,"language":4580,"meta":2907,"style":2907},"  \u003Ctemplate>\n-   \u003Cdiv v-if=\"!pending\">\n+   \u003Cdiv v-if=\"status === 'success'\">\n      \u003Cp>Data: {{ data }}\u003C\u002Fp>\n    \u003C\u002Fdiv>\n    \u003Cdiv v-else>\n      \u003Cp>Loading...\u003C\u002Fp>\n    \u003C\u002Fdiv>\n  \u003C\u002Ftemplate>\n  \u003Cscript setup lang=\"ts\">\n  const { data, pending, execute, status } = await useAsyncData(() => fetch('\u002Fapi\u002Fdata'), {\n    immediate: false\n  })\n  onMounted(() => execute())\n  \u003C\u002Fscript>\n",[2889,7051,7052,7057,7064,7071,7076,7081,7086,7091,7095,7100,7104,7109,7114,7118,7123],{"__ignoreMap":2907},[2911,7053,7054],{"class":2913,"line":2914},[2911,7055,7056],{"class":3191},"  \u003Ctemplate>\n",[2911,7058,7059,7061],{"class":2913,"line":3199},[2911,7060,4592],{"class":3195},[2911,7062,7063],{"class":3202},"   \u003Cdiv v-if=\"!pending\">\n",[2911,7065,7066,7068],{"class":2913,"line":3212},[2911,7067,4614],{"class":3195},[2911,7069,7070],{"class":2921},"   \u003Cdiv v-if=\"status === 'success'\">\n",[2911,7072,7073],{"class":2913,"line":3227},[2911,7074,7075],{"class":3191},"      \u003Cp>Data: {{ data }}\u003C\u002Fp>\n",[2911,7077,7078],{"class":2913,"line":3233},[2911,7079,7080],{"class":3191},"    \u003C\u002Fdiv>\n",[2911,7082,7083],{"class":2913,"line":3240},[2911,7084,7085],{"class":3191},"    \u003Cdiv v-else>\n",[2911,7087,7088],{"class":2913,"line":3246},[2911,7089,7090],{"class":3191},"      \u003Cp>Loading...\u003C\u002Fp>\n",[2911,7092,7093],{"class":2913,"line":3252},[2911,7094,7080],{"class":3191},[2911,7096,7097],{"class":2913,"line":3258},[2911,7098,7099],{"class":3191},"  \u003C\u002Ftemplate>\n",[2911,7101,7102],{"class":2913,"line":3264},[2911,7103,5788],{"class":3191},[2911,7105,7106],{"class":2913,"line":3270},[2911,7107,7108],{"class":3191},"  const { data, pending, execute, status } = await useAsyncData(() => fetch('\u002Fapi\u002Fdata'), {\n",[2911,7110,7111],{"class":2913,"line":3276},[2911,7112,7113],{"class":3191},"    immediate: false\n",[2911,7115,7116],{"class":2913,"line":3282},[2911,7117,5812],{"class":3191},[2911,7119,7120],{"class":2913,"line":3288},[2911,7121,7122],{"class":3191},"  onMounted(() => execute())\n",[2911,7124,7125],{"class":2913,"line":3294},[2911,7126,5835],{"class":3191},[2877,7128,7129],{},"Alternatively, you can temporarily revert to the previous behavior with:",[2901,7131,7133],{"className":3170,"code":7132,"filename":233,"language":3172,"meta":3173,"style":2907},"export default defineNuxtConfig({\n  experimental: {\n    pendingWhenIdle: true,\n  },\n})\n",[2889,7134,7135,7147,7155,7166,7170],{"__ignoreMap":2907},[2911,7136,7137,7139,7141,7143,7145],{"class":2913,"line":2914},[2911,7138,3181],{"class":3180},[2911,7140,3184],{"class":3180},[2911,7142,3188],{"class":3187},[2911,7144,3192],{"class":3191},[2911,7146,3196],{"class":3195},[2911,7148,7149,7151,7153],{"class":2913,"line":3199},[2911,7150,4693],{"class":3202},[2911,7152,3206],{"class":3195},[2911,7154,3209],{"class":3195},[2911,7156,7157,7160,7162,7164],{"class":2913,"line":3212},[2911,7158,7159],{"class":3202},"    pendingWhenIdle",[2911,7161,3206],{"class":3195},[2911,7163,4402],{"class":4340},[2911,7165,3224],{"class":3195},[2911,7167,7168],{"class":2913,"line":3227},[2911,7169,3230],{"class":3195},[2911,7171,7172,7174],{"class":2913,"line":3233},[2911,7173,3420],{"class":3195},[2911,7175,3423],{"class":3191},[2872,7177,7179,7180,3648,7182],{"id":7178},"key-change-behavior-in-useasyncdata-and-usefetch","Key Change Behavior in ",[2889,7181,515],{},[2889,7183,527],{},[2877,7185,3587,7186,6130],{},[3133,7187,3590],{},[3608,7189,3611],{"id":7190},"what-changed-14",[2877,7192,7193,7194,3982,7196,7198,7199,7201,7202,7204],{},"When using reactive keys in ",[2889,7195,515],{},[2889,7197,527],{},", Nuxt automatically refetches data when the key changes. When ",[2889,7200,7003],{}," is set, ",[2889,7203,515],{}," will only fetch data when the key changes if the data has already been fetched once.",[2877,7206,7207,7208,7210],{},"Previously, ",[2889,7209,527],{}," had slightly different behavior. It would always fetch data when the key changed.",[2877,7212,7213,7214,3648,7216,7218],{},"Now, ",[2889,7215,527],{},[2889,7217,515],{}," behave consistently - by only fetch data when the key changes if the data has already been fetched once.",[3608,7220,3896],{"id":7221},"reasons-for-change-11",[2877,7223,7224,7225,3648,7227,7229,7230,7232,7233,3982,7235,7238,7239,3982,7241,3124],{},"This ensures consistent behavior between ",[2889,7226,515],{},[2889,7228,527],{},", and prevents unexpected fetches. If you have set ",[2889,7231,7003],{},", then you must call ",[2889,7234,6602],{},[2889,7236,7237],{},"execute"," or data will never be fetched in ",[2889,7240,527],{},[2889,7242,515],{},[3608,7244,3938],{"id":7245},"migration-steps-15",[2877,7247,7248,7249,7251],{},"This change should generally improve the expected behavior, but if you were expecting changing the key or options of a non-immediate ",[2889,7250,527],{},", you now will need to trigger it manually the first time.",[2901,7253,7255],{"className":4578,"code":7254,"language":4580,"meta":2907,"style":2907},"  const id = ref('123')\n  const { data, execute } = await useFetch('\u002Fapi\u002Ftest', {\n    query: { id },\n    immediate: false\n  )\n+ watch(id, () => execute(), { once: true })\n",[2889,7256,7257,7262,7267,7272,7276,7280],{"__ignoreMap":2907},[2911,7258,7259],{"class":2913,"line":2914},[2911,7260,7261],{"class":3191},"  const id = ref('123')\n",[2911,7263,7264],{"class":2913,"line":3199},[2911,7265,7266],{"class":3191},"  const { data, execute } = await useFetch('\u002Fapi\u002Ftest', {\n",[2911,7268,7269],{"class":2913,"line":3212},[2911,7270,7271],{"class":3191},"    query: { id },\n",[2911,7273,7274],{"class":2913,"line":3227},[2911,7275,7113],{"class":3191},[2911,7277,7278],{"class":2913,"line":3233},[2911,7279,4562],{"class":3191},[2911,7281,7282,7284],{"class":2913,"line":3240},[2911,7283,4614],{"class":3195},[2911,7285,7286],{"class":2921}," watch(id, () => execute(), { once: true })\n",[2877,7288,7289],{},"To opt out of this behavior:",[2901,7291,7293],{"className":3170,"code":7292,"language":3172,"meta":2907,"style":2907},"\u002F\u002F Or globally in your Nuxt config\nexport default defineNuxtConfig({\n  experimental: {\n    alwaysRunFetchOnKeyChange: true,\n  },\n})\n",[2889,7294,7295,7300,7312,7320,7331,7335],{"__ignoreMap":2907},[2911,7296,7297],{"class":2913,"line":2914},[2911,7298,7299],{"class":3236},"\u002F\u002F Or globally in your Nuxt config\n",[2911,7301,7302,7304,7306,7308,7310],{"class":2913,"line":3199},[2911,7303,3181],{"class":3180},[2911,7305,3184],{"class":3180},[2911,7307,3188],{"class":3187},[2911,7309,3192],{"class":3191},[2911,7311,3196],{"class":3195},[2911,7313,7314,7316,7318],{"class":2913,"line":3212},[2911,7315,4693],{"class":3202},[2911,7317,3206],{"class":3195},[2911,7319,3209],{"class":3195},[2911,7321,7322,7325,7327,7329],{"class":2913,"line":3227},[2911,7323,7324],{"class":3202},"    alwaysRunFetchOnKeyChange",[2911,7326,3206],{"class":3195},[2911,7328,4402],{"class":4340},[2911,7330,3224],{"class":3195},[2911,7332,7333],{"class":2913,"line":3233},[2911,7334,3230],{"class":3195},[2911,7336,7337,7339],{"class":2913,"line":3240},[2911,7338,3420],{"class":3195},[2911,7340,3423],{"class":3191},[2872,7342,7344,7345,3648,7347],{"id":7343},"shallow-data-reactivity-in-useasyncdata-and-usefetch","Shallow Data Reactivity in ",[2889,7346,515],{},[2889,7348,527],{},[2877,7350,3587,7351,4738],{},[3133,7352,3590],{},[2877,7354,6976,7355,6979,7357,3644,7359,3644,7361,3648,7363,7365,7366,7369,7370,3124],{},[2889,7356,4189],{},[2889,7358,515],{},[2889,7360,527],{},[2889,7362,543],{},[2889,7364,547],{}," is now a ",[2889,7367,7368],{},"shallowRef"," rather than a ",[2889,7371,7372],{},"ref",[3608,7374,3611],{"id":7375},"what-changed-15",[2877,7377,7378,7379,7381,7382,7384],{},"When new data is fetched, anything depending on ",[2889,7380,4189],{}," will still be reactive because the entire object is replaced. But if your code changes a property ",[2996,7383,5733],{}," that data structure, this will not trigger any reactivity in your app.",[3608,7386,3896],{"id":7387},"reasons-for-change-12",[2877,7389,7390,7391,7394,7395,7397],{},"This brings a ",[3133,7392,7393],{},"significant"," performance improvement for deeply nested objects and arrays because Vue does not need to watch every single property\u002Farray for modification. In most cases, ",[2889,7396,4189],{}," should also be immutable.",[3608,7399,3938],{"id":7400},"migration-steps-16",[2877,7402,7403],{},"In most cases, no migration steps are required, but if you rely on the reactivity of the data object then you have two options:",[3898,7405,7406,7428],{},[3616,7407,7408,7409],{},"You can granularly opt in to deep reactivity on a per-composable basis:\n",[2901,7410,7412],{"className":4578,"code":7411,"language":4580,"meta":2907,"style":2907},"- const { data } = useFetch('\u002Fapi\u002Ftest')\n+ const { data } = useFetch('\u002Fapi\u002Ftest', { deep: true })\n",[2889,7413,7414,7421],{"__ignoreMap":2907},[2911,7415,7416,7418],{"class":2913,"line":2914},[2911,7417,4592],{"class":3195},[2911,7419,7420],{"class":3202}," const { data } = useFetch('\u002Fapi\u002Ftest')\n",[2911,7422,7423,7425],{"class":2913,"line":3199},[2911,7424,4614],{"class":3195},[2911,7426,7427],{"class":2921}," const { data } = useFetch('\u002Fapi\u002Ftest', { deep: true })\n",[3616,7429,7430,7431],{},"You can change the default behavior on a project-wide basis (not recommended):\n",[2901,7432,7434],{"className":3170,"code":7433,"filename":233,"language":3172,"meta":3173,"style":2907},"export default defineNuxtConfig({\n  experimental: {\n    defaults: {\n      useAsyncData: {\n        deep: true,\n      },\n    },\n  },\n})\n",[2889,7435,7436,7448,7456,7464,7472,7483,7487,7491,7495],{"__ignoreMap":2907},[2911,7437,7438,7440,7442,7444,7446],{"class":2913,"line":2914},[2911,7439,3181],{"class":3180},[2911,7441,3184],{"class":3180},[2911,7443,3188],{"class":3187},[2911,7445,3192],{"class":3191},[2911,7447,3196],{"class":3195},[2911,7449,7450,7452,7454],{"class":2913,"line":3199},[2911,7451,4693],{"class":3202},[2911,7453,3206],{"class":3195},[2911,7455,3209],{"class":3195},[2911,7457,7458,7460,7462],{"class":2913,"line":3212},[2911,7459,6522],{"class":3202},[2911,7461,3206],{"class":3195},[2911,7463,3209],{"class":3195},[2911,7465,7466,7468,7470],{"class":2913,"line":3227},[2911,7467,6531],{"class":3202},[2911,7469,3206],{"class":3195},[2911,7471,3209],{"class":3195},[2911,7473,7474,7477,7479,7481],{"class":2913,"line":3233},[2911,7475,7476],{"class":3202},"        deep",[2911,7478,3206],{"class":3195},[2911,7480,4402],{"class":4340},[2911,7482,3224],{"class":3195},[2911,7484,7485],{"class":2913,"line":3240},[2911,7486,6570],{"class":3195},[2911,7488,7489],{"class":2913,"line":3246},[2911,7490,4557],{"class":3195},[2911,7492,7493],{"class":2913,"line":3252},[2911,7494,3230],{"class":3195},[2911,7496,7497,7499],{"class":2913,"line":3258},[2911,7498,3420],{"class":3195},[2911,7500,3423],{"class":3191},[4026,7502,7503],{},[2877,7504,7505,7506],{},"If you need to, you can automate this step by running ",[2889,7507,7508],{},"npx codemod@latest nuxt\u002F4\u002Fshallow-function-reactivity",[2872,7510,7512,7513],{"id":7511},"absolute-watch-paths-in-builderwatch","Absolute Watch Paths in ",[2889,7514,7515],{},"builder:watch",[2877,7517,3587,7518,4738],{},[3133,7519,3590],{},[3608,7521,3611],{"id":7522},"what-changed-16",[2877,7524,7525,7526,7528,7529,3124],{},"The Nuxt ",[2889,7527,7515],{}," hook now emits a path which is absolute rather than relative to your project ",[2889,7530,3621],{},[3608,7532,3896],{"id":7533},"reasons-for-change-13",[2877,7535,7536,7537,7539],{},"This allows us to support watching paths which are outside your ",[2889,7538,3621],{},", and offers better support for layers and other more complex patterns.",[3608,7541,3938],{"id":7542},"migration-steps-17",[2877,7544,7545,7546,3124],{},"We have already proactively migrated the public Nuxt modules which we are aware use this hook. See ",[2881,7547,7550],{"href":7548,"rel":7549},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F25339",[2885],"issue #25339",[2877,7552,7553,7554,7556],{},"However, if you are a module author using the ",[2889,7555,7515],{}," hook and wishing to remain backwards\u002Fforwards compatible, you can use the following code to ensure that your code works the same in both Nuxt v3 and Nuxt v4:",[2901,7558,7560],{"className":4578,"code":7559,"language":4580,"meta":2907,"style":2907},"+ import { relative, resolve } from 'node:fs'\n  \u002F\u002F ...\n  nuxt.hook('builder:watch', async (event, path) => {\n+   path = relative(nuxt.options.srcDir, resolve(nuxt.options.srcDir, path))\n    \u002F\u002F ...\n  })\n",[2889,7561,7562,7569,7574,7579,7586,7591],{"__ignoreMap":2907},[2911,7563,7564,7566],{"class":2913,"line":2914},[2911,7565,4614],{"class":3195},[2911,7567,7568],{"class":2921}," import { relative, resolve } from 'node:fs'\n",[2911,7570,7571],{"class":2913,"line":3199},[2911,7572,7573],{"class":3191},"  \u002F\u002F ...\n",[2911,7575,7576],{"class":2913,"line":3212},[2911,7577,7578],{"class":3191},"  nuxt.hook('builder:watch', async (event, path) => {\n",[2911,7580,7581,7583],{"class":2913,"line":3227},[2911,7582,4614],{"class":3195},[2911,7584,7585],{"class":2921},"   path = relative(nuxt.options.srcDir, resolve(nuxt.options.srcDir, path))\n",[2911,7587,7588],{"class":2913,"line":3233},[2911,7589,7590],{"class":3191},"    \u002F\u002F ...\n",[2911,7592,7593],{"class":2913,"line":3240},[2911,7594,5812],{"class":3191},[4026,7596,7597],{},[2877,7598,6486,7599],{},[2889,7600,7601],{},"npx codemod@latest nuxt\u002F4\u002Fabsolute-watch-path",[2872,7603,7605,7606,7609],{"id":7604},"removal-of-window__nuxt__-object","Removal of ",[2889,7607,7608],{},"window.__NUXT__"," object",[3608,7611,3611],{"id":7612},"what-changed-17",[2877,7614,7615,7616,7618],{},"We are removing the global ",[2889,7617,7608],{}," object after the app finishes hydration.",[3608,7620,3896],{"id":7621},"reasons-for-change-14",[2877,7623,7624,7625,7630,7631,3124],{},"This opens the way to multi-app patterns (",[2881,7626,7629],{"href":7627,"rel":7628},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F21635",[2885],"#21635",") and enables us to focus on a single way to access Nuxt app data - ",[2889,7632,7633],{},"useNuxtApp()",[3608,7635,3938],{"id":7636},"migration-steps-18",[2877,7638,7639,7640,3206],{},"The data is still available, but can be accessed with ",[2889,7641,7642],{},"useNuxtApp().payload",[2901,7644,7646],{"className":4578,"code":7645,"language":4580,"meta":2907,"style":2907},"- console.log(window.__NUXT__)\n+ console.log(useNuxtApp().payload)\n",[2889,7647,7648,7655],{"__ignoreMap":2907},[2911,7649,7650,7652],{"class":2913,"line":2914},[2911,7651,4592],{"class":3195},[2911,7653,7654],{"class":3202}," console.log(window.__NUXT__)\n",[2911,7656,7657,7659],{"class":2913,"line":3199},[2911,7658,4614],{"class":3195},[2911,7660,7661],{"class":2921}," console.log(useNuxtApp().payload)\n",[2872,7663,7665],{"id":7664},"directory-index-scanning","Directory index scanning",[2877,7667,3587,7668,6130],{},[3133,7669,3590],{},[3608,7671,3611],{"id":7672},"what-changed-18",[2877,7674,7675,7676,7678,7679,7682],{},"Child folders in your ",[2889,7677,3962],{}," folder are also scanned for ",[2889,7680,7681],{},"index"," files and these are now also registered as middleware in your project.",[3608,7684,3896],{"id":7685},"reasons-for-change-15",[2877,7687,7688,7689,3648,7691,3124],{},"Nuxt scans a number of folders automatically, including ",[2889,7690,3962],{},[2889,7692,3967],{},[2877,7694,7675,7695,7697,7698,7700],{},[2889,7696,3967],{}," folder are scanned for ",[2889,7699,7681],{}," files and we wanted to make this behavior consistent between scanned directories.",[3608,7702,3938],{"id":7703},"migration-steps-19",[2877,7705,7706],{},"Probably no migration is necessary but if you wish to revert to previous behavior you can add a hook to filter out these middleware:",[2901,7708,7710],{"className":3170,"code":7709,"language":3172,"meta":2907,"style":2907},"export default defineNuxtConfig({\n  hooks: {\n    'app:resolve' (app) {\n      app.middleware = app.middleware.filter(mw => !\u002F\\\u002Findex\\.[^\u002F]+$\u002F.test(mw.path))\n    },\n  },\n})\n",[2889,7711,7712,7724,7733,7751,7822,7826,7830],{"__ignoreMap":2907},[2911,7713,7714,7716,7718,7720,7722],{"class":2913,"line":2914},[2911,7715,3181],{"class":3180},[2911,7717,3184],{"class":3180},[2911,7719,3188],{"class":3187},[2911,7721,3192],{"class":3191},[2911,7723,3196],{"class":3195},[2911,7725,7726,7729,7731],{"class":2913,"line":3199},[2911,7727,7728],{"class":3202},"  hooks",[2911,7730,3206],{"class":3195},[2911,7732,3209],{"class":3195},[2911,7734,7735,7738,7741,7743,7745,7747,7749],{"class":2913,"line":3212},[2911,7736,7737],{"class":3195},"    '",[2911,7739,7740],{"class":2921},"app:resolve",[2911,7742,4112],{"class":3195},[2911,7744,4432],{"class":3195},[2911,7746,1193],{"class":4435},[2911,7748,4328],{"class":3195},[2911,7750,3209],{"class":3195},[2911,7752,7753,7756,7758,7760,7762,7765,7767,7769,7771,7774,7776,7779,7781,7784,7786,7789,7791,7794,7797,7799,7802,7805,7807,7809,7812,7814,7816,7818,7820],{"class":2913,"line":3227},[2911,7754,7755],{"class":3191},"      app",[2911,7757,3124],{"class":3195},[2911,7759,157],{"class":3191},[2911,7761,4292],{"class":3195},[2911,7763,7764],{"class":3191}," app",[2911,7766,3124],{"class":3195},[2911,7768,157],{"class":3191},[2911,7770,3124],{"class":3195},[2911,7772,7773],{"class":3187},"filter",[2911,7775,3192],{"class":3202},[2911,7777,7778],{"class":4435},"mw",[2911,7780,4313],{"class":4275},[2911,7782,7783],{"class":3195}," !",[2911,7785,6899],{"class":3195},[2911,7787,7788],{"class":3191},"\\\u002F",[2911,7790,7681],{"class":2921},[2911,7792,7793],{"class":3191},"\\.",[2911,7795,7796],{"class":3195},"[^",[2911,7798,6899],{"class":2921},[2911,7800,7801],{"class":3195},"]+",[2911,7803,7804],{"class":3180},"$",[2911,7806,6899],{"class":3195},[2911,7808,3124],{"class":3195},[2911,7810,7811],{"class":3187},"test",[2911,7813,3192],{"class":3202},[2911,7815,7778],{"class":3191},[2911,7817,3124],{"class":3195},[2911,7819,5048],{"class":3191},[2911,7821,6699],{"class":3202},[2911,7823,7824],{"class":2913,"line":3233},[2911,7825,4557],{"class":3195},[2911,7827,7828],{"class":2913,"line":3240},[2911,7829,3230],{"class":3195},[2911,7831,7832,7834],{"class":2913,"line":3246},[2911,7833,3420],{"class":3195},[2911,7835,3423],{"class":3191},[2872,7837,7839],{"id":7838},"template-compilation-changes","Template Compilation Changes",[2877,7841,3587,7842,4738],{},[3133,7843,3590],{},[3608,7845,3611],{"id":7846},"what-changed-19",[2877,7848,7849,7850,7853,7854,7857],{},"Previously, Nuxt used ",[2889,7851,7852],{},"lodash\u002Ftemplate"," to compile templates located on the file system using the ",[2889,7855,7856],{},".ejs"," file format\u002Fsyntax.",[2877,7859,7860,7861,3644,7864,3644,7867,7870],{},"In addition, we provided some template utilities (",[2889,7862,7863],{},"serialize",[2889,7865,7866],{},"importName",[2889,7868,7869],{},"importSources",") which could be used for code-generation within these templates, which are now being removed.",[3608,7872,3896],{"id":7873},"reasons-for-change-16",[2877,7875,7876,7877,7880],{},"In Nuxt v3 we moved to a 'virtual' syntax with a ",[2889,7878,7879],{},"getContents()"," function which is much more flexible and performant.",[2877,7882,7883,7884,7886,7887,7890],{},"In addition, ",[2889,7885,7852],{}," has had a succession of security issues. These do not really apply to Nuxt projects because it is being used at build-time, not runtime, and by trusted code. However, they still appear in security audits. Moreover, ",[2889,7888,7889],{},"lodash"," is a hefty dependency and is unused by most projects.",[2877,7892,7893,7894,7899],{},"Finally, providing code serialization functions directly within Nuxt is not ideal. Instead, we maintain projects like ",[2881,7895,7898],{"href":7896,"rel":7897},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fknitwork",[2885],"unjs\u002Fknitwork"," which can be dependencies of your project, and where security issues can be reported\u002Fresolved directly without requiring an upgrade of Nuxt itself.",[3608,7901,3938],{"id":7902},"migration-steps-20",[2877,7904,7905],{},"We have raised PRs to update modules using EJS syntax, but if you need to do this yourself, you have three backwards\u002Fforwards-compatible alternatives:",[3613,7907,7908,7913,7920],{},[3616,7909,7910,7911,3124],{},"Moving your string interpolation logic directly into ",[2889,7912,7879],{},[3616,7914,7915,7916,3124],{},"Using a custom function to handle the replacement, such as in ",[2881,7917,7918],{"href":7918,"rel":7919},"https:\u002F\u002Fgithub.com\u002Fnuxt-modules\u002Fcolor-mode\u002Fpull\u002F240",[2885],[3616,7921,7922,7923,7926,7927,7930],{},"Use ",[2889,7924,7925],{},"es-toolkit\u002Fcompat"," (a drop-in replacement for lodash template), as a dependency of ",[2996,7928,7929],{},"your"," project rather than Nuxt:",[2901,7932,7934],{"className":4578,"code":7933,"language":4580,"meta":2907,"style":2907},"+ import { readFileSync } from 'node:fs'\n+ import { template } from 'es-toolkit\u002Fcompat'\n  \u002F\u002F ...\n  addTemplate({\n    fileName: 'appinsights-vue.js'\n    options: { \u002F* some options *\u002F },\n-   src: resolver.resolve('.\u002Fruntime\u002Fplugin.ejs'),\n+   getContents({ options }) {\n+     const contents = readFileSync(resolver.resolve('.\u002Fruntime\u002Fplugin.ejs'), 'utf-8')\n+     return template(contents)({ options })\n+   },\n  })\n",[2889,7935,7936,7943,7950,7954,7959,7964,7969,7976,7983,7990,7997,8004],{"__ignoreMap":2907},[2911,7937,7938,7940],{"class":2913,"line":2914},[2911,7939,4614],{"class":3195},[2911,7941,7942],{"class":2921}," import { readFileSync } from 'node:fs'\n",[2911,7944,7945,7947],{"class":2913,"line":3199},[2911,7946,4614],{"class":3195},[2911,7948,7949],{"class":2921}," import { template } from 'es-toolkit\u002Fcompat'\n",[2911,7951,7952],{"class":2913,"line":3212},[2911,7953,7573],{"class":3191},[2911,7955,7956],{"class":2913,"line":3227},[2911,7957,7958],{"class":3191},"  addTemplate({\n",[2911,7960,7961],{"class":2913,"line":3233},[2911,7962,7963],{"class":3191},"    fileName: 'appinsights-vue.js'\n",[2911,7965,7966],{"class":2913,"line":3240},[2911,7967,7968],{"class":3191},"    options: { \u002F* some options *\u002F },\n",[2911,7970,7971,7973],{"class":2913,"line":3246},[2911,7972,4592],{"class":3195},[2911,7974,7975],{"class":3202},"   src: resolver.resolve('.\u002Fruntime\u002Fplugin.ejs'),\n",[2911,7977,7978,7980],{"class":2913,"line":3252},[2911,7979,4614],{"class":3195},[2911,7981,7982],{"class":2921},"   getContents({ options }) {\n",[2911,7984,7985,7987],{"class":2913,"line":3258},[2911,7986,4614],{"class":3195},[2911,7988,7989],{"class":2921},"     const contents = readFileSync(resolver.resolve('.\u002Fruntime\u002Fplugin.ejs'), 'utf-8')\n",[2911,7991,7992,7994],{"class":2913,"line":3264},[2911,7993,4614],{"class":3195},[2911,7995,7996],{"class":2921},"     return template(contents)({ options })\n",[2911,7998,7999,8001],{"class":2913,"line":3270},[2911,8000,4614],{"class":3195},[2911,8002,8003],{"class":2921},"   },\n",[2911,8005,8006],{"class":2913,"line":3276},[2911,8007,5812],{"class":3191},[2877,8009,8010,8011,3644,8013,3644,8015,8017,8018,3206],{},"Finally, if you are using the template utilities (",[2889,8012,7863],{},[2889,8014,7866],{},[2889,8016,7869],{},"), you can replace them as follows with utilities from ",[2889,8019,8020],{},"knitwork",[2901,8022,8024],{"className":3170,"code":8023,"language":3172,"meta":2907,"style":2907},"import { genDynamicImport, genImport, genSafeVariableName } from 'knitwork'\n\nconst serialize = (data: any) => JSON.stringify(data, null, 2).replace(\u002F\"\\{(.+)\\}\"(?=,?$)\u002Fgm, r => JSON.parse(r).replace(\u002F^\\{(.*)\\}$\u002F, '$1'))\n\nconst importSources = (sources: string | string[], { lazy = false } = {}) => {\n  return toArray(sources).map((src) => {\n    if (lazy) {\n      return `const ${genSafeVariableName(src)} = ${genDynamicImport(src, { comment: `webpackChunkName: ${JSON.stringify(src)}` })}`\n    }\n    return genImport(src, genSafeVariableName(src))\n  }).join('\\n')\n}\n\nconst importName = genSafeVariableName\n",[2889,8025,8026,8055,8059,8198,8202,8250,8281,8295,8361,8365,8386,8409,8413,8417],{"__ignoreMap":2907},[2911,8027,8028,8030,8032,8035,8037,8040,8042,8045,8047,8049,8051,8053],{"class":2913,"line":2914},[2911,8029,5370],{"class":3180},[2911,8031,4279],{"class":3195},[2911,8033,8034],{"class":3191}," genDynamicImport",[2911,8036,4307],{"class":3195},[2911,8038,8039],{"class":3191}," genImport",[2911,8041,4307],{"class":3195},[2911,8043,8044],{"class":3191}," genSafeVariableName",[2911,8046,4344],{"class":3195},[2911,8048,5385],{"class":3180},[2911,8050,4107],{"class":3195},[2911,8052,8020],{"class":2921},[2911,8054,5393],{"class":3195},[2911,8056,8057],{"class":2913,"line":3199},[2911,8058,4900],{"emptyLinePlaceholder":1196},[2911,8060,8061,8063,8066,8068,8070,8072,8074,8077,8079,8081,8084,8086,8089,8092,8094,8097,8100,8102,8104,8107,8109,8111,8113,8116,8118,8120,8123,8126,8128,8131,8133,8136,8138,8141,8144,8146,8149,8151,8153,8155,8158,8161,8163,8165,8167,8169,8172,8174,8176,8178,8181,8183,8185,8187,8189,8191,8194,8196],{"class":2913,"line":3212},[2911,8062,4276],{"class":4275},[2911,8064,8065],{"class":3191}," serialize ",[2911,8067,5609],{"class":3195},[2911,8069,4432],{"class":3195},[2911,8071,4189],{"class":4435},[2911,8073,3206],{"class":3195},[2911,8075,8076],{"class":2917}," any",[2911,8078,4328],{"class":3195},[2911,8080,4313],{"class":4275},[2911,8082,8083],{"class":3191}," JSON",[2911,8085,3124],{"class":3195},[2911,8087,8088],{"class":3187},"stringify",[2911,8090,8091],{"class":3191},"(data",[2911,8093,4307],{"class":3195},[2911,8095,8096],{"class":3195}," null,",[2911,8098,8099],{"class":3220}," 2",[2911,8101,4328],{"class":3191},[2911,8103,3124],{"class":3195},[2911,8105,8106],{"class":3187},"replace",[2911,8108,3192],{"class":3191},[2911,8110,6899],{"class":3195},[2911,8112,5612],{"class":2921},[2911,8114,8115],{"class":3191},"\\{",[2911,8117,3192],{"class":3195},[2911,8119,3124],{"class":2921},[2911,8121,8122],{"class":3195},"+)",[2911,8124,8125],{"class":3191},"\\}",[2911,8127,5612],{"class":2921},[2911,8129,8130],{"class":3195},"(?=",[2911,8132,4307],{"class":2921},[2911,8134,8135],{"class":3195},"?",[2911,8137,7804],{"class":3180},[2911,8139,8140],{"class":3195},")\u002F",[2911,8142,8143],{"class":3220},"gm",[2911,8145,4307],{"class":3195},[2911,8147,8148],{"class":4435}," r",[2911,8150,4313],{"class":4275},[2911,8152,8083],{"class":3191},[2911,8154,3124],{"class":3195},[2911,8156,8157],{"class":3187},"parse",[2911,8159,8160],{"class":3191},"(r)",[2911,8162,3124],{"class":3195},[2911,8164,8106],{"class":3187},[2911,8166,3192],{"class":3191},[2911,8168,6899],{"class":3195},[2911,8170,8171],{"class":3180},"^",[2911,8173,8115],{"class":3191},[2911,8175,3192],{"class":3195},[2911,8177,3124],{"class":2921},[2911,8179,8180],{"class":3195},"*)",[2911,8182,8125],{"class":3191},[2911,8184,7804],{"class":3180},[2911,8186,6899],{"class":3195},[2911,8188,4307],{"class":3195},[2911,8190,4107],{"class":3195},[2911,8192,8193],{"class":2921},"$1",[2911,8195,4112],{"class":3195},[2911,8197,6699],{"class":3191},[2911,8199,8200],{"class":2913,"line":3227},[2911,8201,4900],{"emptyLinePlaceholder":1196},[2911,8203,8204,8206,8209,8211,8213,8216,8218,8220,8223,8225,8228,8230,8232,8235,8237,8239,8241,8243,8246,8248],{"class":2913,"line":3233},[2911,8205,4276],{"class":4275},[2911,8207,8208],{"class":3191}," importSources ",[2911,8210,5609],{"class":3195},[2911,8212,4432],{"class":3195},[2911,8214,8215],{"class":4435},"sources",[2911,8217,3206],{"class":3195},[2911,8219,4441],{"class":2917},[2911,8221,8222],{"class":3195}," |",[2911,8224,4441],{"class":2917},[2911,8226,8227],{"class":3191},"[]",[2911,8229,4307],{"class":3195},[2911,8231,4279],{"class":3195},[2911,8233,8234],{"class":4435}," lazy",[2911,8236,4292],{"class":3195},[2911,8238,4341],{"class":4340},[2911,8240,4344],{"class":3195},[2911,8242,4292],{"class":3195},[2911,8244,8245],{"class":3195}," {})",[2911,8247,4313],{"class":4275},[2911,8249,3209],{"class":3195},[2911,8251,8252,8254,8257,8259,8261,8263,8265,8268,8270,8272,8275,8277,8279],{"class":2913,"line":3240},[2911,8253,4450],{"class":3180},[2911,8255,8256],{"class":3187}," toArray",[2911,8258,3192],{"class":3202},[2911,8260,8215],{"class":3191},[2911,8262,4328],{"class":3202},[2911,8264,3124],{"class":3195},[2911,8266,8267],{"class":3187},"map",[2911,8269,3192],{"class":3202},[2911,8271,3192],{"class":3195},[2911,8273,8274],{"class":4435},"src",[2911,8276,4328],{"class":3195},[2911,8278,4313],{"class":4275},[2911,8280,3209],{"class":3195},[2911,8282,8283,8286,8288,8291,8293],{"class":2913,"line":3246},[2911,8284,8285],{"class":3180},"    if",[2911,8287,4432],{"class":3202},[2911,8289,8290],{"class":3191},"lazy",[2911,8292,5983],{"class":3202},[2911,8294,3196],{"class":3195},[2911,8296,8297,8300,8303,8306,8308,8311,8314,8316,8319,8321,8324,8327,8329,8331,8334,8336,8338,8341,8343,8346,8348,8350,8352,8354,8356,8358],{"class":2913,"line":3252},[2911,8298,8299],{"class":3180},"      return",[2911,8301,8302],{"class":3195}," `",[2911,8304,8305],{"class":2921},"const ",[2911,8307,4466],{"class":3195},[2911,8309,8310],{"class":3187},"genSafeVariableName",[2911,8312,8313],{"class":3191},"(src)",[2911,8315,3420],{"class":3195},[2911,8317,8318],{"class":2921}," = ",[2911,8320,4466],{"class":3195},[2911,8322,8323],{"class":3187},"genDynamicImport",[2911,8325,8326],{"class":3191},"(src",[2911,8328,4307],{"class":3195},[2911,8330,4279],{"class":3195},[2911,8332,8333],{"class":3202}," comment",[2911,8335,3206],{"class":3195},[2911,8337,8302],{"class":3195},[2911,8339,8340],{"class":2921},"webpackChunkName: ",[2911,8342,4466],{"class":3195},[2911,8344,8345],{"class":3191},"JSON",[2911,8347,3124],{"class":3195},[2911,8349,8088],{"class":3187},[2911,8351,8313],{"class":3191},[2911,8353,4471],{"class":3195},[2911,8355,4344],{"class":3195},[2911,8357,4328],{"class":3191},[2911,8359,8360],{"class":3195},"}`\n",[2911,8362,8363],{"class":2913,"line":3258},[2911,8364,6069],{"class":3195},[2911,8366,8367,8370,8372,8374,8376,8378,8380,8382,8384],{"class":2913,"line":3264},[2911,8368,8369],{"class":3180},"    return",[2911,8371,8039],{"class":3187},[2911,8373,3192],{"class":3202},[2911,8375,8274],{"class":3191},[2911,8377,4307],{"class":3195},[2911,8379,8044],{"class":3187},[2911,8381,3192],{"class":3202},[2911,8383,8274],{"class":3191},[2911,8385,6699],{"class":3202},[2911,8387,8388,8391,8393,8395,8398,8400,8402,8405,8407],{"class":2913,"line":3270},[2911,8389,8390],{"class":3195},"  }",[2911,8392,4328],{"class":3202},[2911,8394,3124],{"class":3195},[2911,8396,8397],{"class":3187},"join",[2911,8399,3192],{"class":3202},[2911,8401,4112],{"class":3195},[2911,8403,8404],{"class":3191},"\\n",[2911,8406,4112],{"class":3195},[2911,8408,3423],{"class":3202},[2911,8410,8411],{"class":2913,"line":3276},[2911,8412,4567],{"class":3195},[2911,8414,8415],{"class":2913,"line":3282},[2911,8416,4900],{"emptyLinePlaceholder":1196},[2911,8418,8419,8421,8424,8426],{"class":2913,"line":3288},[2911,8420,4276],{"class":4275},[2911,8422,8423],{"class":3191}," importName ",[2911,8425,5609],{"class":3195},[2911,8427,8428],{"class":3191}," genSafeVariableName\n",[4026,8430,8431],{},[2877,8432,6486,8433],{},[2889,8434,8435],{},"npx codemod@latest nuxt\u002F4\u002Ftemplate-compilation-changes",[2872,8437,8439],{"id":8438},"default-typescript-configuration-changes","Default TypeScript Configuration Changes",[2877,8441,3587,8442,4738],{},[3133,8443,3590],{},[3608,8445,3611],{"id":8446},"what-changed-20",[2877,8448,8449,8452,8453,8455,8456,3124],{},[2889,8450,8451],{},"compilerOptions.noUncheckedIndexedAccess"," is now ",[2889,8454,6629],{}," instead of ",[2889,8457,6636],{},[3608,8459,3896],{"id":8460},"reasons-for-change-17",[2877,8462,8463,8464,8469,8470,3124],{},"This change is a follow up to a prior ",[2881,8465,8468],{"href":8466,"rel":8467},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fpull\u002F27485",[2885],"3.12 config update"," where we improved our defaults, mostly adhering to ",[2881,8471,8474],{"href":8472,"rel":8473},"https:\u002F\u002Fwww.totaltypescript.com\u002Ftsconfig-cheat-sheet",[2885],"TotalTypeScript's recommendations",[3608,8476,3938],{"id":8477},"migration-steps-21",[2877,8479,8480],{},"There are two approaches:",[3898,8482,8483,8486],{},[3616,8484,8485],{},"Run a typecheck on your app and fix any new errors (recommended).",[3616,8487,8488,8489,3206,8491],{},"Override the new default in your ",[2889,8490,233],{},[2901,8492,8494],{"className":3170,"code":8493,"language":3172,"meta":2907,"style":2907},"export default defineNuxtConfig({\n  typescript: {\n    tsConfig: {\n      compilerOptions: {\n        noUncheckedIndexedAccess: false,\n      },\n    },\n  },\n})\n",[2889,8495,8496,8508,8517,8526,8535,8546,8550,8554,8558],{"__ignoreMap":2907},[2911,8497,8498,8500,8502,8504,8506],{"class":2913,"line":2914},[2911,8499,3181],{"class":3180},[2911,8501,3184],{"class":3180},[2911,8503,3188],{"class":3187},[2911,8505,3192],{"class":3191},[2911,8507,3196],{"class":3195},[2911,8509,8510,8513,8515],{"class":2913,"line":3199},[2911,8511,8512],{"class":3202},"  typescript",[2911,8514,3206],{"class":3195},[2911,8516,3209],{"class":3195},[2911,8518,8519,8522,8524],{"class":2913,"line":3212},[2911,8520,8521],{"class":3202},"    tsConfig",[2911,8523,3206],{"class":3195},[2911,8525,3209],{"class":3195},[2911,8527,8528,8531,8533],{"class":2913,"line":3227},[2911,8529,8530],{"class":3202},"      compilerOptions",[2911,8532,3206],{"class":3195},[2911,8534,3209],{"class":3195},[2911,8536,8537,8540,8542,8544],{"class":2913,"line":3233},[2911,8538,8539],{"class":3202},"        noUncheckedIndexedAccess",[2911,8541,3206],{"class":3195},[2911,8543,4341],{"class":4340},[2911,8545,3224],{"class":3195},[2911,8547,8548],{"class":2913,"line":3240},[2911,8549,6570],{"class":3195},[2911,8551,8552],{"class":2913,"line":3246},[2911,8553,4557],{"class":3195},[2911,8555,8556],{"class":2913,"line":3252},[2911,8557,3230],{"class":3195},[2911,8559,8560,8562],{"class":2913,"line":3258},[2911,8561,3420],{"class":3195},[2911,8563,3423],{"class":3191},[2872,8565,8567],{"id":8566},"typescript-configuration-splitting","TypeScript Configuration Splitting",[2877,8569,3587,8570,4738],{},[3133,8571,3590],{},[3608,8573,3611],{"id":8574},"what-changed-21",[2877,8576,8577],{},"Nuxt now generates separate TypeScript configurations for different contexts to provide better type-checking experiences:",[3898,8579,8580,8621,8630,8636,8642],{},[3616,8581,8582,8585,8586],{},[3133,8583,8584],{},"New TypeScript configuration files",": Nuxt now generates additional TypeScript configurations:",[3613,8587,8588,8594,8600,8609,8615],{},[3616,8589,8590,8593],{},[2889,8591,8592],{},".nuxt\u002Ftsconfig.app.json"," - For your app code (Vue components, composables, etc.)",[3616,8595,8596,8599],{},[2889,8597,8598],{},".nuxt\u002Ftsconfig.server.json"," - For your server-side code (Nitro\u002Fserver directory)",[3616,8601,8602,8605,8606,8608],{},[2889,8603,8604],{},".nuxt\u002Ftsconfig.node.json"," - For your build-time code (modules, ",[2889,8607,233],{},", etc.)",[3616,8610,8611,8614],{},[2889,8612,8613],{},".nuxt\u002Ftsconfig.shared.json"," - For code shared between app and server contexts (like types and non-environment specific utilities)",[3616,8616,8617,8620],{},[2889,8618,8619],{},".nuxt\u002Ftsconfig.json"," - Legacy configuration for backward compatibility",[3616,8622,8623,8626,8627,8629],{},[3133,8624,8625],{},"Backward compatibility",": Existing projects that extend ",[2889,8628,8619],{}," will continue to work as before.",[3616,8631,8632,8635],{},[3133,8633,8634],{},"Opt-in project references",": New projects or those wanting better type checking can adopt TypeScript's project references feature.",[3616,8637,8638,8641],{},[3133,8639,8640],{},"Context-specific type checking",": Each context now has appropriate compiler options and includes\u002Fexcludes for its specific environment.",[3616,8643,8644,8651],{},[3133,8645,8646,8647,8650],{},"New ",[2889,8648,8649],{},"typescript.nodeTsConfig"," option",": You can now customize the TypeScript configuration for Node.js build-time code.",[3608,8653,3896],{"id":8654},"reasons-for-change-18",[2877,8656,8657],{},"This change provides several benefits:",[3898,8659,8660,8666,8672,8678],{},[3616,8661,8662,8665],{},[3133,8663,8664],{},"Better type safety",": Each context (app, server, build-time) gets appropriate type checking with context-specific globals and APIs.",[3616,8667,8668,8671],{},[3133,8669,8670],{},"Improved IDE experience",": Better IntelliSense and error reporting for different parts of your codebase.",[3616,8673,8674,8677],{},[3133,8675,8676],{},"Cleaner separation",": Server code won't incorrectly suggest client-side APIs and vice versa.",[3616,8679,8680,8682],{},[3133,8681,3904],{},": TypeScript can more efficiently check code with properly scoped configurations.",[2877,8684,8685,8686,8688,8689,8691,8692,8694],{},"For example, auto-imports are not available in your ",[2889,8687,233],{}," (but previously this was not flagged by TypeScript). And while IDEs recognized the separate context hinted by ",[2889,8690,242],{}," in your ",[2889,8693,3921],{}," directory, this was not reflected in type-checking (requiring a separate step).",[3608,8696,3938],{"id":8697},"migration-steps-22",[2877,8699,8700,8703],{},[3133,8701,8702],{},"No migration is required"," - existing projects will continue to work as before.",[2877,8705,8706],{},"However, to take advantage of improved type checking, you can opt in to the new project references approach:",[3898,8708,8709,8875,8889,8914,8954,9110],{},[3616,8710,8711,8716,8717,8733],{},[3133,8712,8713,8714],{},"Update your root ",[2889,8715,242],{}," to use project references:",[2990,8718,8719],{},[2877,8720,8721,8722,8724,8725,8728,8729,8732],{},"If your ",[2889,8723,242],{}," currently has an ",[2889,8726,8727],{},"\"extends\": \".\u002F.nuxt\u002Ftsconfig.json\""," line, ",[3133,8730,8731],{},"remove it"," before adding the references. Project references and extends are mutually exclusive.",[2901,8734,8738],{"className":8735,"code":8736,"language":8737,"meta":2907,"style":2907},"language-json shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","{\n  \u002F\u002F Remove \"extends\": \".\u002F.nuxt\u002Ftsconfig.json\" if present\n  \"files\": [],\n  \"references\": [\n    { \"path\": \".\u002F.nuxt\u002Ftsconfig.app.json\" },\n    { \"path\": \".\u002F.nuxt\u002Ftsconfig.server.json\" },\n    { \"path\": \".\u002F.nuxt\u002Ftsconfig.shared.json\" },\n    { \"path\": \".\u002F.nuxt\u002Ftsconfig.node.json\" }\n  ]\n}\n","json",[2889,8739,8740,8744,8749,8764,8778,8802,8823,8844,8866,8871],{"__ignoreMap":2907},[2911,8741,8742],{"class":2913,"line":2914},[2911,8743,3196],{"class":3195},[2911,8745,8746],{"class":2913,"line":3199},[2911,8747,8748],{"class":3236},"  \u002F\u002F Remove \"extends\": \".\u002F.nuxt\u002Ftsconfig.json\" if present\n",[2911,8750,8751,8754,8757,8759,8761],{"class":2913,"line":3212},[2911,8752,8753],{"class":3195},"  \"",[2911,8755,8756],{"class":4275},"files",[2911,8758,5612],{"class":3195},[2911,8760,3206],{"class":3195},[2911,8762,8763],{"class":3195}," [],\n",[2911,8765,8766,8768,8771,8773,8775],{"class":2913,"line":3227},[2911,8767,8753],{"class":3195},[2911,8769,8770],{"class":4275},"references",[2911,8772,5612],{"class":3195},[2911,8774,3206],{"class":3195},[2911,8776,8777],{"class":3195}," [\n",[2911,8779,8780,8783,8786,8788,8790,8792,8794,8797,8799],{"class":2913,"line":3233},[2911,8781,8782],{"class":3195},"    {",[2911,8784,8785],{"class":3195}," \"",[2911,8787,5048],{"class":2917},[2911,8789,5612],{"class":3195},[2911,8791,3206],{"class":3195},[2911,8793,8785],{"class":3195},[2911,8795,8796],{"class":2921},".\u002F.nuxt\u002Ftsconfig.app.json",[2911,8798,5612],{"class":3195},[2911,8800,8801],{"class":3195}," },\n",[2911,8803,8804,8806,8808,8810,8812,8814,8816,8819,8821],{"class":2913,"line":3240},[2911,8805,8782],{"class":3195},[2911,8807,8785],{"class":3195},[2911,8809,5048],{"class":2917},[2911,8811,5612],{"class":3195},[2911,8813,3206],{"class":3195},[2911,8815,8785],{"class":3195},[2911,8817,8818],{"class":2921},".\u002F.nuxt\u002Ftsconfig.server.json",[2911,8820,5612],{"class":3195},[2911,8822,8801],{"class":3195},[2911,8824,8825,8827,8829,8831,8833,8835,8837,8840,8842],{"class":2913,"line":3246},[2911,8826,8782],{"class":3195},[2911,8828,8785],{"class":3195},[2911,8830,5048],{"class":2917},[2911,8832,5612],{"class":3195},[2911,8834,3206],{"class":3195},[2911,8836,8785],{"class":3195},[2911,8838,8839],{"class":2921},".\u002F.nuxt\u002Ftsconfig.shared.json",[2911,8841,5612],{"class":3195},[2911,8843,8801],{"class":3195},[2911,8845,8846,8848,8850,8852,8854,8856,8858,8861,8863],{"class":2913,"line":3252},[2911,8847,8782],{"class":3195},[2911,8849,8785],{"class":3195},[2911,8851,5048],{"class":2917},[2911,8853,5612],{"class":3195},[2911,8855,3206],{"class":3195},[2911,8857,8785],{"class":3195},[2911,8859,8860],{"class":2921},".\u002F.nuxt\u002Ftsconfig.node.json",[2911,8862,5612],{"class":3195},[2911,8864,8865],{"class":3195}," }\n",[2911,8867,8868],{"class":2913,"line":3258},[2911,8869,8870],{"class":3195},"  ]\n",[2911,8872,8873],{"class":2913,"line":3264},[2911,8874,4567],{"class":3195},[3616,8876,8877,8882,8883,8886,8887,3124],{},[3133,8878,8879,8880],{},"Remove any manual server ",[2889,8881,242],{}," files (like ",[2889,8884,8885],{},"server\u002Ftsconfig.json",") that extended ",[2889,8888,8598],{},[3616,8890,8891,8894,8895],{},[3133,8892,8893],{},"Update your type checking scripts"," to use the build flag for project references:",[2901,8896,8898],{"className":4578,"code":8897,"language":4580,"meta":2907,"style":2907},"- \"typecheck\": \"nuxt prepare && vue-tsc --noEmit\"\n+ \"typecheck\": \"nuxt prepare && vue-tsc -b --noEmit\"\n",[2889,8899,8900,8907],{"__ignoreMap":2907},[2911,8901,8902,8904],{"class":2913,"line":2914},[2911,8903,4592],{"class":3195},[2911,8905,8906],{"class":3202}," \"typecheck\": \"nuxt prepare && vue-tsc --noEmit\"\n",[2911,8908,8909,8911],{"class":2913,"line":3199},[2911,8910,4614],{"class":3195},[2911,8912,8913],{"class":2921}," \"typecheck\": \"nuxt prepare && vue-tsc -b --noEmit\"\n",[3616,8915,8916,3206,8919,8941],{},[3133,8917,8918],{},"Move all type augmentations into their appropriate context",[3613,8920,8921,8927,8932],{},[3616,8922,8923,8924,8926],{},"If you are augmenting types for the app context, move the files to the ",[2889,8925,1195],{}," directory.",[3616,8928,8929,8930,8926],{},"If you are augmenting types for the server context, move the files to the ",[2889,8931,3921],{},[3616,8933,8934,8935,8938,8939,8926],{},"If you are augmenting types that are ",[3133,8936,8937],{},"shared between the app and server",", move the files to the ",[2889,8940,3694],{},[3112,8942,8943],{},[2877,8944,8945,8946,3644,8948,8950,8951,8953],{},"Augmenting types from outside the ",[2889,8947,1195],{},[2889,8949,3921],{},", or ",[2889,8952,3694],{}," directories will not work with the new project references setup.",[3616,8955,8956,8959,8960],{},[3133,8957,8958],{},"Configure TypeScript options"," if needed:",[2901,8961,8963],{"className":3170,"code":8962,"language":3172,"meta":2907,"style":2907},"export default defineNuxtConfig({\n  typescript: {\n    \u002F\u002F customize tsconfig.app.json\n    tsConfig: {\n      \u002F\u002F ...\n    },\n    \u002F\u002F customize tsconfig.shared.json\n    sharedTsConfig: {\n      \u002F\u002F ...\n    },\n    \u002F\u002F customize tsconfig.node.json\n    nodeTsConfig: {\n      \u002F\u002F ...\n    },\n  },\n  nitro: {\n    typescript: {\n      \u002F\u002F customize tsconfig.server.json\n      tsConfig: {\n        \u002F\u002F ...\n      },\n    },\n  },\n})\n",[2889,8964,8965,8977,8985,8990,8998,9003,9007,9012,9021,9025,9029,9034,9043,9047,9051,9055,9064,9073,9078,9087,9092,9096,9100,9104],{"__ignoreMap":2907},[2911,8966,8967,8969,8971,8973,8975],{"class":2913,"line":2914},[2911,8968,3181],{"class":3180},[2911,8970,3184],{"class":3180},[2911,8972,3188],{"class":3187},[2911,8974,3192],{"class":3191},[2911,8976,3196],{"class":3195},[2911,8978,8979,8981,8983],{"class":2913,"line":3199},[2911,8980,8512],{"class":3202},[2911,8982,3206],{"class":3195},[2911,8984,3209],{"class":3195},[2911,8986,8987],{"class":2913,"line":3212},[2911,8988,8989],{"class":3236},"    \u002F\u002F customize tsconfig.app.json\n",[2911,8991,8992,8994,8996],{"class":2913,"line":3227},[2911,8993,8521],{"class":3202},[2911,8995,3206],{"class":3195},[2911,8997,3209],{"class":3195},[2911,8999,9000],{"class":2913,"line":3233},[2911,9001,9002],{"class":3236},"      \u002F\u002F ...\n",[2911,9004,9005],{"class":2913,"line":3240},[2911,9006,4557],{"class":3195},[2911,9008,9009],{"class":2913,"line":3246},[2911,9010,9011],{"class":3236},"    \u002F\u002F customize tsconfig.shared.json\n",[2911,9013,9014,9017,9019],{"class":2913,"line":3252},[2911,9015,9016],{"class":3202},"    sharedTsConfig",[2911,9018,3206],{"class":3195},[2911,9020,3209],{"class":3195},[2911,9022,9023],{"class":2913,"line":3258},[2911,9024,9002],{"class":3236},[2911,9026,9027],{"class":2913,"line":3264},[2911,9028,4557],{"class":3195},[2911,9030,9031],{"class":2913,"line":3270},[2911,9032,9033],{"class":3236},"    \u002F\u002F customize tsconfig.node.json\n",[2911,9035,9036,9039,9041],{"class":2913,"line":3276},[2911,9037,9038],{"class":3202},"    nodeTsConfig",[2911,9040,3206],{"class":3195},[2911,9042,3209],{"class":3195},[2911,9044,9045],{"class":2913,"line":3282},[2911,9046,9002],{"class":3236},[2911,9048,9049],{"class":2913,"line":3288},[2911,9050,4557],{"class":3195},[2911,9052,9053],{"class":2913,"line":3294},[2911,9054,3230],{"class":3195},[2911,9056,9057,9060,9062],{"class":2913,"line":3300},[2911,9058,9059],{"class":3202},"  nitro",[2911,9061,3206],{"class":3195},[2911,9063,3209],{"class":3195},[2911,9065,9066,9069,9071],{"class":2913,"line":3306},[2911,9067,9068],{"class":3202},"    typescript",[2911,9070,3206],{"class":3195},[2911,9072,3209],{"class":3195},[2911,9074,9075],{"class":2913,"line":3312},[2911,9076,9077],{"class":3236},"      \u002F\u002F customize tsconfig.server.json\n",[2911,9079,9080,9083,9085],{"class":2913,"line":3318},[2911,9081,9082],{"class":3202},"      tsConfig",[2911,9084,3206],{"class":3195},[2911,9086,3209],{"class":3195},[2911,9088,9089],{"class":2913,"line":3324},[2911,9090,9091],{"class":3236},"        \u002F\u002F ...\n",[2911,9093,9094],{"class":2913,"line":3330},[2911,9095,6570],{"class":3195},[2911,9097,9098],{"class":2913,"line":3336},[2911,9099,4557],{"class":3195},[2911,9101,9102],{"class":2913,"line":3342},[2911,9103,3230],{"class":3195},[2911,9105,9106,9108],{"class":2913,"line":3348},[2911,9107,3420],{"class":3195},[2911,9109,3423],{"class":3191},[3616,9111,9112,9115],{},[3133,9113,9114],{},"Update any CI\u002Fbuild scripts"," that run TypeScript checking to ensure they use the new project references approach.",[2877,9117,9118],{},"The new configuration provides better type safety and IntelliSense for projects that opt in, while maintaining full backward compatibility for existing setups.",[2872,9120,9122],{"id":9121},"removal-of-experimental-features","Removal of Experimental Features",[2877,9124,3587,9125,4738],{},[3133,9126,3590],{},[3608,9128,3611],{"id":9129},"what-changed-22",[2877,9131,9132],{},"Four experimental features are no longer configurable in Nuxt 4:",[3613,9134,9135,9143,9151,9159,9166],{},[3616,9136,9137,7007,9140,9142],{},[2889,9138,9139],{},"experimental.treeshakeClientOnly",[2889,9141,6629],{}," (default since v3.0)",[3616,9144,9145,7007,9148,9150],{},[2889,9146,9147],{},"experimental.configSchema",[2889,9149,6629],{}," (default since v3.3)",[3616,9152,9153,7007,9156,9158],{},[2889,9154,9155],{},"experimental.polyfillVueUseHead",[2889,9157,6636],{}," (default since v3.4)",[3616,9160,9161,7007,9164,9158],{},[2889,9162,9163],{},"experimental.respectNoSSRHeader",[2889,9165,6636],{},[3616,9167,9168,9171,9172,3656],{},[2889,9169,9170],{},"vite.devBundler"," is no longer configurable - it will use ",[2889,9173,9174],{},"vite-node",[3608,9176,3896],{"id":9177},"reasons-for-change-19",[2877,9179,9180],{},"These options have been set to their current values for some time and we do not have a reason to believe that they need to remain configurable.",[3608,9182,3938],{"id":9183},"migration-steps-23",[3613,9185,9186,9197],{},[3616,9187,9188,9191,9192],{},[2889,9189,9190],{},"polyfillVueUseHead"," is implementable in user-land with ",[2881,9193,9196],{"href":9194,"rel":9195},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fblob\u002Ff209158352b09d1986aa320e29ff36353b91c358\u002Fpackages\u002Fnuxt\u002Fsrc\u002Fhead\u002Fruntime\u002Fplugins\u002Fvueuse-head-polyfill.ts#L10-L11",[2885],"this plugin",[3616,9198,9199,9202,9203],{},[2889,9200,9201],{},"respectNoSSRHeader","is implementable in user-land with ",[2881,9204,9207],{"href":9205,"rel":9206},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fblob\u002Fc660b39447f0d5b8790c0826092638d321cd6821\u002Fpackages\u002Fnuxt\u002Fsrc\u002Fcore\u002Fruntime\u002Fnitro\u002Fno-ssr.ts#L8-L9",[2885],"server middleware",[2872,9209,9211,9212,9215],{"id":9210},"removal-of-top-level-generate-configuration","Removal of Top-Level ",[2889,9213,9214],{},"generate"," Configuration",[2877,9217,3587,9218,4738],{},[3133,9219,3590],{},[3608,9221,3611],{"id":9222},"what-changed-23",[2877,9224,9225,9226,9228],{},"The top-level ",[2889,9227,9214],{}," configuration option is no longer available in Nuxt 4. This includes all of its properties:",[3613,9230,9231,9237],{},[3616,9232,9233,9236],{},[2889,9234,9235],{},"generate.exclude"," - for excluding routes from prerendering",[3616,9238,9239,9242],{},[2889,9240,9241],{},"generate.routes"," - for specifying routes to prerender",[3608,9244,3896],{"id":9245},"reasons-for-change-20",[2877,9247,9248,9249,9251,9252,9255],{},"The top level ",[2889,9250,9214],{}," configuration was a holdover from Nuxt 2. We've supported ",[2889,9253,9254],{},"nitro.prerender"," for a while now, and it is the preferred way to configure prerendering in Nuxt 3+.",[3608,9257,3938],{"id":9258},"migration-steps-24",[2877,9260,9261,9262,9264,9265,9267],{},"Replace ",[2889,9263,9214],{}," configuration with the corresponding ",[2889,9266,9254],{}," options:",[2901,9269,9271],{"className":4578,"code":9270,"language":4580,"meta":2907,"style":2907},"export default defineNuxtConfig({\n- generate: {\n-   exclude: ['\u002Fadmin', '\u002Fprivate'],\n-   routes: ['\u002Fsitemap.xml', '\u002Frobots.txt']\n- }\n+ nitro: {\n+   prerender: {\n+     ignore: ['\u002Fadmin', '\u002Fprivate'],\n+     routes: ['\u002Fsitemap.xml', '\u002Frobots.txt']\n+   }\n+ }\n})\n",[2889,9272,9273,9278,9285,9292,9299,9305,9312,9319,9326,9333,9340,9346],{"__ignoreMap":2907},[2911,9274,9275],{"class":2913,"line":2914},[2911,9276,9277],{"class":3191},"export default defineNuxtConfig({\n",[2911,9279,9280,9282],{"class":2913,"line":3199},[2911,9281,4592],{"class":3195},[2911,9283,9284],{"class":3202}," generate: {\n",[2911,9286,9287,9289],{"class":2913,"line":3212},[2911,9288,4592],{"class":3195},[2911,9290,9291],{"class":3202},"   exclude: ['\u002Fadmin', '\u002Fprivate'],\n",[2911,9293,9294,9296],{"class":2913,"line":3227},[2911,9295,4592],{"class":3195},[2911,9297,9298],{"class":3202},"   routes: ['\u002Fsitemap.xml', '\u002Frobots.txt']\n",[2911,9300,9301,9303],{"class":2913,"line":3233},[2911,9302,4592],{"class":3195},[2911,9304,8865],{"class":3202},[2911,9306,9307,9309],{"class":2913,"line":3240},[2911,9308,4614],{"class":3195},[2911,9310,9311],{"class":2921}," nitro: {\n",[2911,9313,9314,9316],{"class":2913,"line":3246},[2911,9315,4614],{"class":3195},[2911,9317,9318],{"class":2921},"   prerender: {\n",[2911,9320,9321,9323],{"class":2913,"line":3252},[2911,9322,4614],{"class":3195},[2911,9324,9325],{"class":2921},"     ignore: ['\u002Fadmin', '\u002Fprivate'],\n",[2911,9327,9328,9330],{"class":2913,"line":3258},[2911,9329,4614],{"class":3195},[2911,9331,9332],{"class":2921},"     routes: ['\u002Fsitemap.xml', '\u002Frobots.txt']\n",[2911,9334,9335,9337],{"class":2913,"line":3264},[2911,9336,4614],{"class":3195},[2911,9338,9339],{"class":2921},"   }\n",[2911,9341,9342,9344],{"class":2913,"line":3270},[2911,9343,4614],{"class":3195},[2911,9345,8865],{"class":2921},[2911,9347,9348],{"class":2913,"line":3276},[2911,9349,4668],{"class":3191},[9351,9352,9354],"read-more",{"to":9353},"https:\u002F\u002Fnitro.build\u002Fconfig#prerender",[2877,9355,9356],{},"Read more about Nitro's prerender configuration options.",[2867,9358,9360],{"id":9359},"nuxt-2-vs-nuxt-3","Nuxt 2 vs. Nuxt 3+",[2877,9362,9363],{},"In the table below, there is a quick comparison between 3 versions of Nuxt:",[9365,9366,9367,9386],"table",{},[9368,9369,9370],"thead",{},[9371,9372,9373,9377,9380,9383],"tr",{},[9374,9375,9376],"th",{},"Feature \u002F Version",[9374,9378,9379],{},"Nuxt 2",[9374,9381,9382],{},"Nuxt Bridge",[9374,9384,9385],{},"Nuxt 3+",[9387,9388,9389,9403,9415,9428,9441,9454,9466,9477,9488,9499,9513,9523,9535,9546,9559],"tbody",{},[9371,9390,9391,9395,9398,9400],{},[9392,9393,9394],"td",{},"Vue",[9392,9396,9397],{},"2",[9392,9399,9397],{},[9392,9401,9402],{},"3",[9371,9404,9405,9408,9411,9413],{},[9392,9406,9407],{},"Stability",[9392,9409,9410],{},"😊 Stable",[9392,9412,9410],{},[9392,9414,9410],{},[9371,9416,9417,9419,9422,9425],{},[9392,9418,3904],{},[9392,9420,9421],{},"🏎 Fast",[9392,9423,9424],{},"✈️ Faster",[9392,9426,9427],{},"🚀 Fastest",[9371,9429,9430,9433,9436,9439],{},[9392,9431,9432],{},"Nitro Engine",[9392,9434,9435],{},"❌",[9392,9437,9438],{},"✅",[9392,9440,9438],{},[9371,9442,9443,9446,9449,9452],{},[9392,9444,9445],{},"ESM support",[9392,9447,9448],{},"🌙 Partial",[9392,9450,9451],{},"👍 Better",[9392,9453,9438],{},[9371,9455,9456,9458,9461,9464],{},[9392,9457,280],{},[9392,9459,9460],{},"☑️ Opt-in",[9392,9462,9463],{},"🚧 Partial",[9392,9465,9438],{},[9371,9467,9468,9471,9473,9475],{},[9392,9469,9470],{},"Composition API",[9392,9472,9435],{},[9392,9474,9463],{},[9392,9476,9438],{},[9371,9478,9479,9482,9484,9486],{},[9392,9480,9481],{},"Options API",[9392,9483,9438],{},[9392,9485,9438],{},[9392,9487,9438],{},[9371,9489,9490,9493,9495,9497],{},[9392,9491,9492],{},"Components Auto Import",[9392,9494,9438],{},[9392,9496,9438],{},[9392,9498,9438],{},[9371,9500,9501,9507,9509,9511],{},[9392,9502,9503,9506],{},[2889,9504,9505],{},"\u003Cscript setup>"," syntax",[9392,9508,9435],{},[9392,9510,9463],{},[9392,9512,9438],{},[9371,9514,9515,9517,9519,9521],{},[9392,9516,922],{},[9392,9518,9435],{},[9392,9520,9438],{},[9392,9522,9438],{},[9371,9524,9525,9528,9530,9532],{},[9392,9526,9527],{},"webpack",[9392,9529,3437],{},[9392,9531,3437],{},[9392,9533,9534],{},"5",[9371,9536,9537,9539,9542,9544],{},[9392,9538,1075],{},[9392,9540,9541],{},"⚠️ Partial",[9392,9543,9463],{},[9392,9545,9438],{},[9371,9547,9548,9551,9554,9557],{},[9392,9549,9550],{},"Nuxt CLI",[9392,9552,9553],{},"❌ Old",[9392,9555,9556],{},"✅ nuxt",[9392,9558,9556],{},[9371,9560,9561,9564,9566,9568],{},[9392,9562,9563],{},"Static sites",[9392,9565,9438],{},[9392,9567,9438],{},[9392,9569,9438],{},[2867,9571,9573],{"id":9572},"nuxt-2-to-nuxt-3","Nuxt 2 to Nuxt 3+",[2877,9575,9576],{},"The migration guide provides a step-by-step comparison of Nuxt 2 features to Nuxt 3+ features and guidance to adapt your current application.",[9351,9578,9579],{"to":1085},[2877,9580,9581,9582,3124],{},"Check out the ",[3133,9583,9584],{},"guide to migrating from Nuxt 2 to Nuxt 3",[2867,9586,9588],{"id":9587},"nuxt-2-to-nuxt-bridge","Nuxt 2 to Nuxt Bridge",[2877,9590,9591],{},"If you prefer to progressively migrate your Nuxt 2 application to Nuxt 3, you can use Nuxt Bridge. Nuxt Bridge is a compatibility layer that allows you to use Nuxt 3+ features in Nuxt 2 with an opt-in mechanism.",[9351,9593,9594],{"to":1045},[2877,9595,9596],{},[3133,9597,9598],{},"Migrate from Nuxt 2 to Nuxt Bridge",[9600,9601,9602],"style",{},"html pre.shiki code .s52Pk, html code.shiki .s52Pk{--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B}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 .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 .sYRBq, html code.shiki .sYRBq{--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C}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 .smZ93, html code.shiki .smZ93{--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA}html pre.shiki code .sbKd-, html code.shiki .sbKd-{--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC}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}",{"title":2907,"searchDepth":3199,"depth":3199,"links":9604},[9605,9610,9649,9650,9651],{"id":2869,"depth":3199,"text":2870,"children":9606},[9607,9608,9609],{"id":2874,"depth":3212,"text":2875},{"id":3017,"depth":3212,"text":3018},{"id":3103,"depth":3212,"text":403},{"id":3127,"depth":3199,"text":3128,"children":9611},[9612,9613,9614,9615,9616,9617,9618,9619,9620,9621,9623,9624,9625,9626,9628,9630,9632,9634,9636,9638,9640,9642,9643,9644,9645,9646,9647],{"id":3150,"depth":3212,"text":3151},{"id":3444,"depth":3212,"text":3445},{"id":3583,"depth":3212,"text":3584},{"id":4156,"depth":3212,"text":4157},{"id":4732,"depth":3212,"text":4733},{"id":5028,"depth":3212,"text":5029},{"id":5107,"depth":3212,"text":5108},{"id":5239,"depth":3212,"text":5240},{"id":5565,"depth":3212,"text":5566},{"id":5750,"depth":3212,"text":9622},"Parsed error.data",{"id":5887,"depth":3212,"text":5888},{"id":5969,"depth":3212,"text":5970},{"id":6124,"depth":3212,"text":6125},{"id":6409,"depth":3212,"text":9627},"Default data and error values in useAsyncData and useFetch",{"id":6590,"depth":3212,"text":9629},"Removal of deprecated boolean values for dedupe option when calling refresh in useAsyncData and useFetch",{"id":6861,"depth":3212,"text":9631},"Respect defaults when clearing data in useAsyncData and useFetch",{"id":6960,"depth":3212,"text":9633},"Alignment of pending value in useAsyncData and useFetch",{"id":7178,"depth":3212,"text":9635},"Key Change Behavior in useAsyncData and useFetch",{"id":7343,"depth":3212,"text":9637},"Shallow Data Reactivity in useAsyncData and useFetch",{"id":7511,"depth":3212,"text":9639},"Absolute Watch Paths in builder:watch",{"id":7604,"depth":3212,"text":9641},"Removal of window.__NUXT__ object",{"id":7664,"depth":3212,"text":7665},{"id":7838,"depth":3212,"text":7839},{"id":8438,"depth":3212,"text":8439},{"id":8566,"depth":3212,"text":8567},{"id":9121,"depth":3212,"text":9122},{"id":9210,"depth":3212,"text":9648},"Removal of Top-Level generate Configuration",{"id":9359,"depth":3199,"text":9360},{"id":9572,"depth":3199,"text":9573},{"id":9587,"depth":3199,"text":9588},"Learn how to upgrade to the latest Nuxt version.","md",{},{"icon":107},{"title":104,"description":9652},"b7wMDKQ8MSDYJsxLPQ-kfxdYsIOvkmUdEI4mo9rbtfg",[9659,9661],{"title":99,"path":100,"stem":101,"description":9660,"icon":102,"children":-1},"How to test your Nuxt application.",{"title":117,"path":118,"stem":119,"description":9662,"icon":120,"children":-1},"Nuxt uses the .nuxt\u002F directory in development to generate your Vue application.",1775055374760]