[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fGCo9l1hMtNdUiA6QzdUX5X3kLqaWcC5t2kdz4LrvCvc":3,"module-authorization":2856,"versions":6960},[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",{"name":2857,"description":2858,"repo":2859,"npm":2860,"icon":2861,"github":2862,"website":2862,"learn_more":2863,"category":2864,"type":2865,"maintainers":2866,"compatibility":2872,"generatedAt":2875,"contributors":2876,"stats":2896,"readme":2904},"authorization","Manage permissions inside the app and the server.","barbapapazes\u002Fnuxt-authorization","nuxt-authorization","","https:\u002F\u002Fgithub.com\u002Fbarbapapazes\u002Fnuxt-authorization","https:\u002F\u002Fsoubiran.dev\u002Fposts\u002Fnuxt-going-full-stack-how-to-handle-authorization","Security","3rd-party",[2867],{"name":2868,"github":2869,"twitter":2870,"bluesky":2871},"Estéban","barbapapazes","soubiran_","soubiran.dev",{"nuxt":2873,"requires":2874},">=3.0.0",{},"2026-04-10T12:02:27.632Z",[2877,2881,2885,2889,2892],{"id":2878,"username":2879,"contributions":2880},45267552,"Barbapapazes",60,{"id":2882,"username":2883,"contributions":2884},41266342,"zAlweNy26",3,{"id":2886,"username":2887,"contributions":2888},7252657,"maartenvanhunsel",2,{"id":2890,"username":2891,"contributions":2888},343392,"madc",{"id":2893,"username":2894,"contributions":2895},5769861,"stanislav-janu",1,{"version":2897,"downloads":2898,"stars":2899,"watchers":2899,"forks":2900,"defaultBranch":2901,"publishedAt":2902,"createdAt":2903},"0.3.5",16720,355,14,"main",1752673833614,1718198976583,{"data":2905,"body":2907,"toc":6947},{"title":2906,"description":2861},"Nuxt Authorization",{"type":2908,"children":2909},"root",[2910,2917,2972,2977,2986,3001,3014,3020,3050,3056,3061,3103,3108,3114,3126,3133,3138,3151,3409,3422,3434,3663,3686,3704,3709,3722,3734,3739,3960,3965,4241,4246,4252,4279,4284,4297,4491,4536,4541,4640,4645,4651,4692,4704,4758,4766,4824,4835,4895,4902,4967,4978,5025,5032,5070,5075,5287,5328,5348,5365,5371,5376,5594,5605,5618,5807,5841,6033,6046,6173,6178,6248,6253,6291,6297,6316,6653,6658,6907,6913,6927,6932,6941],{"type":2911,"tag":2912,"props":2913,"children":2914},"element","h1",{"id":2860},[2915],{"type":2916,"value":2906},"text",{"type":2911,"tag":2918,"props":2919,"children":2920},"p",{},[2921,2934,2943,2952,2962],{"type":2911,"tag":2922,"props":2923,"children":2927},"a",{"href":2924,"rel":2925},"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fnuxt-authorization",[2926],"nofollow",[2928],{"type":2911,"tag":2929,"props":2930,"children":2933},"img",{"alt":2931,"src":2932},"npm version","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fnuxt-authorization\u002Flatest.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":2911,"tag":2922,"props":2935,"children":2937},{"href":2924,"rel":2936},[2926],[2938],{"type":2911,"tag":2929,"props":2939,"children":2942},{"alt":2940,"src":2941},"npm downloads","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fnuxt-authorization.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":2911,"tag":2922,"props":2944,"children":2946},{"href":2924,"rel":2945},[2926],[2947],{"type":2911,"tag":2929,"props":2948,"children":2951},{"alt":2949,"src":2950},"License","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002Fnuxt-authorization.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":2911,"tag":2922,"props":2953,"children":2956},{"href":2954,"rel":2955},"https:\u002F\u002Fnuxt.com",[2926],[2957],{"type":2911,"tag":2929,"props":2958,"children":2961},{"alt":2959,"src":2960},"Nuxt","https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNuxt-020420?logo=nuxt.js",[],{"type":2911,"tag":2922,"props":2963,"children":2966},{"href":2964,"rel":2965},"https:\u002F\u002Fpkg.pr.new\u002F~\u002FBarbapapazes\u002Fnuxt-authorization",[2926],[2967],{"type":2911,"tag":2929,"props":2968,"children":2971},{"alt":2969,"src":2970},"pkg.pr.new","https:\u002F\u002Fpkg.pr.new\u002Fbadge\u002FBarbapapazes\u002Fnuxt-authorization",[],{"type":2911,"tag":2918,"props":2973,"children":2974},{},[2975],{"type":2916,"value":2976},"Handle authorization with ease in both Nuxt and Nitro.",{"type":2911,"tag":2918,"props":2978,"children":2979},{},[2980],{"type":2911,"tag":2981,"props":2982,"children":2983},"em",{},[2984],{"type":2916,"value":2985},"This module does not implement ACL or RBAC. It provides low-level primitives that you can use to implement your own authorization logic.",{"type":2911,"tag":2987,"props":2988,"children":2989},"blockquote",{},[2990],{"type":2911,"tag":2918,"props":2991,"children":2992},{},[2993,2999],{"type":2911,"tag":2994,"props":2995,"children":2996},"span",{},[2997],{"type":2916,"value":2998},"!NOTE",{"type":2916,"value":3000},"\nIn the future, this module could be available as a Nitro module and a Nuxt module, but Nitro module are not yet ready.",{"type":2911,"tag":2918,"props":3002,"children":3003},{},[3004,3006,3012],{"type":2916,"value":3005},"To learn more about this module and which problem it solves, checkout my blog post about ",{"type":2911,"tag":2922,"props":3007,"children":3009},{"href":2863,"rel":3008},[2926],[3010],{"type":2916,"value":3011},"Authorization in Nuxt",{"type":2916,"value":3013},".",{"type":2911,"tag":3015,"props":3016,"children":3018},"h2",{"id":3017},"features",[3019],{"type":2916,"value":395},{"type":2911,"tag":3021,"props":3022,"children":3023},"ul",{},[3024,3030,3035,3040,3045],{"type":2911,"tag":3025,"props":3026,"children":3027},"li",{},[3028],{"type":2916,"value":3029},"⛰  Works on both the client (Nuxt) and the server (Nitro)",{"type":2911,"tag":3025,"props":3031,"children":3032},{},[3033],{"type":2916,"value":3034},"🌟  Write abilities once and use them everywhere",{"type":2911,"tag":3025,"props":3036,"children":3037},{},[3038],{"type":2916,"value":3039},"👨‍👩‍👧‍👦  Agnostic of the authentication layer",{"type":2911,"tag":3025,"props":3041,"children":3042},{},[3043],{"type":2916,"value":3044},"🫸  Use components to conditionally show part of the UI",{"type":2911,"tag":3025,"props":3046,"children":3047},{},[3048],{"type":2916,"value":3049},"💧  Primitives are can be accessed for a full customization",{"type":2911,"tag":3015,"props":3051,"children":3053},{"id":3052},"quick-setup",[3054],{"type":2916,"value":3055},"Quick Setup",{"type":2911,"tag":2918,"props":3057,"children":3058},{},[3059],{"type":2916,"value":3060},"Install the module to your Nuxt application with one command:",{"type":2911,"tag":3062,"props":3063,"children":3067},"pre",{"className":3064,"code":3065,"language":3066,"meta":2861,"style":2861},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","npx nuxi module add nuxt-authorization\n","bash",[3068],{"type":2911,"tag":3069,"props":3070,"children":3071},"code",{"__ignoreMap":2861},[3072],{"type":2911,"tag":2994,"props":3073,"children":3075},{"class":3074,"line":2895},"line",[3076,3082,3088,3093,3098],{"type":2911,"tag":2994,"props":3077,"children":3079},{"style":3078},"--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B",[3080],{"type":2916,"value":3081},"npx",{"type":2911,"tag":2994,"props":3083,"children":3085},{"style":3084},"--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D",[3086],{"type":2916,"value":3087}," nuxi",{"type":2911,"tag":2994,"props":3089,"children":3090},{"style":3084},[3091],{"type":2916,"value":3092}," module",{"type":2911,"tag":2994,"props":3094,"children":3095},{"style":3084},[3096],{"type":2916,"value":3097}," add",{"type":2911,"tag":2994,"props":3099,"children":3100},{"style":3084},[3101],{"type":2916,"value":3102}," nuxt-authorization\n",{"type":2911,"tag":2918,"props":3104,"children":3105},{},[3106],{"type":2916,"value":3107},"That's it! You can now use the module in your Nuxt app ✨",{"type":2911,"tag":3015,"props":3109,"children":3111},{"id":3110},"documentation",[3112],{"type":2916,"value":3113},"Documentation",{"type":2911,"tag":2987,"props":3115,"children":3116},{},[3117],{"type":2911,"tag":2918,"props":3118,"children":3119},{},[3120,3124],{"type":2911,"tag":2994,"props":3121,"children":3122},{},[3123],{"type":2916,"value":2998},{"type":2916,"value":3125},"\nYou can take a look at the playground to see the module in action.",{"type":2911,"tag":3127,"props":3128,"children":3130},"h3",{"id":3129},"setup",[3131],{"type":2916,"value":3132},"Setup",{"type":2911,"tag":2918,"props":3134,"children":3135},{},[3136],{"type":2916,"value":3137},"Before using the module and defining your first ability, you need to provide 2 resolvers. These functions are used internally to retrieve the user but you must implement them. This allows the module to be agnostic of the authentication layer.",{"type":2911,"tag":2918,"props":3139,"children":3140},{},[3141,3143,3149],{"type":2916,"value":3142},"For the Nuxt app, create a new plugin in ",{"type":2911,"tag":3069,"props":3144,"children":3146},{"className":3145},[],[3147],{"type":2916,"value":3148},"plugins\u002Fauthorization-resolver.ts",{"type":2916,"value":3150},":",{"type":2911,"tag":3062,"props":3152,"children":3156},{"className":3153,"code":3154,"language":3155,"meta":2861,"style":2861},"language-ts shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","export default defineNuxtPlugin({\n  name: 'authorization-resolver',\n  parallel: true,\n  setup() {\n    return {\n      provide: {\n        authorization: {\n          resolveClientUser: () => {\n            \u002F\u002F Your logic to retrieve the user from the client\n          },\n        },\n      },\n    }\n  },\n})\n","ts",[3157],{"type":2911,"tag":3069,"props":3158,"children":3159},{"__ignoreMap":2861},[3160,3192,3225,3247,3266,3279,3296,3313,3341,3351,3360,3369,3378,3387,3395],{"type":2911,"tag":2994,"props":3161,"children":3162},{"class":3074,"line":2895},[3163,3169,3174,3180,3186],{"type":2911,"tag":2994,"props":3164,"children":3166},{"style":3165},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[3167],{"type":2916,"value":3168},"export",{"type":2911,"tag":2994,"props":3170,"children":3171},{"style":3165},[3172],{"type":2916,"value":3173}," default",{"type":2911,"tag":2994,"props":3175,"children":3177},{"style":3176},"--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF",[3178],{"type":2916,"value":3179}," defineNuxtPlugin",{"type":2911,"tag":2994,"props":3181,"children":3183},{"style":3182},"--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8",[3184],{"type":2916,"value":3185},"(",{"type":2911,"tag":2994,"props":3187,"children":3189},{"style":3188},"--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF",[3190],{"type":2916,"value":3191},"{\n",{"type":2911,"tag":2994,"props":3193,"children":3194},{"class":3074,"line":2888},[3195,3201,3205,3210,3215,3220],{"type":2911,"tag":2994,"props":3196,"children":3198},{"style":3197},"--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178",[3199],{"type":2916,"value":3200},"  name",{"type":2911,"tag":2994,"props":3202,"children":3203},{"style":3188},[3204],{"type":2916,"value":3150},{"type":2911,"tag":2994,"props":3206,"children":3207},{"style":3188},[3208],{"type":2916,"value":3209}," '",{"type":2911,"tag":2994,"props":3211,"children":3212},{"style":3084},[3213],{"type":2916,"value":3214},"authorization-resolver",{"type":2911,"tag":2994,"props":3216,"children":3217},{"style":3188},[3218],{"type":2916,"value":3219},"'",{"type":2911,"tag":2994,"props":3221,"children":3222},{"style":3188},[3223],{"type":2916,"value":3224},",\n",{"type":2911,"tag":2994,"props":3226,"children":3227},{"class":3074,"line":2884},[3228,3233,3237,3243],{"type":2911,"tag":2994,"props":3229,"children":3230},{"style":3197},[3231],{"type":2916,"value":3232},"  parallel",{"type":2911,"tag":2994,"props":3234,"children":3235},{"style":3188},[3236],{"type":2916,"value":3150},{"type":2911,"tag":2994,"props":3238,"children":3240},{"style":3239},"--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC",[3241],{"type":2916,"value":3242}," true",{"type":2911,"tag":2994,"props":3244,"children":3245},{"style":3188},[3246],{"type":2916,"value":3224},{"type":2911,"tag":2994,"props":3248,"children":3250},{"class":3074,"line":3249},4,[3251,3256,3261],{"type":2911,"tag":2994,"props":3252,"children":3253},{"style":3197},[3254],{"type":2916,"value":3255},"  setup",{"type":2911,"tag":2994,"props":3257,"children":3258},{"style":3188},[3259],{"type":2916,"value":3260},"()",{"type":2911,"tag":2994,"props":3262,"children":3263},{"style":3188},[3264],{"type":2916,"value":3265}," {\n",{"type":2911,"tag":2994,"props":3267,"children":3269},{"class":3074,"line":3268},5,[3270,3275],{"type":2911,"tag":2994,"props":3271,"children":3272},{"style":3165},[3273],{"type":2916,"value":3274},"    return",{"type":2911,"tag":2994,"props":3276,"children":3277},{"style":3188},[3278],{"type":2916,"value":3265},{"type":2911,"tag":2994,"props":3280,"children":3282},{"class":3074,"line":3281},6,[3283,3288,3292],{"type":2911,"tag":2994,"props":3284,"children":3285},{"style":3197},[3286],{"type":2916,"value":3287},"      provide",{"type":2911,"tag":2994,"props":3289,"children":3290},{"style":3188},[3291],{"type":2916,"value":3150},{"type":2911,"tag":2994,"props":3293,"children":3294},{"style":3188},[3295],{"type":2916,"value":3265},{"type":2911,"tag":2994,"props":3297,"children":3299},{"class":3074,"line":3298},7,[3300,3305,3309],{"type":2911,"tag":2994,"props":3301,"children":3302},{"style":3197},[3303],{"type":2916,"value":3304},"        authorization",{"type":2911,"tag":2994,"props":3306,"children":3307},{"style":3188},[3308],{"type":2916,"value":3150},{"type":2911,"tag":2994,"props":3310,"children":3311},{"style":3188},[3312],{"type":2916,"value":3265},{"type":2911,"tag":2994,"props":3314,"children":3316},{"class":3074,"line":3315},8,[3317,3322,3326,3331,3337],{"type":2911,"tag":2994,"props":3318,"children":3319},{"style":3176},[3320],{"type":2916,"value":3321},"          resolveClientUser",{"type":2911,"tag":2994,"props":3323,"children":3324},{"style":3188},[3325],{"type":2916,"value":3150},{"type":2911,"tag":2994,"props":3327,"children":3328},{"style":3188},[3329],{"type":2916,"value":3330}," ()",{"type":2911,"tag":2994,"props":3332,"children":3334},{"style":3333},"--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA",[3335],{"type":2916,"value":3336}," =>",{"type":2911,"tag":2994,"props":3338,"children":3339},{"style":3188},[3340],{"type":2916,"value":3265},{"type":2911,"tag":2994,"props":3342,"children":3344},{"class":3074,"line":3343},9,[3345],{"type":2911,"tag":2994,"props":3346,"children":3348},{"style":3347},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[3349],{"type":2916,"value":3350},"            \u002F\u002F Your logic to retrieve the user from the client\n",{"type":2911,"tag":2994,"props":3352,"children":3354},{"class":3074,"line":3353},10,[3355],{"type":2911,"tag":2994,"props":3356,"children":3357},{"style":3188},[3358],{"type":2916,"value":3359},"          },\n",{"type":2911,"tag":2994,"props":3361,"children":3363},{"class":3074,"line":3362},11,[3364],{"type":2911,"tag":2994,"props":3365,"children":3366},{"style":3188},[3367],{"type":2916,"value":3368},"        },\n",{"type":2911,"tag":2994,"props":3370,"children":3372},{"class":3074,"line":3371},12,[3373],{"type":2911,"tag":2994,"props":3374,"children":3375},{"style":3188},[3376],{"type":2916,"value":3377},"      },\n",{"type":2911,"tag":2994,"props":3379,"children":3381},{"class":3074,"line":3380},13,[3382],{"type":2911,"tag":2994,"props":3383,"children":3384},{"style":3188},[3385],{"type":2916,"value":3386},"    }\n",{"type":2911,"tag":2994,"props":3388,"children":3389},{"class":3074,"line":2900},[3390],{"type":2911,"tag":2994,"props":3391,"children":3392},{"style":3188},[3393],{"type":2916,"value":3394},"  },\n",{"type":2911,"tag":2994,"props":3396,"children":3398},{"class":3074,"line":3397},15,[3399,3404],{"type":2911,"tag":2994,"props":3400,"children":3401},{"style":3188},[3402],{"type":2916,"value":3403},"}",{"type":2911,"tag":2994,"props":3405,"children":3406},{"style":3182},[3407],{"type":2916,"value":3408},")\n",{"type":2911,"tag":2918,"props":3410,"children":3411},{},[3412,3414,3420],{"type":2916,"value":3413},"This function is called every time you check for authorization on the client. It should return the user object or ",{"type":2911,"tag":3069,"props":3415,"children":3417},{"className":3416},[],[3418],{"type":2916,"value":3419},"null",{"type":2916,"value":3421}," if the user is not authenticated. It can by async.",{"type":2911,"tag":2918,"props":3423,"children":3424},{},[3425,3427,3433],{"type":2916,"value":3426},"For the Nitro server, create a new plugin in ",{"type":2911,"tag":3069,"props":3428,"children":3430},{"className":3429},[],[3431],{"type":2916,"value":3432},"server\u002Fplugins\u002Fauthorization-resolver.ts",{"type":2916,"value":3150},{"type":2911,"tag":3062,"props":3435,"children":3437},{"className":3153,"code":3436,"language":3155,"meta":2861,"style":2861},"export default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('request', async (event) => {\n    event.context.$authorization = {\n      resolveServerUser: () => {\n        \u002F\u002F Your logic to retrieve the user from the server\n      },\n    }\n  })\n})\n",[3438],{"type":2911,"tag":3069,"props":3439,"children":3440},{"__ignoreMap":2861},[3441,3484,3559,3594,3618,3626,3633,3640,3652],{"type":2911,"tag":2994,"props":3442,"children":3443},{"class":3074,"line":2895},[3444,3448,3452,3457,3461,3465,3471,3476,3480],{"type":2911,"tag":2994,"props":3445,"children":3446},{"style":3165},[3447],{"type":2916,"value":3168},{"type":2911,"tag":2994,"props":3449,"children":3450},{"style":3165},[3451],{"type":2916,"value":3173},{"type":2911,"tag":2994,"props":3453,"children":3454},{"style":3176},[3455],{"type":2916,"value":3456}," defineNitroPlugin",{"type":2911,"tag":2994,"props":3458,"children":3459},{"style":3182},[3460],{"type":2916,"value":3185},{"type":2911,"tag":2994,"props":3462,"children":3463},{"style":3188},[3464],{"type":2916,"value":3185},{"type":2911,"tag":2994,"props":3466,"children":3468},{"style":3467},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[3469],{"type":2916,"value":3470},"nitroApp",{"type":2911,"tag":2994,"props":3472,"children":3473},{"style":3188},[3474],{"type":2916,"value":3475},")",{"type":2911,"tag":2994,"props":3477,"children":3478},{"style":3333},[3479],{"type":2916,"value":3336},{"type":2911,"tag":2994,"props":3481,"children":3482},{"style":3188},[3483],{"type":2916,"value":3265},{"type":2911,"tag":2994,"props":3485,"children":3486},{"class":3074,"line":2888},[3487,3492,3496,3501,3505,3510,3514,3518,3523,3527,3532,3537,3542,3547,3551,3555],{"type":2911,"tag":2994,"props":3488,"children":3489},{"style":3182},[3490],{"type":2916,"value":3491},"  nitroApp",{"type":2911,"tag":2994,"props":3493,"children":3494},{"style":3188},[3495],{"type":2916,"value":3013},{"type":2911,"tag":2994,"props":3497,"children":3498},{"style":3182},[3499],{"type":2916,"value":3500},"hooks",{"type":2911,"tag":2994,"props":3502,"children":3503},{"style":3188},[3504],{"type":2916,"value":3013},{"type":2911,"tag":2994,"props":3506,"children":3507},{"style":3176},[3508],{"type":2916,"value":3509},"hook",{"type":2911,"tag":2994,"props":3511,"children":3512},{"style":3197},[3513],{"type":2916,"value":3185},{"type":2911,"tag":2994,"props":3515,"children":3516},{"style":3188},[3517],{"type":2916,"value":3219},{"type":2911,"tag":2994,"props":3519,"children":3520},{"style":3084},[3521],{"type":2916,"value":3522},"request",{"type":2911,"tag":2994,"props":3524,"children":3525},{"style":3188},[3526],{"type":2916,"value":3219},{"type":2911,"tag":2994,"props":3528,"children":3529},{"style":3188},[3530],{"type":2916,"value":3531},",",{"type":2911,"tag":2994,"props":3533,"children":3534},{"style":3333},[3535],{"type":2916,"value":3536}," async",{"type":2911,"tag":2994,"props":3538,"children":3539},{"style":3188},[3540],{"type":2916,"value":3541}," (",{"type":2911,"tag":2994,"props":3543,"children":3544},{"style":3467},[3545],{"type":2916,"value":3546},"event",{"type":2911,"tag":2994,"props":3548,"children":3549},{"style":3188},[3550],{"type":2916,"value":3475},{"type":2911,"tag":2994,"props":3552,"children":3553},{"style":3333},[3554],{"type":2916,"value":3336},{"type":2911,"tag":2994,"props":3556,"children":3557},{"style":3188},[3558],{"type":2916,"value":3265},{"type":2911,"tag":2994,"props":3560,"children":3561},{"class":3074,"line":2884},[3562,3567,3571,3576,3580,3585,3590],{"type":2911,"tag":2994,"props":3563,"children":3564},{"style":3182},[3565],{"type":2916,"value":3566},"    event",{"type":2911,"tag":2994,"props":3568,"children":3569},{"style":3188},[3570],{"type":2916,"value":3013},{"type":2911,"tag":2994,"props":3572,"children":3573},{"style":3182},[3574],{"type":2916,"value":3575},"context",{"type":2911,"tag":2994,"props":3577,"children":3578},{"style":3188},[3579],{"type":2916,"value":3013},{"type":2911,"tag":2994,"props":3581,"children":3582},{"style":3182},[3583],{"type":2916,"value":3584},"$authorization",{"type":2911,"tag":2994,"props":3586,"children":3587},{"style":3188},[3588],{"type":2916,"value":3589}," =",{"type":2911,"tag":2994,"props":3591,"children":3592},{"style":3188},[3593],{"type":2916,"value":3265},{"type":2911,"tag":2994,"props":3595,"children":3596},{"class":3074,"line":3249},[3597,3602,3606,3610,3614],{"type":2911,"tag":2994,"props":3598,"children":3599},{"style":3176},[3600],{"type":2916,"value":3601},"      resolveServerUser",{"type":2911,"tag":2994,"props":3603,"children":3604},{"style":3188},[3605],{"type":2916,"value":3150},{"type":2911,"tag":2994,"props":3607,"children":3608},{"style":3188},[3609],{"type":2916,"value":3330},{"type":2911,"tag":2994,"props":3611,"children":3612},{"style":3333},[3613],{"type":2916,"value":3336},{"type":2911,"tag":2994,"props":3615,"children":3616},{"style":3188},[3617],{"type":2916,"value":3265},{"type":2911,"tag":2994,"props":3619,"children":3620},{"class":3074,"line":3268},[3621],{"type":2911,"tag":2994,"props":3622,"children":3623},{"style":3347},[3624],{"type":2916,"value":3625},"        \u002F\u002F Your logic to retrieve the user from the server\n",{"type":2911,"tag":2994,"props":3627,"children":3628},{"class":3074,"line":3281},[3629],{"type":2911,"tag":2994,"props":3630,"children":3631},{"style":3188},[3632],{"type":2916,"value":3377},{"type":2911,"tag":2994,"props":3634,"children":3635},{"class":3074,"line":3298},[3636],{"type":2911,"tag":2994,"props":3637,"children":3638},{"style":3188},[3639],{"type":2916,"value":3386},{"type":2911,"tag":2994,"props":3641,"children":3642},{"class":3074,"line":3315},[3643,3648],{"type":2911,"tag":2994,"props":3644,"children":3645},{"style":3188},[3646],{"type":2916,"value":3647},"  }",{"type":2911,"tag":2994,"props":3649,"children":3650},{"style":3197},[3651],{"type":2916,"value":3408},{"type":2911,"tag":2994,"props":3653,"children":3654},{"class":3074,"line":3343},[3655,3659],{"type":2911,"tag":2994,"props":3656,"children":3657},{"style":3188},[3658],{"type":2916,"value":3403},{"type":2911,"tag":2994,"props":3660,"children":3661},{"style":3182},[3662],{"type":2916,"value":3408},{"type":2911,"tag":2987,"props":3664,"children":3665},{},[3666],{"type":2911,"tag":2918,"props":3667,"children":3668},{},[3669,3673,3675],{"type":2911,"tag":2994,"props":3670,"children":3671},{},[3672],{"type":2916,"value":2998},{"type":2916,"value":3674},"\nRead more about the ",{"type":2911,"tag":2922,"props":3676,"children":3679},{"href":3677,"rel":3678},"https:\u002F\u002Fh3.unjs.io\u002Fguide\u002Fevent#eventcontext",[2926],[3680],{"type":2911,"tag":3069,"props":3681,"children":3683},{"className":3682},[],[3684],{"type":2916,"value":3685},"event.context",{"type":2911,"tag":2918,"props":3687,"children":3688},{},[3689,3691,3696,3698,3703],{"type":2916,"value":3690},"This resolver is setup within the hook ",{"type":2911,"tag":3069,"props":3692,"children":3694},{"className":3693},[],[3695],{"type":2916,"value":3522},{"type":2916,"value":3697}," and receive the event. You can use it to retrieve the user from the session or the request. It should return the user object or ",{"type":2911,"tag":3069,"props":3699,"children":3701},{"className":3700},[],[3702],{"type":2916,"value":3419},{"type":2916,"value":3421},{"type":2911,"tag":2918,"props":3705,"children":3706},{},[3707],{"type":2916,"value":3708},"Generally, you use a plugin to fetch the user when the app starts and then store it. Resolver functions should only return the stored user and not fetch it again (otherwise, you could have severe performance issues).",{"type":2911,"tag":3710,"props":3711,"children":3713},"h4",{"id":3712},"example-with-nuxt-auth-utils",[3714,3716],{"type":2916,"value":3715},"Example with ",{"type":2911,"tag":3069,"props":3717,"children":3719},{"className":3718},[],[3720],{"type":2916,"value":3721},"nuxt-auth-utils",{"type":2911,"tag":2918,"props":3723,"children":3724},{},[3725,3727,3732],{"type":2916,"value":3726},"The module ",{"type":2911,"tag":3069,"props":3728,"children":3730},{"className":3729},[],[3731],{"type":2916,"value":3721},{"type":2916,"value":3733}," provides an authentication layer for Nuxt. If you use this module, you can use the following resolvers:",{"type":2911,"tag":2918,"props":3735,"children":3736},{},[3737],{"type":2916,"value":3738},"Nuxt plugin:",{"type":2911,"tag":3062,"props":3740,"children":3742},{"className":3153,"code":3741,"language":3155,"meta":2861,"style":2861},"export default defineNuxtPlugin({\n  name: 'authorization-resolver',\n  parallel: true,\n  setup() {\n    return {\n      provide: {\n        authorization: {\n          resolveClientUser: () => useUserSession().user.value,\n        },\n      },\n    }\n  },\n})\n",[3743],{"type":2911,"tag":3069,"props":3744,"children":3745},{"__ignoreMap":2861},[3746,3769,3796,3815,3830,3841,3856,3871,3921,3928,3935,3942,3949],{"type":2911,"tag":2994,"props":3747,"children":3748},{"class":3074,"line":2895},[3749,3753,3757,3761,3765],{"type":2911,"tag":2994,"props":3750,"children":3751},{"style":3165},[3752],{"type":2916,"value":3168},{"type":2911,"tag":2994,"props":3754,"children":3755},{"style":3165},[3756],{"type":2916,"value":3173},{"type":2911,"tag":2994,"props":3758,"children":3759},{"style":3176},[3760],{"type":2916,"value":3179},{"type":2911,"tag":2994,"props":3762,"children":3763},{"style":3182},[3764],{"type":2916,"value":3185},{"type":2911,"tag":2994,"props":3766,"children":3767},{"style":3188},[3768],{"type":2916,"value":3191},{"type":2911,"tag":2994,"props":3770,"children":3771},{"class":3074,"line":2888},[3772,3776,3780,3784,3788,3792],{"type":2911,"tag":2994,"props":3773,"children":3774},{"style":3197},[3775],{"type":2916,"value":3200},{"type":2911,"tag":2994,"props":3777,"children":3778},{"style":3188},[3779],{"type":2916,"value":3150},{"type":2911,"tag":2994,"props":3781,"children":3782},{"style":3188},[3783],{"type":2916,"value":3209},{"type":2911,"tag":2994,"props":3785,"children":3786},{"style":3084},[3787],{"type":2916,"value":3214},{"type":2911,"tag":2994,"props":3789,"children":3790},{"style":3188},[3791],{"type":2916,"value":3219},{"type":2911,"tag":2994,"props":3793,"children":3794},{"style":3188},[3795],{"type":2916,"value":3224},{"type":2911,"tag":2994,"props":3797,"children":3798},{"class":3074,"line":2884},[3799,3803,3807,3811],{"type":2911,"tag":2994,"props":3800,"children":3801},{"style":3197},[3802],{"type":2916,"value":3232},{"type":2911,"tag":2994,"props":3804,"children":3805},{"style":3188},[3806],{"type":2916,"value":3150},{"type":2911,"tag":2994,"props":3808,"children":3809},{"style":3239},[3810],{"type":2916,"value":3242},{"type":2911,"tag":2994,"props":3812,"children":3813},{"style":3188},[3814],{"type":2916,"value":3224},{"type":2911,"tag":2994,"props":3816,"children":3817},{"class":3074,"line":3249},[3818,3822,3826],{"type":2911,"tag":2994,"props":3819,"children":3820},{"style":3197},[3821],{"type":2916,"value":3255},{"type":2911,"tag":2994,"props":3823,"children":3824},{"style":3188},[3825],{"type":2916,"value":3260},{"type":2911,"tag":2994,"props":3827,"children":3828},{"style":3188},[3829],{"type":2916,"value":3265},{"type":2911,"tag":2994,"props":3831,"children":3832},{"class":3074,"line":3268},[3833,3837],{"type":2911,"tag":2994,"props":3834,"children":3835},{"style":3165},[3836],{"type":2916,"value":3274},{"type":2911,"tag":2994,"props":3838,"children":3839},{"style":3188},[3840],{"type":2916,"value":3265},{"type":2911,"tag":2994,"props":3842,"children":3843},{"class":3074,"line":3281},[3844,3848,3852],{"type":2911,"tag":2994,"props":3845,"children":3846},{"style":3197},[3847],{"type":2916,"value":3287},{"type":2911,"tag":2994,"props":3849,"children":3850},{"style":3188},[3851],{"type":2916,"value":3150},{"type":2911,"tag":2994,"props":3853,"children":3854},{"style":3188},[3855],{"type":2916,"value":3265},{"type":2911,"tag":2994,"props":3857,"children":3858},{"class":3074,"line":3298},[3859,3863,3867],{"type":2911,"tag":2994,"props":3860,"children":3861},{"style":3197},[3862],{"type":2916,"value":3304},{"type":2911,"tag":2994,"props":3864,"children":3865},{"style":3188},[3866],{"type":2916,"value":3150},{"type":2911,"tag":2994,"props":3868,"children":3869},{"style":3188},[3870],{"type":2916,"value":3265},{"type":2911,"tag":2994,"props":3872,"children":3873},{"class":3074,"line":3315},[3874,3878,3882,3886,3890,3895,3899,3903,3908,3912,3917],{"type":2911,"tag":2994,"props":3875,"children":3876},{"style":3176},[3877],{"type":2916,"value":3321},{"type":2911,"tag":2994,"props":3879,"children":3880},{"style":3188},[3881],{"type":2916,"value":3150},{"type":2911,"tag":2994,"props":3883,"children":3884},{"style":3188},[3885],{"type":2916,"value":3330},{"type":2911,"tag":2994,"props":3887,"children":3888},{"style":3333},[3889],{"type":2916,"value":3336},{"type":2911,"tag":2994,"props":3891,"children":3892},{"style":3176},[3893],{"type":2916,"value":3894}," useUserSession",{"type":2911,"tag":2994,"props":3896,"children":3897},{"style":3197},[3898],{"type":2916,"value":3260},{"type":2911,"tag":2994,"props":3900,"children":3901},{"style":3188},[3902],{"type":2916,"value":3013},{"type":2911,"tag":2994,"props":3904,"children":3905},{"style":3182},[3906],{"type":2916,"value":3907},"user",{"type":2911,"tag":2994,"props":3909,"children":3910},{"style":3188},[3911],{"type":2916,"value":3013},{"type":2911,"tag":2994,"props":3913,"children":3914},{"style":3182},[3915],{"type":2916,"value":3916},"value",{"type":2911,"tag":2994,"props":3918,"children":3919},{"style":3188},[3920],{"type":2916,"value":3224},{"type":2911,"tag":2994,"props":3922,"children":3923},{"class":3074,"line":3343},[3924],{"type":2911,"tag":2994,"props":3925,"children":3926},{"style":3188},[3927],{"type":2916,"value":3368},{"type":2911,"tag":2994,"props":3929,"children":3930},{"class":3074,"line":3353},[3931],{"type":2911,"tag":2994,"props":3932,"children":3933},{"style":3188},[3934],{"type":2916,"value":3377},{"type":2911,"tag":2994,"props":3936,"children":3937},{"class":3074,"line":3362},[3938],{"type":2911,"tag":2994,"props":3939,"children":3940},{"style":3188},[3941],{"type":2916,"value":3386},{"type":2911,"tag":2994,"props":3943,"children":3944},{"class":3074,"line":3371},[3945],{"type":2911,"tag":2994,"props":3946,"children":3947},{"style":3188},[3948],{"type":2916,"value":3394},{"type":2911,"tag":2994,"props":3950,"children":3951},{"class":3074,"line":3380},[3952,3956],{"type":2911,"tag":2994,"props":3953,"children":3954},{"style":3188},[3955],{"type":2916,"value":3403},{"type":2911,"tag":2994,"props":3957,"children":3958},{"style":3182},[3959],{"type":2916,"value":3408},{"type":2911,"tag":2918,"props":3961,"children":3962},{},[3963],{"type":2916,"value":3964},"Nitro plugin:",{"type":2911,"tag":3062,"props":3966,"children":3968},{"className":3153,"code":3967,"language":3155,"meta":2861,"style":2861},"export default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('request', async (event) => {\n    event.context.$authorization = {\n      resolveServerUser: async () => {\n        const session = await getUserSession(event)\n        return session.user ?? null\n      },\n    }\n  })\n})\n",[3969],{"type":2911,"tag":3069,"props":3970,"children":3971},{"__ignoreMap":2861},[3972,4011,4078,4109,4136,4175,4205,4212,4219,4230],{"type":2911,"tag":2994,"props":3973,"children":3974},{"class":3074,"line":2895},[3975,3979,3983,3987,3991,3995,3999,4003,4007],{"type":2911,"tag":2994,"props":3976,"children":3977},{"style":3165},[3978],{"type":2916,"value":3168},{"type":2911,"tag":2994,"props":3980,"children":3981},{"style":3165},[3982],{"type":2916,"value":3173},{"type":2911,"tag":2994,"props":3984,"children":3985},{"style":3176},[3986],{"type":2916,"value":3456},{"type":2911,"tag":2994,"props":3988,"children":3989},{"style":3182},[3990],{"type":2916,"value":3185},{"type":2911,"tag":2994,"props":3992,"children":3993},{"style":3188},[3994],{"type":2916,"value":3185},{"type":2911,"tag":2994,"props":3996,"children":3997},{"style":3467},[3998],{"type":2916,"value":3470},{"type":2911,"tag":2994,"props":4000,"children":4001},{"style":3188},[4002],{"type":2916,"value":3475},{"type":2911,"tag":2994,"props":4004,"children":4005},{"style":3333},[4006],{"type":2916,"value":3336},{"type":2911,"tag":2994,"props":4008,"children":4009},{"style":3188},[4010],{"type":2916,"value":3265},{"type":2911,"tag":2994,"props":4012,"children":4013},{"class":3074,"line":2888},[4014,4018,4022,4026,4030,4034,4038,4042,4046,4050,4054,4058,4062,4066,4070,4074],{"type":2911,"tag":2994,"props":4015,"children":4016},{"style":3182},[4017],{"type":2916,"value":3491},{"type":2911,"tag":2994,"props":4019,"children":4020},{"style":3188},[4021],{"type":2916,"value":3013},{"type":2911,"tag":2994,"props":4023,"children":4024},{"style":3182},[4025],{"type":2916,"value":3500},{"type":2911,"tag":2994,"props":4027,"children":4028},{"style":3188},[4029],{"type":2916,"value":3013},{"type":2911,"tag":2994,"props":4031,"children":4032},{"style":3176},[4033],{"type":2916,"value":3509},{"type":2911,"tag":2994,"props":4035,"children":4036},{"style":3197},[4037],{"type":2916,"value":3185},{"type":2911,"tag":2994,"props":4039,"children":4040},{"style":3188},[4041],{"type":2916,"value":3219},{"type":2911,"tag":2994,"props":4043,"children":4044},{"style":3084},[4045],{"type":2916,"value":3522},{"type":2911,"tag":2994,"props":4047,"children":4048},{"style":3188},[4049],{"type":2916,"value":3219},{"type":2911,"tag":2994,"props":4051,"children":4052},{"style":3188},[4053],{"type":2916,"value":3531},{"type":2911,"tag":2994,"props":4055,"children":4056},{"style":3333},[4057],{"type":2916,"value":3536},{"type":2911,"tag":2994,"props":4059,"children":4060},{"style":3188},[4061],{"type":2916,"value":3541},{"type":2911,"tag":2994,"props":4063,"children":4064},{"style":3467},[4065],{"type":2916,"value":3546},{"type":2911,"tag":2994,"props":4067,"children":4068},{"style":3188},[4069],{"type":2916,"value":3475},{"type":2911,"tag":2994,"props":4071,"children":4072},{"style":3333},[4073],{"type":2916,"value":3336},{"type":2911,"tag":2994,"props":4075,"children":4076},{"style":3188},[4077],{"type":2916,"value":3265},{"type":2911,"tag":2994,"props":4079,"children":4080},{"class":3074,"line":2884},[4081,4085,4089,4093,4097,4101,4105],{"type":2911,"tag":2994,"props":4082,"children":4083},{"style":3182},[4084],{"type":2916,"value":3566},{"type":2911,"tag":2994,"props":4086,"children":4087},{"style":3188},[4088],{"type":2916,"value":3013},{"type":2911,"tag":2994,"props":4090,"children":4091},{"style":3182},[4092],{"type":2916,"value":3575},{"type":2911,"tag":2994,"props":4094,"children":4095},{"style":3188},[4096],{"type":2916,"value":3013},{"type":2911,"tag":2994,"props":4098,"children":4099},{"style":3182},[4100],{"type":2916,"value":3584},{"type":2911,"tag":2994,"props":4102,"children":4103},{"style":3188},[4104],{"type":2916,"value":3589},{"type":2911,"tag":2994,"props":4106,"children":4107},{"style":3188},[4108],{"type":2916,"value":3265},{"type":2911,"tag":2994,"props":4110,"children":4111},{"class":3074,"line":3249},[4112,4116,4120,4124,4128,4132],{"type":2911,"tag":2994,"props":4113,"children":4114},{"style":3176},[4115],{"type":2916,"value":3601},{"type":2911,"tag":2994,"props":4117,"children":4118},{"style":3188},[4119],{"type":2916,"value":3150},{"type":2911,"tag":2994,"props":4121,"children":4122},{"style":3333},[4123],{"type":2916,"value":3536},{"type":2911,"tag":2994,"props":4125,"children":4126},{"style":3188},[4127],{"type":2916,"value":3330},{"type":2911,"tag":2994,"props":4129,"children":4130},{"style":3333},[4131],{"type":2916,"value":3336},{"type":2911,"tag":2994,"props":4133,"children":4134},{"style":3188},[4135],{"type":2916,"value":3265},{"type":2911,"tag":2994,"props":4137,"children":4138},{"class":3074,"line":3268},[4139,4144,4149,4153,4158,4163,4167,4171],{"type":2911,"tag":2994,"props":4140,"children":4141},{"style":3333},[4142],{"type":2916,"value":4143},"        const",{"type":2911,"tag":2994,"props":4145,"children":4146},{"style":3182},[4147],{"type":2916,"value":4148}," session",{"type":2911,"tag":2994,"props":4150,"children":4151},{"style":3188},[4152],{"type":2916,"value":3589},{"type":2911,"tag":2994,"props":4154,"children":4155},{"style":3165},[4156],{"type":2916,"value":4157}," await",{"type":2911,"tag":2994,"props":4159,"children":4160},{"style":3176},[4161],{"type":2916,"value":4162}," getUserSession",{"type":2911,"tag":2994,"props":4164,"children":4165},{"style":3197},[4166],{"type":2916,"value":3185},{"type":2911,"tag":2994,"props":4168,"children":4169},{"style":3182},[4170],{"type":2916,"value":3546},{"type":2911,"tag":2994,"props":4172,"children":4173},{"style":3197},[4174],{"type":2916,"value":3408},{"type":2911,"tag":2994,"props":4176,"children":4177},{"class":3074,"line":3281},[4178,4183,4187,4191,4195,4200],{"type":2911,"tag":2994,"props":4179,"children":4180},{"style":3165},[4181],{"type":2916,"value":4182},"        return",{"type":2911,"tag":2994,"props":4184,"children":4185},{"style":3182},[4186],{"type":2916,"value":4148},{"type":2911,"tag":2994,"props":4188,"children":4189},{"style":3188},[4190],{"type":2916,"value":3013},{"type":2911,"tag":2994,"props":4192,"children":4193},{"style":3182},[4194],{"type":2916,"value":3907},{"type":2911,"tag":2994,"props":4196,"children":4197},{"style":3188},[4198],{"type":2916,"value":4199}," ??",{"type":2911,"tag":2994,"props":4201,"children":4202},{"style":3188},[4203],{"type":2916,"value":4204}," null\n",{"type":2911,"tag":2994,"props":4206,"children":4207},{"class":3074,"line":3298},[4208],{"type":2911,"tag":2994,"props":4209,"children":4210},{"style":3188},[4211],{"type":2916,"value":3377},{"type":2911,"tag":2994,"props":4213,"children":4214},{"class":3074,"line":3315},[4215],{"type":2911,"tag":2994,"props":4216,"children":4217},{"style":3188},[4218],{"type":2916,"value":3386},{"type":2911,"tag":2994,"props":4220,"children":4221},{"class":3074,"line":3343},[4222,4226],{"type":2911,"tag":2994,"props":4223,"children":4224},{"style":3188},[4225],{"type":2916,"value":3647},{"type":2911,"tag":2994,"props":4227,"children":4228},{"style":3197},[4229],{"type":2916,"value":3408},{"type":2911,"tag":2994,"props":4231,"children":4232},{"class":3074,"line":3353},[4233,4237],{"type":2911,"tag":2994,"props":4234,"children":4235},{"style":3188},[4236],{"type":2916,"value":3403},{"type":2911,"tag":2994,"props":4238,"children":4239},{"style":3182},[4240],{"type":2916,"value":3408},{"type":2911,"tag":2918,"props":4242,"children":4243},{},[4244],{"type":2916,"value":4245},"Easy!",{"type":2911,"tag":3127,"props":4247,"children":4249},{"id":4248},"define-abilities",[4250],{"type":2916,"value":4251},"Define Abilities",{"type":2911,"tag":2987,"props":4253,"children":4254},{},[4255],{"type":2911,"tag":2918,"props":4256,"children":4257},{},[4258,4262,4264,4269,4271,4278],{"type":2911,"tag":2994,"props":4259,"children":4260},{},[4261],{"type":2916,"value":2998},{"type":2916,"value":4263},"\nWith Nuxt 4, a new ",{"type":2911,"tag":3069,"props":4265,"children":4267},{"className":4266},[],[4268],{"type":2916,"value":190},{"type":2916,"value":4270}," directory will be introduced to easily share code between the client and the server.\nSee ",{"type":2911,"tag":2922,"props":4272,"children":4275},{"href":4273,"rel":4274},"https:\u002F\u002Fyoutu.be\u002F_m5ct5e8nVo?si=2iNcPVMttlIq5fLR",[2926],[4276],{"type":2916,"value":4277},"the video from Alexander Lichter",{"type":2916,"value":3013},{"type":2911,"tag":2918,"props":4280,"children":4281},{},[4282],{"type":2916,"value":4283},"Now the resolvers are set up, you can define your first ability. An ability is a function that takes at least the user, and returns a boolean to indicate if the user can perform the action. It can also take additional arguments.",{"type":2911,"tag":2918,"props":4285,"children":4286},{},[4287,4289,4295],{"type":2916,"value":4288},"I recommend to create a new file ",{"type":2911,"tag":3069,"props":4290,"children":4292},{"className":4291},[],[4293],{"type":2916,"value":4294},"shared\u002Futils\u002Fabilities.ts",{"type":2916,"value":4296}," to create your abilities:",{"type":2911,"tag":3062,"props":4298,"children":4300},{"className":3153,"code":4299,"language":3155,"meta":2861,"style":2861},"export const listPosts = defineAbility(() => true) \u002F\u002F Only authenticated users can list posts\n\nexport const editPost = defineAbility((user: User, post: Post) => {\n  return user.id === post.authorId\n})\n",[4301],{"type":2911,"tag":3069,"props":4302,"children":4303},{"__ignoreMap":2861},[4304,4357,4365,4440,4480],{"type":2911,"tag":2994,"props":4305,"children":4306},{"class":3074,"line":2895},[4307,4311,4316,4321,4326,4331,4335,4339,4343,4347,4352],{"type":2911,"tag":2994,"props":4308,"children":4309},{"style":3165},[4310],{"type":2916,"value":3168},{"type":2911,"tag":2994,"props":4312,"children":4313},{"style":3333},[4314],{"type":2916,"value":4315}," const",{"type":2911,"tag":2994,"props":4317,"children":4318},{"style":3182},[4319],{"type":2916,"value":4320}," listPosts ",{"type":2911,"tag":2994,"props":4322,"children":4323},{"style":3188},[4324],{"type":2916,"value":4325},"=",{"type":2911,"tag":2994,"props":4327,"children":4328},{"style":3176},[4329],{"type":2916,"value":4330}," defineAbility",{"type":2911,"tag":2994,"props":4332,"children":4333},{"style":3182},[4334],{"type":2916,"value":3185},{"type":2911,"tag":2994,"props":4336,"children":4337},{"style":3188},[4338],{"type":2916,"value":3260},{"type":2911,"tag":2994,"props":4340,"children":4341},{"style":3333},[4342],{"type":2916,"value":3336},{"type":2911,"tag":2994,"props":4344,"children":4345},{"style":3239},[4346],{"type":2916,"value":3242},{"type":2911,"tag":2994,"props":4348,"children":4349},{"style":3182},[4350],{"type":2916,"value":4351},") ",{"type":2911,"tag":2994,"props":4353,"children":4354},{"style":3347},[4355],{"type":2916,"value":4356},"\u002F\u002F Only authenticated users can list posts\n",{"type":2911,"tag":2994,"props":4358,"children":4359},{"class":3074,"line":2888},[4360],{"type":2911,"tag":2994,"props":4361,"children":4362},{"emptyLinePlaceholder":1196},[4363],{"type":2916,"value":4364},"\n",{"type":2911,"tag":2994,"props":4366,"children":4367},{"class":3074,"line":2884},[4368,4372,4376,4381,4385,4389,4393,4397,4401,4405,4410,4414,4419,4423,4428,4432,4436],{"type":2911,"tag":2994,"props":4369,"children":4370},{"style":3165},[4371],{"type":2916,"value":3168},{"type":2911,"tag":2994,"props":4373,"children":4374},{"style":3333},[4375],{"type":2916,"value":4315},{"type":2911,"tag":2994,"props":4377,"children":4378},{"style":3182},[4379],{"type":2916,"value":4380}," editPost ",{"type":2911,"tag":2994,"props":4382,"children":4383},{"style":3188},[4384],{"type":2916,"value":4325},{"type":2911,"tag":2994,"props":4386,"children":4387},{"style":3176},[4388],{"type":2916,"value":4330},{"type":2911,"tag":2994,"props":4390,"children":4391},{"style":3182},[4392],{"type":2916,"value":3185},{"type":2911,"tag":2994,"props":4394,"children":4395},{"style":3188},[4396],{"type":2916,"value":3185},{"type":2911,"tag":2994,"props":4398,"children":4399},{"style":3467},[4400],{"type":2916,"value":3907},{"type":2911,"tag":2994,"props":4402,"children":4403},{"style":3188},[4404],{"type":2916,"value":3150},{"type":2911,"tag":2994,"props":4406,"children":4407},{"style":3078},[4408],{"type":2916,"value":4409}," User",{"type":2911,"tag":2994,"props":4411,"children":4412},{"style":3188},[4413],{"type":2916,"value":3531},{"type":2911,"tag":2994,"props":4415,"children":4416},{"style":3467},[4417],{"type":2916,"value":4418}," post",{"type":2911,"tag":2994,"props":4420,"children":4421},{"style":3188},[4422],{"type":2916,"value":3150},{"type":2911,"tag":2994,"props":4424,"children":4425},{"style":3078},[4426],{"type":2916,"value":4427}," Post",{"type":2911,"tag":2994,"props":4429,"children":4430},{"style":3188},[4431],{"type":2916,"value":3475},{"type":2911,"tag":2994,"props":4433,"children":4434},{"style":3333},[4435],{"type":2916,"value":3336},{"type":2911,"tag":2994,"props":4437,"children":4438},{"style":3188},[4439],{"type":2916,"value":3265},{"type":2911,"tag":2994,"props":4441,"children":4442},{"class":3074,"line":3249},[4443,4448,4453,4457,4462,4467,4471,4475],{"type":2911,"tag":2994,"props":4444,"children":4445},{"style":3165},[4446],{"type":2916,"value":4447},"  return",{"type":2911,"tag":2994,"props":4449,"children":4450},{"style":3182},[4451],{"type":2916,"value":4452}," user",{"type":2911,"tag":2994,"props":4454,"children":4455},{"style":3188},[4456],{"type":2916,"value":3013},{"type":2911,"tag":2994,"props":4458,"children":4459},{"style":3182},[4460],{"type":2916,"value":4461},"id",{"type":2911,"tag":2994,"props":4463,"children":4464},{"style":3188},[4465],{"type":2916,"value":4466}," ===",{"type":2911,"tag":2994,"props":4468,"children":4469},{"style":3182},[4470],{"type":2916,"value":4418},{"type":2911,"tag":2994,"props":4472,"children":4473},{"style":3188},[4474],{"type":2916,"value":3013},{"type":2911,"tag":2994,"props":4476,"children":4477},{"style":3182},[4478],{"type":2916,"value":4479},"authorId\n",{"type":2911,"tag":2994,"props":4481,"children":4482},{"class":3074,"line":3268},[4483,4487],{"type":2911,"tag":2994,"props":4484,"children":4485},{"style":3188},[4486],{"type":2916,"value":3403},{"type":2911,"tag":2994,"props":4488,"children":4489},{"style":3182},[4490],{"type":2916,"value":3408},{"type":2911,"tag":2918,"props":4492,"children":4493},{},[4494,4496,4502,4504,4510,4512,4518,4520,4526,4528,4534],{"type":2916,"value":4495},"If you have many abilities, you could prefer to create a directory ",{"type":2911,"tag":3069,"props":4497,"children":4499},{"className":4498},[],[4500],{"type":2916,"value":4501},"shared\u002Futils\u002Fabilities\u002F",{"type":2916,"value":4503}," and create a file for each ability. Having the abilities in the ",{"type":2911,"tag":3069,"props":4505,"children":4507},{"className":4506},[],[4508],{"type":2916,"value":4509},"shared\u002Futils",{"type":2916,"value":4511}," directory allows auto-import to work in the client while having a simple import in the server ",{"type":2911,"tag":3069,"props":4513,"children":4515},{"className":4514},[],[4516],{"type":2916,"value":4517},"~~\u002Fshared\u002Futils\u002Fabilities",{"type":2916,"value":4519},". ",{"type":2911,"tag":4521,"props":4522,"children":4523},"strong",{},[4524],{"type":2916,"value":4525},"Remember that the shared folder only exports the first level of the directory.",{"type":2916,"value":4527}," So you have to export the abilities in the ",{"type":2911,"tag":3069,"props":4529,"children":4531},{"className":4530},[],[4532],{"type":2916,"value":4533},"shared\u002Futils\u002Fabilities\u002Findex.ts",{"type":2916,"value":4535}," file.",{"type":2911,"tag":2918,"props":4537,"children":4538},{},[4539],{"type":2916,"value":4540},"By default, guests are not allowed to perform any action and the ability is not called. This behavior can be changed per ability:",{"type":2911,"tag":3062,"props":4542,"children":4544},{"className":3153,"code":4543,"language":3155,"meta":2861,"style":2861},"export const listPosts = defineAbility({ allowGuest: true }, (user: User | null) => true)\n",[4545],{"type":2911,"tag":3069,"props":4546,"children":4547},{"__ignoreMap":2861},[4548],{"type":2911,"tag":2994,"props":4549,"children":4550},{"class":3074,"line":2895},[4551,4555,4559,4563,4567,4571,4575,4580,4585,4589,4593,4598,4602,4606,4610,4614,4619,4624,4628,4632,4636],{"type":2911,"tag":2994,"props":4552,"children":4553},{"style":3165},[4554],{"type":2916,"value":3168},{"type":2911,"tag":2994,"props":4556,"children":4557},{"style":3333},[4558],{"type":2916,"value":4315},{"type":2911,"tag":2994,"props":4560,"children":4561},{"style":3182},[4562],{"type":2916,"value":4320},{"type":2911,"tag":2994,"props":4564,"children":4565},{"style":3188},[4566],{"type":2916,"value":4325},{"type":2911,"tag":2994,"props":4568,"children":4569},{"style":3176},[4570],{"type":2916,"value":4330},{"type":2911,"tag":2994,"props":4572,"children":4573},{"style":3182},[4574],{"type":2916,"value":3185},{"type":2911,"tag":2994,"props":4576,"children":4577},{"style":3188},[4578],{"type":2916,"value":4579},"{",{"type":2911,"tag":2994,"props":4581,"children":4582},{"style":3197},[4583],{"type":2916,"value":4584}," allowGuest",{"type":2911,"tag":2994,"props":4586,"children":4587},{"style":3188},[4588],{"type":2916,"value":3150},{"type":2911,"tag":2994,"props":4590,"children":4591},{"style":3239},[4592],{"type":2916,"value":3242},{"type":2911,"tag":2994,"props":4594,"children":4595},{"style":3188},[4596],{"type":2916,"value":4597}," },",{"type":2911,"tag":2994,"props":4599,"children":4600},{"style":3188},[4601],{"type":2916,"value":3541},{"type":2911,"tag":2994,"props":4603,"children":4604},{"style":3467},[4605],{"type":2916,"value":3907},{"type":2911,"tag":2994,"props":4607,"children":4608},{"style":3188},[4609],{"type":2916,"value":3150},{"type":2911,"tag":2994,"props":4611,"children":4612},{"style":3078},[4613],{"type":2916,"value":4409},{"type":2911,"tag":2994,"props":4615,"children":4616},{"style":3188},[4617],{"type":2916,"value":4618}," |",{"type":2911,"tag":2994,"props":4620,"children":4621},{"style":3078},[4622],{"type":2916,"value":4623}," null",{"type":2911,"tag":2994,"props":4625,"children":4626},{"style":3188},[4627],{"type":2916,"value":3475},{"type":2911,"tag":2994,"props":4629,"children":4630},{"style":3333},[4631],{"type":2916,"value":3336},{"type":2911,"tag":2994,"props":4633,"children":4634},{"style":3239},[4635],{"type":2916,"value":3242},{"type":2911,"tag":2994,"props":4637,"children":4638},{"style":3182},[4639],{"type":2916,"value":3408},{"type":2911,"tag":2918,"props":4641,"children":4642},{},[4643],{"type":2916,"value":4644},"Now, unauthenticated users can list posts.",{"type":2911,"tag":3127,"props":4646,"children":4648},{"id":4647},"use-abilities",[4649],{"type":2916,"value":4650},"Use Abilities",{"type":2911,"tag":2918,"props":4652,"children":4653},{},[4654,4656,4662,4664,4670,4672,4678,4680],{"type":2916,"value":4655},"To use ability, you have access to 3 bouncer functions: ",{"type":2911,"tag":3069,"props":4657,"children":4659},{"className":4658},[],[4660],{"type":2916,"value":4661},"allows",{"type":2916,"value":4663},", ",{"type":2911,"tag":3069,"props":4665,"children":4667},{"className":4666},[],[4668],{"type":2916,"value":4669},"denies",{"type":2916,"value":4671},", and ",{"type":2911,"tag":3069,"props":4673,"children":4675},{"className":4674},[],[4676],{"type":2916,"value":4677},"authorize",{"type":2916,"value":4679},". Both of them are available in the client and the server. ",{"type":2911,"tag":2981,"props":4681,"children":4682},{},[4683,4685,4690],{"type":2916,"value":4684},"The implementation is different but the API is (nearly) the same and it's entirely transparent the developer. On the server, the first parameter is the ",{"type":2911,"tag":3069,"props":4686,"children":4688},{"className":4687},[],[4689],{"type":2916,"value":3546},{"type":2916,"value":4691}," from the handler.",{"type":2911,"tag":2918,"props":4693,"children":4694},{},[4695,4697,4702],{"type":2916,"value":4696},"The ",{"type":2911,"tag":3069,"props":4698,"children":4700},{"className":4699},[],[4701],{"type":2916,"value":4661},{"type":2916,"value":4703}," function returns a boolean if the user can perform the action:",{"type":2911,"tag":3062,"props":4705,"children":4707},{"className":3153,"code":4706,"language":3155,"meta":2861,"style":2861},"if (await allows(listPosts)) {\n  \u002F\u002F User can list posts\n}\n",[4708],{"type":2911,"tag":3069,"props":4709,"children":4710},{"__ignoreMap":2861},[4711,4742,4750],{"type":2911,"tag":2994,"props":4712,"children":4713},{"class":3074,"line":2895},[4714,4719,4723,4728,4733,4738],{"type":2911,"tag":2994,"props":4715,"children":4716},{"style":3165},[4717],{"type":2916,"value":4718},"if",{"type":2911,"tag":2994,"props":4720,"children":4721},{"style":3182},[4722],{"type":2916,"value":3541},{"type":2911,"tag":2994,"props":4724,"children":4725},{"style":3165},[4726],{"type":2916,"value":4727},"await",{"type":2911,"tag":2994,"props":4729,"children":4730},{"style":3176},[4731],{"type":2916,"value":4732}," allows",{"type":2911,"tag":2994,"props":4734,"children":4735},{"style":3182},[4736],{"type":2916,"value":4737},"(listPosts)) ",{"type":2911,"tag":2994,"props":4739,"children":4740},{"style":3188},[4741],{"type":2916,"value":3191},{"type":2911,"tag":2994,"props":4743,"children":4744},{"class":3074,"line":2888},[4745],{"type":2911,"tag":2994,"props":4746,"children":4747},{"style":3347},[4748],{"type":2916,"value":4749},"  \u002F\u002F User can list posts\n",{"type":2911,"tag":2994,"props":4751,"children":4752},{"class":3074,"line":2884},[4753],{"type":2911,"tag":2994,"props":4754,"children":4755},{"style":3188},[4756],{"type":2916,"value":4757},"}\n",{"type":2911,"tag":2918,"props":4759,"children":4760},{},[4761],{"type":2911,"tag":2981,"props":4762,"children":4763},{},[4764],{"type":2916,"value":4765},"For the server:",{"type":2911,"tag":3062,"props":4767,"children":4769},{"className":3153,"code":4768,"language":3155,"meta":2861,"style":2861},"if (await allows(event, listPosts)) {\n  \u002F\u002F User can list posts\n}\n",[4770],{"type":2911,"tag":3069,"props":4771,"children":4772},{"__ignoreMap":2861},[4773,4810,4817],{"type":2911,"tag":2994,"props":4774,"children":4775},{"class":3074,"line":2895},[4776,4780,4784,4788,4792,4797,4801,4806],{"type":2911,"tag":2994,"props":4777,"children":4778},{"style":3165},[4779],{"type":2916,"value":4718},{"type":2911,"tag":2994,"props":4781,"children":4782},{"style":3182},[4783],{"type":2916,"value":3541},{"type":2911,"tag":2994,"props":4785,"children":4786},{"style":3165},[4787],{"type":2916,"value":4727},{"type":2911,"tag":2994,"props":4789,"children":4790},{"style":3176},[4791],{"type":2916,"value":4732},{"type":2911,"tag":2994,"props":4793,"children":4794},{"style":3182},[4795],{"type":2916,"value":4796},"(event",{"type":2911,"tag":2994,"props":4798,"children":4799},{"style":3188},[4800],{"type":2916,"value":3531},{"type":2911,"tag":2994,"props":4802,"children":4803},{"style":3182},[4804],{"type":2916,"value":4805}," listPosts)) ",{"type":2911,"tag":2994,"props":4807,"children":4808},{"style":3188},[4809],{"type":2916,"value":3191},{"type":2911,"tag":2994,"props":4811,"children":4812},{"class":3074,"line":2888},[4813],{"type":2911,"tag":2994,"props":4814,"children":4815},{"style":3347},[4816],{"type":2916,"value":4749},{"type":2911,"tag":2994,"props":4818,"children":4819},{"class":3074,"line":2884},[4820],{"type":2911,"tag":2994,"props":4821,"children":4822},{"style":3188},[4823],{"type":2916,"value":4757},{"type":2911,"tag":2918,"props":4825,"children":4826},{},[4827,4828,4833],{"type":2916,"value":4696},{"type":2911,"tag":3069,"props":4829,"children":4831},{"className":4830},[],[4832],{"type":2916,"value":4669},{"type":2916,"value":4834}," function returns a boolean if the user cannot perform the action:",{"type":2911,"tag":3062,"props":4836,"children":4838},{"className":3153,"code":4837,"language":3155,"meta":2861,"style":2861},"if (await denies(editPost, post)) {\n  \u002F\u002F User cannot edit the post\n}\n",[4839],{"type":2911,"tag":3069,"props":4840,"children":4841},{"__ignoreMap":2861},[4842,4880,4888],{"type":2911,"tag":2994,"props":4843,"children":4844},{"class":3074,"line":2895},[4845,4849,4853,4857,4862,4867,4871,4876],{"type":2911,"tag":2994,"props":4846,"children":4847},{"style":3165},[4848],{"type":2916,"value":4718},{"type":2911,"tag":2994,"props":4850,"children":4851},{"style":3182},[4852],{"type":2916,"value":3541},{"type":2911,"tag":2994,"props":4854,"children":4855},{"style":3165},[4856],{"type":2916,"value":4727},{"type":2911,"tag":2994,"props":4858,"children":4859},{"style":3176},[4860],{"type":2916,"value":4861}," denies",{"type":2911,"tag":2994,"props":4863,"children":4864},{"style":3182},[4865],{"type":2916,"value":4866},"(editPost",{"type":2911,"tag":2994,"props":4868,"children":4869},{"style":3188},[4870],{"type":2916,"value":3531},{"type":2911,"tag":2994,"props":4872,"children":4873},{"style":3182},[4874],{"type":2916,"value":4875}," post)) ",{"type":2911,"tag":2994,"props":4877,"children":4878},{"style":3188},[4879],{"type":2916,"value":3191},{"type":2911,"tag":2994,"props":4881,"children":4882},{"class":3074,"line":2888},[4883],{"type":2911,"tag":2994,"props":4884,"children":4885},{"style":3347},[4886],{"type":2916,"value":4887},"  \u002F\u002F User cannot edit the post\n",{"type":2911,"tag":2994,"props":4889,"children":4890},{"class":3074,"line":2884},[4891],{"type":2911,"tag":2994,"props":4892,"children":4893},{"style":3188},[4894],{"type":2916,"value":4757},{"type":2911,"tag":2918,"props":4896,"children":4897},{},[4898],{"type":2911,"tag":2981,"props":4899,"children":4900},{},[4901],{"type":2916,"value":4765},{"type":2911,"tag":3062,"props":4903,"children":4905},{"className":3153,"code":4904,"language":3155,"meta":2861,"style":2861},"if (await denies(event, editPost, post)) {\n  \u002F\u002F User cannot edit the post\n}\n",[4906],{"type":2911,"tag":3069,"props":4907,"children":4908},{"__ignoreMap":2861},[4909,4953,4960],{"type":2911,"tag":2994,"props":4910,"children":4911},{"class":3074,"line":2895},[4912,4916,4920,4924,4928,4932,4936,4941,4945,4949],{"type":2911,"tag":2994,"props":4913,"children":4914},{"style":3165},[4915],{"type":2916,"value":4718},{"type":2911,"tag":2994,"props":4917,"children":4918},{"style":3182},[4919],{"type":2916,"value":3541},{"type":2911,"tag":2994,"props":4921,"children":4922},{"style":3165},[4923],{"type":2916,"value":4727},{"type":2911,"tag":2994,"props":4925,"children":4926},{"style":3176},[4927],{"type":2916,"value":4861},{"type":2911,"tag":2994,"props":4929,"children":4930},{"style":3182},[4931],{"type":2916,"value":4796},{"type":2911,"tag":2994,"props":4933,"children":4934},{"style":3188},[4935],{"type":2916,"value":3531},{"type":2911,"tag":2994,"props":4937,"children":4938},{"style":3182},[4939],{"type":2916,"value":4940}," editPost",{"type":2911,"tag":2994,"props":4942,"children":4943},{"style":3188},[4944],{"type":2916,"value":3531},{"type":2911,"tag":2994,"props":4946,"children":4947},{"style":3182},[4948],{"type":2916,"value":4875},{"type":2911,"tag":2994,"props":4950,"children":4951},{"style":3188},[4952],{"type":2916,"value":3191},{"type":2911,"tag":2994,"props":4954,"children":4955},{"class":3074,"line":2888},[4956],{"type":2911,"tag":2994,"props":4957,"children":4958},{"style":3347},[4959],{"type":2916,"value":4887},{"type":2911,"tag":2994,"props":4961,"children":4962},{"class":3074,"line":2884},[4963],{"type":2911,"tag":2994,"props":4964,"children":4965},{"style":3188},[4966],{"type":2916,"value":4757},{"type":2911,"tag":2918,"props":4968,"children":4969},{},[4970,4971,4976],{"type":2916,"value":4696},{"type":2911,"tag":3069,"props":4972,"children":4974},{"className":4973},[],[4975],{"type":2916,"value":4677},{"type":2916,"value":4977}," function throws an error if the user cannot perform the action:",{"type":2911,"tag":3062,"props":4979,"children":4981},{"className":3153,"code":4980,"language":3155,"meta":2861,"style":2861},"await authorize(editPost, post)\n\n\u002F\u002F User can edit the post\n",[4982],{"type":2911,"tag":3069,"props":4983,"children":4984},{"__ignoreMap":2861},[4985,5010,5017],{"type":2911,"tag":2994,"props":4986,"children":4987},{"class":3074,"line":2895},[4988,4992,4997,5001,5005],{"type":2911,"tag":2994,"props":4989,"children":4990},{"style":3165},[4991],{"type":2916,"value":4727},{"type":2911,"tag":2994,"props":4993,"children":4994},{"style":3176},[4995],{"type":2916,"value":4996}," authorize",{"type":2911,"tag":2994,"props":4998,"children":4999},{"style":3182},[5000],{"type":2916,"value":4866},{"type":2911,"tag":2994,"props":5002,"children":5003},{"style":3188},[5004],{"type":2916,"value":3531},{"type":2911,"tag":2994,"props":5006,"children":5007},{"style":3182},[5008],{"type":2916,"value":5009}," post)\n",{"type":2911,"tag":2994,"props":5011,"children":5012},{"class":3074,"line":2888},[5013],{"type":2911,"tag":2994,"props":5014,"children":5015},{"emptyLinePlaceholder":1196},[5016],{"type":2916,"value":4364},{"type":2911,"tag":2994,"props":5018,"children":5019},{"class":3074,"line":2884},[5020],{"type":2911,"tag":2994,"props":5021,"children":5022},{"style":3347},[5023],{"type":2916,"value":5024},"\u002F\u002F User can edit the post\n",{"type":2911,"tag":2918,"props":5026,"children":5027},{},[5028],{"type":2911,"tag":2981,"props":5029,"children":5030},{},[5031],{"type":2916,"value":4765},{"type":2911,"tag":3062,"props":5033,"children":5035},{"className":3153,"code":5034,"language":3155,"meta":2861,"style":2861},"await authorize(event, editPost, post)\n",[5036],{"type":2911,"tag":3069,"props":5037,"children":5038},{"__ignoreMap":2861},[5039],{"type":2911,"tag":2994,"props":5040,"children":5041},{"class":3074,"line":2895},[5042,5046,5050,5054,5058,5062,5066],{"type":2911,"tag":2994,"props":5043,"children":5044},{"style":3165},[5045],{"type":2916,"value":4727},{"type":2911,"tag":2994,"props":5047,"children":5048},{"style":3176},[5049],{"type":2916,"value":4996},{"type":2911,"tag":2994,"props":5051,"children":5052},{"style":3182},[5053],{"type":2916,"value":4796},{"type":2911,"tag":2994,"props":5055,"children":5056},{"style":3188},[5057],{"type":2916,"value":3531},{"type":2911,"tag":2994,"props":5059,"children":5060},{"style":3182},[5061],{"type":2916,"value":4940},{"type":2911,"tag":2994,"props":5063,"children":5064},{"style":3188},[5065],{"type":2916,"value":3531},{"type":2911,"tag":2994,"props":5067,"children":5068},{"style":3182},[5069],{"type":2916,"value":5009},{"type":2911,"tag":2918,"props":5071,"children":5072},{},[5073],{"type":2916,"value":5074},"You can customize the error message and the status code per return value of the ability. This can be useful to return a 404 instead of a 403 to keep the user unaware of the existence of the resource.",{"type":2911,"tag":3062,"props":5076,"children":5078},{"className":3153,"code":5077,"language":3155,"meta":2861,"style":2861},"export const editPost = defineAbility((user: User, post: Post) => {\n  if(user.id === post.authorId) {\n    return true \u002F\u002F or allow()\n  }\n\n  return deny('This post does not exist', 404)\n})\n",[5079],{"type":2911,"tag":3069,"props":5080,"children":5081},{"__ignoreMap":2861},[5082,5153,5202,5218,5226,5233,5276],{"type":2911,"tag":2994,"props":5083,"children":5084},{"class":3074,"line":2895},[5085,5089,5093,5097,5101,5105,5109,5113,5117,5121,5125,5129,5133,5137,5141,5145,5149],{"type":2911,"tag":2994,"props":5086,"children":5087},{"style":3165},[5088],{"type":2916,"value":3168},{"type":2911,"tag":2994,"props":5090,"children":5091},{"style":3333},[5092],{"type":2916,"value":4315},{"type":2911,"tag":2994,"props":5094,"children":5095},{"style":3182},[5096],{"type":2916,"value":4380},{"type":2911,"tag":2994,"props":5098,"children":5099},{"style":3188},[5100],{"type":2916,"value":4325},{"type":2911,"tag":2994,"props":5102,"children":5103},{"style":3176},[5104],{"type":2916,"value":4330},{"type":2911,"tag":2994,"props":5106,"children":5107},{"style":3182},[5108],{"type":2916,"value":3185},{"type":2911,"tag":2994,"props":5110,"children":5111},{"style":3188},[5112],{"type":2916,"value":3185},{"type":2911,"tag":2994,"props":5114,"children":5115},{"style":3467},[5116],{"type":2916,"value":3907},{"type":2911,"tag":2994,"props":5118,"children":5119},{"style":3188},[5120],{"type":2916,"value":3150},{"type":2911,"tag":2994,"props":5122,"children":5123},{"style":3078},[5124],{"type":2916,"value":4409},{"type":2911,"tag":2994,"props":5126,"children":5127},{"style":3188},[5128],{"type":2916,"value":3531},{"type":2911,"tag":2994,"props":5130,"children":5131},{"style":3467},[5132],{"type":2916,"value":4418},{"type":2911,"tag":2994,"props":5134,"children":5135},{"style":3188},[5136],{"type":2916,"value":3150},{"type":2911,"tag":2994,"props":5138,"children":5139},{"style":3078},[5140],{"type":2916,"value":4427},{"type":2911,"tag":2994,"props":5142,"children":5143},{"style":3188},[5144],{"type":2916,"value":3475},{"type":2911,"tag":2994,"props":5146,"children":5147},{"style":3333},[5148],{"type":2916,"value":3336},{"type":2911,"tag":2994,"props":5150,"children":5151},{"style":3188},[5152],{"type":2916,"value":3265},{"type":2911,"tag":2994,"props":5154,"children":5155},{"class":3074,"line":2888},[5156,5161,5165,5169,5173,5177,5181,5185,5189,5194,5198],{"type":2911,"tag":2994,"props":5157,"children":5158},{"style":3165},[5159],{"type":2916,"value":5160},"  if",{"type":2911,"tag":2994,"props":5162,"children":5163},{"style":3197},[5164],{"type":2916,"value":3185},{"type":2911,"tag":2994,"props":5166,"children":5167},{"style":3182},[5168],{"type":2916,"value":3907},{"type":2911,"tag":2994,"props":5170,"children":5171},{"style":3188},[5172],{"type":2916,"value":3013},{"type":2911,"tag":2994,"props":5174,"children":5175},{"style":3182},[5176],{"type":2916,"value":4461},{"type":2911,"tag":2994,"props":5178,"children":5179},{"style":3188},[5180],{"type":2916,"value":4466},{"type":2911,"tag":2994,"props":5182,"children":5183},{"style":3182},[5184],{"type":2916,"value":4418},{"type":2911,"tag":2994,"props":5186,"children":5187},{"style":3188},[5188],{"type":2916,"value":3013},{"type":2911,"tag":2994,"props":5190,"children":5191},{"style":3182},[5192],{"type":2916,"value":5193},"authorId",{"type":2911,"tag":2994,"props":5195,"children":5196},{"style":3197},[5197],{"type":2916,"value":4351},{"type":2911,"tag":2994,"props":5199,"children":5200},{"style":3188},[5201],{"type":2916,"value":3191},{"type":2911,"tag":2994,"props":5203,"children":5204},{"class":3074,"line":2884},[5205,5209,5213],{"type":2911,"tag":2994,"props":5206,"children":5207},{"style":3165},[5208],{"type":2916,"value":3274},{"type":2911,"tag":2994,"props":5210,"children":5211},{"style":3239},[5212],{"type":2916,"value":3242},{"type":2911,"tag":2994,"props":5214,"children":5215},{"style":3347},[5216],{"type":2916,"value":5217}," \u002F\u002F or allow()\n",{"type":2911,"tag":2994,"props":5219,"children":5220},{"class":3074,"line":3249},[5221],{"type":2911,"tag":2994,"props":5222,"children":5223},{"style":3188},[5224],{"type":2916,"value":5225},"  }\n",{"type":2911,"tag":2994,"props":5227,"children":5228},{"class":3074,"line":3268},[5229],{"type":2911,"tag":2994,"props":5230,"children":5231},{"emptyLinePlaceholder":1196},[5232],{"type":2916,"value":4364},{"type":2911,"tag":2994,"props":5234,"children":5235},{"class":3074,"line":3281},[5236,5240,5245,5249,5253,5258,5262,5266,5272],{"type":2911,"tag":2994,"props":5237,"children":5238},{"style":3165},[5239],{"type":2916,"value":4447},{"type":2911,"tag":2994,"props":5241,"children":5242},{"style":3176},[5243],{"type":2916,"value":5244}," deny",{"type":2911,"tag":2994,"props":5246,"children":5247},{"style":3197},[5248],{"type":2916,"value":3185},{"type":2911,"tag":2994,"props":5250,"children":5251},{"style":3188},[5252],{"type":2916,"value":3219},{"type":2911,"tag":2994,"props":5254,"children":5255},{"style":3084},[5256],{"type":2916,"value":5257},"This post does not exist",{"type":2911,"tag":2994,"props":5259,"children":5260},{"style":3188},[5261],{"type":2916,"value":3219},{"type":2911,"tag":2994,"props":5263,"children":5264},{"style":3188},[5265],{"type":2916,"value":3531},{"type":2911,"tag":2994,"props":5267,"children":5269},{"style":5268},"--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C",[5270],{"type":2916,"value":5271}," 404",{"type":2911,"tag":2994,"props":5273,"children":5274},{"style":3197},[5275],{"type":2916,"value":3408},{"type":2911,"tag":2994,"props":5277,"children":5278},{"class":3074,"line":3298},[5279,5283],{"type":2911,"tag":2994,"props":5280,"children":5281},{"style":3188},[5282],{"type":2916,"value":3403},{"type":2911,"tag":2994,"props":5284,"children":5285},{"style":3182},[5286],{"type":2916,"value":3408},{"type":2911,"tag":2918,"props":5288,"children":5289},{},[5290,5296,5298,5304,5306,5312,5313,5319,5321,5326],{"type":2911,"tag":3069,"props":5291,"children":5293},{"className":5292},[],[5294],{"type":2916,"value":5295},"allow",{"type":2916,"value":5297}," and ",{"type":2911,"tag":3069,"props":5299,"children":5301},{"className":5300},[],[5302],{"type":2916,"value":5303},"deny",{"type":2916,"value":5305}," are similar to returning ",{"type":2911,"tag":3069,"props":5307,"children":5309},{"className":5308},[],[5310],{"type":2916,"value":5311},"true",{"type":2916,"value":5297},{"type":2911,"tag":3069,"props":5314,"children":5316},{"className":5315},[],[5317],{"type":2916,"value":5318},"false",{"type":2916,"value":5320}," but ",{"type":2911,"tag":3069,"props":5322,"children":5324},{"className":5323},[],[5325],{"type":2916,"value":5303},{"type":2916,"value":5327}," allows to return a custom message and status code for the error.",{"type":2911,"tag":2918,"props":5329,"children":5330},{},[5331,5333,5338,5340,5346],{"type":2916,"value":5332},"Most of the times, you API endpoints will use the ",{"type":2911,"tag":3069,"props":5334,"children":5336},{"className":5335},[],[5337],{"type":2916,"value":4677},{"type":2916,"value":5339},". This can be the first line of the endpoint if no parameters are needed or after a database query to check if the user can access the resource. You do not need to catch the error since it's a ",{"type":2911,"tag":3069,"props":5341,"children":5343},{"className":5342},[],[5344],{"type":2916,"value":5345},"H3Error",{"type":2916,"value":5347}," and will be caught by the Nitro server.",{"type":2911,"tag":2918,"props":5349,"children":5350},{},[5351,5352,5357,5358,5363],{"type":2916,"value":4696},{"type":2911,"tag":3069,"props":5353,"children":5355},{"className":5354},[],[5356],{"type":2916,"value":4661},{"type":2916,"value":5297},{"type":2911,"tag":3069,"props":5359,"children":5361},{"className":5360},[],[5362],{"type":2916,"value":4669},{"type":2916,"value":5364}," functions are useful in the client to perform conditional rendering or logic. You can also use them to have a fine-grained control on you authorization logic.",{"type":2911,"tag":3127,"props":5366,"children":5368},{"id":5367},"use-components",[5369],{"type":2916,"value":5370},"Use Components",{"type":2911,"tag":2918,"props":5372,"children":5373},{},[5374],{"type":2916,"value":5375},"The module provides 2 components help you to conditionally show part of the UI. Imagine you have a button to edit a post, unauthorized users should not see the button.",{"type":2911,"tag":3062,"props":5377,"children":5381},{"className":5378,"code":5379,"language":5380,"meta":2861,"style":2861},"language-vue shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","\u003Ctemplate>\n  \u003CCan\n    :ability=\"editPost\"\n    :args=\"[post]\" \u002F\u002F Optional if the ability does not take any arguments\n  >\n    \u003Cbutton>Edit\u003C\u002Fbutton>\n  \u003C\u002FCan>\n\u003C\u002Ftemplate>\n","vue",[5382],{"type":2911,"tag":3069,"props":5383,"children":5384},{"__ignoreMap":2861},[5385,5403,5416,5443,5518,5526,5562,5579],{"type":2911,"tag":2994,"props":5386,"children":5387},{"class":3074,"line":2895},[5388,5393,5398],{"type":2911,"tag":2994,"props":5389,"children":5390},{"style":3188},[5391],{"type":2916,"value":5392},"\u003C",{"type":2911,"tag":2994,"props":5394,"children":5395},{"style":3197},[5396],{"type":2916,"value":5397},"template",{"type":2911,"tag":2994,"props":5399,"children":5400},{"style":3188},[5401],{"type":2916,"value":5402},">\n",{"type":2911,"tag":2994,"props":5404,"children":5405},{"class":3074,"line":2888},[5406,5411],{"type":2911,"tag":2994,"props":5407,"children":5408},{"style":3188},[5409],{"type":2916,"value":5410},"  \u003C",{"type":2911,"tag":2994,"props":5412,"children":5413},{"style":3197},[5414],{"type":2916,"value":5415},"Can\n",{"type":2911,"tag":2994,"props":5417,"children":5418},{"class":3074,"line":2884},[5419,5424,5428,5433,5438],{"type":2911,"tag":2994,"props":5420,"children":5421},{"style":3333},[5422],{"type":2916,"value":5423},"    :ability",{"type":2911,"tag":2994,"props":5425,"children":5426},{"style":3188},[5427],{"type":2916,"value":4325},{"type":2911,"tag":2994,"props":5429,"children":5430},{"style":3188},[5431],{"type":2916,"value":5432},"\"",{"type":2911,"tag":2994,"props":5434,"children":5435},{"style":3084},[5436],{"type":2916,"value":5437},"editPost",{"type":2911,"tag":2994,"props":5439,"children":5440},{"style":3188},[5441],{"type":2916,"value":5442},"\"\n",{"type":2911,"tag":2994,"props":5444,"children":5445},{"class":3074,"line":3249},[5446,5451,5455,5459,5464,5468,5473,5478,5483,5488,5493,5498,5503,5508,5513],{"type":2911,"tag":2994,"props":5447,"children":5448},{"style":3333},[5449],{"type":2916,"value":5450},"    :args",{"type":2911,"tag":2994,"props":5452,"children":5453},{"style":3188},[5454],{"type":2916,"value":4325},{"type":2911,"tag":2994,"props":5456,"children":5457},{"style":3188},[5458],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":5460,"children":5461},{"style":3084},[5462],{"type":2916,"value":5463},"[post]",{"type":2911,"tag":2994,"props":5465,"children":5466},{"style":3188},[5467],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":5469,"children":5470},{"style":3188},[5471],{"type":2916,"value":5472}," \u002F\u002F ",{"type":2911,"tag":2994,"props":5474,"children":5475},{"style":3333},[5476],{"type":2916,"value":5477},"Optional",{"type":2911,"tag":2994,"props":5479,"children":5480},{"style":3333},[5481],{"type":2916,"value":5482}," if",{"type":2911,"tag":2994,"props":5484,"children":5485},{"style":3333},[5486],{"type":2916,"value":5487}," the",{"type":2911,"tag":2994,"props":5489,"children":5490},{"style":3333},[5491],{"type":2916,"value":5492}," ability",{"type":2911,"tag":2994,"props":5494,"children":5495},{"style":3333},[5496],{"type":2916,"value":5497}," does",{"type":2911,"tag":2994,"props":5499,"children":5500},{"style":3333},[5501],{"type":2916,"value":5502}," not",{"type":2911,"tag":2994,"props":5504,"children":5505},{"style":3333},[5506],{"type":2916,"value":5507}," take",{"type":2911,"tag":2994,"props":5509,"children":5510},{"style":3333},[5511],{"type":2916,"value":5512}," any",{"type":2911,"tag":2994,"props":5514,"children":5515},{"style":3333},[5516],{"type":2916,"value":5517}," arguments\n",{"type":2911,"tag":2994,"props":5519,"children":5520},{"class":3074,"line":3268},[5521],{"type":2911,"tag":2994,"props":5522,"children":5523},{"style":3188},[5524],{"type":2916,"value":5525},"  >\n",{"type":2911,"tag":2994,"props":5527,"children":5528},{"class":3074,"line":3281},[5529,5534,5539,5544,5549,5554,5558],{"type":2911,"tag":2994,"props":5530,"children":5531},{"style":3188},[5532],{"type":2916,"value":5533},"    \u003C",{"type":2911,"tag":2994,"props":5535,"children":5536},{"style":3197},[5537],{"type":2916,"value":5538},"button",{"type":2911,"tag":2994,"props":5540,"children":5541},{"style":3188},[5542],{"type":2916,"value":5543},">",{"type":2911,"tag":2994,"props":5545,"children":5546},{"style":3182},[5547],{"type":2916,"value":5548},"Edit",{"type":2911,"tag":2994,"props":5550,"children":5551},{"style":3188},[5552],{"type":2916,"value":5553},"\u003C\u002F",{"type":2911,"tag":2994,"props":5555,"children":5556},{"style":3197},[5557],{"type":2916,"value":5538},{"type":2911,"tag":2994,"props":5559,"children":5560},{"style":3188},[5561],{"type":2916,"value":5402},{"type":2911,"tag":2994,"props":5563,"children":5564},{"class":3074,"line":3298},[5565,5570,5575],{"type":2911,"tag":2994,"props":5566,"children":5567},{"style":3188},[5568],{"type":2916,"value":5569},"  \u003C\u002F",{"type":2911,"tag":2994,"props":5571,"children":5572},{"style":3197},[5573],{"type":2916,"value":5574},"Can",{"type":2911,"tag":2994,"props":5576,"children":5577},{"style":3188},[5578],{"type":2916,"value":5402},{"type":2911,"tag":2994,"props":5580,"children":5581},{"class":3074,"line":3315},[5582,5586,5590],{"type":2911,"tag":2994,"props":5583,"children":5584},{"style":3188},[5585],{"type":2916,"value":5553},{"type":2911,"tag":2994,"props":5587,"children":5588},{"style":3197},[5589],{"type":2916,"value":5397},{"type":2911,"tag":2994,"props":5591,"children":5592},{"style":3188},[5593],{"type":2916,"value":5402},{"type":2911,"tag":2918,"props":5595,"children":5596},{},[5597,5598,5603],{"type":2916,"value":4696},{"type":2911,"tag":3069,"props":5599,"children":5601},{"className":5600},[],[5602],{"type":2916,"value":5574},{"type":2916,"value":5604}," component will render the button only if the user can edit the post. If the user cannot edit the post, the button will not be rendered.",{"type":2911,"tag":2918,"props":5606,"children":5607},{},[5608,5610,5616],{"type":2916,"value":5609},"As a counterpart, you can use the ",{"type":2911,"tag":3069,"props":5611,"children":5613},{"className":5612},[],[5614],{"type":2916,"value":5615},"Cannot",{"type":2916,"value":5617}," component to render the button only if the user cannot edit the post.",{"type":2911,"tag":3062,"props":5619,"children":5621},{"className":5378,"code":5620,"language":5380,"meta":2861,"style":2861},"\u003Ctemplate>\n  \u003CCannot\n    :ability=\"editPost\"\n    :args=\"[post]\" \u002F\u002F Optional if the ability does not take any arguments\n  >\n    \u003Cp>You're not allowed to edit the post.\u003C\u002Fp>\n  \u003C\u002FCannot>\n\u003C\u002Ftemplate>\n",[5622],{"type":2911,"tag":3069,"props":5623,"children":5624},{"__ignoreMap":2861},[5625,5640,5652,5675,5738,5745,5777,5792],{"type":2911,"tag":2994,"props":5626,"children":5627},{"class":3074,"line":2895},[5628,5632,5636],{"type":2911,"tag":2994,"props":5629,"children":5630},{"style":3188},[5631],{"type":2916,"value":5392},{"type":2911,"tag":2994,"props":5633,"children":5634},{"style":3197},[5635],{"type":2916,"value":5397},{"type":2911,"tag":2994,"props":5637,"children":5638},{"style":3188},[5639],{"type":2916,"value":5402},{"type":2911,"tag":2994,"props":5641,"children":5642},{"class":3074,"line":2888},[5643,5647],{"type":2911,"tag":2994,"props":5644,"children":5645},{"style":3188},[5646],{"type":2916,"value":5410},{"type":2911,"tag":2994,"props":5648,"children":5649},{"style":3197},[5650],{"type":2916,"value":5651},"Cannot\n",{"type":2911,"tag":2994,"props":5653,"children":5654},{"class":3074,"line":2884},[5655,5659,5663,5667,5671],{"type":2911,"tag":2994,"props":5656,"children":5657},{"style":3333},[5658],{"type":2916,"value":5423},{"type":2911,"tag":2994,"props":5660,"children":5661},{"style":3188},[5662],{"type":2916,"value":4325},{"type":2911,"tag":2994,"props":5664,"children":5665},{"style":3188},[5666],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":5668,"children":5669},{"style":3084},[5670],{"type":2916,"value":5437},{"type":2911,"tag":2994,"props":5672,"children":5673},{"style":3188},[5674],{"type":2916,"value":5442},{"type":2911,"tag":2994,"props":5676,"children":5677},{"class":3074,"line":3249},[5678,5682,5686,5690,5694,5698,5702,5706,5710,5714,5718,5722,5726,5730,5734],{"type":2911,"tag":2994,"props":5679,"children":5680},{"style":3333},[5681],{"type":2916,"value":5450},{"type":2911,"tag":2994,"props":5683,"children":5684},{"style":3188},[5685],{"type":2916,"value":4325},{"type":2911,"tag":2994,"props":5687,"children":5688},{"style":3188},[5689],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":5691,"children":5692},{"style":3084},[5693],{"type":2916,"value":5463},{"type":2911,"tag":2994,"props":5695,"children":5696},{"style":3188},[5697],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":5699,"children":5700},{"style":3188},[5701],{"type":2916,"value":5472},{"type":2911,"tag":2994,"props":5703,"children":5704},{"style":3333},[5705],{"type":2916,"value":5477},{"type":2911,"tag":2994,"props":5707,"children":5708},{"style":3333},[5709],{"type":2916,"value":5482},{"type":2911,"tag":2994,"props":5711,"children":5712},{"style":3333},[5713],{"type":2916,"value":5487},{"type":2911,"tag":2994,"props":5715,"children":5716},{"style":3333},[5717],{"type":2916,"value":5492},{"type":2911,"tag":2994,"props":5719,"children":5720},{"style":3333},[5721],{"type":2916,"value":5497},{"type":2911,"tag":2994,"props":5723,"children":5724},{"style":3333},[5725],{"type":2916,"value":5502},{"type":2911,"tag":2994,"props":5727,"children":5728},{"style":3333},[5729],{"type":2916,"value":5507},{"type":2911,"tag":2994,"props":5731,"children":5732},{"style":3333},[5733],{"type":2916,"value":5512},{"type":2911,"tag":2994,"props":5735,"children":5736},{"style":3333},[5737],{"type":2916,"value":5517},{"type":2911,"tag":2994,"props":5739,"children":5740},{"class":3074,"line":3268},[5741],{"type":2911,"tag":2994,"props":5742,"children":5743},{"style":3188},[5744],{"type":2916,"value":5525},{"type":2911,"tag":2994,"props":5746,"children":5747},{"class":3074,"line":3281},[5748,5752,5756,5760,5765,5769,5773],{"type":2911,"tag":2994,"props":5749,"children":5750},{"style":3188},[5751],{"type":2916,"value":5533},{"type":2911,"tag":2994,"props":5753,"children":5754},{"style":3197},[5755],{"type":2916,"value":2918},{"type":2911,"tag":2994,"props":5757,"children":5758},{"style":3188},[5759],{"type":2916,"value":5543},{"type":2911,"tag":2994,"props":5761,"children":5762},{"style":3182},[5763],{"type":2916,"value":5764},"You're not allowed to edit the post.",{"type":2911,"tag":2994,"props":5766,"children":5767},{"style":3188},[5768],{"type":2916,"value":5553},{"type":2911,"tag":2994,"props":5770,"children":5771},{"style":3197},[5772],{"type":2916,"value":2918},{"type":2911,"tag":2994,"props":5774,"children":5775},{"style":3188},[5776],{"type":2916,"value":5402},{"type":2911,"tag":2994,"props":5778,"children":5779},{"class":3074,"line":3298},[5780,5784,5788],{"type":2911,"tag":2994,"props":5781,"children":5782},{"style":3188},[5783],{"type":2916,"value":5569},{"type":2911,"tag":2994,"props":5785,"children":5786},{"style":3197},[5787],{"type":2916,"value":5615},{"type":2911,"tag":2994,"props":5789,"children":5790},{"style":3188},[5791],{"type":2916,"value":5402},{"type":2911,"tag":2994,"props":5793,"children":5794},{"class":3074,"line":3315},[5795,5799,5803],{"type":2911,"tag":2994,"props":5796,"children":5797},{"style":3188},[5798],{"type":2916,"value":5553},{"type":2911,"tag":2994,"props":5800,"children":5801},{"style":3197},[5802],{"type":2916,"value":5397},{"type":2911,"tag":2994,"props":5804,"children":5805},{"style":3188},[5806],{"type":2916,"value":5402},{"type":2911,"tag":2918,"props":5808,"children":5809},{},[5810,5811,5817,5819,5824,5825,5830,5832,5839],{"type":2916,"value":4696},{"type":2911,"tag":3069,"props":5812,"children":5814},{"className":5813},[],[5815],{"type":2916,"value":5816},"Bouncer",{"type":2916,"value":5818}," component offers a more flexible and centralized way to handle both can and cannot scenarios within a single component. Instead of using separate ",{"type":2911,"tag":3069,"props":5820,"children":5822},{"className":5821},[],[5823],{"type":2916,"value":5574},{"type":2916,"value":5297},{"type":2911,"tag":3069,"props":5826,"children":5828},{"className":5827},[],[5829],{"type":2916,"value":5615},{"type":2916,"value":5831}," components, you can leverage the Bouncer component and its ",{"type":2911,"tag":2922,"props":5833,"children":5836},{"href":5834,"rel":5835},"https:\u002F\u002Fvuejs.org\u002Fguide\u002Fcomponents\u002Fslots.html#named-slots",[2926],[5837],{"type":2916,"value":5838},"named slots",{"type":2916,"value":5840}," to handle both states in a unified block.",{"type":2911,"tag":3062,"props":5842,"children":5844},{"className":5378,"code":5843,"language":5380,"meta":2861,"style":2861},"\u003CBouncer\n  :ability=\"editPost\"\n  :args=\"[post]\" \u002F\u002F Optional if the ability does not take any arguments\n>\n  \u003Ctemplate #can>\n    \u003Cbutton>Edit\u003C\u002Fbutton>\n  \u003C\u002Ftemplate>\n\n  \u003Ctemplate #cannot>\n    \u003Cp>You're not allowed to edit the post.\u003C\u002Fp>\n  \u003C\u002Ftemplate>\n\u003C\u002FBouncer>\n",[5845],{"type":2911,"tag":3069,"props":5846,"children":5847},{"__ignoreMap":2861},[5848,5860,5889,5957,5964,5972,5980,5988,5995,6003,6011,6018],{"type":2911,"tag":2994,"props":5849,"children":5850},{"class":3074,"line":2895},[5851,5855],{"type":2911,"tag":2994,"props":5852,"children":5853},{"style":3188},[5854],{"type":2916,"value":5392},{"type":2911,"tag":2994,"props":5856,"children":5857},{"style":3197},[5858],{"type":2916,"value":5859},"Bouncer\n",{"type":2911,"tag":2994,"props":5861,"children":5862},{"class":3074,"line":2888},[5863,5868,5873,5877,5881,5885],{"type":2911,"tag":2994,"props":5864,"children":5865},{"style":3188},[5866],{"type":2916,"value":5867},"  :",{"type":2911,"tag":2994,"props":5869,"children":5870},{"style":3333},[5871],{"type":2916,"value":5872},"ability",{"type":2911,"tag":2994,"props":5874,"children":5875},{"style":3188},[5876],{"type":2916,"value":4325},{"type":2911,"tag":2994,"props":5878,"children":5879},{"style":3188},[5880],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":5882,"children":5883},{"style":3182},[5884],{"type":2916,"value":5437},{"type":2911,"tag":2994,"props":5886,"children":5887},{"style":3188},[5888],{"type":2916,"value":5442},{"type":2911,"tag":2994,"props":5890,"children":5891},{"class":3074,"line":2884},[5892,5896,5901,5905,5909,5913,5917,5921,5925,5929,5933,5937,5941,5945,5949,5953],{"type":2911,"tag":2994,"props":5893,"children":5894},{"style":3188},[5895],{"type":2916,"value":5867},{"type":2911,"tag":2994,"props":5897,"children":5898},{"style":3333},[5899],{"type":2916,"value":5900},"args",{"type":2911,"tag":2994,"props":5902,"children":5903},{"style":3188},[5904],{"type":2916,"value":4325},{"type":2911,"tag":2994,"props":5906,"children":5907},{"style":3188},[5908],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":5910,"children":5911},{"style":3182},[5912],{"type":2916,"value":5463},{"type":2911,"tag":2994,"props":5914,"children":5915},{"style":3188},[5916],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":5918,"children":5919},{"style":3182},[5920],{"type":2916,"value":5472},{"type":2911,"tag":2994,"props":5922,"children":5923},{"style":3333},[5924],{"type":2916,"value":5477},{"type":2911,"tag":2994,"props":5926,"children":5927},{"style":3333},[5928],{"type":2916,"value":5482},{"type":2911,"tag":2994,"props":5930,"children":5931},{"style":3333},[5932],{"type":2916,"value":5487},{"type":2911,"tag":2994,"props":5934,"children":5935},{"style":3333},[5936],{"type":2916,"value":5492},{"type":2911,"tag":2994,"props":5938,"children":5939},{"style":3333},[5940],{"type":2916,"value":5497},{"type":2911,"tag":2994,"props":5942,"children":5943},{"style":3333},[5944],{"type":2916,"value":5502},{"type":2911,"tag":2994,"props":5946,"children":5947},{"style":3333},[5948],{"type":2916,"value":5507},{"type":2911,"tag":2994,"props":5950,"children":5951},{"style":3333},[5952],{"type":2916,"value":5512},{"type":2911,"tag":2994,"props":5954,"children":5955},{"style":3333},[5956],{"type":2916,"value":5517},{"type":2911,"tag":2994,"props":5958,"children":5959},{"class":3074,"line":3249},[5960],{"type":2911,"tag":2994,"props":5961,"children":5962},{"style":3188},[5963],{"type":2916,"value":5402},{"type":2911,"tag":2994,"props":5965,"children":5966},{"class":3074,"line":3268},[5967],{"type":2911,"tag":2994,"props":5968,"children":5969},{"style":3182},[5970],{"type":2916,"value":5971},"  \u003Ctemplate #can>\n",{"type":2911,"tag":2994,"props":5973,"children":5974},{"class":3074,"line":3281},[5975],{"type":2911,"tag":2994,"props":5976,"children":5977},{"style":3182},[5978],{"type":2916,"value":5979},"    \u003Cbutton>Edit\u003C\u002Fbutton>\n",{"type":2911,"tag":2994,"props":5981,"children":5982},{"class":3074,"line":3298},[5983],{"type":2911,"tag":2994,"props":5984,"children":5985},{"style":3182},[5986],{"type":2916,"value":5987},"  \u003C\u002Ftemplate>\n",{"type":2911,"tag":2994,"props":5989,"children":5990},{"class":3074,"line":3315},[5991],{"type":2911,"tag":2994,"props":5992,"children":5993},{"emptyLinePlaceholder":1196},[5994],{"type":2916,"value":4364},{"type":2911,"tag":2994,"props":5996,"children":5997},{"class":3074,"line":3343},[5998],{"type":2911,"tag":2994,"props":5999,"children":6000},{"style":3182},[6001],{"type":2916,"value":6002},"  \u003Ctemplate #cannot>\n",{"type":2911,"tag":2994,"props":6004,"children":6005},{"class":3074,"line":3353},[6006],{"type":2911,"tag":2994,"props":6007,"children":6008},{"style":3182},[6009],{"type":2916,"value":6010},"    \u003Cp>You're not allowed to edit the post.\u003C\u002Fp>\n",{"type":2911,"tag":2994,"props":6012,"children":6013},{"class":3074,"line":3362},[6014],{"type":2911,"tag":2994,"props":6015,"children":6016},{"style":3182},[6017],{"type":2916,"value":5987},{"type":2911,"tag":2994,"props":6019,"children":6020},{"class":3074,"line":3371},[6021,6025,6029],{"type":2911,"tag":2994,"props":6022,"children":6023},{"style":3188},[6024],{"type":2916,"value":5553},{"type":2911,"tag":2994,"props":6026,"children":6027},{"style":3197},[6028],{"type":2916,"value":5816},{"type":2911,"tag":2994,"props":6030,"children":6031},{"style":3188},[6032],{"type":2916,"value":5402},{"type":2911,"tag":2918,"props":6034,"children":6035},{},[6036,6038,6044],{"type":2916,"value":6037},"All of these components accept a prop named ",{"type":2911,"tag":3069,"props":6039,"children":6041},{"className":6040},[],[6042],{"type":2916,"value":6043},"as",{"type":2916,"value":6045}," to define the HTML tag to render. By default, it's a renderless component.",{"type":2911,"tag":3062,"props":6047,"children":6049},{"className":5378,"code":6048,"language":5380,"meta":2861,"style":2861},"\u003CCan\n  :ability=\"editPost\"\n  :args=\"[post]\"\n  as=\"div\"\n>\n  \u003Cbutton>Edit\u003C\u002Fbutton>\n\u003C\u002FCan>\n",[6050],{"type":2911,"tag":3069,"props":6051,"children":6052},{"__ignoreMap":2861},[6053,6064,6091,6118,6143,6150,6158],{"type":2911,"tag":2994,"props":6054,"children":6055},{"class":3074,"line":2895},[6056,6060],{"type":2911,"tag":2994,"props":6057,"children":6058},{"style":3188},[6059],{"type":2916,"value":5392},{"type":2911,"tag":2994,"props":6061,"children":6062},{"style":3197},[6063],{"type":2916,"value":5415},{"type":2911,"tag":2994,"props":6065,"children":6066},{"class":3074,"line":2888},[6067,6071,6075,6079,6083,6087],{"type":2911,"tag":2994,"props":6068,"children":6069},{"style":3188},[6070],{"type":2916,"value":5867},{"type":2911,"tag":2994,"props":6072,"children":6073},{"style":3333},[6074],{"type":2916,"value":5872},{"type":2911,"tag":2994,"props":6076,"children":6077},{"style":3188},[6078],{"type":2916,"value":4325},{"type":2911,"tag":2994,"props":6080,"children":6081},{"style":3188},[6082],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":6084,"children":6085},{"style":3182},[6086],{"type":2916,"value":5437},{"type":2911,"tag":2994,"props":6088,"children":6089},{"style":3188},[6090],{"type":2916,"value":5442},{"type":2911,"tag":2994,"props":6092,"children":6093},{"class":3074,"line":2884},[6094,6098,6102,6106,6110,6114],{"type":2911,"tag":2994,"props":6095,"children":6096},{"style":3188},[6097],{"type":2916,"value":5867},{"type":2911,"tag":2994,"props":6099,"children":6100},{"style":3333},[6101],{"type":2916,"value":5900},{"type":2911,"tag":2994,"props":6103,"children":6104},{"style":3188},[6105],{"type":2916,"value":4325},{"type":2911,"tag":2994,"props":6107,"children":6108},{"style":3188},[6109],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":6111,"children":6112},{"style":3182},[6113],{"type":2916,"value":5463},{"type":2911,"tag":2994,"props":6115,"children":6116},{"style":3188},[6117],{"type":2916,"value":5442},{"type":2911,"tag":2994,"props":6119,"children":6120},{"class":3074,"line":3249},[6121,6126,6130,6134,6139],{"type":2911,"tag":2994,"props":6122,"children":6123},{"style":3333},[6124],{"type":2916,"value":6125},"  as",{"type":2911,"tag":2994,"props":6127,"children":6128},{"style":3188},[6129],{"type":2916,"value":4325},{"type":2911,"tag":2994,"props":6131,"children":6132},{"style":3188},[6133],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":6135,"children":6136},{"style":3084},[6137],{"type":2916,"value":6138},"div",{"type":2911,"tag":2994,"props":6140,"children":6141},{"style":3188},[6142],{"type":2916,"value":5442},{"type":2911,"tag":2994,"props":6144,"children":6145},{"class":3074,"line":3268},[6146],{"type":2911,"tag":2994,"props":6147,"children":6148},{"style":3188},[6149],{"type":2916,"value":5402},{"type":2911,"tag":2994,"props":6151,"children":6152},{"class":3074,"line":3281},[6153],{"type":2911,"tag":2994,"props":6154,"children":6155},{"style":3182},[6156],{"type":2916,"value":6157},"  \u003Cbutton>Edit\u003C\u002Fbutton>\n",{"type":2911,"tag":2994,"props":6159,"children":6160},{"class":3074,"line":3298},[6161,6165,6169],{"type":2911,"tag":2994,"props":6162,"children":6163},{"style":3188},[6164],{"type":2916,"value":5553},{"type":2911,"tag":2994,"props":6166,"children":6167},{"style":3197},[6168],{"type":2916,"value":5574},{"type":2911,"tag":2994,"props":6170,"children":6171},{"style":3188},[6172],{"type":2916,"value":5402},{"type":2911,"tag":2918,"props":6174,"children":6175},{},[6176],{"type":2916,"value":6177},"This will render:",{"type":2911,"tag":3062,"props":6179,"children":6183},{"className":6180,"code":6181,"language":6182,"meta":2861,"style":2861},"language-html shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","\u003Cdiv>\n  \u003Cbutton>Edit\u003C\u002Fbutton>\n\u003C\u002Fdiv>\n","html",[6184],{"type":2911,"tag":3069,"props":6185,"children":6186},{"__ignoreMap":2861},[6187,6202,6233],{"type":2911,"tag":2994,"props":6188,"children":6189},{"class":3074,"line":2895},[6190,6194,6198],{"type":2911,"tag":2994,"props":6191,"children":6192},{"style":3188},[6193],{"type":2916,"value":5392},{"type":2911,"tag":2994,"props":6195,"children":6196},{"style":3197},[6197],{"type":2916,"value":6138},{"type":2911,"tag":2994,"props":6199,"children":6200},{"style":3188},[6201],{"type":2916,"value":5402},{"type":2911,"tag":2994,"props":6203,"children":6204},{"class":3074,"line":2888},[6205,6209,6213,6217,6221,6225,6229],{"type":2911,"tag":2994,"props":6206,"children":6207},{"style":3188},[6208],{"type":2916,"value":5410},{"type":2911,"tag":2994,"props":6210,"children":6211},{"style":3197},[6212],{"type":2916,"value":5538},{"type":2911,"tag":2994,"props":6214,"children":6215},{"style":3188},[6216],{"type":2916,"value":5543},{"type":2911,"tag":2994,"props":6218,"children":6219},{"style":3182},[6220],{"type":2916,"value":5548},{"type":2911,"tag":2994,"props":6222,"children":6223},{"style":3188},[6224],{"type":2916,"value":5553},{"type":2911,"tag":2994,"props":6226,"children":6227},{"style":3197},[6228],{"type":2916,"value":5538},{"type":2911,"tag":2994,"props":6230,"children":6231},{"style":3188},[6232],{"type":2916,"value":5402},{"type":2911,"tag":2994,"props":6234,"children":6235},{"class":3074,"line":2884},[6236,6240,6244],{"type":2911,"tag":2994,"props":6237,"children":6238},{"style":3188},[6239],{"type":2916,"value":5553},{"type":2911,"tag":2994,"props":6241,"children":6242},{"style":3197},[6243],{"type":2916,"value":6138},{"type":2911,"tag":2994,"props":6245,"children":6246},{"style":3188},[6247],{"type":2916,"value":5402},{"type":2911,"tag":2918,"props":6249,"children":6250},{},[6251],{"type":2916,"value":6252},"Instead of:",{"type":2911,"tag":3062,"props":6254,"children":6256},{"className":6180,"code":6255,"language":6182,"meta":2861,"style":2861},"\u003Cbutton>Edit\u003C\u002Fbutton>\n",[6257],{"type":2911,"tag":3069,"props":6258,"children":6259},{"__ignoreMap":2861},[6260],{"type":2911,"tag":2994,"props":6261,"children":6262},{"class":3074,"line":2895},[6263,6267,6271,6275,6279,6283,6287],{"type":2911,"tag":2994,"props":6264,"children":6265},{"style":3188},[6266],{"type":2916,"value":5392},{"type":2911,"tag":2994,"props":6268,"children":6269},{"style":3197},[6270],{"type":2916,"value":5538},{"type":2911,"tag":2994,"props":6272,"children":6273},{"style":3188},[6274],{"type":2916,"value":5543},{"type":2911,"tag":2994,"props":6276,"children":6277},{"style":3182},[6278],{"type":2916,"value":5548},{"type":2911,"tag":2994,"props":6280,"children":6281},{"style":3188},[6282],{"type":2916,"value":5553},{"type":2911,"tag":2994,"props":6284,"children":6285},{"style":3197},[6286],{"type":2916,"value":5538},{"type":2911,"tag":2994,"props":6288,"children":6289},{"style":3188},[6290],{"type":2916,"value":5402},{"type":2911,"tag":3710,"props":6292,"children":6294},{"id":6293},"multiple-abilities",[6295],{"type":2916,"value":6296},"Multiple abilities",{"type":2911,"tag":2918,"props":6298,"children":6299},{},[6300,6302,6307,6309,6314],{"type":2916,"value":6301},"If you possess multiple abilities, you can provide an array of abilities to the components. The component will render only if ",{"type":2911,"tag":4521,"props":6303,"children":6304},{},[6305],{"type":2916,"value":6306},"all",{"type":2916,"value":6308}," of the abilities ",{"type":2911,"tag":4521,"props":6310,"children":6311},{},[6312],{"type":2916,"value":6313},"match",{"type":2916,"value":6315}," the specified requirements of the component.",{"type":2911,"tag":3062,"props":6317,"children":6319},{"className":5378,"code":6318,"language":5380,"meta":2861,"style":2861},"\u003CCan :ability=\"[editPost, deletePost]\" :args=\"[[post], [post]]\" \u002F>\n\n\u003CCannot :ability=\"[editPost, deletePost]\" :args=\"[[post], [post]]\" \u002F>\n\n\u003CBouncer :ability=\"[editPost, deletePost]\" :args=\"[[post], [post]]\">\n  \u003Ctemplate #can>\n    \u003Cbutton>Edit\u003C\u002Fbutton>\n    \u003Cbutton>Delete\u003C\u002Fbutton>\n  \u003C\u002Ftemplate>\n\n  \u003Ctemplate #cannot>\n    \u003Cp>You're not allowed to edit or delete the post.\u003C\u002Fp>\n  \u003C\u002Ftemplate>\n\u003C\u002FBouncer>\n",[6320],{"type":2911,"tag":3069,"props":6321,"children":6322},{"__ignoreMap":2861},[6323,6408,6415,6494,6501,6580,6587,6594,6602,6609,6616,6623,6631,6638],{"type":2911,"tag":2994,"props":6324,"children":6325},{"class":3074,"line":2895},[6326,6330,6334,6339,6343,6347,6351,6356,6360,6365,6369,6373,6377,6381,6385,6390,6394,6399,6403],{"type":2911,"tag":2994,"props":6327,"children":6328},{"style":3188},[6329],{"type":2916,"value":5392},{"type":2911,"tag":2994,"props":6331,"children":6332},{"style":3197},[6333],{"type":2916,"value":5574},{"type":2911,"tag":2994,"props":6335,"children":6336},{"style":3188},[6337],{"type":2916,"value":6338}," :",{"type":2911,"tag":2994,"props":6340,"children":6341},{"style":3333},[6342],{"type":2916,"value":5872},{"type":2911,"tag":2994,"props":6344,"children":6345},{"style":3188},[6346],{"type":2916,"value":4325},{"type":2911,"tag":2994,"props":6348,"children":6349},{"style":3188},[6350],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":6352,"children":6353},{"style":3182},[6354],{"type":2916,"value":6355},"[editPost",{"type":2911,"tag":2994,"props":6357,"children":6358},{"style":3188},[6359],{"type":2916,"value":3531},{"type":2911,"tag":2994,"props":6361,"children":6362},{"style":3182},[6363],{"type":2916,"value":6364}," deletePost]",{"type":2911,"tag":2994,"props":6366,"children":6367},{"style":3188},[6368],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":6370,"children":6371},{"style":3188},[6372],{"type":2916,"value":6338},{"type":2911,"tag":2994,"props":6374,"children":6375},{"style":3333},[6376],{"type":2916,"value":5900},{"type":2911,"tag":2994,"props":6378,"children":6379},{"style":3188},[6380],{"type":2916,"value":4325},{"type":2911,"tag":2994,"props":6382,"children":6383},{"style":3188},[6384],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":6386,"children":6387},{"style":3182},[6388],{"type":2916,"value":6389},"[[post]",{"type":2911,"tag":2994,"props":6391,"children":6392},{"style":3188},[6393],{"type":2916,"value":3531},{"type":2911,"tag":2994,"props":6395,"children":6396},{"style":3182},[6397],{"type":2916,"value":6398}," [post]]",{"type":2911,"tag":2994,"props":6400,"children":6401},{"style":3188},[6402],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":6404,"children":6405},{"style":3188},[6406],{"type":2916,"value":6407}," \u002F>\n",{"type":2911,"tag":2994,"props":6409,"children":6410},{"class":3074,"line":2888},[6411],{"type":2911,"tag":2994,"props":6412,"children":6413},{"emptyLinePlaceholder":1196},[6414],{"type":2916,"value":4364},{"type":2911,"tag":2994,"props":6416,"children":6417},{"class":3074,"line":2884},[6418,6422,6426,6430,6434,6438,6442,6446,6450,6454,6458,6462,6466,6470,6474,6478,6482,6486,6490],{"type":2911,"tag":2994,"props":6419,"children":6420},{"style":3188},[6421],{"type":2916,"value":5392},{"type":2911,"tag":2994,"props":6423,"children":6424},{"style":3197},[6425],{"type":2916,"value":5615},{"type":2911,"tag":2994,"props":6427,"children":6428},{"style":3188},[6429],{"type":2916,"value":6338},{"type":2911,"tag":2994,"props":6431,"children":6432},{"style":3333},[6433],{"type":2916,"value":5872},{"type":2911,"tag":2994,"props":6435,"children":6436},{"style":3188},[6437],{"type":2916,"value":4325},{"type":2911,"tag":2994,"props":6439,"children":6440},{"style":3188},[6441],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":6443,"children":6444},{"style":3182},[6445],{"type":2916,"value":6355},{"type":2911,"tag":2994,"props":6447,"children":6448},{"style":3188},[6449],{"type":2916,"value":3531},{"type":2911,"tag":2994,"props":6451,"children":6452},{"style":3182},[6453],{"type":2916,"value":6364},{"type":2911,"tag":2994,"props":6455,"children":6456},{"style":3188},[6457],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":6459,"children":6460},{"style":3188},[6461],{"type":2916,"value":6338},{"type":2911,"tag":2994,"props":6463,"children":6464},{"style":3333},[6465],{"type":2916,"value":5900},{"type":2911,"tag":2994,"props":6467,"children":6468},{"style":3188},[6469],{"type":2916,"value":4325},{"type":2911,"tag":2994,"props":6471,"children":6472},{"style":3188},[6473],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":6475,"children":6476},{"style":3182},[6477],{"type":2916,"value":6389},{"type":2911,"tag":2994,"props":6479,"children":6480},{"style":3188},[6481],{"type":2916,"value":3531},{"type":2911,"tag":2994,"props":6483,"children":6484},{"style":3182},[6485],{"type":2916,"value":6398},{"type":2911,"tag":2994,"props":6487,"children":6488},{"style":3188},[6489],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":6491,"children":6492},{"style":3188},[6493],{"type":2916,"value":6407},{"type":2911,"tag":2994,"props":6495,"children":6496},{"class":3074,"line":3249},[6497],{"type":2911,"tag":2994,"props":6498,"children":6499},{"emptyLinePlaceholder":1196},[6500],{"type":2916,"value":4364},{"type":2911,"tag":2994,"props":6502,"children":6503},{"class":3074,"line":3268},[6504,6508,6512,6516,6520,6524,6528,6532,6536,6540,6544,6548,6552,6556,6560,6564,6568,6572,6576],{"type":2911,"tag":2994,"props":6505,"children":6506},{"style":3188},[6507],{"type":2916,"value":5392},{"type":2911,"tag":2994,"props":6509,"children":6510},{"style":3197},[6511],{"type":2916,"value":5816},{"type":2911,"tag":2994,"props":6513,"children":6514},{"style":3188},[6515],{"type":2916,"value":6338},{"type":2911,"tag":2994,"props":6517,"children":6518},{"style":3333},[6519],{"type":2916,"value":5872},{"type":2911,"tag":2994,"props":6521,"children":6522},{"style":3188},[6523],{"type":2916,"value":4325},{"type":2911,"tag":2994,"props":6525,"children":6526},{"style":3188},[6527],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":6529,"children":6530},{"style":3182},[6531],{"type":2916,"value":6355},{"type":2911,"tag":2994,"props":6533,"children":6534},{"style":3188},[6535],{"type":2916,"value":3531},{"type":2911,"tag":2994,"props":6537,"children":6538},{"style":3182},[6539],{"type":2916,"value":6364},{"type":2911,"tag":2994,"props":6541,"children":6542},{"style":3188},[6543],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":6545,"children":6546},{"style":3188},[6547],{"type":2916,"value":6338},{"type":2911,"tag":2994,"props":6549,"children":6550},{"style":3333},[6551],{"type":2916,"value":5900},{"type":2911,"tag":2994,"props":6553,"children":6554},{"style":3188},[6555],{"type":2916,"value":4325},{"type":2911,"tag":2994,"props":6557,"children":6558},{"style":3188},[6559],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":6561,"children":6562},{"style":3182},[6563],{"type":2916,"value":6389},{"type":2911,"tag":2994,"props":6565,"children":6566},{"style":3188},[6567],{"type":2916,"value":3531},{"type":2911,"tag":2994,"props":6569,"children":6570},{"style":3182},[6571],{"type":2916,"value":6398},{"type":2911,"tag":2994,"props":6573,"children":6574},{"style":3188},[6575],{"type":2916,"value":5432},{"type":2911,"tag":2994,"props":6577,"children":6578},{"style":3188},[6579],{"type":2916,"value":5402},{"type":2911,"tag":2994,"props":6581,"children":6582},{"class":3074,"line":3281},[6583],{"type":2911,"tag":2994,"props":6584,"children":6585},{"style":3182},[6586],{"type":2916,"value":5971},{"type":2911,"tag":2994,"props":6588,"children":6589},{"class":3074,"line":3298},[6590],{"type":2911,"tag":2994,"props":6591,"children":6592},{"style":3182},[6593],{"type":2916,"value":5979},{"type":2911,"tag":2994,"props":6595,"children":6596},{"class":3074,"line":3315},[6597],{"type":2911,"tag":2994,"props":6598,"children":6599},{"style":3182},[6600],{"type":2916,"value":6601},"    \u003Cbutton>Delete\u003C\u002Fbutton>\n",{"type":2911,"tag":2994,"props":6603,"children":6604},{"class":3074,"line":3343},[6605],{"type":2911,"tag":2994,"props":6606,"children":6607},{"style":3182},[6608],{"type":2916,"value":5987},{"type":2911,"tag":2994,"props":6610,"children":6611},{"class":3074,"line":3353},[6612],{"type":2911,"tag":2994,"props":6613,"children":6614},{"emptyLinePlaceholder":1196},[6615],{"type":2916,"value":4364},{"type":2911,"tag":2994,"props":6617,"children":6618},{"class":3074,"line":3362},[6619],{"type":2911,"tag":2994,"props":6620,"children":6621},{"style":3182},[6622],{"type":2916,"value":6002},{"type":2911,"tag":2994,"props":6624,"children":6625},{"class":3074,"line":3371},[6626],{"type":2911,"tag":2994,"props":6627,"children":6628},{"style":3182},[6629],{"type":2916,"value":6630},"    \u003Cp>You're not allowed to edit or delete the post.\u003C\u002Fp>\n",{"type":2911,"tag":2994,"props":6632,"children":6633},{"class":3074,"line":3380},[6634],{"type":2911,"tag":2994,"props":6635,"children":6636},{"style":3182},[6637],{"type":2916,"value":5987},{"type":2911,"tag":2994,"props":6639,"children":6640},{"class":3074,"line":2900},[6641,6645,6649],{"type":2911,"tag":2994,"props":6642,"children":6643},{"style":3188},[6644],{"type":2916,"value":5553},{"type":2911,"tag":2994,"props":6646,"children":6647},{"style":3197},[6648],{"type":2916,"value":5816},{"type":2911,"tag":2994,"props":6650,"children":6651},{"style":3188},[6652],{"type":2916,"value":5402},{"type":2911,"tag":3015,"props":6654,"children":6656},{"id":6655},"contribution",[6657],{"type":2916,"value":1017},{"type":2911,"tag":6659,"props":6660,"children":6661},"details",{},[6662,6664,6670],{"type":2916,"value":6663},"\n  ",{"type":2911,"tag":6665,"props":6666,"children":6667},"summary",{},[6668],{"type":2916,"value":6669},"Local development",{"type":2911,"tag":3062,"props":6671,"children":6673},{"className":3064,"code":6672,"language":3066,"meta":2861,"style":2861},"# Install dependencies\nnpm install\n\n# Generate type stubs\nnpm run dev:prepare\n\n# Develop with the playground\nnpm run dev\n\n# Build the playground\nnpm run dev:build\n\n# Run ESLint\nnpm run lint\n\n# Run Vitest\nnpm run test\nnpm run test:watch\n\n# Release new version\nnpm run release\n",[6674],{"type":2911,"tag":3069,"props":6675,"children":6676},{"__ignoreMap":2861},[6677,6685,6698,6705,6713,6730,6737,6745,6761,6768,6776,6792,6799,6807,6823,6830,6839,6856,6873,6881,6890],{"type":2911,"tag":2994,"props":6678,"children":6679},{"class":3074,"line":2895},[6680],{"type":2911,"tag":2994,"props":6681,"children":6682},{"style":3347},[6683],{"type":2916,"value":6684},"# Install dependencies\n",{"type":2911,"tag":2994,"props":6686,"children":6687},{"class":3074,"line":2888},[6688,6693],{"type":2911,"tag":2994,"props":6689,"children":6690},{"style":3078},[6691],{"type":2916,"value":6692},"npm",{"type":2911,"tag":2994,"props":6694,"children":6695},{"style":3084},[6696],{"type":2916,"value":6697}," install\n",{"type":2911,"tag":2994,"props":6699,"children":6700},{"class":3074,"line":2884},[6701],{"type":2911,"tag":2994,"props":6702,"children":6703},{"emptyLinePlaceholder":1196},[6704],{"type":2916,"value":4364},{"type":2911,"tag":2994,"props":6706,"children":6707},{"class":3074,"line":3249},[6708],{"type":2911,"tag":2994,"props":6709,"children":6710},{"style":3347},[6711],{"type":2916,"value":6712},"# Generate type stubs\n",{"type":2911,"tag":2994,"props":6714,"children":6715},{"class":3074,"line":3268},[6716,6720,6725],{"type":2911,"tag":2994,"props":6717,"children":6718},{"style":3078},[6719],{"type":2916,"value":6692},{"type":2911,"tag":2994,"props":6721,"children":6722},{"style":3084},[6723],{"type":2916,"value":6724}," run",{"type":2911,"tag":2994,"props":6726,"children":6727},{"style":3084},[6728],{"type":2916,"value":6729}," dev:prepare\n",{"type":2911,"tag":2994,"props":6731,"children":6732},{"class":3074,"line":3281},[6733],{"type":2911,"tag":2994,"props":6734,"children":6735},{"emptyLinePlaceholder":1196},[6736],{"type":2916,"value":4364},{"type":2911,"tag":2994,"props":6738,"children":6739},{"class":3074,"line":3298},[6740],{"type":2911,"tag":2994,"props":6741,"children":6742},{"style":3347},[6743],{"type":2916,"value":6744},"# Develop with the playground\n",{"type":2911,"tag":2994,"props":6746,"children":6747},{"class":3074,"line":3315},[6748,6752,6756],{"type":2911,"tag":2994,"props":6749,"children":6750},{"style":3078},[6751],{"type":2916,"value":6692},{"type":2911,"tag":2994,"props":6753,"children":6754},{"style":3084},[6755],{"type":2916,"value":6724},{"type":2911,"tag":2994,"props":6757,"children":6758},{"style":3084},[6759],{"type":2916,"value":6760}," dev\n",{"type":2911,"tag":2994,"props":6762,"children":6763},{"class":3074,"line":3343},[6764],{"type":2911,"tag":2994,"props":6765,"children":6766},{"emptyLinePlaceholder":1196},[6767],{"type":2916,"value":4364},{"type":2911,"tag":2994,"props":6769,"children":6770},{"class":3074,"line":3353},[6771],{"type":2911,"tag":2994,"props":6772,"children":6773},{"style":3347},[6774],{"type":2916,"value":6775},"# Build the playground\n",{"type":2911,"tag":2994,"props":6777,"children":6778},{"class":3074,"line":3362},[6779,6783,6787],{"type":2911,"tag":2994,"props":6780,"children":6781},{"style":3078},[6782],{"type":2916,"value":6692},{"type":2911,"tag":2994,"props":6784,"children":6785},{"style":3084},[6786],{"type":2916,"value":6724},{"type":2911,"tag":2994,"props":6788,"children":6789},{"style":3084},[6790],{"type":2916,"value":6791}," dev:build\n",{"type":2911,"tag":2994,"props":6793,"children":6794},{"class":3074,"line":3371},[6795],{"type":2911,"tag":2994,"props":6796,"children":6797},{"emptyLinePlaceholder":1196},[6798],{"type":2916,"value":4364},{"type":2911,"tag":2994,"props":6800,"children":6801},{"class":3074,"line":3380},[6802],{"type":2911,"tag":2994,"props":6803,"children":6804},{"style":3347},[6805],{"type":2916,"value":6806},"# Run ESLint\n",{"type":2911,"tag":2994,"props":6808,"children":6809},{"class":3074,"line":2900},[6810,6814,6818],{"type":2911,"tag":2994,"props":6811,"children":6812},{"style":3078},[6813],{"type":2916,"value":6692},{"type":2911,"tag":2994,"props":6815,"children":6816},{"style":3084},[6817],{"type":2916,"value":6724},{"type":2911,"tag":2994,"props":6819,"children":6820},{"style":3084},[6821],{"type":2916,"value":6822}," lint\n",{"type":2911,"tag":2994,"props":6824,"children":6825},{"class":3074,"line":3397},[6826],{"type":2911,"tag":2994,"props":6827,"children":6828},{"emptyLinePlaceholder":1196},[6829],{"type":2916,"value":4364},{"type":2911,"tag":2994,"props":6831,"children":6833},{"class":3074,"line":6832},16,[6834],{"type":2911,"tag":2994,"props":6835,"children":6836},{"style":3347},[6837],{"type":2916,"value":6838},"# Run Vitest\n",{"type":2911,"tag":2994,"props":6840,"children":6842},{"class":3074,"line":6841},17,[6843,6847,6851],{"type":2911,"tag":2994,"props":6844,"children":6845},{"style":3078},[6846],{"type":2916,"value":6692},{"type":2911,"tag":2994,"props":6848,"children":6849},{"style":3084},[6850],{"type":2916,"value":6724},{"type":2911,"tag":2994,"props":6852,"children":6853},{"style":3084},[6854],{"type":2916,"value":6855}," test\n",{"type":2911,"tag":2994,"props":6857,"children":6859},{"class":3074,"line":6858},18,[6860,6864,6868],{"type":2911,"tag":2994,"props":6861,"children":6862},{"style":3078},[6863],{"type":2916,"value":6692},{"type":2911,"tag":2994,"props":6865,"children":6866},{"style":3084},[6867],{"type":2916,"value":6724},{"type":2911,"tag":2994,"props":6869,"children":6870},{"style":3084},[6871],{"type":2916,"value":6872}," test:watch\n",{"type":2911,"tag":2994,"props":6874,"children":6876},{"class":3074,"line":6875},19,[6877],{"type":2911,"tag":2994,"props":6878,"children":6879},{"emptyLinePlaceholder":1196},[6880],{"type":2916,"value":4364},{"type":2911,"tag":2994,"props":6882,"children":6884},{"class":3074,"line":6883},20,[6885],{"type":2911,"tag":2994,"props":6886,"children":6887},{"style":3347},[6888],{"type":2916,"value":6889},"# Release new version\n",{"type":2911,"tag":2994,"props":6891,"children":6893},{"class":3074,"line":6892},21,[6894,6898,6902],{"type":2911,"tag":2994,"props":6895,"children":6896},{"style":3078},[6897],{"type":2916,"value":6692},{"type":2911,"tag":2994,"props":6899,"children":6900},{"style":3084},[6901],{"type":2916,"value":6724},{"type":2911,"tag":2994,"props":6903,"children":6904},{"style":3084},[6905],{"type":2916,"value":6906}," release\n",{"type":2911,"tag":3015,"props":6908,"children":6910},{"id":6909},"credits",[6911],{"type":2916,"value":6912},"Credits",{"type":2911,"tag":2918,"props":6914,"children":6915},{},[6916,6918,6925],{"type":2916,"value":6917},"This module, both code and design, is heavily inspired by the ",{"type":2911,"tag":2922,"props":6919,"children":6922},{"href":6920,"rel":6921},"https:\u002F\u002Fdocs.adonisjs.com\u002Fguides\u002Fsecurity\u002Fauthorization",[2926],[6923],{"type":2916,"value":6924},"Adonis Bouncer",{"type":2916,"value":6926},". It's a well written package and I think reinventing the wheel every time is unnecessary.",{"type":2911,"tag":3015,"props":6928,"children":6930},{"id":6929},"license",[6931],{"type":2916,"value":2949},{"type":2911,"tag":2918,"props":6933,"children":6934},{},[6935],{"type":2911,"tag":2922,"props":6936,"children":6938},{"href":6937},".\u002FLICENSE",[6939],{"type":2916,"value":6940},"MIT License",{"type":2911,"tag":6942,"props":6943,"children":6944},"style",{},[6945],{"type":2916,"value":6946},"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);}",{"title":2861,"searchDepth":2888,"depth":2888,"links":6948},[6949,6950,6951,6957,6958,6959],{"id":3017,"depth":2888,"text":395},{"id":3052,"depth":2888,"text":3055},{"id":3110,"depth":2888,"text":3113,"children":6952},[6953,6954,6955,6956],{"id":3129,"depth":2884,"text":3132},{"id":4248,"depth":2884,"text":4251},{"id":4647,"depth":2884,"text":4650},{"id":5367,"depth":2884,"text":5370},{"id":6655,"depth":2888,"text":1017},{"id":6909,"depth":2888,"text":6912},{"id":6929,"depth":2888,"text":2949},{"v5":6961,"v4":6962,"v3":6963,"v2":6964},"5 (nightly)","4.4.2","3.21.2","2.18.1"]