[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fGCo9l1hMtNdUiA6QzdUX5X3kLqaWcC5t2kdz4LrvCvc":3,"versions":2856,"module-authorization":2861},[4,1120,1948,2767],{"title":5,"titleTemplate":6,"icon":7,"path":8,"stem":9,"children":10,"page":108},"Docs",null,"i-lucide-book-marked","\u002Fdocs\u002F3.x","docs\u002F3.x",[11,109,246,426,907,999,1036,1078],{"title":12,"titleTemplate":13,"icon":14,"path":15,"stem":16,"children":17,"page":108},"Get Started","%s · Get Started with Nuxt","i-lucide-rocket","\u002Fdocs\u002F3.x\u002Fgetting-started","docs\u002F3.x\u002F1.getting-started",[18,23,28,33,38,43,48,53,58,63,68,73,78,83,88,93,98,103],{"title":19,"path":20,"stem":21,"titleTemplate":6,"icon":22},"Introduction","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fintroduction","docs\u002F3.x\u002F1.getting-started\u002F01.introduction","i-lucide-info",{"title":24,"path":25,"stem":26,"titleTemplate":6,"icon":27},"Installation","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Finstallation","docs\u002F3.x\u002F1.getting-started\u002F02.installation","i-lucide-play",{"title":29,"path":30,"stem":31,"titleTemplate":6,"icon":32},"Configuration","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fconfiguration","docs\u002F3.x\u002F1.getting-started\u002F03.configuration","i-lucide-cog",{"title":34,"path":35,"stem":36,"titleTemplate":6,"icon":37},"Views","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fviews","docs\u002F3.x\u002F1.getting-started\u002F04.views","i-lucide-panels-top-left",{"title":39,"path":40,"stem":41,"titleTemplate":6,"icon":42},"Assets","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fassets","docs\u002F3.x\u002F1.getting-started\u002F05.assets","i-lucide-image",{"title":44,"path":45,"stem":46,"titleTemplate":6,"icon":47},"Styling","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fstyling","docs\u002F3.x\u002F1.getting-started\u002F06.styling","i-lucide-palette",{"title":49,"path":50,"stem":51,"titleTemplate":6,"icon":52},"Routing","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Frouting","docs\u002F3.x\u002F1.getting-started\u002F07.routing","i-lucide-milestone",{"title":54,"path":55,"stem":56,"titleTemplate":6,"icon":57},"SEO and Meta","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fseo-meta","docs\u002F3.x\u002F1.getting-started\u002F08.seo-meta","i-lucide-file-search",{"title":59,"path":60,"stem":61,"titleTemplate":6,"icon":62},"Transitions","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ftransitions","docs\u002F3.x\u002F1.getting-started\u002F09.transitions","i-lucide-toggle-right",{"title":64,"path":65,"stem":66,"titleTemplate":6,"icon":67},"Data Fetching","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F3.x\u002F1.getting-started\u002F10.data-fetching","i-lucide-cable",{"title":69,"path":70,"stem":71,"titleTemplate":6,"icon":72},"State Management","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fstate-management","docs\u002F3.x\u002F1.getting-started\u002F11.state-management","i-lucide-database",{"title":74,"path":75,"stem":76,"titleTemplate":6,"icon":77},"Error Handling","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ferror-handling","docs\u002F3.x\u002F1.getting-started\u002F12.error-handling","i-lucide-bug-off",{"title":79,"path":80,"stem":81,"titleTemplate":6,"icon":82},"Server","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fserver","docs\u002F3.x\u002F1.getting-started\u002F13.server","i-lucide-pc-case",{"title":84,"path":85,"stem":86,"titleTemplate":6,"icon":87},"Layers","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Flayers","docs\u002F3.x\u002F1.getting-started\u002F14.layers","i-lucide-layers",{"title":89,"path":90,"stem":91,"titleTemplate":6,"icon":92},"Prerendering","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fprerendering","docs\u002F3.x\u002F1.getting-started\u002F15.prerendering","i-lucide-file-code-2",{"title":94,"path":95,"stem":96,"titleTemplate":6,"icon":97},"Deployment","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fdeployment","docs\u002F3.x\u002F1.getting-started\u002F16.deployment","i-lucide-cloud",{"title":99,"path":100,"stem":101,"titleTemplate":6,"icon":102},"Testing","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ftesting","docs\u002F3.x\u002F1.getting-started\u002F17.testing","i-lucide-circle-check",{"title":104,"path":105,"stem":106,"titleTemplate":6,"icon":107},"Upgrade Guide","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fupgrade","docs\u002F3.x\u002F1.getting-started\u002F18.upgrade","i-lucide-circle-arrow-up",false,{"title":110,"titleTemplate":111,"icon":112,"path":113,"stem":114,"children":115,"page":108},"Directory Structure","%s · Nuxt Directory Structure","i-vscode-icons-default-folder","\u002Fdocs\u002F3.x\u002Fdirectory-structure","docs\u002F3.x\u002F2.directory-structure",[116,121,126,131,136,141,146,151,156,161,165,170,174,179,184,189,194,199,204,209,214,218,223,228,232,236,241],{"title":117,"path":118,"stem":119,"titleTemplate":6,"icon":120},".nuxt","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F3.x\u002F2.directory-structure\u002F0.nuxt","i-vscode-icons-folder-type-temp",{"title":122,"path":123,"stem":124,"titleTemplate":6,"icon":125},".output","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Foutput","docs\u002F3.x\u002F2.directory-structure\u002F0.output","i-vscode-icons-folder-type-package",{"title":127,"path":128,"stem":129,"titleTemplate":6,"icon":130},"assets","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fassets","docs\u002F3.x\u002F2.directory-structure\u002F1.assets","i-vscode-icons-folder-type-asset",{"title":132,"path":133,"stem":134,"titleTemplate":6,"icon":135},"components","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcomponents","docs\u002F3.x\u002F2.directory-structure\u002F1.components","i-vscode-icons-folder-type-component",{"title":137,"path":138,"stem":139,"titleTemplate":6,"icon":140},"composables","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcomposables","docs\u002F3.x\u002F2.directory-structure\u002F1.composables","i-vscode-icons-folder-type-src",{"title":142,"path":143,"stem":144,"titleTemplate":6,"icon":145},"content","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcontent","docs\u002F3.x\u002F2.directory-structure\u002F1.content","i-vscode-icons-folder-type-log",{"title":147,"path":148,"stem":149,"titleTemplate":6,"icon":150},"layers","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Flayers","docs\u002F3.x\u002F2.directory-structure\u002F1.layers","i-vscode-icons-folder-type-nuxt",{"title":152,"path":153,"stem":154,"titleTemplate":6,"icon":155},"layouts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Flayouts","docs\u002F3.x\u002F2.directory-structure\u002F1.layouts","i-vscode-icons-folder-type-view",{"title":157,"path":158,"stem":159,"titleTemplate":6,"icon":160},"middleware","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fmiddleware","docs\u002F3.x\u002F2.directory-structure\u002F1.middleware","i-vscode-icons-folder-type-middleware",{"title":162,"path":163,"stem":164,"titleTemplate":6,"icon":150},"modules","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fmodules","docs\u002F3.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":167,"stem":168,"titleTemplate":6,"icon":169},"node_modules","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F3.x\u002F2.directory-structure\u002F1.node_modules","i-vscode-icons-folder-type-node",{"title":171,"path":172,"stem":173,"titleTemplate":6,"icon":155},"pages","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpages","docs\u002F3.x\u002F2.directory-structure\u002F1.pages",{"title":175,"path":176,"stem":177,"titleTemplate":6,"icon":178},"plugins","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fplugins","docs\u002F3.x\u002F2.directory-structure\u002F1.plugins","i-vscode-icons-folder-type-plugin",{"title":180,"path":181,"stem":182,"titleTemplate":6,"icon":183},"public","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpublic","docs\u002F3.x\u002F2.directory-structure\u002F1.public","i-vscode-icons-folder-type-public",{"title":185,"path":186,"stem":187,"titleTemplate":6,"icon":188},"server","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fserver","docs\u002F3.x\u002F2.directory-structure\u002F1.server","i-vscode-icons-folder-type-server",{"title":190,"path":191,"stem":192,"titleTemplate":6,"icon":193},"shared","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fshared","docs\u002F3.x\u002F2.directory-structure\u002F1.shared","i-vscode-icons-folder-type-shared",{"title":195,"path":196,"stem":197,"titleTemplate":6,"icon":198},"utils","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Futils","docs\u002F3.x\u002F2.directory-structure\u002F1.utils","i-vscode-icons-folder-type-tools",{"title":200,"path":201,"stem":202,"titleTemplate":6,"icon":203},".env","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fenv","docs\u002F3.x\u002F2.directory-structure\u002F2.env","i-vscode-icons-file-type-dotenv",{"title":205,"path":206,"stem":207,"titleTemplate":6,"icon":208},".gitignore","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F3.x\u002F2.directory-structure\u002F2.gitignore","i-vscode-icons-file-type-git",{"title":210,"path":211,"stem":212,"titleTemplate":6,"icon":213},".nuxtignore","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F3.x\u002F2.directory-structure\u002F2.nuxtignore","i-vscode-icons-file-type-nuxt",{"title":215,"path":216,"stem":217,"titleTemplate":6,"icon":213},".nuxtrc","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F3.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":219,"path":220,"stem":221,"titleTemplate":6,"icon":222},"app.vue","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fapp","docs\u002F3.x\u002F2.directory-structure\u002F3.app","i-vscode-icons-file-type-vue",{"title":224,"path":225,"stem":226,"titleTemplate":6,"icon":227},"app.config.ts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fapp-config","docs\u002F3.x\u002F2.directory-structure\u002F3.app-config","i-vscode-icons-file-type-light-config",{"title":229,"path":230,"stem":231,"titleTemplate":6,"icon":222},"error.vue","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Ferror","docs\u002F3.x\u002F2.directory-structure\u002F3.error",{"title":233,"path":234,"stem":235,"titleTemplate":6,"icon":213},"nuxt.config.ts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F3.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":238,"stem":239,"titleTemplate":6,"icon":240},"package.json","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpackage","docs\u002F3.x\u002F2.directory-structure\u002F3.package","i-vscode-icons-file-type-npm",{"title":242,"path":243,"stem":244,"titleTemplate":6,"icon":245},"tsconfig.json","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Ftsconfig","docs\u002F3.x\u002F2.directory-structure\u002F3.tsconfig","i-vscode-icons-file-type-tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":249,"stem":250,"children":251,"page":108},"Guide","i-lucide-book-open","\u002Fdocs\u002F3.x\u002Fguide","docs\u002F3.x\u002F3.guide",[252,287,306,321,356,379],{"title":253,"titleTemplate":254,"icon":255,"path":256,"stem":257,"children":258,"page":108},"Key Concepts","%s · Nuxt Concepts","i-lucide-medal","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts","docs\u002F3.x\u002F3.guide\u002F1.concepts",[259,263,267,271,275,279,283],{"title":260,"path":261,"stem":262,"titleTemplate":6},"Rendering Modes","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":265,"stem":266,"titleTemplate":6},"Nuxt Lifecycle","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":269,"stem":270,"titleTemplate":6},"Auto-imports","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":273,"stem":274,"titleTemplate":6},"Server Engine","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":277,"stem":278,"titleTemplate":6},"Modules","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":281,"stem":282,"titleTemplate":6},"TypeScript","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":285,"stem":286,"titleTemplate":6},"Code Style","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fcode-style","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":291,"stem":292,"children":293,"page":108},"Best Practices","%s · Best Practices","i-lucide-square-check","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices","docs\u002F3.x\u002F3.guide\u002F2.best-practices",[294,298,302],{"title":295,"path":296,"stem":297,"titleTemplate":6},"Nuxt and hydration","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":300,"stem":301,"titleTemplate":6},"Nuxt Performance","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":304,"stem":305,"titleTemplate":6},"Nuxt Plugins","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fplugins","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fplugins",{"title":307,"titleTemplate":308,"icon":309,"path":310,"stem":311,"children":312,"page":108},"Working with AI","Working with AI: %s","i-lucide-bot","\u002Fdocs\u002F3.x\u002Fguide\u002Fai","docs\u002F3.x\u002F3.guide\u002F3.ai",[313,317],{"title":314,"path":315,"stem":316,"titleTemplate":6},"MCP Server","\u002Fdocs\u002F3.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F3.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":319,"stem":320,"titleTemplate":6},"LLMs.txt","\u002Fdocs\u002F3.x\u002Fguide\u002Fai\u002Fllms-txt","docs\u002F3.x\u002F3.guide\u002F3.ai\u002F2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":325,"stem":326,"children":327,"page":108},"Module Author Guide","%s · Nuxt Modules Author Guide","i-lucide-box","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules","docs\u002F3.x\u002F3.guide\u002F4.modules",[328,332,336,340,344,348,352],{"title":329,"path":330,"stem":331,"titleTemplate":6},"Create Your First Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":334,"stem":335,"titleTemplate":6},"Understand Module Structure","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":338,"stem":339,"titleTemplate":6},"Add Plugins, Components & More","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":342,"stem":343,"titleTemplate":6},"Use Hooks & Extend Types","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F4.recipes-advanced",{"title":345,"path":346,"stem":347,"titleTemplate":6},"Test Your Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F5.testing",{"title":349,"path":350,"stem":351,"titleTemplate":6},"Follow Best Practices","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F6.best-practices",{"title":353,"path":354,"stem":355,"titleTemplate":6},"Publish & Share Your Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":360,"stem":361,"children":362,"page":108},"Recipes","%s · Recipes","i-lucide-cooking-pot","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes","docs\u002F3.x\u002F3.guide\u002F5.recipes",[363,367,371,375],{"title":364,"path":365,"stem":366,"titleTemplate":6},"Custom Routing","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":368,"path":369,"stem":370,"titleTemplate":6},"Vite Plugins","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":372,"path":373,"stem":374,"titleTemplate":6},"Custom useFetch","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":376,"path":377,"stem":378,"titleTemplate":6},"Sessions and Authentication","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":383,"stem":384,"children":385,"page":108},"Going Further","%s · Nuxt Advanced","i-lucide-star","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further","docs\u002F3.x\u002F3.guide\u002F6.going-further",[386,390,394,398,402,406,410,414,418,422],{"title":387,"path":388,"stem":389,"titleTemplate":6},"Custom Events","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":391,"path":392,"stem":393,"titleTemplate":6},"Experimental Features","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":395,"path":396,"stem":397,"titleTemplate":6},"Features","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":399,"path":400,"stem":401,"titleTemplate":6},"Runtime Config","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":403,"path":404,"stem":405,"titleTemplate":6},"Nightly Release Channel","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":407,"path":408,"stem":409,"titleTemplate":6},"Lifecycle Hooks","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":411,"path":412,"stem":413,"titleTemplate":6},"Nuxt Kit","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":415,"path":416,"stem":417,"titleTemplate":6},"NuxtApp","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":419,"path":420,"stem":421,"titleTemplate":6},"Authoring Nuxt Layers","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":423,"path":424,"stem":425,"titleTemplate":6},"Debugging","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":430,"stem":431,"children":432,"page":108},"API","%s · Nuxt API","i-lucide-code-xml","\u002Fdocs\u002F3.x\u002Fapi","docs\u002F3.x\u002F4.api",[433,499,622,745,816,889,902],{"title":434,"titleTemplate":435,"icon":324,"path":436,"stem":437,"children":438,"page":108},"Components","%s · Nuxt Components","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents","docs\u002F3.x\u002F4.api\u002F1.components",[439,443,447,451,455,459,463,467,471,475,479,483,487,491,495],{"title":440,"path":441,"stem":442,"titleTemplate":6},"\u003CClientOnly>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":444,"path":445,"stem":446,"titleTemplate":6},"\u003CDevOnly>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":448,"path":449,"stem":450,"titleTemplate":6},"\u003CNuxtClientFallback>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":452,"path":453,"stem":454,"titleTemplate":6},"\u003CNuxtPicture>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F3.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":456,"path":457,"stem":458,"titleTemplate":6},"\u003CTeleport>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F3.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":460,"path":461,"stem":462,"titleTemplate":6},"\u003CNuxtRouteAnnouncer>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F3.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":464,"path":465,"stem":466,"titleTemplate":6},"\u003CNuxtTime>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F3.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":468,"path":469,"stem":470,"titleTemplate":6},"\u003CNuxtPage>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F3.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":472,"path":473,"stem":474,"titleTemplate":6},"\u003CNuxtLayout>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F3.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":476,"path":477,"stem":478,"titleTemplate":6},"\u003CNuxtLink>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F3.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":480,"path":481,"stem":482,"titleTemplate":6},"\u003CNuxtLoadingIndicator>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F3.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":484,"path":485,"stem":486,"titleTemplate":6},"\u003CNuxtErrorBoundary>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F3.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":488,"path":489,"stem":490,"titleTemplate":6},"\u003CNuxtWelcome>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F3.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":492,"path":493,"stem":494,"titleTemplate":6},"\u003CNuxtIsland>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F3.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":496,"path":497,"stem":498,"titleTemplate":6},"\u003CNuxtImg>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F3.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":503,"stem":504,"children":505,"page":108},"Composables","%s · Nuxt Composables","i-lucide-arrow-left-right","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables","docs\u002F3.x\u002F4.api\u002F2.composables",[506,510,514,518,522,526,530,534,538,542,546,550,554,558,562,566,570,574,578,582,586,590,594,598,602,606,610,614,618],{"title":507,"path":508,"stem":509,"titleTemplate":6},"onPrehydrate","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":511,"path":512,"stem":513,"titleTemplate":6},"useAppConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":515,"path":516,"stem":517,"titleTemplate":6},"useAsyncData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":519,"path":520,"stem":521,"titleTemplate":6},"useCookie","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":523,"path":524,"stem":525,"titleTemplate":6},"useError","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":527,"path":528,"stem":529,"titleTemplate":6},"useFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":531,"path":532,"stem":533,"titleTemplate":6},"useHead","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":535,"path":536,"stem":537,"titleTemplate":6},"useHeadSafe","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":539,"path":540,"stem":541,"titleTemplate":6},"useHydration","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":543,"path":544,"stem":545,"titleTemplate":6},"useLazyAsyncData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":547,"path":548,"stem":549,"titleTemplate":6},"useLazyFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":551,"path":552,"stem":553,"titleTemplate":6},"useLoadingIndicator","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":555,"path":556,"stem":557,"titleTemplate":6},"useNuxtApp","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":559,"path":560,"stem":561,"titleTemplate":6},"useNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":563,"path":564,"stem":565,"titleTemplate":6},"usePreviewMode","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":567,"path":568,"stem":569,"titleTemplate":6},"useRequestEvent","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":571,"path":572,"stem":573,"titleTemplate":6},"useRequestFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":575,"path":576,"stem":577,"titleTemplate":6},"useRequestHeader","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":579,"path":580,"stem":581,"titleTemplate":6},"useRequestHeaders","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":583,"path":584,"stem":585,"titleTemplate":6},"useRequestURL","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":587,"path":588,"stem":589,"titleTemplate":6},"useResponseHeader","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":591,"path":592,"stem":593,"titleTemplate":6},"useRoute","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":595,"path":596,"stem":597,"titleTemplate":6},"useRouteAnnouncer","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":599,"path":600,"stem":601,"titleTemplate":6},"useRouter","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":603,"path":604,"stem":605,"titleTemplate":6},"useRuntimeConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":607,"path":608,"stem":609,"titleTemplate":6},"useRuntimeHook","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":611,"path":612,"stem":613,"titleTemplate":6},"useSeoMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":615,"path":616,"stem":617,"titleTemplate":6},"useServerSeoMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":619,"path":620,"stem":621,"titleTemplate":6},"useState","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":623,"titleTemplate":624,"icon":625,"path":626,"stem":627,"children":628,"page":108},"Utils","%s · Nuxt Utils","i-lucide-square-function","\u002Fdocs\u002F3.x\u002Fapi\u002Futils","docs\u002F3.x\u002F4.api\u002F3.utils",[629,633,637,641,645,649,653,657,661,665,669,673,677,681,685,689,693,697,701,705,709,713,717,721,725,729,733,737,741],{"title":630,"path":631,"stem":632,"titleTemplate":6},"$fetch","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F3.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":634,"path":635,"stem":636,"titleTemplate":6},"abortNavigation","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":638,"path":639,"stem":640,"titleTemplate":6},"addRouteMiddleware","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":642,"path":643,"stem":644,"titleTemplate":6},"callOnce","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":646,"path":647,"stem":648,"titleTemplate":6},"clearError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":650,"path":651,"stem":652,"titleTemplate":6},"clearNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":654,"path":655,"stem":656,"titleTemplate":6},"clearNuxtState","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":658,"path":659,"stem":660,"titleTemplate":6},"createError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":662,"path":663,"stem":664,"titleTemplate":6},"defineLazyHydrationComponent","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":666,"path":667,"stem":668,"titleTemplate":6},"defineNuxtComponent","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":670,"path":671,"stem":672,"titleTemplate":6},"defineNuxtPlugin","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":674,"path":675,"stem":676,"titleTemplate":6},"defineNuxtRouteMiddleware","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":678,"path":679,"stem":680,"titleTemplate":6},"definePageMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":682,"path":683,"stem":684,"titleTemplate":6},"defineRouteRules","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":686,"path":687,"stem":688,"titleTemplate":6},"navigateTo","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":690,"path":691,"stem":692,"titleTemplate":6},"onBeforeRouteLeave","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":694,"path":695,"stem":696,"titleTemplate":6},"onBeforeRouteUpdate","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":698,"path":699,"stem":700,"titleTemplate":6},"onNuxtReady","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":702,"path":703,"stem":704,"titleTemplate":6},"prefetchComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":706,"path":707,"stem":708,"titleTemplate":6},"preloadComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":710,"path":711,"stem":712,"titleTemplate":6},"preloadRouteComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":714,"path":715,"stem":716,"titleTemplate":6},"prerenderRoutes","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":718,"path":719,"stem":720,"titleTemplate":6},"refreshCookie","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F3.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":722,"path":723,"stem":724,"titleTemplate":6},"refreshNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F3.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":726,"path":727,"stem":728,"titleTemplate":6},"reloadNuxtApp","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F3.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":730,"path":731,"stem":732,"titleTemplate":6},"setPageLayout","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":734,"path":735,"stem":736,"titleTemplate":6},"setResponseStatus","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":738,"path":739,"stem":740,"titleTemplate":6},"showError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":742,"path":743,"stem":744,"titleTemplate":6},"updateAppConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":749,"stem":750,"children":751,"page":108},"Commands","%s · Nuxt Commands","i-lucide-square-terminal","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands","docs\u002F3.x\u002F4.api\u002F4.commands",[752,756,760,764,768,772,776,780,784,788,792,796,800,804,808,812],{"title":753,"path":754,"stem":755,"titleTemplate":6},"nuxt add","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fadd",{"title":757,"path":758,"stem":759,"titleTemplate":6},"nuxt analyze","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":761,"path":762,"stem":763,"titleTemplate":6},"nuxt build","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":765,"path":766,"stem":767,"titleTemplate":6},"nuxt build-module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":769,"path":770,"stem":771,"titleTemplate":6},"nuxt cleanup","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":773,"path":774,"stem":775,"titleTemplate":6},"nuxt dev","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdev",{"title":777,"path":778,"stem":779,"titleTemplate":6},"nuxt devtools","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":781,"path":782,"stem":783,"titleTemplate":6},"nuxt generate","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":785,"path":786,"stem":787,"titleTemplate":6},"nuxt info","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finfo",{"title":789,"path":790,"stem":791,"titleTemplate":6},"create nuxt","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finit",{"title":793,"path":794,"stem":795,"titleTemplate":6},"nuxt module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":797,"path":798,"stem":799,"titleTemplate":6},"nuxt prepare","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":801,"path":802,"stem":803,"titleTemplate":6},"nuxt preview","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":805,"path":806,"stem":807,"titleTemplate":6},"nuxt test","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftest",{"title":809,"path":810,"stem":811,"titleTemplate":6},"nuxt typecheck","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":813,"path":814,"stem":815,"titleTemplate":6},"nuxt upgrade","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":411,"titleTemplate":817,"icon":818,"path":819,"stem":820,"children":821,"page":108},"%s · Nuxt Kit","i-lucide-package","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit","docs\u002F3.x\u002F4.api\u002F5.kit",[822,825,828,832,836,840,844,848,852,855,859,863,866,869,873,877,881,885],{"title":276,"path":823,"stem":824,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F3.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":399,"path":826,"stem":827,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":829,"path":830,"stem":831,"titleTemplate":6},"Templates","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":833,"path":834,"stem":835,"titleTemplate":6},"Nitro","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F3.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":837,"path":838,"stem":839,"titleTemplate":6},"Resolving","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F3.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":841,"path":842,"stem":843,"titleTemplate":6},"Logging","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F3.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":845,"path":846,"stem":847,"titleTemplate":6},"Builder","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F3.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":849,"path":850,"stem":851,"titleTemplate":6},"Examples","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F3.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":853,"stem":854,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F3.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":856,"path":857,"stem":858,"titleTemplate":6},"Programmatic Usage","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F3.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":860,"path":861,"stem":862,"titleTemplate":6},"Compatibility","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F3.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":864,"stem":865,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F3.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":434,"path":867,"stem":868,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F3.x\u002F4.api\u002F5.kit\u002F5.components",{"title":870,"path":871,"stem":872,"titleTemplate":6},"Context","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F3.x\u002F4.api\u002F5.kit\u002F6.context",{"title":874,"path":875,"stem":876,"titleTemplate":6},"Pages","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F3.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":878,"path":879,"stem":880,"titleTemplate":6},"Layout","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F3.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":882,"path":883,"stem":884,"titleTemplate":6},"Head","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.head",{"title":886,"path":887,"stem":888,"titleTemplate":6},"Plugins","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":892,"stem":893,"children":894,"page":108},"Advanced","i-lucide-brain","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced","docs\u002F3.x\u002F4.api\u002F6.advanced",[895,898],{"title":407,"path":896,"stem":897,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":899,"path":900,"stem":901,"titleTemplate":6},"Import meta","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":903,"path":904,"stem":905,"titleTemplate":906,"icon":32},"Nuxt Configuration","\u002Fdocs\u002F3.x\u002Fapi\u002Fnuxt-config","docs\u002F3.x\u002F4.api\u002F6.nuxt-config","%s",{"title":849,"titleTemplate":908,"icon":909,"path":910,"stem":911,"children":912,"page":108},"%s · Nuxt Examples","i-lucide-app-window-mac","\u002Fdocs\u002F3.x\u002Fexamples","docs\u002F3.x\u002F4.examples",[913,917,939,954,990],{"title":914,"path":915,"stem":916,"titleTemplate":6},"Hello World","\u002Fdocs\u002F3.x\u002Fexamples\u002Fhello-world","docs\u002F3.x\u002F4.examples\u002F0.hello-world",{"title":395,"path":918,"stem":919,"children":920,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures","docs\u002F3.x\u002F4.examples\u002F1.features",[921,925,928,931,935],{"title":922,"path":923,"stem":924,"titleTemplate":6},"Auto Imports","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F3.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":926,"stem":927,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F3.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":929,"stem":930,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F3.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":932,"path":933,"stem":934,"titleTemplate":6},"Meta Tags","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F3.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":936,"path":937,"stem":938,"titleTemplate":6},"Layouts","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F3.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":940,"stem":941,"children":942,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting","docs\u002F3.x\u002F4.examples\u002F2.routing",[943,947,950],{"title":944,"path":945,"stem":946,"titleTemplate":6},"Middleware","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":874,"path":948,"stem":949,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":951,"path":952,"stem":953,"titleTemplate":6},"Universal Router","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":890,"path":955,"stem":956,"children":957,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced","docs\u002F3.x\u002F4.examples\u002F4.advanced",[958,961,964,968,972,976,980,983,986],{"title":84,"path":959,"stem":960,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":962,"stem":963,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":965,"path":966,"stem":967,"titleTemplate":6},"JSX \u002F TSX","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":969,"path":970,"stem":971,"titleTemplate":6},"Locale","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":973,"path":974,"stem":975,"titleTemplate":6},"Module Extend Pages","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":977,"path":978,"stem":979,"titleTemplate":6},"Teleport","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":981,"stem":982,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":519,"path":984,"stem":985,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":987,"path":988,"stem":989,"titleTemplate":6},"Use Custom Fetch Composable","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":991,"path":992,"stem":993,"children":994,"page":108},"Experimental","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental","docs\u002F3.x\u002F4.examples\u002F7.experimental",[995],{"title":996,"path":997,"stem":998,"titleTemplate":6},"WASM","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F3.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":1003,"stem":1004,"children":1005,"page":108},"Community","%s · Nuxt Community","i-lucide-messages-square","\u002Fdocs\u002F3.x\u002Fcommunity","docs\u002F3.x\u002F5.community",[1006,1011,1016,1021,1026,1031],{"title":1007,"path":1008,"stem":1009,"titleTemplate":6,"icon":1010},"Getting Help","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fgetting-help","docs\u002F3.x\u002F5.community\u002F2.getting-help","i-lucide-life-buoy",{"title":1012,"path":1013,"stem":1014,"titleTemplate":6,"icon":1015},"Reporting Bugs","\u002Fdocs\u002F3.x\u002Fcommunity\u002Freporting-bugs","docs\u002F3.x\u002F5.community\u002F3.reporting-bugs","i-lucide-bug",{"title":1017,"path":1018,"stem":1019,"titleTemplate":6,"icon":1020},"Contribution","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fcontribution","docs\u002F3.x\u002F5.community\u002F4.contribution","i-lucide-git-pull-request",{"title":1022,"path":1023,"stem":1024,"titleTemplate":6,"icon":1025},"Framework","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fframework-contribution","docs\u002F3.x\u002F5.community\u002F5.framework-contribution","i-lucide-github",{"title":1027,"path":1028,"stem":1029,"titleTemplate":6,"icon":1030},"Roadmap","\u002Fdocs\u002F3.x\u002Fcommunity\u002Froadmap","docs\u002F3.x\u002F5.community\u002F6.roadmap","i-lucide-map",{"title":1032,"path":1033,"stem":1034,"titleTemplate":6,"icon":1035},"Releases","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fchangelog","docs\u002F3.x\u002F5.community\u002F7.changelog","i-lucide-bell-dot",{"title":1037,"titleTemplate":1038,"icon":1039,"path":1040,"stem":1041,"children":1042,"page":108},"Migrate to Nuxt Bridge","Migrate to Nuxt Bridge: %s","i-lucide-ship","\u002Fdocs\u002F3.x\u002Fbridge","docs\u002F3.x\u002F6.bridge",[1043,1047,1050,1053,1057,1061,1065,1068,1071,1074],{"title":1044,"path":1045,"stem":1046,"titleTemplate":6},"Overview","\u002Fdocs\u002F3.x\u002Fbridge\u002Foverview","docs\u002F3.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1048,"stem":1049,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fconfiguration","docs\u002F3.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1051,"stem":1052,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Ftypescript","docs\u002F3.x\u002F6.bridge\u002F2.typescript",{"title":1054,"path":1055,"stem":1056,"titleTemplate":6},"Legacy Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F3.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1058,"path":1059,"stem":1060,"titleTemplate":6},"Plugins and Middleware","\u002Fdocs\u002F3.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F3.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1062,"path":1063,"stem":1064,"titleTemplate":6},"New Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F3.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":932,"path":1066,"stem":1067,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fmeta","docs\u002F3.x\u002F6.bridge\u002F6.meta",{"title":399,"path":1069,"stem":1070,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fruntime-config","docs\u002F3.x\u002F6.bridge\u002F7.runtime-config",{"title":833,"path":1072,"stem":1073,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fnitro","docs\u002F3.x\u002F6.bridge\u002F8.nitro",{"title":1075,"path":1076,"stem":1077,"titleTemplate":6},"Vite","\u002Fdocs\u002F3.x\u002Fbridge\u002Fvite","docs\u002F3.x\u002F6.bridge\u002F9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":1081,"stem":1082,"children":1083,"page":108},"Migrate to Nuxt 3","Migrate to Nuxt 3: %s","\u002Fdocs\u002F3.x\u002Fmigration","docs\u002F3.x\u002F7.migration",[1084,1087,1091,1094,1097,1100,1103,1106,1109,1113,1117],{"title":1044,"path":1085,"stem":1086,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Foverview","docs\u002F3.x\u002F7.migration\u002F1.overview",{"title":1088,"path":1089,"stem":1090,"titleTemplate":6},"Build Tooling","\u002Fdocs\u002F3.x\u002Fmigration\u002Fbundling","docs\u002F3.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1092,"stem":1093,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fserver","docs\u002F3.x\u002F7.migration\u002F11.server",{"title":29,"path":1095,"stem":1096,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fconfiguration","docs\u002F3.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1098,"stem":1099,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmodule-authors","docs\u002F3.x\u002F7.migration\u002F20.module-authors",{"title":922,"path":1101,"stem":1102,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fauto-imports","docs\u002F3.x\u002F7.migration\u002F3.auto-imports",{"title":932,"path":1104,"stem":1105,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmeta","docs\u002F3.x\u002F7.migration\u002F4.meta",{"title":1058,"path":1107,"stem":1108,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F3.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1110,"path":1111,"stem":1112,"titleTemplate":6},"Pages and Layouts","\u002Fdocs\u002F3.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F3.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1114,"path":1115,"stem":1116,"titleTemplate":6},"Component Options","\u002Fdocs\u002F3.x\u002Fmigration\u002Fcomponent-options","docs\u002F3.x\u002F7.migration\u002F7.component-options",{"title":399,"path":1118,"stem":1119,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fruntime-config","docs\u002F3.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1121,"stem":1122,"children":1123,"page":108},"\u002Fdocs\u002F4.x","docs\u002F4.x",[1124,1182,1276,1404,1778,1855,1877,1911],{"title":12,"titleTemplate":13,"icon":14,"path":1125,"stem":1126,"children":1127,"page":108},"\u002Fdocs\u002F4.x\u002Fgetting-started","docs\u002F4.x\u002F1.getting-started",[1128,1131,1134,1137,1140,1143,1146,1149,1152,1155,1158,1161,1164,1167,1170,1173,1176,1179],{"title":19,"path":1129,"stem":1130,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fintroduction","docs\u002F4.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1132,"stem":1133,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Finstallation","docs\u002F4.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1135,"stem":1136,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fconfiguration","docs\u002F4.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":1138,"stem":1139,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fviews","docs\u002F4.x\u002F1.getting-started\u002F04.views",{"title":39,"path":1141,"stem":1142,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fassets","docs\u002F4.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":1144,"stem":1145,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstyling","docs\u002F4.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":1147,"stem":1148,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Frouting","docs\u002F4.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":1150,"stem":1151,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fseo-meta","docs\u002F4.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":1153,"stem":1154,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftransitions","docs\u002F4.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":1156,"stem":1157,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F4.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":1159,"stem":1160,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstate-management","docs\u002F4.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":1162,"stem":1163,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ferror-handling","docs\u002F4.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":1165,"stem":1166,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fserver","docs\u002F4.x\u002F1.getting-started\u002F13.server",{"title":84,"path":1168,"stem":1169,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Flayers","docs\u002F4.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":1171,"stem":1172,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fprerendering","docs\u002F4.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":1174,"stem":1175,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdeployment","docs\u002F4.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":1177,"stem":1178,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftesting","docs\u002F4.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":1180,"stem":1181,"titleTemplate":6,"icon":107},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fupgrade","docs\u002F4.x\u002F1.getting-started\u002F18.upgrade",{"title":110,"titleTemplate":111,"icon":112,"path":1183,"stem":1184,"children":1185,"page":108},"\u002Fdocs\u002F4.x\u002Fdirectory-structure","docs\u002F4.x\u002F2.directory-structure",[1186,1189,1192,1234,1237,1240,1243,1246,1249,1252,1255,1258,1261,1264,1267,1270,1273],{"title":117,"path":1187,"stem":1188,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F4.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":1190,"stem":1191,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Foutput","docs\u002F4.x\u002F2.directory-structure\u002F0.output",{"title":1193,"titleTemplate":111,"head":1194,"defaultOpen":1196,"icon":1197,"path":1198,"stem":1199,"children":1200,"page":108},"app",{"title":1195},"app\u002F",true,"i-vscode-icons-folder-type-app","\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app",[1201,1204,1207,1210,1213,1216,1219,1222,1225,1228,1231],{"title":127,"path":1202,"stem":1203,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":1205,"stem":1206,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":1208,"stem":1209,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":1211,"stem":1212,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":1214,"stem":1215,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":1217,"stem":1218,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":1220,"stem":1221,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":1223,"stem":1224,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":1226,"stem":1227,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":1229,"stem":1230,"titleTemplate":6,"icon":227},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp-config","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.app-config",{"title":229,"path":1232,"stem":1233,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":1235,"stem":1236,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fcontent","docs\u002F4.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":1238,"stem":1239,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Flayers","docs\u002F4.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":1241,"stem":1242,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fmodules","docs\u002F4.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":1244,"stem":1245,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F4.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":1247,"stem":1248,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpublic","docs\u002F4.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":1250,"stem":1251,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fserver","docs\u002F4.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":1253,"stem":1254,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fshared","docs\u002F4.x\u002F2.directory-structure\u002F1.shared",{"title":200,"path":1256,"stem":1257,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fenv","docs\u002F4.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":1259,"stem":1260,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F4.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":1262,"stem":1263,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":1265,"stem":1266,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":1268,"stem":1269,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F4.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":1271,"stem":1272,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpackage","docs\u002F4.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":1274,"stem":1275,"titleTemplate":6,"icon":245},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Ftsconfig","docs\u002F4.x\u002F2.directory-structure\u002F3.tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":1277,"stem":1278,"children":1279,"page":108},"\u002Fdocs\u002F4.x\u002Fguide","docs\u002F4.x\u002F3.guide",[1280,1305,1319,1329,1354,1370],{"title":253,"titleTemplate":254,"icon":255,"path":1281,"stem":1282,"children":1283,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts","docs\u002F4.x\u002F3.guide\u002F1.concepts",[1284,1287,1290,1293,1296,1299,1302],{"title":260,"path":1285,"stem":1286,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":1288,"stem":1289,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":1291,"stem":1292,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":1294,"stem":1295,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":1297,"stem":1298,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":1300,"stem":1301,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":1303,"stem":1304,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fcode-style","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":1306,"stem":1307,"children":1308,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F2.best-practices",[1309,1313,1316],{"title":1310,"path":1311,"stem":1312,"titleTemplate":6},"Nuxt and Hydration","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":1314,"stem":1315,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":1317,"stem":1318,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fplugins","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fplugins",{"title":307,"titleTemplate":308,"icon":309,"path":1320,"stem":1321,"children":1322,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai","docs\u002F4.x\u002F3.guide\u002F3.ai",[1323,1326],{"title":314,"path":1324,"stem":1325,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F4.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":1327,"stem":1328,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fllms-txt","docs\u002F4.x\u002F3.guide\u002F3.ai\u002F2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":1330,"stem":1331,"children":1332,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F4.modules",[1333,1336,1339,1342,1345,1348,1351],{"title":329,"path":1334,"stem":1335,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":1337,"stem":1338,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":1340,"stem":1341,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":1343,"stem":1344,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F4.recipes-advanced",{"title":345,"path":1346,"stem":1347,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F5.testing",{"title":349,"path":1349,"stem":1350,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F6.best-practices",{"title":353,"path":1352,"stem":1353,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":1355,"stem":1356,"children":1357,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes","docs\u002F4.x\u002F3.guide\u002F5.recipes",[1358,1361,1364,1367],{"title":364,"path":1359,"stem":1360,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":368,"path":1362,"stem":1363,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":372,"path":1365,"stem":1366,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":376,"path":1368,"stem":1369,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":1371,"stem":1372,"children":1373,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further","docs\u002F4.x\u002F3.guide\u002F6.going-further",[1374,1377,1380,1383,1386,1389,1392,1395,1398,1401],{"title":387,"path":1375,"stem":1376,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":391,"path":1378,"stem":1379,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":395,"path":1381,"stem":1382,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":399,"path":1384,"stem":1385,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":403,"path":1387,"stem":1388,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":407,"path":1390,"stem":1391,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":411,"path":1393,"stem":1394,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":415,"path":1396,"stem":1397,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":419,"path":1399,"stem":1400,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":423,"path":1402,"stem":1403,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":1405,"stem":1406,"children":1407,"page":108},"\u002Fdocs\u002F4.x\u002Fapi","docs\u002F4.x\u002F4.api",[1408,1461,1564,1655,1707,1765,1775],{"title":434,"titleTemplate":435,"icon":324,"path":1409,"stem":1410,"children":1411,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F1.components",[1412,1415,1418,1421,1424,1427,1430,1433,1437,1440,1443,1446,1449,1452,1455,1458],{"title":440,"path":1413,"stem":1414,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":444,"path":1416,"stem":1417,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":448,"path":1419,"stem":1420,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":452,"path":1422,"stem":1423,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F4.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":456,"path":1425,"stem":1426,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F4.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":460,"path":1428,"stem":1429,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":464,"path":1431,"stem":1432,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F4.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1434,"path":1435,"stem":1436,"titleTemplate":6},"\u003CNuxtAnnouncer>","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":468,"path":1438,"stem":1439,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F4.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":472,"path":1441,"stem":1442,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F4.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":476,"path":1444,"stem":1445,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F4.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":480,"path":1447,"stem":1448,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F4.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":484,"path":1450,"stem":1451,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F4.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":488,"path":1453,"stem":1454,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F4.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":492,"path":1456,"stem":1457,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F4.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":496,"path":1459,"stem":1460,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F4.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":1462,"stem":1463,"children":1464,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables","docs\u002F4.x\u002F4.api\u002F2.composables",[1465,1469,1473,1476,1480,1483,1486,1489,1492,1495,1498,1501,1504,1507,1510,1513,1516,1519,1522,1525,1528,1531,1534,1537,1540,1543,1546,1549,1552,1555,1558,1561],{"title":1466,"path":1467,"stem":1468,"titleTemplate":6},"createUseAsyncData","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1470,"path":1471,"stem":1472,"titleTemplate":6},"createUseFetch","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":507,"path":1474,"stem":1475,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1477,"path":1478,"stem":1479,"titleTemplate":6},"useAnnouncer","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":511,"path":1481,"stem":1482,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":515,"path":1484,"stem":1485,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":519,"path":1487,"stem":1488,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":523,"path":1490,"stem":1491,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":527,"path":1493,"stem":1494,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":531,"path":1496,"stem":1497,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":535,"path":1499,"stem":1500,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":539,"path":1502,"stem":1503,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":543,"path":1505,"stem":1506,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":547,"path":1508,"stem":1509,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":551,"path":1511,"stem":1512,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":555,"path":1514,"stem":1515,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":559,"path":1517,"stem":1518,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":563,"path":1520,"stem":1521,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":567,"path":1523,"stem":1524,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":571,"path":1526,"stem":1527,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":575,"path":1529,"stem":1530,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":579,"path":1532,"stem":1533,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":583,"path":1535,"stem":1536,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":587,"path":1538,"stem":1539,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":591,"path":1541,"stem":1542,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":595,"path":1544,"stem":1545,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":599,"path":1547,"stem":1548,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":603,"path":1550,"stem":1551,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":607,"path":1553,"stem":1554,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":611,"path":1556,"stem":1557,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":615,"path":1559,"stem":1560,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":619,"path":1562,"stem":1563,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":623,"titleTemplate":624,"icon":625,"path":1565,"stem":1566,"children":1567,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils","docs\u002F4.x\u002F4.api\u002F3.utils",[1568,1571,1574,1577,1580,1583,1586,1589,1592,1595,1598,1601,1604,1607,1610,1613,1616,1619,1622,1625,1628,1631,1634,1637,1640,1643,1646,1649,1652],{"title":630,"path":1569,"stem":1570,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F4.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":634,"path":1572,"stem":1573,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":638,"path":1575,"stem":1576,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":642,"path":1578,"stem":1579,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":646,"path":1581,"stem":1582,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":650,"path":1584,"stem":1585,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":654,"path":1587,"stem":1588,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":658,"path":1590,"stem":1591,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":662,"path":1593,"stem":1594,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":666,"path":1596,"stem":1597,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":670,"path":1599,"stem":1600,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":674,"path":1602,"stem":1603,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":678,"path":1605,"stem":1606,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":682,"path":1608,"stem":1609,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":686,"path":1611,"stem":1612,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":690,"path":1614,"stem":1615,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":694,"path":1617,"stem":1618,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":698,"path":1620,"stem":1621,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":702,"path":1623,"stem":1624,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":706,"path":1626,"stem":1627,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":710,"path":1629,"stem":1630,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":714,"path":1632,"stem":1633,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":718,"path":1635,"stem":1636,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":722,"path":1638,"stem":1639,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":726,"path":1641,"stem":1642,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F4.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":730,"path":1644,"stem":1645,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":734,"path":1647,"stem":1648,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":738,"path":1650,"stem":1651,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":742,"path":1653,"stem":1654,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":1656,"stem":1657,"children":1658,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands","docs\u002F4.x\u002F4.api\u002F4.commands",[1659,1662,1665,1668,1671,1674,1677,1680,1683,1686,1689,1692,1695,1698,1701,1704],{"title":753,"path":1660,"stem":1661,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fadd",{"title":757,"path":1663,"stem":1664,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":761,"path":1666,"stem":1667,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":765,"path":1669,"stem":1670,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":769,"path":1672,"stem":1673,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":773,"path":1675,"stem":1676,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdev",{"title":777,"path":1678,"stem":1679,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":781,"path":1681,"stem":1682,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":785,"path":1684,"stem":1685,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finfo",{"title":789,"path":1687,"stem":1688,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finit",{"title":793,"path":1690,"stem":1691,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":797,"path":1693,"stem":1694,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":801,"path":1696,"stem":1697,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":805,"path":1699,"stem":1700,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftest",{"title":809,"path":1702,"stem":1703,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":813,"path":1705,"stem":1706,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":411,"titleTemplate":817,"icon":818,"path":1708,"stem":1709,"children":1710,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit","docs\u002F4.x\u002F4.api\u002F5.kit",[1711,1714,1717,1720,1723,1726,1729,1732,1735,1738,1741,1744,1747,1750,1753,1756,1759,1762],{"title":276,"path":1712,"stem":1713,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F4.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":399,"path":1715,"stem":1716,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":829,"path":1718,"stem":1719,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":833,"path":1721,"stem":1722,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F4.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":837,"path":1724,"stem":1725,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F4.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":841,"path":1727,"stem":1728,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F4.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":845,"path":1730,"stem":1731,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F4.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":849,"path":1733,"stem":1734,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F4.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":1736,"stem":1737,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F4.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":856,"path":1739,"stem":1740,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F4.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":860,"path":1742,"stem":1743,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F4.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":1745,"stem":1746,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F4.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":434,"path":1748,"stem":1749,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F5.kit\u002F5.components",{"title":870,"path":1751,"stem":1752,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F4.x\u002F4.api\u002F5.kit\u002F6.context",{"title":874,"path":1754,"stem":1755,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F4.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":878,"path":1757,"stem":1758,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F4.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":882,"path":1760,"stem":1761,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.head",{"title":886,"path":1763,"stem":1764,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":1766,"stem":1767,"children":1768,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced","docs\u002F4.x\u002F4.api\u002F6.advanced",[1769,1772],{"title":407,"path":1770,"stem":1771,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":899,"path":1773,"stem":1774,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":903,"path":1776,"stem":1777,"titleTemplate":906,"icon":32},"\u002Fdocs\u002F4.x\u002Fapi\u002Fnuxt-config","docs\u002F4.x\u002F4.api\u002F6.nuxt-config",{"title":849,"titleTemplate":908,"icon":909,"path":1779,"stem":1780,"children":1781,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples","docs\u002F4.x\u002F4.examples",[1782,1785,1804,1817,1848],{"title":914,"path":1783,"stem":1784,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fhello-world","docs\u002F4.x\u002F4.examples\u002F0.hello-world",{"title":395,"path":1786,"stem":1787,"children":1788,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures","docs\u002F4.x\u002F4.examples\u002F1.features",[1789,1792,1795,1798,1801],{"title":922,"path":1790,"stem":1791,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F4.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":1793,"stem":1794,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F4.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":1796,"stem":1797,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F4.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":932,"path":1799,"stem":1800,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F4.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":936,"path":1802,"stem":1803,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F4.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":1805,"stem":1806,"children":1807,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting","docs\u002F4.x\u002F4.examples\u002F2.routing",[1808,1811,1814],{"title":944,"path":1809,"stem":1810,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":874,"path":1812,"stem":1813,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":951,"path":1815,"stem":1816,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":890,"path":1818,"stem":1819,"children":1820,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced","docs\u002F4.x\u002F4.examples\u002F4.advanced",[1821,1824,1827,1830,1833,1836,1839,1842,1845],{"title":84,"path":1822,"stem":1823,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":1825,"stem":1826,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":965,"path":1828,"stem":1829,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":969,"path":1831,"stem":1832,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":973,"path":1834,"stem":1835,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":977,"path":1837,"stem":1838,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":1840,"stem":1841,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":519,"path":1843,"stem":1844,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":987,"path":1846,"stem":1847,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":991,"path":1849,"stem":1850,"children":1851,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental","docs\u002F4.x\u002F4.examples\u002F7.experimental",[1852],{"title":996,"path":1853,"stem":1854,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F4.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":1856,"stem":1857,"children":1858,"page":108},"\u002Fdocs\u002F4.x\u002Fcommunity","docs\u002F4.x\u002F5.community",[1859,1862,1865,1868,1871,1874],{"title":1007,"path":1860,"stem":1861,"titleTemplate":6,"icon":1010},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fgetting-help","docs\u002F4.x\u002F5.community\u002F2.getting-help",{"title":1012,"path":1863,"stem":1864,"titleTemplate":6,"icon":1015},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Freporting-bugs","docs\u002F4.x\u002F5.community\u002F3.reporting-bugs",{"title":1017,"path":1866,"stem":1867,"titleTemplate":6,"icon":1020},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fcontribution","docs\u002F4.x\u002F5.community\u002F4.contribution",{"title":1022,"path":1869,"stem":1870,"titleTemplate":6,"icon":1025},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fframework-contribution","docs\u002F4.x\u002F5.community\u002F5.framework-contribution",{"title":1027,"path":1872,"stem":1873,"titleTemplate":6,"icon":1030},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Froadmap","docs\u002F4.x\u002F5.community\u002F6.roadmap",{"title":1032,"path":1875,"stem":1876,"titleTemplate":6,"icon":1035},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fchangelog","docs\u002F4.x\u002F5.community\u002F7.changelog",{"title":1037,"titleTemplate":1038,"icon":1039,"path":1878,"stem":1879,"children":1880,"page":108},"\u002Fdocs\u002F4.x\u002Fbridge","docs\u002F4.x\u002F6.bridge",[1881,1884,1887,1890,1893,1896,1899,1902,1905,1908],{"title":1044,"path":1882,"stem":1883,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Foverview","docs\u002F4.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1885,"stem":1886,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fconfiguration","docs\u002F4.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1888,"stem":1889,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Ftypescript","docs\u002F4.x\u002F6.bridge\u002F2.typescript",{"title":1054,"path":1891,"stem":1892,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F4.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1058,"path":1894,"stem":1895,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F4.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1062,"path":1897,"stem":1898,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F4.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":932,"path":1900,"stem":1901,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fmeta","docs\u002F4.x\u002F6.bridge\u002F6.meta",{"title":399,"path":1903,"stem":1904,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fruntime-config","docs\u002F4.x\u002F6.bridge\u002F7.runtime-config",{"title":833,"path":1906,"stem":1907,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnitro","docs\u002F4.x\u002F6.bridge\u002F8.nitro",{"title":1075,"path":1909,"stem":1910,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fvite","docs\u002F4.x\u002F6.bridge\u002F9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":1912,"stem":1913,"children":1914,"page":108},"\u002Fdocs\u002F4.x\u002Fmigration","docs\u002F4.x\u002F7.migration",[1915,1918,1921,1924,1927,1930,1933,1936,1939,1942,1945],{"title":1044,"path":1916,"stem":1917,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Foverview","docs\u002F4.x\u002F7.migration\u002F1.overview",{"title":1088,"path":1919,"stem":1920,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fbundling","docs\u002F4.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1922,"stem":1923,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fserver","docs\u002F4.x\u002F7.migration\u002F11.server",{"title":29,"path":1925,"stem":1926,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fconfiguration","docs\u002F4.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1928,"stem":1929,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmodule-authors","docs\u002F4.x\u002F7.migration\u002F20.module-authors",{"title":922,"path":1931,"stem":1932,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fauto-imports","docs\u002F4.x\u002F7.migration\u002F3.auto-imports",{"title":932,"path":1934,"stem":1935,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmeta","docs\u002F4.x\u002F7.migration\u002F4.meta",{"title":1058,"path":1937,"stem":1938,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F4.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1110,"path":1940,"stem":1941,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F4.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1114,"path":1943,"stem":1944,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fcomponent-options","docs\u002F4.x\u002F7.migration\u002F7.component-options",{"title":399,"path":1946,"stem":1947,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fruntime-config","docs\u002F4.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1949,"stem":1950,"children":1951,"page":108},"\u002Fdocs\u002F5.x","docs\u002F5.x",[1952,2010,2100,2227,2597,2674,2696,2730],{"title":12,"titleTemplate":13,"icon":14,"path":1953,"stem":1954,"children":1955,"page":108},"\u002Fdocs\u002F5.x\u002Fgetting-started","docs\u002F5.x\u002F1.getting-started",[1956,1959,1962,1965,1968,1971,1974,1977,1980,1983,1986,1989,1992,1995,1998,2001,2004,2007],{"title":19,"path":1957,"stem":1958,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fintroduction","docs\u002F5.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1960,"stem":1961,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Finstallation","docs\u002F5.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1963,"stem":1964,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fconfiguration","docs\u002F5.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":1966,"stem":1967,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fviews","docs\u002F5.x\u002F1.getting-started\u002F04.views",{"title":39,"path":1969,"stem":1970,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fassets","docs\u002F5.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":1972,"stem":1973,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstyling","docs\u002F5.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":1975,"stem":1976,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Frouting","docs\u002F5.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":1978,"stem":1979,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fseo-meta","docs\u002F5.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":1981,"stem":1982,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftransitions","docs\u002F5.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":1984,"stem":1985,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F5.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":1987,"stem":1988,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstate-management","docs\u002F5.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":1990,"stem":1991,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ferror-handling","docs\u002F5.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":1993,"stem":1994,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fserver","docs\u002F5.x\u002F1.getting-started\u002F13.server",{"title":84,"path":1996,"stem":1997,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Flayers","docs\u002F5.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":1999,"stem":2000,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fprerendering","docs\u002F5.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":2002,"stem":2003,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdeployment","docs\u002F5.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":2005,"stem":2006,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftesting","docs\u002F5.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":2008,"stem":2009,"titleTemplate":6,"icon":107},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fupgrade","docs\u002F5.x\u002F1.getting-started\u002F18.upgrade",{"title":110,"titleTemplate":111,"icon":112,"path":2011,"stem":2012,"children":2013,"page":108},"\u002Fdocs\u002F5.x\u002Fdirectory-structure","docs\u002F5.x\u002F2.directory-structure",[2014,2017,2020,2058,2061,2064,2067,2070,2073,2076,2079,2082,2085,2088,2091,2094,2097],{"title":117,"path":2015,"stem":2016,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F5.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":2018,"stem":2019,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Foutput","docs\u002F5.x\u002F2.directory-structure\u002F0.output",{"title":1193,"titleTemplate":111,"head":2021,"defaultOpen":1196,"icon":1197,"path":2022,"stem":2023,"children":2024,"page":108},{"title":1195},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app",[2025,2028,2031,2034,2037,2040,2043,2046,2049,2052,2055],{"title":127,"path":2026,"stem":2027,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":2029,"stem":2030,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":2032,"stem":2033,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":2035,"stem":2036,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":2038,"stem":2039,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":2041,"stem":2042,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":2044,"stem":2045,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":2047,"stem":2048,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":2050,"stem":2051,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":2053,"stem":2054,"titleTemplate":6,"icon":227},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp-config","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.app-config",{"title":229,"path":2056,"stem":2057,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":2059,"stem":2060,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fcontent","docs\u002F5.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":2062,"stem":2063,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Flayers","docs\u002F5.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":2065,"stem":2066,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fmodules","docs\u002F5.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":2068,"stem":2069,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F5.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":2071,"stem":2072,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpublic","docs\u002F5.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":2074,"stem":2075,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fserver","docs\u002F5.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":2077,"stem":2078,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fshared","docs\u002F5.x\u002F2.directory-structure\u002F1.shared",{"title":200,"path":2080,"stem":2081,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fenv","docs\u002F5.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":2083,"stem":2084,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F5.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":2086,"stem":2087,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":2089,"stem":2090,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":2092,"stem":2093,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F5.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":2095,"stem":2096,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpackage","docs\u002F5.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":2098,"stem":2099,"titleTemplate":6,"icon":245},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Ftsconfig","docs\u002F5.x\u002F2.directory-structure\u002F3.tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":2101,"stem":2102,"children":2103,"page":108},"\u002Fdocs\u002F5.x\u002Fguide","docs\u002F5.x\u002F3.guide",[2104,2129,2142,2152,2177,2193],{"title":253,"titleTemplate":254,"icon":255,"path":2105,"stem":2106,"children":2107,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts","docs\u002F5.x\u002F3.guide\u002F1.concepts",[2108,2111,2114,2117,2120,2123,2126],{"title":260,"path":2109,"stem":2110,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":2112,"stem":2113,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":2115,"stem":2116,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":2118,"stem":2119,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":2121,"stem":2122,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":2124,"stem":2125,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":2127,"stem":2128,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fcode-style","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":2130,"stem":2131,"children":2132,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F2.best-practices",[2133,2136,2139],{"title":1310,"path":2134,"stem":2135,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":2137,"stem":2138,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":2140,"stem":2141,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fplugins","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fplugins",{"title":307,"titleTemplate":308,"icon":309,"path":2143,"stem":2144,"children":2145,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai","docs\u002F5.x\u002F3.guide\u002F3.ai",[2146,2149],{"title":314,"path":2147,"stem":2148,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F5.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":2150,"stem":2151,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fllms-txt","docs\u002F5.x\u002F3.guide\u002F3.ai\u002F2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":2153,"stem":2154,"children":2155,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F4.modules",[2156,2159,2162,2165,2168,2171,2174],{"title":329,"path":2157,"stem":2158,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":2160,"stem":2161,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":2163,"stem":2164,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":2166,"stem":2167,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F4.recipes-advanced",{"title":345,"path":2169,"stem":2170,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F5.testing",{"title":349,"path":2172,"stem":2173,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F6.best-practices",{"title":353,"path":2175,"stem":2176,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":2178,"stem":2179,"children":2180,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes","docs\u002F5.x\u002F3.guide\u002F5.recipes",[2181,2184,2187,2190],{"title":364,"path":2182,"stem":2183,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":368,"path":2185,"stem":2186,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":372,"path":2188,"stem":2189,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":376,"path":2191,"stem":2192,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":2194,"stem":2195,"children":2196,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further","docs\u002F5.x\u002F3.guide\u002F6.going-further",[2197,2200,2203,2206,2209,2212,2215,2218,2221,2224],{"title":387,"path":2198,"stem":2199,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":391,"path":2201,"stem":2202,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":395,"path":2204,"stem":2205,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":399,"path":2207,"stem":2208,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":403,"path":2210,"stem":2211,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":407,"path":2213,"stem":2214,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":411,"path":2216,"stem":2217,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":415,"path":2219,"stem":2220,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":419,"path":2222,"stem":2223,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":423,"path":2225,"stem":2226,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":2228,"stem":2229,"children":2230,"page":108},"\u002Fdocs\u002F5.x\u002Fapi","docs\u002F5.x\u002F4.api",[2231,2283,2383,2474,2526,2584,2594],{"title":434,"titleTemplate":435,"icon":324,"path":2232,"stem":2233,"children":2234,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F1.components",[2235,2238,2241,2244,2247,2250,2253,2256,2259,2262,2265,2268,2271,2274,2277,2280],{"title":440,"path":2236,"stem":2237,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":444,"path":2239,"stem":2240,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":448,"path":2242,"stem":2243,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":452,"path":2245,"stem":2246,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F5.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":456,"path":2248,"stem":2249,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F5.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":460,"path":2251,"stem":2252,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":464,"path":2254,"stem":2255,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F5.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1434,"path":2257,"stem":2258,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":468,"path":2260,"stem":2261,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F5.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":472,"path":2263,"stem":2264,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F5.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":476,"path":2266,"stem":2267,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F5.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":480,"path":2269,"stem":2270,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F5.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":484,"path":2272,"stem":2273,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F5.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":488,"path":2275,"stem":2276,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F5.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":492,"path":2278,"stem":2279,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F5.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":496,"path":2281,"stem":2282,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F5.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":2284,"stem":2285,"children":2286,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables","docs\u002F5.x\u002F4.api\u002F2.composables",[2287,2290,2293,2296,2299,2302,2305,2308,2311,2314,2317,2320,2323,2326,2329,2332,2335,2338,2341,2344,2347,2350,2353,2356,2359,2362,2365,2368,2371,2374,2377,2380],{"title":1466,"path":2288,"stem":2289,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1470,"path":2291,"stem":2292,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":507,"path":2294,"stem":2295,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1477,"path":2297,"stem":2298,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":511,"path":2300,"stem":2301,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":515,"path":2303,"stem":2304,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":519,"path":2306,"stem":2307,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":523,"path":2309,"stem":2310,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":527,"path":2312,"stem":2313,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":531,"path":2315,"stem":2316,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":535,"path":2318,"stem":2319,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":539,"path":2321,"stem":2322,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":543,"path":2324,"stem":2325,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":547,"path":2327,"stem":2328,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":551,"path":2330,"stem":2331,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":555,"path":2333,"stem":2334,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":559,"path":2336,"stem":2337,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":563,"path":2339,"stem":2340,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":567,"path":2342,"stem":2343,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":571,"path":2345,"stem":2346,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":575,"path":2348,"stem":2349,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":579,"path":2351,"stem":2352,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":583,"path":2354,"stem":2355,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":587,"path":2357,"stem":2358,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":591,"path":2360,"stem":2361,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":595,"path":2363,"stem":2364,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":599,"path":2366,"stem":2367,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":603,"path":2369,"stem":2370,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":607,"path":2372,"stem":2373,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":611,"path":2375,"stem":2376,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":615,"path":2378,"stem":2379,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":619,"path":2381,"stem":2382,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":623,"titleTemplate":624,"icon":625,"path":2384,"stem":2385,"children":2386,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils","docs\u002F5.x\u002F4.api\u002F3.utils",[2387,2390,2393,2396,2399,2402,2405,2408,2411,2414,2417,2420,2423,2426,2429,2432,2435,2438,2441,2444,2447,2450,2453,2456,2459,2462,2465,2468,2471],{"title":630,"path":2388,"stem":2389,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F5.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":634,"path":2391,"stem":2392,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":638,"path":2394,"stem":2395,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":642,"path":2397,"stem":2398,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":646,"path":2400,"stem":2401,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":650,"path":2403,"stem":2404,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":654,"path":2406,"stem":2407,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":658,"path":2409,"stem":2410,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":662,"path":2412,"stem":2413,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":666,"path":2415,"stem":2416,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":670,"path":2418,"stem":2419,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":674,"path":2421,"stem":2422,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":678,"path":2424,"stem":2425,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":682,"path":2427,"stem":2428,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":686,"path":2430,"stem":2431,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":690,"path":2433,"stem":2434,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":694,"path":2436,"stem":2437,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":698,"path":2439,"stem":2440,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":702,"path":2442,"stem":2443,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":706,"path":2445,"stem":2446,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":710,"path":2448,"stem":2449,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":714,"path":2451,"stem":2452,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":718,"path":2454,"stem":2455,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":722,"path":2457,"stem":2458,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":726,"path":2460,"stem":2461,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F5.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":730,"path":2463,"stem":2464,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":734,"path":2466,"stem":2467,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":738,"path":2469,"stem":2470,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":742,"path":2472,"stem":2473,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":2475,"stem":2476,"children":2477,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands","docs\u002F5.x\u002F4.api\u002F4.commands",[2478,2481,2484,2487,2490,2493,2496,2499,2502,2505,2508,2511,2514,2517,2520,2523],{"title":753,"path":2479,"stem":2480,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fadd",{"title":757,"path":2482,"stem":2483,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":761,"path":2485,"stem":2486,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":765,"path":2488,"stem":2489,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":769,"path":2491,"stem":2492,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":773,"path":2494,"stem":2495,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdev",{"title":777,"path":2497,"stem":2498,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":781,"path":2500,"stem":2501,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":785,"path":2503,"stem":2504,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finfo",{"title":789,"path":2506,"stem":2507,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finit",{"title":793,"path":2509,"stem":2510,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":797,"path":2512,"stem":2513,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":801,"path":2515,"stem":2516,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":805,"path":2518,"stem":2519,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftest",{"title":809,"path":2521,"stem":2522,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":813,"path":2524,"stem":2525,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":411,"titleTemplate":817,"icon":818,"path":2527,"stem":2528,"children":2529,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit","docs\u002F5.x\u002F4.api\u002F5.kit",[2530,2533,2536,2539,2542,2545,2548,2551,2554,2557,2560,2563,2566,2569,2572,2575,2578,2581],{"title":276,"path":2531,"stem":2532,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F5.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":399,"path":2534,"stem":2535,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":829,"path":2537,"stem":2538,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":833,"path":2540,"stem":2541,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F5.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":837,"path":2543,"stem":2544,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F5.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":841,"path":2546,"stem":2547,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F5.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":845,"path":2549,"stem":2550,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F5.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":849,"path":2552,"stem":2553,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F5.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":2555,"stem":2556,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F5.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":856,"path":2558,"stem":2559,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F5.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":860,"path":2561,"stem":2562,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F5.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":2564,"stem":2565,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F5.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":434,"path":2567,"stem":2568,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F5.kit\u002F5.components",{"title":870,"path":2570,"stem":2571,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F5.x\u002F4.api\u002F5.kit\u002F6.context",{"title":874,"path":2573,"stem":2574,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F5.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":878,"path":2576,"stem":2577,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F5.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":882,"path":2579,"stem":2580,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.head",{"title":886,"path":2582,"stem":2583,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":2585,"stem":2586,"children":2587,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced","docs\u002F5.x\u002F4.api\u002F6.advanced",[2588,2591],{"title":407,"path":2589,"stem":2590,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":899,"path":2592,"stem":2593,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":903,"path":2595,"stem":2596,"titleTemplate":906,"icon":32},"\u002Fdocs\u002F5.x\u002Fapi\u002Fnuxt-config","docs\u002F5.x\u002F4.api\u002F6.nuxt-config",{"title":849,"titleTemplate":908,"icon":909,"path":2598,"stem":2599,"children":2600,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples","docs\u002F5.x\u002F4.examples",[2601,2604,2623,2636,2667],{"title":914,"path":2602,"stem":2603,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fhello-world","docs\u002F5.x\u002F4.examples\u002F0.hello-world",{"title":395,"path":2605,"stem":2606,"children":2607,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures","docs\u002F5.x\u002F4.examples\u002F1.features",[2608,2611,2614,2617,2620],{"title":922,"path":2609,"stem":2610,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F5.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":2612,"stem":2613,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F5.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":2615,"stem":2616,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F5.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":932,"path":2618,"stem":2619,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F5.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":936,"path":2621,"stem":2622,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F5.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":2624,"stem":2625,"children":2626,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting","docs\u002F5.x\u002F4.examples\u002F2.routing",[2627,2630,2633],{"title":944,"path":2628,"stem":2629,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":874,"path":2631,"stem":2632,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":951,"path":2634,"stem":2635,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":890,"path":2637,"stem":2638,"children":2639,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced","docs\u002F5.x\u002F4.examples\u002F4.advanced",[2640,2643,2646,2649,2652,2655,2658,2661,2664],{"title":84,"path":2641,"stem":2642,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":2644,"stem":2645,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":965,"path":2647,"stem":2648,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":969,"path":2650,"stem":2651,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":973,"path":2653,"stem":2654,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":977,"path":2656,"stem":2657,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":2659,"stem":2660,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":519,"path":2662,"stem":2663,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":987,"path":2665,"stem":2666,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":991,"path":2668,"stem":2669,"children":2670,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental","docs\u002F5.x\u002F4.examples\u002F7.experimental",[2671],{"title":996,"path":2672,"stem":2673,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F5.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":2675,"stem":2676,"children":2677,"page":108},"\u002Fdocs\u002F5.x\u002Fcommunity","docs\u002F5.x\u002F5.community",[2678,2681,2684,2687,2690,2693],{"title":1007,"path":2679,"stem":2680,"titleTemplate":6,"icon":1010},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fgetting-help","docs\u002F5.x\u002F5.community\u002F2.getting-help",{"title":1012,"path":2682,"stem":2683,"titleTemplate":6,"icon":1015},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Freporting-bugs","docs\u002F5.x\u002F5.community\u002F3.reporting-bugs",{"title":1017,"path":2685,"stem":2686,"titleTemplate":6,"icon":1020},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fcontribution","docs\u002F5.x\u002F5.community\u002F4.contribution",{"title":1022,"path":2688,"stem":2689,"titleTemplate":6,"icon":1025},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fframework-contribution","docs\u002F5.x\u002F5.community\u002F5.framework-contribution",{"title":1027,"path":2691,"stem":2692,"titleTemplate":6,"icon":1030},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Froadmap","docs\u002F5.x\u002F5.community\u002F6.roadmap",{"title":1032,"path":2694,"stem":2695,"titleTemplate":6,"icon":1035},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fchangelog","docs\u002F5.x\u002F5.community\u002F7.changelog",{"title":1037,"titleTemplate":1038,"icon":1039,"path":2697,"stem":2698,"children":2699,"page":108},"\u002Fdocs\u002F5.x\u002Fbridge","docs\u002F5.x\u002F6.bridge",[2700,2703,2706,2709,2712,2715,2718,2721,2724,2727],{"title":1044,"path":2701,"stem":2702,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Foverview","docs\u002F5.x\u002F6.bridge\u002F1.overview",{"title":29,"path":2704,"stem":2705,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fconfiguration","docs\u002F5.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":2707,"stem":2708,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Ftypescript","docs\u002F5.x\u002F6.bridge\u002F2.typescript",{"title":1054,"path":2710,"stem":2711,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F5.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1058,"path":2713,"stem":2714,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F5.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1062,"path":2716,"stem":2717,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F5.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":932,"path":2719,"stem":2720,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fmeta","docs\u002F5.x\u002F6.bridge\u002F6.meta",{"title":399,"path":2722,"stem":2723,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fruntime-config","docs\u002F5.x\u002F6.bridge\u002F7.runtime-config",{"title":833,"path":2725,"stem":2726,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnitro","docs\u002F5.x\u002F6.bridge\u002F8.nitro",{"title":1075,"path":2728,"stem":2729,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fvite","docs\u002F5.x\u002F6.bridge\u002F9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":2731,"stem":2732,"children":2733,"page":108},"\u002Fdocs\u002F5.x\u002Fmigration","docs\u002F5.x\u002F7.migration",[2734,2737,2740,2743,2746,2749,2752,2755,2758,2761,2764],{"title":1044,"path":2735,"stem":2736,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Foverview","docs\u002F5.x\u002F7.migration\u002F1.overview",{"title":1088,"path":2738,"stem":2739,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fbundling","docs\u002F5.x\u002F7.migration\u002F10.bundling",{"title":79,"path":2741,"stem":2742,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fserver","docs\u002F5.x\u002F7.migration\u002F11.server",{"title":29,"path":2744,"stem":2745,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fconfiguration","docs\u002F5.x\u002F7.migration\u002F2.configuration",{"title":276,"path":2747,"stem":2748,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmodule-authors","docs\u002F5.x\u002F7.migration\u002F20.module-authors",{"title":922,"path":2750,"stem":2751,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fauto-imports","docs\u002F5.x\u002F7.migration\u002F3.auto-imports",{"title":932,"path":2753,"stem":2754,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmeta","docs\u002F5.x\u002F7.migration\u002F4.meta",{"title":1058,"path":2756,"stem":2757,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F5.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1110,"path":2759,"stem":2760,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F5.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1114,"path":2762,"stem":2763,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fcomponent-options","docs\u002F5.x\u002F7.migration\u002F7.component-options",{"title":399,"path":2765,"stem":2766,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fruntime-config","docs\u002F5.x\u002F7.migration\u002F8.runtime-config",{"title":2768,"path":2769,"stem":2770,"children":2771,"page":108},"Blog","\u002Fblog","blog",[2772,2776,2780,2784,2788,2792,2796,2800,2804,2808,2812,2816,2820,2824,2828,2832,2836,2840,2844,2848,2852],{"title":2773,"path":2774,"stem":2775},"Announcing 3.0","\u002Fblog\u002Fv3","blog\u002F1.v3",{"title":2777,"path":2778,"stem":2779},"Nuxt 3.3","\u002Fblog\u002Fv3-3","blog\u002F10.v3-3",{"title":2781,"path":2782,"stem":2783},"Nuxt 3.4","\u002Fblog\u002Fv3-4","blog\u002F11.v3-4",{"title":2785,"path":2786,"stem":2787},"Nuxt 3.5","\u002Fblog\u002Fv3-5","blog\u002F12.v3-5",{"title":2789,"path":2790,"stem":2791},"Nuxt 3.6","\u002Fblog\u002Fv3-6","blog\u002F13.v3-6",{"title":2793,"path":2794,"stem":2795},"Nuxt on the Edge","\u002Fblog\u002Fnuxt-on-the-edge","blog\u002F14.nuxt-on-the-edge",{"title":2797,"path":2798,"stem":2799},"Nuxt DevTools v1.0","\u002Fblog\u002Fnuxt-devtools-v1-0","blog\u002F18.nuxt-devtools-v1-0",{"title":2801,"path":2802,"stem":2803},"Nuxt: A vision for 2023","\u002Fblog\u002Fvision-2023","blog\u002F2.vision-2023",{"title":2805,"path":2806,"stem":2807},"The Evolution of Shiki v1.0","\u002Fblog\u002Fshiki-v1","blog\u002F21.shiki-v1",{"title":2809,"path":2810,"stem":2811},"Refreshed Nuxt ESLint Integrations","\u002Fblog\u002Feslint-module","blog\u002F24.eslint-module",{"title":2813,"path":2814,"stem":2815},"Introducing Nuxt Scripts","\u002Fblog\u002Fnuxt-scripts","blog\u002F26.nuxt-scripts",{"title":2817,"path":2818,"stem":2819},"Introducing Nuxt Icon v1","\u002Fblog\u002Fnuxt-icon-v1-0","blog\u002F29.nuxt-icon-v1-0",{"title":2821,"path":2822,"stem":2823},"Introducing Nuxt DevTools","\u002Fblog\u002Fintroducing-nuxt-devtools","blog\u002F3.introducing-nuxt-devtools",{"title":2825,"path":2826,"stem":2827},"Announcing Nuxt 3 Release Candidate","\u002Fblog\u002Fnuxt3-rc","blog\u002F3.nuxt3-rc",{"title":2829,"path":2830,"stem":2831},"Nuxt 2 End-of-Life (EOL)","\u002Fblog\u002Fnuxt2-eol","blog\u002F4.nuxt2-eol",{"title":2833,"path":2834,"stem":2835},"Introducing Nuxt 3 Beta","\u002Fblog\u002Fnuxt3-beta","blog\u002F4.nuxt3-beta",{"title":2837,"path":2838,"stem":2839},"Going Full Static","\u002Fblog\u002Fgoing-full-static","blog\u002F5.going-full-static",{"title":2841,"path":2842,"stem":2843},"Introducing Smart Prefetching","\u002Fblog\u002Fintroducing-smart-prefetching","blog\u002F6.introducing-smart-prefetching",{"title":2845,"path":2846,"stem":2847},"Understanding how fetch works in Nuxt 2.12","\u002Fblog\u002Funderstanding-how-fetch-works-in-nuxt-2-12","blog\u002F7.understanding-how-fetch-works-in-nuxt-2-12",{"title":2849,"path":2850,"stem":2851},"Nuxt 2 Static Improvements","\u002Fblog\u002Fnuxt-static-improvements","blog\u002F8.nuxt-static-improvements",{"title":2853,"path":2854,"stem":2855},"Nuxt 2: From Terminal to Browser","\u002Fblog\u002Fnuxtjs-from-terminal-to-browser","blog\u002F9.nuxtjs-from-terminal-to-browser",{"v5":2857,"v4":2858,"v3":2859,"v2":2860},"5 (nightly)","4.4.2","3.21.2","2.18.1",{"name":2862,"description":2863,"repo":2864,"npm":2865,"icon":2866,"github":2867,"website":2867,"learn_more":2868,"category":2869,"type":2870,"maintainers":2871,"compatibility":2877,"generatedAt":2880,"contributors":2881,"stats":2901,"readme":2909},"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",[2872],{"name":2873,"github":2874,"twitter":2875,"bluesky":2876},"Estéban","barbapapazes","soubiran_","soubiran.dev",{"nuxt":2878,"requires":2879},">=3.0.0",{},"2026-04-10T09:23:00.712Z",[2882,2886,2890,2894,2897],{"id":2883,"username":2884,"contributions":2885},45267552,"Barbapapazes",60,{"id":2887,"username":2888,"contributions":2889},41266342,"zAlweNy26",3,{"id":2891,"username":2892,"contributions":2893},7252657,"maartenvanhunsel",2,{"id":2895,"username":2896,"contributions":2893},343392,"madc",{"id":2898,"username":2899,"contributions":2900},5769861,"stanislav-janu",1,{"version":2902,"downloads":2903,"stars":2904,"watchers":2904,"forks":2905,"defaultBranch":2906,"publishedAt":2907,"createdAt":2908},"0.3.5",16720,355,14,"main",1752673833614,1718198976583,{"data":2910,"body":2912,"toc":6952},{"title":2911,"description":2866},"Nuxt Authorization",{"type":2913,"children":2914},"root",[2915,2922,2977,2982,2991,3006,3019,3025,3055,3061,3066,3108,3113,3119,3131,3138,3143,3156,3414,3427,3439,3668,3691,3709,3714,3727,3739,3744,3965,3970,4246,4251,4257,4284,4289,4302,4496,4541,4546,4645,4650,4656,4697,4709,4763,4771,4829,4840,4900,4907,4972,4983,5030,5037,5075,5080,5292,5333,5353,5370,5376,5381,5599,5610,5623,5812,5846,6038,6051,6178,6183,6253,6258,6296,6302,6321,6658,6663,6912,6918,6932,6937,6946],{"type":2916,"tag":2917,"props":2918,"children":2919},"element","h1",{"id":2865},[2920],{"type":2921,"value":2911},"text",{"type":2916,"tag":2923,"props":2924,"children":2925},"p",{},[2926,2939,2948,2957,2967],{"type":2916,"tag":2927,"props":2928,"children":2932},"a",{"href":2929,"rel":2930},"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fnuxt-authorization",[2931],"nofollow",[2933],{"type":2916,"tag":2934,"props":2935,"children":2938},"img",{"alt":2936,"src":2937},"npm version","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fnuxt-authorization\u002Flatest.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":2916,"tag":2927,"props":2940,"children":2942},{"href":2929,"rel":2941},[2931],[2943],{"type":2916,"tag":2934,"props":2944,"children":2947},{"alt":2945,"src":2946},"npm downloads","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fnuxt-authorization.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":2916,"tag":2927,"props":2949,"children":2951},{"href":2929,"rel":2950},[2931],[2952],{"type":2916,"tag":2934,"props":2953,"children":2956},{"alt":2954,"src":2955},"License","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002Fnuxt-authorization.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":2916,"tag":2927,"props":2958,"children":2961},{"href":2959,"rel":2960},"https:\u002F\u002Fnuxt.com",[2931],[2962],{"type":2916,"tag":2934,"props":2963,"children":2966},{"alt":2964,"src":2965},"Nuxt","https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNuxt-020420?logo=nuxt.js",[],{"type":2916,"tag":2927,"props":2968,"children":2971},{"href":2969,"rel":2970},"https:\u002F\u002Fpkg.pr.new\u002F~\u002FBarbapapazes\u002Fnuxt-authorization",[2931],[2972],{"type":2916,"tag":2934,"props":2973,"children":2976},{"alt":2974,"src":2975},"pkg.pr.new","https:\u002F\u002Fpkg.pr.new\u002Fbadge\u002FBarbapapazes\u002Fnuxt-authorization",[],{"type":2916,"tag":2923,"props":2978,"children":2979},{},[2980],{"type":2921,"value":2981},"Handle authorization with ease in both Nuxt and Nitro.",{"type":2916,"tag":2923,"props":2983,"children":2984},{},[2985],{"type":2916,"tag":2986,"props":2987,"children":2988},"em",{},[2989],{"type":2921,"value":2990},"This module does not implement ACL or RBAC. It provides low-level primitives that you can use to implement your own authorization logic.",{"type":2916,"tag":2992,"props":2993,"children":2994},"blockquote",{},[2995],{"type":2916,"tag":2923,"props":2996,"children":2997},{},[2998,3004],{"type":2916,"tag":2999,"props":3000,"children":3001},"span",{},[3002],{"type":2921,"value":3003},"!NOTE",{"type":2921,"value":3005},"\nIn the future, this module could be available as a Nitro module and a Nuxt module, but Nitro module are not yet ready.",{"type":2916,"tag":2923,"props":3007,"children":3008},{},[3009,3011,3017],{"type":2921,"value":3010},"To learn more about this module and which problem it solves, checkout my blog post about ",{"type":2916,"tag":2927,"props":3012,"children":3014},{"href":2868,"rel":3013},[2931],[3015],{"type":2921,"value":3016},"Authorization in Nuxt",{"type":2921,"value":3018},".",{"type":2916,"tag":3020,"props":3021,"children":3023},"h2",{"id":3022},"features",[3024],{"type":2921,"value":395},{"type":2916,"tag":3026,"props":3027,"children":3028},"ul",{},[3029,3035,3040,3045,3050],{"type":2916,"tag":3030,"props":3031,"children":3032},"li",{},[3033],{"type":2921,"value":3034},"⛰  Works on both the client (Nuxt) and the server (Nitro)",{"type":2916,"tag":3030,"props":3036,"children":3037},{},[3038],{"type":2921,"value":3039},"🌟  Write abilities once and use them everywhere",{"type":2916,"tag":3030,"props":3041,"children":3042},{},[3043],{"type":2921,"value":3044},"👨‍👩‍👧‍👦  Agnostic of the authentication layer",{"type":2916,"tag":3030,"props":3046,"children":3047},{},[3048],{"type":2921,"value":3049},"🫸  Use components to conditionally show part of the UI",{"type":2916,"tag":3030,"props":3051,"children":3052},{},[3053],{"type":2921,"value":3054},"💧  Primitives are can be accessed for a full customization",{"type":2916,"tag":3020,"props":3056,"children":3058},{"id":3057},"quick-setup",[3059],{"type":2921,"value":3060},"Quick Setup",{"type":2916,"tag":2923,"props":3062,"children":3063},{},[3064],{"type":2921,"value":3065},"Install the module to your Nuxt application with one command:",{"type":2916,"tag":3067,"props":3068,"children":3072},"pre",{"className":3069,"code":3070,"language":3071,"meta":2866,"style":2866},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","npx nuxi module add nuxt-authorization\n","bash",[3073],{"type":2916,"tag":3074,"props":3075,"children":3076},"code",{"__ignoreMap":2866},[3077],{"type":2916,"tag":2999,"props":3078,"children":3080},{"class":3079,"line":2900},"line",[3081,3087,3093,3098,3103],{"type":2916,"tag":2999,"props":3082,"children":3084},{"style":3083},"--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B",[3085],{"type":2921,"value":3086},"npx",{"type":2916,"tag":2999,"props":3088,"children":3090},{"style":3089},"--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D",[3091],{"type":2921,"value":3092}," nuxi",{"type":2916,"tag":2999,"props":3094,"children":3095},{"style":3089},[3096],{"type":2921,"value":3097}," module",{"type":2916,"tag":2999,"props":3099,"children":3100},{"style":3089},[3101],{"type":2921,"value":3102}," add",{"type":2916,"tag":2999,"props":3104,"children":3105},{"style":3089},[3106],{"type":2921,"value":3107}," nuxt-authorization\n",{"type":2916,"tag":2923,"props":3109,"children":3110},{},[3111],{"type":2921,"value":3112},"That's it! You can now use the module in your Nuxt app ✨",{"type":2916,"tag":3020,"props":3114,"children":3116},{"id":3115},"documentation",[3117],{"type":2921,"value":3118},"Documentation",{"type":2916,"tag":2992,"props":3120,"children":3121},{},[3122],{"type":2916,"tag":2923,"props":3123,"children":3124},{},[3125,3129],{"type":2916,"tag":2999,"props":3126,"children":3127},{},[3128],{"type":2921,"value":3003},{"type":2921,"value":3130},"\nYou can take a look at the playground to see the module in action.",{"type":2916,"tag":3132,"props":3133,"children":3135},"h3",{"id":3134},"setup",[3136],{"type":2921,"value":3137},"Setup",{"type":2916,"tag":2923,"props":3139,"children":3140},{},[3141],{"type":2921,"value":3142},"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":2916,"tag":2923,"props":3144,"children":3145},{},[3146,3148,3154],{"type":2921,"value":3147},"For the Nuxt app, create a new plugin in ",{"type":2916,"tag":3074,"props":3149,"children":3151},{"className":3150},[],[3152],{"type":2921,"value":3153},"plugins\u002Fauthorization-resolver.ts",{"type":2921,"value":3155},":",{"type":2916,"tag":3067,"props":3157,"children":3161},{"className":3158,"code":3159,"language":3160,"meta":2866,"style":2866},"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",[3162],{"type":2916,"tag":3074,"props":3163,"children":3164},{"__ignoreMap":2866},[3165,3197,3230,3252,3271,3284,3301,3318,3346,3356,3365,3374,3383,3392,3400],{"type":2916,"tag":2999,"props":3166,"children":3167},{"class":3079,"line":2900},[3168,3174,3179,3185,3191],{"type":2916,"tag":2999,"props":3169,"children":3171},{"style":3170},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[3172],{"type":2921,"value":3173},"export",{"type":2916,"tag":2999,"props":3175,"children":3176},{"style":3170},[3177],{"type":2921,"value":3178}," default",{"type":2916,"tag":2999,"props":3180,"children":3182},{"style":3181},"--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF",[3183],{"type":2921,"value":3184}," defineNuxtPlugin",{"type":2916,"tag":2999,"props":3186,"children":3188},{"style":3187},"--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8",[3189],{"type":2921,"value":3190},"(",{"type":2916,"tag":2999,"props":3192,"children":3194},{"style":3193},"--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF",[3195],{"type":2921,"value":3196},"{\n",{"type":2916,"tag":2999,"props":3198,"children":3199},{"class":3079,"line":2893},[3200,3206,3210,3215,3220,3225],{"type":2916,"tag":2999,"props":3201,"children":3203},{"style":3202},"--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178",[3204],{"type":2921,"value":3205},"  name",{"type":2916,"tag":2999,"props":3207,"children":3208},{"style":3193},[3209],{"type":2921,"value":3155},{"type":2916,"tag":2999,"props":3211,"children":3212},{"style":3193},[3213],{"type":2921,"value":3214}," '",{"type":2916,"tag":2999,"props":3216,"children":3217},{"style":3089},[3218],{"type":2921,"value":3219},"authorization-resolver",{"type":2916,"tag":2999,"props":3221,"children":3222},{"style":3193},[3223],{"type":2921,"value":3224},"'",{"type":2916,"tag":2999,"props":3226,"children":3227},{"style":3193},[3228],{"type":2921,"value":3229},",\n",{"type":2916,"tag":2999,"props":3231,"children":3232},{"class":3079,"line":2889},[3233,3238,3242,3248],{"type":2916,"tag":2999,"props":3234,"children":3235},{"style":3202},[3236],{"type":2921,"value":3237},"  parallel",{"type":2916,"tag":2999,"props":3239,"children":3240},{"style":3193},[3241],{"type":2921,"value":3155},{"type":2916,"tag":2999,"props":3243,"children":3245},{"style":3244},"--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC",[3246],{"type":2921,"value":3247}," true",{"type":2916,"tag":2999,"props":3249,"children":3250},{"style":3193},[3251],{"type":2921,"value":3229},{"type":2916,"tag":2999,"props":3253,"children":3255},{"class":3079,"line":3254},4,[3256,3261,3266],{"type":2916,"tag":2999,"props":3257,"children":3258},{"style":3202},[3259],{"type":2921,"value":3260},"  setup",{"type":2916,"tag":2999,"props":3262,"children":3263},{"style":3193},[3264],{"type":2921,"value":3265},"()",{"type":2916,"tag":2999,"props":3267,"children":3268},{"style":3193},[3269],{"type":2921,"value":3270}," {\n",{"type":2916,"tag":2999,"props":3272,"children":3274},{"class":3079,"line":3273},5,[3275,3280],{"type":2916,"tag":2999,"props":3276,"children":3277},{"style":3170},[3278],{"type":2921,"value":3279},"    return",{"type":2916,"tag":2999,"props":3281,"children":3282},{"style":3193},[3283],{"type":2921,"value":3270},{"type":2916,"tag":2999,"props":3285,"children":3287},{"class":3079,"line":3286},6,[3288,3293,3297],{"type":2916,"tag":2999,"props":3289,"children":3290},{"style":3202},[3291],{"type":2921,"value":3292},"      provide",{"type":2916,"tag":2999,"props":3294,"children":3295},{"style":3193},[3296],{"type":2921,"value":3155},{"type":2916,"tag":2999,"props":3298,"children":3299},{"style":3193},[3300],{"type":2921,"value":3270},{"type":2916,"tag":2999,"props":3302,"children":3304},{"class":3079,"line":3303},7,[3305,3310,3314],{"type":2916,"tag":2999,"props":3306,"children":3307},{"style":3202},[3308],{"type":2921,"value":3309},"        authorization",{"type":2916,"tag":2999,"props":3311,"children":3312},{"style":3193},[3313],{"type":2921,"value":3155},{"type":2916,"tag":2999,"props":3315,"children":3316},{"style":3193},[3317],{"type":2921,"value":3270},{"type":2916,"tag":2999,"props":3319,"children":3321},{"class":3079,"line":3320},8,[3322,3327,3331,3336,3342],{"type":2916,"tag":2999,"props":3323,"children":3324},{"style":3181},[3325],{"type":2921,"value":3326},"          resolveClientUser",{"type":2916,"tag":2999,"props":3328,"children":3329},{"style":3193},[3330],{"type":2921,"value":3155},{"type":2916,"tag":2999,"props":3332,"children":3333},{"style":3193},[3334],{"type":2921,"value":3335}," ()",{"type":2916,"tag":2999,"props":3337,"children":3339},{"style":3338},"--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA",[3340],{"type":2921,"value":3341}," =>",{"type":2916,"tag":2999,"props":3343,"children":3344},{"style":3193},[3345],{"type":2921,"value":3270},{"type":2916,"tag":2999,"props":3347,"children":3349},{"class":3079,"line":3348},9,[3350],{"type":2916,"tag":2999,"props":3351,"children":3353},{"style":3352},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[3354],{"type":2921,"value":3355},"            \u002F\u002F Your logic to retrieve the user from the client\n",{"type":2916,"tag":2999,"props":3357,"children":3359},{"class":3079,"line":3358},10,[3360],{"type":2916,"tag":2999,"props":3361,"children":3362},{"style":3193},[3363],{"type":2921,"value":3364},"          },\n",{"type":2916,"tag":2999,"props":3366,"children":3368},{"class":3079,"line":3367},11,[3369],{"type":2916,"tag":2999,"props":3370,"children":3371},{"style":3193},[3372],{"type":2921,"value":3373},"        },\n",{"type":2916,"tag":2999,"props":3375,"children":3377},{"class":3079,"line":3376},12,[3378],{"type":2916,"tag":2999,"props":3379,"children":3380},{"style":3193},[3381],{"type":2921,"value":3382},"      },\n",{"type":2916,"tag":2999,"props":3384,"children":3386},{"class":3079,"line":3385},13,[3387],{"type":2916,"tag":2999,"props":3388,"children":3389},{"style":3193},[3390],{"type":2921,"value":3391},"    }\n",{"type":2916,"tag":2999,"props":3393,"children":3394},{"class":3079,"line":2905},[3395],{"type":2916,"tag":2999,"props":3396,"children":3397},{"style":3193},[3398],{"type":2921,"value":3399},"  },\n",{"type":2916,"tag":2999,"props":3401,"children":3403},{"class":3079,"line":3402},15,[3404,3409],{"type":2916,"tag":2999,"props":3405,"children":3406},{"style":3193},[3407],{"type":2921,"value":3408},"}",{"type":2916,"tag":2999,"props":3410,"children":3411},{"style":3187},[3412],{"type":2921,"value":3413},")\n",{"type":2916,"tag":2923,"props":3415,"children":3416},{},[3417,3419,3425],{"type":2921,"value":3418},"This function is called every time you check for authorization on the client. It should return the user object or ",{"type":2916,"tag":3074,"props":3420,"children":3422},{"className":3421},[],[3423],{"type":2921,"value":3424},"null",{"type":2921,"value":3426}," if the user is not authenticated. It can by async.",{"type":2916,"tag":2923,"props":3428,"children":3429},{},[3430,3432,3438],{"type":2921,"value":3431},"For the Nitro server, create a new plugin in ",{"type":2916,"tag":3074,"props":3433,"children":3435},{"className":3434},[],[3436],{"type":2921,"value":3437},"server\u002Fplugins\u002Fauthorization-resolver.ts",{"type":2921,"value":3155},{"type":2916,"tag":3067,"props":3440,"children":3442},{"className":3158,"code":3441,"language":3160,"meta":2866,"style":2866},"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",[3443],{"type":2916,"tag":3074,"props":3444,"children":3445},{"__ignoreMap":2866},[3446,3489,3564,3599,3623,3631,3638,3645,3657],{"type":2916,"tag":2999,"props":3447,"children":3448},{"class":3079,"line":2900},[3449,3453,3457,3462,3466,3470,3476,3481,3485],{"type":2916,"tag":2999,"props":3450,"children":3451},{"style":3170},[3452],{"type":2921,"value":3173},{"type":2916,"tag":2999,"props":3454,"children":3455},{"style":3170},[3456],{"type":2921,"value":3178},{"type":2916,"tag":2999,"props":3458,"children":3459},{"style":3181},[3460],{"type":2921,"value":3461}," defineNitroPlugin",{"type":2916,"tag":2999,"props":3463,"children":3464},{"style":3187},[3465],{"type":2921,"value":3190},{"type":2916,"tag":2999,"props":3467,"children":3468},{"style":3193},[3469],{"type":2921,"value":3190},{"type":2916,"tag":2999,"props":3471,"children":3473},{"style":3472},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[3474],{"type":2921,"value":3475},"nitroApp",{"type":2916,"tag":2999,"props":3477,"children":3478},{"style":3193},[3479],{"type":2921,"value":3480},")",{"type":2916,"tag":2999,"props":3482,"children":3483},{"style":3338},[3484],{"type":2921,"value":3341},{"type":2916,"tag":2999,"props":3486,"children":3487},{"style":3193},[3488],{"type":2921,"value":3270},{"type":2916,"tag":2999,"props":3490,"children":3491},{"class":3079,"line":2893},[3492,3497,3501,3506,3510,3515,3519,3523,3528,3532,3537,3542,3547,3552,3556,3560],{"type":2916,"tag":2999,"props":3493,"children":3494},{"style":3187},[3495],{"type":2921,"value":3496},"  nitroApp",{"type":2916,"tag":2999,"props":3498,"children":3499},{"style":3193},[3500],{"type":2921,"value":3018},{"type":2916,"tag":2999,"props":3502,"children":3503},{"style":3187},[3504],{"type":2921,"value":3505},"hooks",{"type":2916,"tag":2999,"props":3507,"children":3508},{"style":3193},[3509],{"type":2921,"value":3018},{"type":2916,"tag":2999,"props":3511,"children":3512},{"style":3181},[3513],{"type":2921,"value":3514},"hook",{"type":2916,"tag":2999,"props":3516,"children":3517},{"style":3202},[3518],{"type":2921,"value":3190},{"type":2916,"tag":2999,"props":3520,"children":3521},{"style":3193},[3522],{"type":2921,"value":3224},{"type":2916,"tag":2999,"props":3524,"children":3525},{"style":3089},[3526],{"type":2921,"value":3527},"request",{"type":2916,"tag":2999,"props":3529,"children":3530},{"style":3193},[3531],{"type":2921,"value":3224},{"type":2916,"tag":2999,"props":3533,"children":3534},{"style":3193},[3535],{"type":2921,"value":3536},",",{"type":2916,"tag":2999,"props":3538,"children":3539},{"style":3338},[3540],{"type":2921,"value":3541}," async",{"type":2916,"tag":2999,"props":3543,"children":3544},{"style":3193},[3545],{"type":2921,"value":3546}," (",{"type":2916,"tag":2999,"props":3548,"children":3549},{"style":3472},[3550],{"type":2921,"value":3551},"event",{"type":2916,"tag":2999,"props":3553,"children":3554},{"style":3193},[3555],{"type":2921,"value":3480},{"type":2916,"tag":2999,"props":3557,"children":3558},{"style":3338},[3559],{"type":2921,"value":3341},{"type":2916,"tag":2999,"props":3561,"children":3562},{"style":3193},[3563],{"type":2921,"value":3270},{"type":2916,"tag":2999,"props":3565,"children":3566},{"class":3079,"line":2889},[3567,3572,3576,3581,3585,3590,3595],{"type":2916,"tag":2999,"props":3568,"children":3569},{"style":3187},[3570],{"type":2921,"value":3571},"    event",{"type":2916,"tag":2999,"props":3573,"children":3574},{"style":3193},[3575],{"type":2921,"value":3018},{"type":2916,"tag":2999,"props":3577,"children":3578},{"style":3187},[3579],{"type":2921,"value":3580},"context",{"type":2916,"tag":2999,"props":3582,"children":3583},{"style":3193},[3584],{"type":2921,"value":3018},{"type":2916,"tag":2999,"props":3586,"children":3587},{"style":3187},[3588],{"type":2921,"value":3589},"$authorization",{"type":2916,"tag":2999,"props":3591,"children":3592},{"style":3193},[3593],{"type":2921,"value":3594}," =",{"type":2916,"tag":2999,"props":3596,"children":3597},{"style":3193},[3598],{"type":2921,"value":3270},{"type":2916,"tag":2999,"props":3600,"children":3601},{"class":3079,"line":3254},[3602,3607,3611,3615,3619],{"type":2916,"tag":2999,"props":3603,"children":3604},{"style":3181},[3605],{"type":2921,"value":3606},"      resolveServerUser",{"type":2916,"tag":2999,"props":3608,"children":3609},{"style":3193},[3610],{"type":2921,"value":3155},{"type":2916,"tag":2999,"props":3612,"children":3613},{"style":3193},[3614],{"type":2921,"value":3335},{"type":2916,"tag":2999,"props":3616,"children":3617},{"style":3338},[3618],{"type":2921,"value":3341},{"type":2916,"tag":2999,"props":3620,"children":3621},{"style":3193},[3622],{"type":2921,"value":3270},{"type":2916,"tag":2999,"props":3624,"children":3625},{"class":3079,"line":3273},[3626],{"type":2916,"tag":2999,"props":3627,"children":3628},{"style":3352},[3629],{"type":2921,"value":3630},"        \u002F\u002F Your logic to retrieve the user from the server\n",{"type":2916,"tag":2999,"props":3632,"children":3633},{"class":3079,"line":3286},[3634],{"type":2916,"tag":2999,"props":3635,"children":3636},{"style":3193},[3637],{"type":2921,"value":3382},{"type":2916,"tag":2999,"props":3639,"children":3640},{"class":3079,"line":3303},[3641],{"type":2916,"tag":2999,"props":3642,"children":3643},{"style":3193},[3644],{"type":2921,"value":3391},{"type":2916,"tag":2999,"props":3646,"children":3647},{"class":3079,"line":3320},[3648,3653],{"type":2916,"tag":2999,"props":3649,"children":3650},{"style":3193},[3651],{"type":2921,"value":3652},"  }",{"type":2916,"tag":2999,"props":3654,"children":3655},{"style":3202},[3656],{"type":2921,"value":3413},{"type":2916,"tag":2999,"props":3658,"children":3659},{"class":3079,"line":3348},[3660,3664],{"type":2916,"tag":2999,"props":3661,"children":3662},{"style":3193},[3663],{"type":2921,"value":3408},{"type":2916,"tag":2999,"props":3665,"children":3666},{"style":3187},[3667],{"type":2921,"value":3413},{"type":2916,"tag":2992,"props":3669,"children":3670},{},[3671],{"type":2916,"tag":2923,"props":3672,"children":3673},{},[3674,3678,3680],{"type":2916,"tag":2999,"props":3675,"children":3676},{},[3677],{"type":2921,"value":3003},{"type":2921,"value":3679},"\nRead more about the ",{"type":2916,"tag":2927,"props":3681,"children":3684},{"href":3682,"rel":3683},"https:\u002F\u002Fh3.unjs.io\u002Fguide\u002Fevent#eventcontext",[2931],[3685],{"type":2916,"tag":3074,"props":3686,"children":3688},{"className":3687},[],[3689],{"type":2921,"value":3690},"event.context",{"type":2916,"tag":2923,"props":3692,"children":3693},{},[3694,3696,3701,3703,3708],{"type":2921,"value":3695},"This resolver is setup within the hook ",{"type":2916,"tag":3074,"props":3697,"children":3699},{"className":3698},[],[3700],{"type":2921,"value":3527},{"type":2921,"value":3702}," 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":2916,"tag":3074,"props":3704,"children":3706},{"className":3705},[],[3707],{"type":2921,"value":3424},{"type":2921,"value":3426},{"type":2916,"tag":2923,"props":3710,"children":3711},{},[3712],{"type":2921,"value":3713},"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":2916,"tag":3715,"props":3716,"children":3718},"h4",{"id":3717},"example-with-nuxt-auth-utils",[3719,3721],{"type":2921,"value":3720},"Example with ",{"type":2916,"tag":3074,"props":3722,"children":3724},{"className":3723},[],[3725],{"type":2921,"value":3726},"nuxt-auth-utils",{"type":2916,"tag":2923,"props":3728,"children":3729},{},[3730,3732,3737],{"type":2921,"value":3731},"The module ",{"type":2916,"tag":3074,"props":3733,"children":3735},{"className":3734},[],[3736],{"type":2921,"value":3726},{"type":2921,"value":3738}," provides an authentication layer for Nuxt. If you use this module, you can use the following resolvers:",{"type":2916,"tag":2923,"props":3740,"children":3741},{},[3742],{"type":2921,"value":3743},"Nuxt plugin:",{"type":2916,"tag":3067,"props":3745,"children":3747},{"className":3158,"code":3746,"language":3160,"meta":2866,"style":2866},"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",[3748],{"type":2916,"tag":3074,"props":3749,"children":3750},{"__ignoreMap":2866},[3751,3774,3801,3820,3835,3846,3861,3876,3926,3933,3940,3947,3954],{"type":2916,"tag":2999,"props":3752,"children":3753},{"class":3079,"line":2900},[3754,3758,3762,3766,3770],{"type":2916,"tag":2999,"props":3755,"children":3756},{"style":3170},[3757],{"type":2921,"value":3173},{"type":2916,"tag":2999,"props":3759,"children":3760},{"style":3170},[3761],{"type":2921,"value":3178},{"type":2916,"tag":2999,"props":3763,"children":3764},{"style":3181},[3765],{"type":2921,"value":3184},{"type":2916,"tag":2999,"props":3767,"children":3768},{"style":3187},[3769],{"type":2921,"value":3190},{"type":2916,"tag":2999,"props":3771,"children":3772},{"style":3193},[3773],{"type":2921,"value":3196},{"type":2916,"tag":2999,"props":3775,"children":3776},{"class":3079,"line":2893},[3777,3781,3785,3789,3793,3797],{"type":2916,"tag":2999,"props":3778,"children":3779},{"style":3202},[3780],{"type":2921,"value":3205},{"type":2916,"tag":2999,"props":3782,"children":3783},{"style":3193},[3784],{"type":2921,"value":3155},{"type":2916,"tag":2999,"props":3786,"children":3787},{"style":3193},[3788],{"type":2921,"value":3214},{"type":2916,"tag":2999,"props":3790,"children":3791},{"style":3089},[3792],{"type":2921,"value":3219},{"type":2916,"tag":2999,"props":3794,"children":3795},{"style":3193},[3796],{"type":2921,"value":3224},{"type":2916,"tag":2999,"props":3798,"children":3799},{"style":3193},[3800],{"type":2921,"value":3229},{"type":2916,"tag":2999,"props":3802,"children":3803},{"class":3079,"line":2889},[3804,3808,3812,3816],{"type":2916,"tag":2999,"props":3805,"children":3806},{"style":3202},[3807],{"type":2921,"value":3237},{"type":2916,"tag":2999,"props":3809,"children":3810},{"style":3193},[3811],{"type":2921,"value":3155},{"type":2916,"tag":2999,"props":3813,"children":3814},{"style":3244},[3815],{"type":2921,"value":3247},{"type":2916,"tag":2999,"props":3817,"children":3818},{"style":3193},[3819],{"type":2921,"value":3229},{"type":2916,"tag":2999,"props":3821,"children":3822},{"class":3079,"line":3254},[3823,3827,3831],{"type":2916,"tag":2999,"props":3824,"children":3825},{"style":3202},[3826],{"type":2921,"value":3260},{"type":2916,"tag":2999,"props":3828,"children":3829},{"style":3193},[3830],{"type":2921,"value":3265},{"type":2916,"tag":2999,"props":3832,"children":3833},{"style":3193},[3834],{"type":2921,"value":3270},{"type":2916,"tag":2999,"props":3836,"children":3837},{"class":3079,"line":3273},[3838,3842],{"type":2916,"tag":2999,"props":3839,"children":3840},{"style":3170},[3841],{"type":2921,"value":3279},{"type":2916,"tag":2999,"props":3843,"children":3844},{"style":3193},[3845],{"type":2921,"value":3270},{"type":2916,"tag":2999,"props":3847,"children":3848},{"class":3079,"line":3286},[3849,3853,3857],{"type":2916,"tag":2999,"props":3850,"children":3851},{"style":3202},[3852],{"type":2921,"value":3292},{"type":2916,"tag":2999,"props":3854,"children":3855},{"style":3193},[3856],{"type":2921,"value":3155},{"type":2916,"tag":2999,"props":3858,"children":3859},{"style":3193},[3860],{"type":2921,"value":3270},{"type":2916,"tag":2999,"props":3862,"children":3863},{"class":3079,"line":3303},[3864,3868,3872],{"type":2916,"tag":2999,"props":3865,"children":3866},{"style":3202},[3867],{"type":2921,"value":3309},{"type":2916,"tag":2999,"props":3869,"children":3870},{"style":3193},[3871],{"type":2921,"value":3155},{"type":2916,"tag":2999,"props":3873,"children":3874},{"style":3193},[3875],{"type":2921,"value":3270},{"type":2916,"tag":2999,"props":3877,"children":3878},{"class":3079,"line":3320},[3879,3883,3887,3891,3895,3900,3904,3908,3913,3917,3922],{"type":2916,"tag":2999,"props":3880,"children":3881},{"style":3181},[3882],{"type":2921,"value":3326},{"type":2916,"tag":2999,"props":3884,"children":3885},{"style":3193},[3886],{"type":2921,"value":3155},{"type":2916,"tag":2999,"props":3888,"children":3889},{"style":3193},[3890],{"type":2921,"value":3335},{"type":2916,"tag":2999,"props":3892,"children":3893},{"style":3338},[3894],{"type":2921,"value":3341},{"type":2916,"tag":2999,"props":3896,"children":3897},{"style":3181},[3898],{"type":2921,"value":3899}," useUserSession",{"type":2916,"tag":2999,"props":3901,"children":3902},{"style":3202},[3903],{"type":2921,"value":3265},{"type":2916,"tag":2999,"props":3905,"children":3906},{"style":3193},[3907],{"type":2921,"value":3018},{"type":2916,"tag":2999,"props":3909,"children":3910},{"style":3187},[3911],{"type":2921,"value":3912},"user",{"type":2916,"tag":2999,"props":3914,"children":3915},{"style":3193},[3916],{"type":2921,"value":3018},{"type":2916,"tag":2999,"props":3918,"children":3919},{"style":3187},[3920],{"type":2921,"value":3921},"value",{"type":2916,"tag":2999,"props":3923,"children":3924},{"style":3193},[3925],{"type":2921,"value":3229},{"type":2916,"tag":2999,"props":3927,"children":3928},{"class":3079,"line":3348},[3929],{"type":2916,"tag":2999,"props":3930,"children":3931},{"style":3193},[3932],{"type":2921,"value":3373},{"type":2916,"tag":2999,"props":3934,"children":3935},{"class":3079,"line":3358},[3936],{"type":2916,"tag":2999,"props":3937,"children":3938},{"style":3193},[3939],{"type":2921,"value":3382},{"type":2916,"tag":2999,"props":3941,"children":3942},{"class":3079,"line":3367},[3943],{"type":2916,"tag":2999,"props":3944,"children":3945},{"style":3193},[3946],{"type":2921,"value":3391},{"type":2916,"tag":2999,"props":3948,"children":3949},{"class":3079,"line":3376},[3950],{"type":2916,"tag":2999,"props":3951,"children":3952},{"style":3193},[3953],{"type":2921,"value":3399},{"type":2916,"tag":2999,"props":3955,"children":3956},{"class":3079,"line":3385},[3957,3961],{"type":2916,"tag":2999,"props":3958,"children":3959},{"style":3193},[3960],{"type":2921,"value":3408},{"type":2916,"tag":2999,"props":3962,"children":3963},{"style":3187},[3964],{"type":2921,"value":3413},{"type":2916,"tag":2923,"props":3966,"children":3967},{},[3968],{"type":2921,"value":3969},"Nitro plugin:",{"type":2916,"tag":3067,"props":3971,"children":3973},{"className":3158,"code":3972,"language":3160,"meta":2866,"style":2866},"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",[3974],{"type":2916,"tag":3074,"props":3975,"children":3976},{"__ignoreMap":2866},[3977,4016,4083,4114,4141,4180,4210,4217,4224,4235],{"type":2916,"tag":2999,"props":3978,"children":3979},{"class":3079,"line":2900},[3980,3984,3988,3992,3996,4000,4004,4008,4012],{"type":2916,"tag":2999,"props":3981,"children":3982},{"style":3170},[3983],{"type":2921,"value":3173},{"type":2916,"tag":2999,"props":3985,"children":3986},{"style":3170},[3987],{"type":2921,"value":3178},{"type":2916,"tag":2999,"props":3989,"children":3990},{"style":3181},[3991],{"type":2921,"value":3461},{"type":2916,"tag":2999,"props":3993,"children":3994},{"style":3187},[3995],{"type":2921,"value":3190},{"type":2916,"tag":2999,"props":3997,"children":3998},{"style":3193},[3999],{"type":2921,"value":3190},{"type":2916,"tag":2999,"props":4001,"children":4002},{"style":3472},[4003],{"type":2921,"value":3475},{"type":2916,"tag":2999,"props":4005,"children":4006},{"style":3193},[4007],{"type":2921,"value":3480},{"type":2916,"tag":2999,"props":4009,"children":4010},{"style":3338},[4011],{"type":2921,"value":3341},{"type":2916,"tag":2999,"props":4013,"children":4014},{"style":3193},[4015],{"type":2921,"value":3270},{"type":2916,"tag":2999,"props":4017,"children":4018},{"class":3079,"line":2893},[4019,4023,4027,4031,4035,4039,4043,4047,4051,4055,4059,4063,4067,4071,4075,4079],{"type":2916,"tag":2999,"props":4020,"children":4021},{"style":3187},[4022],{"type":2921,"value":3496},{"type":2916,"tag":2999,"props":4024,"children":4025},{"style":3193},[4026],{"type":2921,"value":3018},{"type":2916,"tag":2999,"props":4028,"children":4029},{"style":3187},[4030],{"type":2921,"value":3505},{"type":2916,"tag":2999,"props":4032,"children":4033},{"style":3193},[4034],{"type":2921,"value":3018},{"type":2916,"tag":2999,"props":4036,"children":4037},{"style":3181},[4038],{"type":2921,"value":3514},{"type":2916,"tag":2999,"props":4040,"children":4041},{"style":3202},[4042],{"type":2921,"value":3190},{"type":2916,"tag":2999,"props":4044,"children":4045},{"style":3193},[4046],{"type":2921,"value":3224},{"type":2916,"tag":2999,"props":4048,"children":4049},{"style":3089},[4050],{"type":2921,"value":3527},{"type":2916,"tag":2999,"props":4052,"children":4053},{"style":3193},[4054],{"type":2921,"value":3224},{"type":2916,"tag":2999,"props":4056,"children":4057},{"style":3193},[4058],{"type":2921,"value":3536},{"type":2916,"tag":2999,"props":4060,"children":4061},{"style":3338},[4062],{"type":2921,"value":3541},{"type":2916,"tag":2999,"props":4064,"children":4065},{"style":3193},[4066],{"type":2921,"value":3546},{"type":2916,"tag":2999,"props":4068,"children":4069},{"style":3472},[4070],{"type":2921,"value":3551},{"type":2916,"tag":2999,"props":4072,"children":4073},{"style":3193},[4074],{"type":2921,"value":3480},{"type":2916,"tag":2999,"props":4076,"children":4077},{"style":3338},[4078],{"type":2921,"value":3341},{"type":2916,"tag":2999,"props":4080,"children":4081},{"style":3193},[4082],{"type":2921,"value":3270},{"type":2916,"tag":2999,"props":4084,"children":4085},{"class":3079,"line":2889},[4086,4090,4094,4098,4102,4106,4110],{"type":2916,"tag":2999,"props":4087,"children":4088},{"style":3187},[4089],{"type":2921,"value":3571},{"type":2916,"tag":2999,"props":4091,"children":4092},{"style":3193},[4093],{"type":2921,"value":3018},{"type":2916,"tag":2999,"props":4095,"children":4096},{"style":3187},[4097],{"type":2921,"value":3580},{"type":2916,"tag":2999,"props":4099,"children":4100},{"style":3193},[4101],{"type":2921,"value":3018},{"type":2916,"tag":2999,"props":4103,"children":4104},{"style":3187},[4105],{"type":2921,"value":3589},{"type":2916,"tag":2999,"props":4107,"children":4108},{"style":3193},[4109],{"type":2921,"value":3594},{"type":2916,"tag":2999,"props":4111,"children":4112},{"style":3193},[4113],{"type":2921,"value":3270},{"type":2916,"tag":2999,"props":4115,"children":4116},{"class":3079,"line":3254},[4117,4121,4125,4129,4133,4137],{"type":2916,"tag":2999,"props":4118,"children":4119},{"style":3181},[4120],{"type":2921,"value":3606},{"type":2916,"tag":2999,"props":4122,"children":4123},{"style":3193},[4124],{"type":2921,"value":3155},{"type":2916,"tag":2999,"props":4126,"children":4127},{"style":3338},[4128],{"type":2921,"value":3541},{"type":2916,"tag":2999,"props":4130,"children":4131},{"style":3193},[4132],{"type":2921,"value":3335},{"type":2916,"tag":2999,"props":4134,"children":4135},{"style":3338},[4136],{"type":2921,"value":3341},{"type":2916,"tag":2999,"props":4138,"children":4139},{"style":3193},[4140],{"type":2921,"value":3270},{"type":2916,"tag":2999,"props":4142,"children":4143},{"class":3079,"line":3273},[4144,4149,4154,4158,4163,4168,4172,4176],{"type":2916,"tag":2999,"props":4145,"children":4146},{"style":3338},[4147],{"type":2921,"value":4148},"        const",{"type":2916,"tag":2999,"props":4150,"children":4151},{"style":3187},[4152],{"type":2921,"value":4153}," session",{"type":2916,"tag":2999,"props":4155,"children":4156},{"style":3193},[4157],{"type":2921,"value":3594},{"type":2916,"tag":2999,"props":4159,"children":4160},{"style":3170},[4161],{"type":2921,"value":4162}," await",{"type":2916,"tag":2999,"props":4164,"children":4165},{"style":3181},[4166],{"type":2921,"value":4167}," getUserSession",{"type":2916,"tag":2999,"props":4169,"children":4170},{"style":3202},[4171],{"type":2921,"value":3190},{"type":2916,"tag":2999,"props":4173,"children":4174},{"style":3187},[4175],{"type":2921,"value":3551},{"type":2916,"tag":2999,"props":4177,"children":4178},{"style":3202},[4179],{"type":2921,"value":3413},{"type":2916,"tag":2999,"props":4181,"children":4182},{"class":3079,"line":3286},[4183,4188,4192,4196,4200,4205],{"type":2916,"tag":2999,"props":4184,"children":4185},{"style":3170},[4186],{"type":2921,"value":4187},"        return",{"type":2916,"tag":2999,"props":4189,"children":4190},{"style":3187},[4191],{"type":2921,"value":4153},{"type":2916,"tag":2999,"props":4193,"children":4194},{"style":3193},[4195],{"type":2921,"value":3018},{"type":2916,"tag":2999,"props":4197,"children":4198},{"style":3187},[4199],{"type":2921,"value":3912},{"type":2916,"tag":2999,"props":4201,"children":4202},{"style":3193},[4203],{"type":2921,"value":4204}," ??",{"type":2916,"tag":2999,"props":4206,"children":4207},{"style":3193},[4208],{"type":2921,"value":4209}," null\n",{"type":2916,"tag":2999,"props":4211,"children":4212},{"class":3079,"line":3303},[4213],{"type":2916,"tag":2999,"props":4214,"children":4215},{"style":3193},[4216],{"type":2921,"value":3382},{"type":2916,"tag":2999,"props":4218,"children":4219},{"class":3079,"line":3320},[4220],{"type":2916,"tag":2999,"props":4221,"children":4222},{"style":3193},[4223],{"type":2921,"value":3391},{"type":2916,"tag":2999,"props":4225,"children":4226},{"class":3079,"line":3348},[4227,4231],{"type":2916,"tag":2999,"props":4228,"children":4229},{"style":3193},[4230],{"type":2921,"value":3652},{"type":2916,"tag":2999,"props":4232,"children":4233},{"style":3202},[4234],{"type":2921,"value":3413},{"type":2916,"tag":2999,"props":4236,"children":4237},{"class":3079,"line":3358},[4238,4242],{"type":2916,"tag":2999,"props":4239,"children":4240},{"style":3193},[4241],{"type":2921,"value":3408},{"type":2916,"tag":2999,"props":4243,"children":4244},{"style":3187},[4245],{"type":2921,"value":3413},{"type":2916,"tag":2923,"props":4247,"children":4248},{},[4249],{"type":2921,"value":4250},"Easy!",{"type":2916,"tag":3132,"props":4252,"children":4254},{"id":4253},"define-abilities",[4255],{"type":2921,"value":4256},"Define Abilities",{"type":2916,"tag":2992,"props":4258,"children":4259},{},[4260],{"type":2916,"tag":2923,"props":4261,"children":4262},{},[4263,4267,4269,4274,4276,4283],{"type":2916,"tag":2999,"props":4264,"children":4265},{},[4266],{"type":2921,"value":3003},{"type":2921,"value":4268},"\nWith Nuxt 4, a new ",{"type":2916,"tag":3074,"props":4270,"children":4272},{"className":4271},[],[4273],{"type":2921,"value":190},{"type":2921,"value":4275}," directory will be introduced to easily share code between the client and the server.\nSee ",{"type":2916,"tag":2927,"props":4277,"children":4280},{"href":4278,"rel":4279},"https:\u002F\u002Fyoutu.be\u002F_m5ct5e8nVo?si=2iNcPVMttlIq5fLR",[2931],[4281],{"type":2921,"value":4282},"the video from Alexander Lichter",{"type":2921,"value":3018},{"type":2916,"tag":2923,"props":4285,"children":4286},{},[4287],{"type":2921,"value":4288},"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":2916,"tag":2923,"props":4290,"children":4291},{},[4292,4294,4300],{"type":2921,"value":4293},"I recommend to create a new file ",{"type":2916,"tag":3074,"props":4295,"children":4297},{"className":4296},[],[4298],{"type":2921,"value":4299},"shared\u002Futils\u002Fabilities.ts",{"type":2921,"value":4301}," to create your abilities:",{"type":2916,"tag":3067,"props":4303,"children":4305},{"className":3158,"code":4304,"language":3160,"meta":2866,"style":2866},"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",[4306],{"type":2916,"tag":3074,"props":4307,"children":4308},{"__ignoreMap":2866},[4309,4362,4370,4445,4485],{"type":2916,"tag":2999,"props":4310,"children":4311},{"class":3079,"line":2900},[4312,4316,4321,4326,4331,4336,4340,4344,4348,4352,4357],{"type":2916,"tag":2999,"props":4313,"children":4314},{"style":3170},[4315],{"type":2921,"value":3173},{"type":2916,"tag":2999,"props":4317,"children":4318},{"style":3338},[4319],{"type":2921,"value":4320}," const",{"type":2916,"tag":2999,"props":4322,"children":4323},{"style":3187},[4324],{"type":2921,"value":4325}," listPosts ",{"type":2916,"tag":2999,"props":4327,"children":4328},{"style":3193},[4329],{"type":2921,"value":4330},"=",{"type":2916,"tag":2999,"props":4332,"children":4333},{"style":3181},[4334],{"type":2921,"value":4335}," defineAbility",{"type":2916,"tag":2999,"props":4337,"children":4338},{"style":3187},[4339],{"type":2921,"value":3190},{"type":2916,"tag":2999,"props":4341,"children":4342},{"style":3193},[4343],{"type":2921,"value":3265},{"type":2916,"tag":2999,"props":4345,"children":4346},{"style":3338},[4347],{"type":2921,"value":3341},{"type":2916,"tag":2999,"props":4349,"children":4350},{"style":3244},[4351],{"type":2921,"value":3247},{"type":2916,"tag":2999,"props":4353,"children":4354},{"style":3187},[4355],{"type":2921,"value":4356},") ",{"type":2916,"tag":2999,"props":4358,"children":4359},{"style":3352},[4360],{"type":2921,"value":4361},"\u002F\u002F Only authenticated users can list posts\n",{"type":2916,"tag":2999,"props":4363,"children":4364},{"class":3079,"line":2893},[4365],{"type":2916,"tag":2999,"props":4366,"children":4367},{"emptyLinePlaceholder":1196},[4368],{"type":2921,"value":4369},"\n",{"type":2916,"tag":2999,"props":4371,"children":4372},{"class":3079,"line":2889},[4373,4377,4381,4386,4390,4394,4398,4402,4406,4410,4415,4419,4424,4428,4433,4437,4441],{"type":2916,"tag":2999,"props":4374,"children":4375},{"style":3170},[4376],{"type":2921,"value":3173},{"type":2916,"tag":2999,"props":4378,"children":4379},{"style":3338},[4380],{"type":2921,"value":4320},{"type":2916,"tag":2999,"props":4382,"children":4383},{"style":3187},[4384],{"type":2921,"value":4385}," editPost ",{"type":2916,"tag":2999,"props":4387,"children":4388},{"style":3193},[4389],{"type":2921,"value":4330},{"type":2916,"tag":2999,"props":4391,"children":4392},{"style":3181},[4393],{"type":2921,"value":4335},{"type":2916,"tag":2999,"props":4395,"children":4396},{"style":3187},[4397],{"type":2921,"value":3190},{"type":2916,"tag":2999,"props":4399,"children":4400},{"style":3193},[4401],{"type":2921,"value":3190},{"type":2916,"tag":2999,"props":4403,"children":4404},{"style":3472},[4405],{"type":2921,"value":3912},{"type":2916,"tag":2999,"props":4407,"children":4408},{"style":3193},[4409],{"type":2921,"value":3155},{"type":2916,"tag":2999,"props":4411,"children":4412},{"style":3083},[4413],{"type":2921,"value":4414}," User",{"type":2916,"tag":2999,"props":4416,"children":4417},{"style":3193},[4418],{"type":2921,"value":3536},{"type":2916,"tag":2999,"props":4420,"children":4421},{"style":3472},[4422],{"type":2921,"value":4423}," post",{"type":2916,"tag":2999,"props":4425,"children":4426},{"style":3193},[4427],{"type":2921,"value":3155},{"type":2916,"tag":2999,"props":4429,"children":4430},{"style":3083},[4431],{"type":2921,"value":4432}," Post",{"type":2916,"tag":2999,"props":4434,"children":4435},{"style":3193},[4436],{"type":2921,"value":3480},{"type":2916,"tag":2999,"props":4438,"children":4439},{"style":3338},[4440],{"type":2921,"value":3341},{"type":2916,"tag":2999,"props":4442,"children":4443},{"style":3193},[4444],{"type":2921,"value":3270},{"type":2916,"tag":2999,"props":4446,"children":4447},{"class":3079,"line":3254},[4448,4453,4458,4462,4467,4472,4476,4480],{"type":2916,"tag":2999,"props":4449,"children":4450},{"style":3170},[4451],{"type":2921,"value":4452},"  return",{"type":2916,"tag":2999,"props":4454,"children":4455},{"style":3187},[4456],{"type":2921,"value":4457}," user",{"type":2916,"tag":2999,"props":4459,"children":4460},{"style":3193},[4461],{"type":2921,"value":3018},{"type":2916,"tag":2999,"props":4463,"children":4464},{"style":3187},[4465],{"type":2921,"value":4466},"id",{"type":2916,"tag":2999,"props":4468,"children":4469},{"style":3193},[4470],{"type":2921,"value":4471}," ===",{"type":2916,"tag":2999,"props":4473,"children":4474},{"style":3187},[4475],{"type":2921,"value":4423},{"type":2916,"tag":2999,"props":4477,"children":4478},{"style":3193},[4479],{"type":2921,"value":3018},{"type":2916,"tag":2999,"props":4481,"children":4482},{"style":3187},[4483],{"type":2921,"value":4484},"authorId\n",{"type":2916,"tag":2999,"props":4486,"children":4487},{"class":3079,"line":3273},[4488,4492],{"type":2916,"tag":2999,"props":4489,"children":4490},{"style":3193},[4491],{"type":2921,"value":3408},{"type":2916,"tag":2999,"props":4493,"children":4494},{"style":3187},[4495],{"type":2921,"value":3413},{"type":2916,"tag":2923,"props":4497,"children":4498},{},[4499,4501,4507,4509,4515,4517,4523,4525,4531,4533,4539],{"type":2921,"value":4500},"If you have many abilities, you could prefer to create a directory ",{"type":2916,"tag":3074,"props":4502,"children":4504},{"className":4503},[],[4505],{"type":2921,"value":4506},"shared\u002Futils\u002Fabilities\u002F",{"type":2921,"value":4508}," and create a file for each ability. Having the abilities in the ",{"type":2916,"tag":3074,"props":4510,"children":4512},{"className":4511},[],[4513],{"type":2921,"value":4514},"shared\u002Futils",{"type":2921,"value":4516}," directory allows auto-import to work in the client while having a simple import in the server ",{"type":2916,"tag":3074,"props":4518,"children":4520},{"className":4519},[],[4521],{"type":2921,"value":4522},"~~\u002Fshared\u002Futils\u002Fabilities",{"type":2921,"value":4524},". ",{"type":2916,"tag":4526,"props":4527,"children":4528},"strong",{},[4529],{"type":2921,"value":4530},"Remember that the shared folder only exports the first level of the directory.",{"type":2921,"value":4532}," So you have to export the abilities in the ",{"type":2916,"tag":3074,"props":4534,"children":4536},{"className":4535},[],[4537],{"type":2921,"value":4538},"shared\u002Futils\u002Fabilities\u002Findex.ts",{"type":2921,"value":4540}," file.",{"type":2916,"tag":2923,"props":4542,"children":4543},{},[4544],{"type":2921,"value":4545},"By default, guests are not allowed to perform any action and the ability is not called. This behavior can be changed per ability:",{"type":2916,"tag":3067,"props":4547,"children":4549},{"className":3158,"code":4548,"language":3160,"meta":2866,"style":2866},"export const listPosts = defineAbility({ allowGuest: true }, (user: User | null) => true)\n",[4550],{"type":2916,"tag":3074,"props":4551,"children":4552},{"__ignoreMap":2866},[4553],{"type":2916,"tag":2999,"props":4554,"children":4555},{"class":3079,"line":2900},[4556,4560,4564,4568,4572,4576,4580,4585,4590,4594,4598,4603,4607,4611,4615,4619,4624,4629,4633,4637,4641],{"type":2916,"tag":2999,"props":4557,"children":4558},{"style":3170},[4559],{"type":2921,"value":3173},{"type":2916,"tag":2999,"props":4561,"children":4562},{"style":3338},[4563],{"type":2921,"value":4320},{"type":2916,"tag":2999,"props":4565,"children":4566},{"style":3187},[4567],{"type":2921,"value":4325},{"type":2916,"tag":2999,"props":4569,"children":4570},{"style":3193},[4571],{"type":2921,"value":4330},{"type":2916,"tag":2999,"props":4573,"children":4574},{"style":3181},[4575],{"type":2921,"value":4335},{"type":2916,"tag":2999,"props":4577,"children":4578},{"style":3187},[4579],{"type":2921,"value":3190},{"type":2916,"tag":2999,"props":4581,"children":4582},{"style":3193},[4583],{"type":2921,"value":4584},"{",{"type":2916,"tag":2999,"props":4586,"children":4587},{"style":3202},[4588],{"type":2921,"value":4589}," allowGuest",{"type":2916,"tag":2999,"props":4591,"children":4592},{"style":3193},[4593],{"type":2921,"value":3155},{"type":2916,"tag":2999,"props":4595,"children":4596},{"style":3244},[4597],{"type":2921,"value":3247},{"type":2916,"tag":2999,"props":4599,"children":4600},{"style":3193},[4601],{"type":2921,"value":4602}," },",{"type":2916,"tag":2999,"props":4604,"children":4605},{"style":3193},[4606],{"type":2921,"value":3546},{"type":2916,"tag":2999,"props":4608,"children":4609},{"style":3472},[4610],{"type":2921,"value":3912},{"type":2916,"tag":2999,"props":4612,"children":4613},{"style":3193},[4614],{"type":2921,"value":3155},{"type":2916,"tag":2999,"props":4616,"children":4617},{"style":3083},[4618],{"type":2921,"value":4414},{"type":2916,"tag":2999,"props":4620,"children":4621},{"style":3193},[4622],{"type":2921,"value":4623}," |",{"type":2916,"tag":2999,"props":4625,"children":4626},{"style":3083},[4627],{"type":2921,"value":4628}," null",{"type":2916,"tag":2999,"props":4630,"children":4631},{"style":3193},[4632],{"type":2921,"value":3480},{"type":2916,"tag":2999,"props":4634,"children":4635},{"style":3338},[4636],{"type":2921,"value":3341},{"type":2916,"tag":2999,"props":4638,"children":4639},{"style":3244},[4640],{"type":2921,"value":3247},{"type":2916,"tag":2999,"props":4642,"children":4643},{"style":3187},[4644],{"type":2921,"value":3413},{"type":2916,"tag":2923,"props":4646,"children":4647},{},[4648],{"type":2921,"value":4649},"Now, unauthenticated users can list posts.",{"type":2916,"tag":3132,"props":4651,"children":4653},{"id":4652},"use-abilities",[4654],{"type":2921,"value":4655},"Use Abilities",{"type":2916,"tag":2923,"props":4657,"children":4658},{},[4659,4661,4667,4669,4675,4677,4683,4685],{"type":2921,"value":4660},"To use ability, you have access to 3 bouncer functions: ",{"type":2916,"tag":3074,"props":4662,"children":4664},{"className":4663},[],[4665],{"type":2921,"value":4666},"allows",{"type":2921,"value":4668},", ",{"type":2916,"tag":3074,"props":4670,"children":4672},{"className":4671},[],[4673],{"type":2921,"value":4674},"denies",{"type":2921,"value":4676},", and ",{"type":2916,"tag":3074,"props":4678,"children":4680},{"className":4679},[],[4681],{"type":2921,"value":4682},"authorize",{"type":2921,"value":4684},". Both of them are available in the client and the server. ",{"type":2916,"tag":2986,"props":4686,"children":4687},{},[4688,4690,4695],{"type":2921,"value":4689},"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":2916,"tag":3074,"props":4691,"children":4693},{"className":4692},[],[4694],{"type":2921,"value":3551},{"type":2921,"value":4696}," from the handler.",{"type":2916,"tag":2923,"props":4698,"children":4699},{},[4700,4702,4707],{"type":2921,"value":4701},"The ",{"type":2916,"tag":3074,"props":4703,"children":4705},{"className":4704},[],[4706],{"type":2921,"value":4666},{"type":2921,"value":4708}," function returns a boolean if the user can perform the action:",{"type":2916,"tag":3067,"props":4710,"children":4712},{"className":3158,"code":4711,"language":3160,"meta":2866,"style":2866},"if (await allows(listPosts)) {\n  \u002F\u002F User can list posts\n}\n",[4713],{"type":2916,"tag":3074,"props":4714,"children":4715},{"__ignoreMap":2866},[4716,4747,4755],{"type":2916,"tag":2999,"props":4717,"children":4718},{"class":3079,"line":2900},[4719,4724,4728,4733,4738,4743],{"type":2916,"tag":2999,"props":4720,"children":4721},{"style":3170},[4722],{"type":2921,"value":4723},"if",{"type":2916,"tag":2999,"props":4725,"children":4726},{"style":3187},[4727],{"type":2921,"value":3546},{"type":2916,"tag":2999,"props":4729,"children":4730},{"style":3170},[4731],{"type":2921,"value":4732},"await",{"type":2916,"tag":2999,"props":4734,"children":4735},{"style":3181},[4736],{"type":2921,"value":4737}," allows",{"type":2916,"tag":2999,"props":4739,"children":4740},{"style":3187},[4741],{"type":2921,"value":4742},"(listPosts)) ",{"type":2916,"tag":2999,"props":4744,"children":4745},{"style":3193},[4746],{"type":2921,"value":3196},{"type":2916,"tag":2999,"props":4748,"children":4749},{"class":3079,"line":2893},[4750],{"type":2916,"tag":2999,"props":4751,"children":4752},{"style":3352},[4753],{"type":2921,"value":4754},"  \u002F\u002F User can list posts\n",{"type":2916,"tag":2999,"props":4756,"children":4757},{"class":3079,"line":2889},[4758],{"type":2916,"tag":2999,"props":4759,"children":4760},{"style":3193},[4761],{"type":2921,"value":4762},"}\n",{"type":2916,"tag":2923,"props":4764,"children":4765},{},[4766],{"type":2916,"tag":2986,"props":4767,"children":4768},{},[4769],{"type":2921,"value":4770},"For the server:",{"type":2916,"tag":3067,"props":4772,"children":4774},{"className":3158,"code":4773,"language":3160,"meta":2866,"style":2866},"if (await allows(event, listPosts)) {\n  \u002F\u002F User can list posts\n}\n",[4775],{"type":2916,"tag":3074,"props":4776,"children":4777},{"__ignoreMap":2866},[4778,4815,4822],{"type":2916,"tag":2999,"props":4779,"children":4780},{"class":3079,"line":2900},[4781,4785,4789,4793,4797,4802,4806,4811],{"type":2916,"tag":2999,"props":4782,"children":4783},{"style":3170},[4784],{"type":2921,"value":4723},{"type":2916,"tag":2999,"props":4786,"children":4787},{"style":3187},[4788],{"type":2921,"value":3546},{"type":2916,"tag":2999,"props":4790,"children":4791},{"style":3170},[4792],{"type":2921,"value":4732},{"type":2916,"tag":2999,"props":4794,"children":4795},{"style":3181},[4796],{"type":2921,"value":4737},{"type":2916,"tag":2999,"props":4798,"children":4799},{"style":3187},[4800],{"type":2921,"value":4801},"(event",{"type":2916,"tag":2999,"props":4803,"children":4804},{"style":3193},[4805],{"type":2921,"value":3536},{"type":2916,"tag":2999,"props":4807,"children":4808},{"style":3187},[4809],{"type":2921,"value":4810}," listPosts)) ",{"type":2916,"tag":2999,"props":4812,"children":4813},{"style":3193},[4814],{"type":2921,"value":3196},{"type":2916,"tag":2999,"props":4816,"children":4817},{"class":3079,"line":2893},[4818],{"type":2916,"tag":2999,"props":4819,"children":4820},{"style":3352},[4821],{"type":2921,"value":4754},{"type":2916,"tag":2999,"props":4823,"children":4824},{"class":3079,"line":2889},[4825],{"type":2916,"tag":2999,"props":4826,"children":4827},{"style":3193},[4828],{"type":2921,"value":4762},{"type":2916,"tag":2923,"props":4830,"children":4831},{},[4832,4833,4838],{"type":2921,"value":4701},{"type":2916,"tag":3074,"props":4834,"children":4836},{"className":4835},[],[4837],{"type":2921,"value":4674},{"type":2921,"value":4839}," function returns a boolean if the user cannot perform the action:",{"type":2916,"tag":3067,"props":4841,"children":4843},{"className":3158,"code":4842,"language":3160,"meta":2866,"style":2866},"if (await denies(editPost, post)) {\n  \u002F\u002F User cannot edit the post\n}\n",[4844],{"type":2916,"tag":3074,"props":4845,"children":4846},{"__ignoreMap":2866},[4847,4885,4893],{"type":2916,"tag":2999,"props":4848,"children":4849},{"class":3079,"line":2900},[4850,4854,4858,4862,4867,4872,4876,4881],{"type":2916,"tag":2999,"props":4851,"children":4852},{"style":3170},[4853],{"type":2921,"value":4723},{"type":2916,"tag":2999,"props":4855,"children":4856},{"style":3187},[4857],{"type":2921,"value":3546},{"type":2916,"tag":2999,"props":4859,"children":4860},{"style":3170},[4861],{"type":2921,"value":4732},{"type":2916,"tag":2999,"props":4863,"children":4864},{"style":3181},[4865],{"type":2921,"value":4866}," denies",{"type":2916,"tag":2999,"props":4868,"children":4869},{"style":3187},[4870],{"type":2921,"value":4871},"(editPost",{"type":2916,"tag":2999,"props":4873,"children":4874},{"style":3193},[4875],{"type":2921,"value":3536},{"type":2916,"tag":2999,"props":4877,"children":4878},{"style":3187},[4879],{"type":2921,"value":4880}," post)) ",{"type":2916,"tag":2999,"props":4882,"children":4883},{"style":3193},[4884],{"type":2921,"value":3196},{"type":2916,"tag":2999,"props":4886,"children":4887},{"class":3079,"line":2893},[4888],{"type":2916,"tag":2999,"props":4889,"children":4890},{"style":3352},[4891],{"type":2921,"value":4892},"  \u002F\u002F User cannot edit the post\n",{"type":2916,"tag":2999,"props":4894,"children":4895},{"class":3079,"line":2889},[4896],{"type":2916,"tag":2999,"props":4897,"children":4898},{"style":3193},[4899],{"type":2921,"value":4762},{"type":2916,"tag":2923,"props":4901,"children":4902},{},[4903],{"type":2916,"tag":2986,"props":4904,"children":4905},{},[4906],{"type":2921,"value":4770},{"type":2916,"tag":3067,"props":4908,"children":4910},{"className":3158,"code":4909,"language":3160,"meta":2866,"style":2866},"if (await denies(event, editPost, post)) {\n  \u002F\u002F User cannot edit the post\n}\n",[4911],{"type":2916,"tag":3074,"props":4912,"children":4913},{"__ignoreMap":2866},[4914,4958,4965],{"type":2916,"tag":2999,"props":4915,"children":4916},{"class":3079,"line":2900},[4917,4921,4925,4929,4933,4937,4941,4946,4950,4954],{"type":2916,"tag":2999,"props":4918,"children":4919},{"style":3170},[4920],{"type":2921,"value":4723},{"type":2916,"tag":2999,"props":4922,"children":4923},{"style":3187},[4924],{"type":2921,"value":3546},{"type":2916,"tag":2999,"props":4926,"children":4927},{"style":3170},[4928],{"type":2921,"value":4732},{"type":2916,"tag":2999,"props":4930,"children":4931},{"style":3181},[4932],{"type":2921,"value":4866},{"type":2916,"tag":2999,"props":4934,"children":4935},{"style":3187},[4936],{"type":2921,"value":4801},{"type":2916,"tag":2999,"props":4938,"children":4939},{"style":3193},[4940],{"type":2921,"value":3536},{"type":2916,"tag":2999,"props":4942,"children":4943},{"style":3187},[4944],{"type":2921,"value":4945}," editPost",{"type":2916,"tag":2999,"props":4947,"children":4948},{"style":3193},[4949],{"type":2921,"value":3536},{"type":2916,"tag":2999,"props":4951,"children":4952},{"style":3187},[4953],{"type":2921,"value":4880},{"type":2916,"tag":2999,"props":4955,"children":4956},{"style":3193},[4957],{"type":2921,"value":3196},{"type":2916,"tag":2999,"props":4959,"children":4960},{"class":3079,"line":2893},[4961],{"type":2916,"tag":2999,"props":4962,"children":4963},{"style":3352},[4964],{"type":2921,"value":4892},{"type":2916,"tag":2999,"props":4966,"children":4967},{"class":3079,"line":2889},[4968],{"type":2916,"tag":2999,"props":4969,"children":4970},{"style":3193},[4971],{"type":2921,"value":4762},{"type":2916,"tag":2923,"props":4973,"children":4974},{},[4975,4976,4981],{"type":2921,"value":4701},{"type":2916,"tag":3074,"props":4977,"children":4979},{"className":4978},[],[4980],{"type":2921,"value":4682},{"type":2921,"value":4982}," function throws an error if the user cannot perform the action:",{"type":2916,"tag":3067,"props":4984,"children":4986},{"className":3158,"code":4985,"language":3160,"meta":2866,"style":2866},"await authorize(editPost, post)\n\n\u002F\u002F User can edit the post\n",[4987],{"type":2916,"tag":3074,"props":4988,"children":4989},{"__ignoreMap":2866},[4990,5015,5022],{"type":2916,"tag":2999,"props":4991,"children":4992},{"class":3079,"line":2900},[4993,4997,5002,5006,5010],{"type":2916,"tag":2999,"props":4994,"children":4995},{"style":3170},[4996],{"type":2921,"value":4732},{"type":2916,"tag":2999,"props":4998,"children":4999},{"style":3181},[5000],{"type":2921,"value":5001}," authorize",{"type":2916,"tag":2999,"props":5003,"children":5004},{"style":3187},[5005],{"type":2921,"value":4871},{"type":2916,"tag":2999,"props":5007,"children":5008},{"style":3193},[5009],{"type":2921,"value":3536},{"type":2916,"tag":2999,"props":5011,"children":5012},{"style":3187},[5013],{"type":2921,"value":5014}," post)\n",{"type":2916,"tag":2999,"props":5016,"children":5017},{"class":3079,"line":2893},[5018],{"type":2916,"tag":2999,"props":5019,"children":5020},{"emptyLinePlaceholder":1196},[5021],{"type":2921,"value":4369},{"type":2916,"tag":2999,"props":5023,"children":5024},{"class":3079,"line":2889},[5025],{"type":2916,"tag":2999,"props":5026,"children":5027},{"style":3352},[5028],{"type":2921,"value":5029},"\u002F\u002F User can edit the post\n",{"type":2916,"tag":2923,"props":5031,"children":5032},{},[5033],{"type":2916,"tag":2986,"props":5034,"children":5035},{},[5036],{"type":2921,"value":4770},{"type":2916,"tag":3067,"props":5038,"children":5040},{"className":3158,"code":5039,"language":3160,"meta":2866,"style":2866},"await authorize(event, editPost, post)\n",[5041],{"type":2916,"tag":3074,"props":5042,"children":5043},{"__ignoreMap":2866},[5044],{"type":2916,"tag":2999,"props":5045,"children":5046},{"class":3079,"line":2900},[5047,5051,5055,5059,5063,5067,5071],{"type":2916,"tag":2999,"props":5048,"children":5049},{"style":3170},[5050],{"type":2921,"value":4732},{"type":2916,"tag":2999,"props":5052,"children":5053},{"style":3181},[5054],{"type":2921,"value":5001},{"type":2916,"tag":2999,"props":5056,"children":5057},{"style":3187},[5058],{"type":2921,"value":4801},{"type":2916,"tag":2999,"props":5060,"children":5061},{"style":3193},[5062],{"type":2921,"value":3536},{"type":2916,"tag":2999,"props":5064,"children":5065},{"style":3187},[5066],{"type":2921,"value":4945},{"type":2916,"tag":2999,"props":5068,"children":5069},{"style":3193},[5070],{"type":2921,"value":3536},{"type":2916,"tag":2999,"props":5072,"children":5073},{"style":3187},[5074],{"type":2921,"value":5014},{"type":2916,"tag":2923,"props":5076,"children":5077},{},[5078],{"type":2921,"value":5079},"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":2916,"tag":3067,"props":5081,"children":5083},{"className":3158,"code":5082,"language":3160,"meta":2866,"style":2866},"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",[5084],{"type":2916,"tag":3074,"props":5085,"children":5086},{"__ignoreMap":2866},[5087,5158,5207,5223,5231,5238,5281],{"type":2916,"tag":2999,"props":5088,"children":5089},{"class":3079,"line":2900},[5090,5094,5098,5102,5106,5110,5114,5118,5122,5126,5130,5134,5138,5142,5146,5150,5154],{"type":2916,"tag":2999,"props":5091,"children":5092},{"style":3170},[5093],{"type":2921,"value":3173},{"type":2916,"tag":2999,"props":5095,"children":5096},{"style":3338},[5097],{"type":2921,"value":4320},{"type":2916,"tag":2999,"props":5099,"children":5100},{"style":3187},[5101],{"type":2921,"value":4385},{"type":2916,"tag":2999,"props":5103,"children":5104},{"style":3193},[5105],{"type":2921,"value":4330},{"type":2916,"tag":2999,"props":5107,"children":5108},{"style":3181},[5109],{"type":2921,"value":4335},{"type":2916,"tag":2999,"props":5111,"children":5112},{"style":3187},[5113],{"type":2921,"value":3190},{"type":2916,"tag":2999,"props":5115,"children":5116},{"style":3193},[5117],{"type":2921,"value":3190},{"type":2916,"tag":2999,"props":5119,"children":5120},{"style":3472},[5121],{"type":2921,"value":3912},{"type":2916,"tag":2999,"props":5123,"children":5124},{"style":3193},[5125],{"type":2921,"value":3155},{"type":2916,"tag":2999,"props":5127,"children":5128},{"style":3083},[5129],{"type":2921,"value":4414},{"type":2916,"tag":2999,"props":5131,"children":5132},{"style":3193},[5133],{"type":2921,"value":3536},{"type":2916,"tag":2999,"props":5135,"children":5136},{"style":3472},[5137],{"type":2921,"value":4423},{"type":2916,"tag":2999,"props":5139,"children":5140},{"style":3193},[5141],{"type":2921,"value":3155},{"type":2916,"tag":2999,"props":5143,"children":5144},{"style":3083},[5145],{"type":2921,"value":4432},{"type":2916,"tag":2999,"props":5147,"children":5148},{"style":3193},[5149],{"type":2921,"value":3480},{"type":2916,"tag":2999,"props":5151,"children":5152},{"style":3338},[5153],{"type":2921,"value":3341},{"type":2916,"tag":2999,"props":5155,"children":5156},{"style":3193},[5157],{"type":2921,"value":3270},{"type":2916,"tag":2999,"props":5159,"children":5160},{"class":3079,"line":2893},[5161,5166,5170,5174,5178,5182,5186,5190,5194,5199,5203],{"type":2916,"tag":2999,"props":5162,"children":5163},{"style":3170},[5164],{"type":2921,"value":5165},"  if",{"type":2916,"tag":2999,"props":5167,"children":5168},{"style":3202},[5169],{"type":2921,"value":3190},{"type":2916,"tag":2999,"props":5171,"children":5172},{"style":3187},[5173],{"type":2921,"value":3912},{"type":2916,"tag":2999,"props":5175,"children":5176},{"style":3193},[5177],{"type":2921,"value":3018},{"type":2916,"tag":2999,"props":5179,"children":5180},{"style":3187},[5181],{"type":2921,"value":4466},{"type":2916,"tag":2999,"props":5183,"children":5184},{"style":3193},[5185],{"type":2921,"value":4471},{"type":2916,"tag":2999,"props":5187,"children":5188},{"style":3187},[5189],{"type":2921,"value":4423},{"type":2916,"tag":2999,"props":5191,"children":5192},{"style":3193},[5193],{"type":2921,"value":3018},{"type":2916,"tag":2999,"props":5195,"children":5196},{"style":3187},[5197],{"type":2921,"value":5198},"authorId",{"type":2916,"tag":2999,"props":5200,"children":5201},{"style":3202},[5202],{"type":2921,"value":4356},{"type":2916,"tag":2999,"props":5204,"children":5205},{"style":3193},[5206],{"type":2921,"value":3196},{"type":2916,"tag":2999,"props":5208,"children":5209},{"class":3079,"line":2889},[5210,5214,5218],{"type":2916,"tag":2999,"props":5211,"children":5212},{"style":3170},[5213],{"type":2921,"value":3279},{"type":2916,"tag":2999,"props":5215,"children":5216},{"style":3244},[5217],{"type":2921,"value":3247},{"type":2916,"tag":2999,"props":5219,"children":5220},{"style":3352},[5221],{"type":2921,"value":5222}," \u002F\u002F or allow()\n",{"type":2916,"tag":2999,"props":5224,"children":5225},{"class":3079,"line":3254},[5226],{"type":2916,"tag":2999,"props":5227,"children":5228},{"style":3193},[5229],{"type":2921,"value":5230},"  }\n",{"type":2916,"tag":2999,"props":5232,"children":5233},{"class":3079,"line":3273},[5234],{"type":2916,"tag":2999,"props":5235,"children":5236},{"emptyLinePlaceholder":1196},[5237],{"type":2921,"value":4369},{"type":2916,"tag":2999,"props":5239,"children":5240},{"class":3079,"line":3286},[5241,5245,5250,5254,5258,5263,5267,5271,5277],{"type":2916,"tag":2999,"props":5242,"children":5243},{"style":3170},[5244],{"type":2921,"value":4452},{"type":2916,"tag":2999,"props":5246,"children":5247},{"style":3181},[5248],{"type":2921,"value":5249}," deny",{"type":2916,"tag":2999,"props":5251,"children":5252},{"style":3202},[5253],{"type":2921,"value":3190},{"type":2916,"tag":2999,"props":5255,"children":5256},{"style":3193},[5257],{"type":2921,"value":3224},{"type":2916,"tag":2999,"props":5259,"children":5260},{"style":3089},[5261],{"type":2921,"value":5262},"This post does not exist",{"type":2916,"tag":2999,"props":5264,"children":5265},{"style":3193},[5266],{"type":2921,"value":3224},{"type":2916,"tag":2999,"props":5268,"children":5269},{"style":3193},[5270],{"type":2921,"value":3536},{"type":2916,"tag":2999,"props":5272,"children":5274},{"style":5273},"--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C",[5275],{"type":2921,"value":5276}," 404",{"type":2916,"tag":2999,"props":5278,"children":5279},{"style":3202},[5280],{"type":2921,"value":3413},{"type":2916,"tag":2999,"props":5282,"children":5283},{"class":3079,"line":3303},[5284,5288],{"type":2916,"tag":2999,"props":5285,"children":5286},{"style":3193},[5287],{"type":2921,"value":3408},{"type":2916,"tag":2999,"props":5289,"children":5290},{"style":3187},[5291],{"type":2921,"value":3413},{"type":2916,"tag":2923,"props":5293,"children":5294},{},[5295,5301,5303,5309,5311,5317,5318,5324,5326,5331],{"type":2916,"tag":3074,"props":5296,"children":5298},{"className":5297},[],[5299],{"type":2921,"value":5300},"allow",{"type":2921,"value":5302}," and ",{"type":2916,"tag":3074,"props":5304,"children":5306},{"className":5305},[],[5307],{"type":2921,"value":5308},"deny",{"type":2921,"value":5310}," are similar to returning ",{"type":2916,"tag":3074,"props":5312,"children":5314},{"className":5313},[],[5315],{"type":2921,"value":5316},"true",{"type":2921,"value":5302},{"type":2916,"tag":3074,"props":5319,"children":5321},{"className":5320},[],[5322],{"type":2921,"value":5323},"false",{"type":2921,"value":5325}," but ",{"type":2916,"tag":3074,"props":5327,"children":5329},{"className":5328},[],[5330],{"type":2921,"value":5308},{"type":2921,"value":5332}," allows to return a custom message and status code for the error.",{"type":2916,"tag":2923,"props":5334,"children":5335},{},[5336,5338,5343,5345,5351],{"type":2921,"value":5337},"Most of the times, you API endpoints will use the ",{"type":2916,"tag":3074,"props":5339,"children":5341},{"className":5340},[],[5342],{"type":2921,"value":4682},{"type":2921,"value":5344},". 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":2916,"tag":3074,"props":5346,"children":5348},{"className":5347},[],[5349],{"type":2921,"value":5350},"H3Error",{"type":2921,"value":5352}," and will be caught by the Nitro server.",{"type":2916,"tag":2923,"props":5354,"children":5355},{},[5356,5357,5362,5363,5368],{"type":2921,"value":4701},{"type":2916,"tag":3074,"props":5358,"children":5360},{"className":5359},[],[5361],{"type":2921,"value":4666},{"type":2921,"value":5302},{"type":2916,"tag":3074,"props":5364,"children":5366},{"className":5365},[],[5367],{"type":2921,"value":4674},{"type":2921,"value":5369}," 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":2916,"tag":3132,"props":5371,"children":5373},{"id":5372},"use-components",[5374],{"type":2921,"value":5375},"Use Components",{"type":2916,"tag":2923,"props":5377,"children":5378},{},[5379],{"type":2921,"value":5380},"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":2916,"tag":3067,"props":5382,"children":5386},{"className":5383,"code":5384,"language":5385,"meta":2866,"style":2866},"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",[5387],{"type":2916,"tag":3074,"props":5388,"children":5389},{"__ignoreMap":2866},[5390,5408,5421,5448,5523,5531,5567,5584],{"type":2916,"tag":2999,"props":5391,"children":5392},{"class":3079,"line":2900},[5393,5398,5403],{"type":2916,"tag":2999,"props":5394,"children":5395},{"style":3193},[5396],{"type":2921,"value":5397},"\u003C",{"type":2916,"tag":2999,"props":5399,"children":5400},{"style":3202},[5401],{"type":2921,"value":5402},"template",{"type":2916,"tag":2999,"props":5404,"children":5405},{"style":3193},[5406],{"type":2921,"value":5407},">\n",{"type":2916,"tag":2999,"props":5409,"children":5410},{"class":3079,"line":2893},[5411,5416],{"type":2916,"tag":2999,"props":5412,"children":5413},{"style":3193},[5414],{"type":2921,"value":5415},"  \u003C",{"type":2916,"tag":2999,"props":5417,"children":5418},{"style":3202},[5419],{"type":2921,"value":5420},"Can\n",{"type":2916,"tag":2999,"props":5422,"children":5423},{"class":3079,"line":2889},[5424,5429,5433,5438,5443],{"type":2916,"tag":2999,"props":5425,"children":5426},{"style":3338},[5427],{"type":2921,"value":5428},"    :ability",{"type":2916,"tag":2999,"props":5430,"children":5431},{"style":3193},[5432],{"type":2921,"value":4330},{"type":2916,"tag":2999,"props":5434,"children":5435},{"style":3193},[5436],{"type":2921,"value":5437},"\"",{"type":2916,"tag":2999,"props":5439,"children":5440},{"style":3089},[5441],{"type":2921,"value":5442},"editPost",{"type":2916,"tag":2999,"props":5444,"children":5445},{"style":3193},[5446],{"type":2921,"value":5447},"\"\n",{"type":2916,"tag":2999,"props":5449,"children":5450},{"class":3079,"line":3254},[5451,5456,5460,5464,5469,5473,5478,5483,5488,5493,5498,5503,5508,5513,5518],{"type":2916,"tag":2999,"props":5452,"children":5453},{"style":3338},[5454],{"type":2921,"value":5455},"    :args",{"type":2916,"tag":2999,"props":5457,"children":5458},{"style":3193},[5459],{"type":2921,"value":4330},{"type":2916,"tag":2999,"props":5461,"children":5462},{"style":3193},[5463],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":5465,"children":5466},{"style":3089},[5467],{"type":2921,"value":5468},"[post]",{"type":2916,"tag":2999,"props":5470,"children":5471},{"style":3193},[5472],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":5474,"children":5475},{"style":3193},[5476],{"type":2921,"value":5477}," \u002F\u002F ",{"type":2916,"tag":2999,"props":5479,"children":5480},{"style":3338},[5481],{"type":2921,"value":5482},"Optional",{"type":2916,"tag":2999,"props":5484,"children":5485},{"style":3338},[5486],{"type":2921,"value":5487}," if",{"type":2916,"tag":2999,"props":5489,"children":5490},{"style":3338},[5491],{"type":2921,"value":5492}," the",{"type":2916,"tag":2999,"props":5494,"children":5495},{"style":3338},[5496],{"type":2921,"value":5497}," ability",{"type":2916,"tag":2999,"props":5499,"children":5500},{"style":3338},[5501],{"type":2921,"value":5502}," does",{"type":2916,"tag":2999,"props":5504,"children":5505},{"style":3338},[5506],{"type":2921,"value":5507}," not",{"type":2916,"tag":2999,"props":5509,"children":5510},{"style":3338},[5511],{"type":2921,"value":5512}," take",{"type":2916,"tag":2999,"props":5514,"children":5515},{"style":3338},[5516],{"type":2921,"value":5517}," any",{"type":2916,"tag":2999,"props":5519,"children":5520},{"style":3338},[5521],{"type":2921,"value":5522}," arguments\n",{"type":2916,"tag":2999,"props":5524,"children":5525},{"class":3079,"line":3273},[5526],{"type":2916,"tag":2999,"props":5527,"children":5528},{"style":3193},[5529],{"type":2921,"value":5530},"  >\n",{"type":2916,"tag":2999,"props":5532,"children":5533},{"class":3079,"line":3286},[5534,5539,5544,5549,5554,5559,5563],{"type":2916,"tag":2999,"props":5535,"children":5536},{"style":3193},[5537],{"type":2921,"value":5538},"    \u003C",{"type":2916,"tag":2999,"props":5540,"children":5541},{"style":3202},[5542],{"type":2921,"value":5543},"button",{"type":2916,"tag":2999,"props":5545,"children":5546},{"style":3193},[5547],{"type":2921,"value":5548},">",{"type":2916,"tag":2999,"props":5550,"children":5551},{"style":3187},[5552],{"type":2921,"value":5553},"Edit",{"type":2916,"tag":2999,"props":5555,"children":5556},{"style":3193},[5557],{"type":2921,"value":5558},"\u003C\u002F",{"type":2916,"tag":2999,"props":5560,"children":5561},{"style":3202},[5562],{"type":2921,"value":5543},{"type":2916,"tag":2999,"props":5564,"children":5565},{"style":3193},[5566],{"type":2921,"value":5407},{"type":2916,"tag":2999,"props":5568,"children":5569},{"class":3079,"line":3303},[5570,5575,5580],{"type":2916,"tag":2999,"props":5571,"children":5572},{"style":3193},[5573],{"type":2921,"value":5574},"  \u003C\u002F",{"type":2916,"tag":2999,"props":5576,"children":5577},{"style":3202},[5578],{"type":2921,"value":5579},"Can",{"type":2916,"tag":2999,"props":5581,"children":5582},{"style":3193},[5583],{"type":2921,"value":5407},{"type":2916,"tag":2999,"props":5585,"children":5586},{"class":3079,"line":3320},[5587,5591,5595],{"type":2916,"tag":2999,"props":5588,"children":5589},{"style":3193},[5590],{"type":2921,"value":5558},{"type":2916,"tag":2999,"props":5592,"children":5593},{"style":3202},[5594],{"type":2921,"value":5402},{"type":2916,"tag":2999,"props":5596,"children":5597},{"style":3193},[5598],{"type":2921,"value":5407},{"type":2916,"tag":2923,"props":5600,"children":5601},{},[5602,5603,5608],{"type":2921,"value":4701},{"type":2916,"tag":3074,"props":5604,"children":5606},{"className":5605},[],[5607],{"type":2921,"value":5579},{"type":2921,"value":5609}," 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":2916,"tag":2923,"props":5611,"children":5612},{},[5613,5615,5621],{"type":2921,"value":5614},"As a counterpart, you can use the ",{"type":2916,"tag":3074,"props":5616,"children":5618},{"className":5617},[],[5619],{"type":2921,"value":5620},"Cannot",{"type":2921,"value":5622}," component to render the button only if the user cannot edit the post.",{"type":2916,"tag":3067,"props":5624,"children":5626},{"className":5383,"code":5625,"language":5385,"meta":2866,"style":2866},"\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",[5627],{"type":2916,"tag":3074,"props":5628,"children":5629},{"__ignoreMap":2866},[5630,5645,5657,5680,5743,5750,5782,5797],{"type":2916,"tag":2999,"props":5631,"children":5632},{"class":3079,"line":2900},[5633,5637,5641],{"type":2916,"tag":2999,"props":5634,"children":5635},{"style":3193},[5636],{"type":2921,"value":5397},{"type":2916,"tag":2999,"props":5638,"children":5639},{"style":3202},[5640],{"type":2921,"value":5402},{"type":2916,"tag":2999,"props":5642,"children":5643},{"style":3193},[5644],{"type":2921,"value":5407},{"type":2916,"tag":2999,"props":5646,"children":5647},{"class":3079,"line":2893},[5648,5652],{"type":2916,"tag":2999,"props":5649,"children":5650},{"style":3193},[5651],{"type":2921,"value":5415},{"type":2916,"tag":2999,"props":5653,"children":5654},{"style":3202},[5655],{"type":2921,"value":5656},"Cannot\n",{"type":2916,"tag":2999,"props":5658,"children":5659},{"class":3079,"line":2889},[5660,5664,5668,5672,5676],{"type":2916,"tag":2999,"props":5661,"children":5662},{"style":3338},[5663],{"type":2921,"value":5428},{"type":2916,"tag":2999,"props":5665,"children":5666},{"style":3193},[5667],{"type":2921,"value":4330},{"type":2916,"tag":2999,"props":5669,"children":5670},{"style":3193},[5671],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":5673,"children":5674},{"style":3089},[5675],{"type":2921,"value":5442},{"type":2916,"tag":2999,"props":5677,"children":5678},{"style":3193},[5679],{"type":2921,"value":5447},{"type":2916,"tag":2999,"props":5681,"children":5682},{"class":3079,"line":3254},[5683,5687,5691,5695,5699,5703,5707,5711,5715,5719,5723,5727,5731,5735,5739],{"type":2916,"tag":2999,"props":5684,"children":5685},{"style":3338},[5686],{"type":2921,"value":5455},{"type":2916,"tag":2999,"props":5688,"children":5689},{"style":3193},[5690],{"type":2921,"value":4330},{"type":2916,"tag":2999,"props":5692,"children":5693},{"style":3193},[5694],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":5696,"children":5697},{"style":3089},[5698],{"type":2921,"value":5468},{"type":2916,"tag":2999,"props":5700,"children":5701},{"style":3193},[5702],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":5704,"children":5705},{"style":3193},[5706],{"type":2921,"value":5477},{"type":2916,"tag":2999,"props":5708,"children":5709},{"style":3338},[5710],{"type":2921,"value":5482},{"type":2916,"tag":2999,"props":5712,"children":5713},{"style":3338},[5714],{"type":2921,"value":5487},{"type":2916,"tag":2999,"props":5716,"children":5717},{"style":3338},[5718],{"type":2921,"value":5492},{"type":2916,"tag":2999,"props":5720,"children":5721},{"style":3338},[5722],{"type":2921,"value":5497},{"type":2916,"tag":2999,"props":5724,"children":5725},{"style":3338},[5726],{"type":2921,"value":5502},{"type":2916,"tag":2999,"props":5728,"children":5729},{"style":3338},[5730],{"type":2921,"value":5507},{"type":2916,"tag":2999,"props":5732,"children":5733},{"style":3338},[5734],{"type":2921,"value":5512},{"type":2916,"tag":2999,"props":5736,"children":5737},{"style":3338},[5738],{"type":2921,"value":5517},{"type":2916,"tag":2999,"props":5740,"children":5741},{"style":3338},[5742],{"type":2921,"value":5522},{"type":2916,"tag":2999,"props":5744,"children":5745},{"class":3079,"line":3273},[5746],{"type":2916,"tag":2999,"props":5747,"children":5748},{"style":3193},[5749],{"type":2921,"value":5530},{"type":2916,"tag":2999,"props":5751,"children":5752},{"class":3079,"line":3286},[5753,5757,5761,5765,5770,5774,5778],{"type":2916,"tag":2999,"props":5754,"children":5755},{"style":3193},[5756],{"type":2921,"value":5538},{"type":2916,"tag":2999,"props":5758,"children":5759},{"style":3202},[5760],{"type":2921,"value":2923},{"type":2916,"tag":2999,"props":5762,"children":5763},{"style":3193},[5764],{"type":2921,"value":5548},{"type":2916,"tag":2999,"props":5766,"children":5767},{"style":3187},[5768],{"type":2921,"value":5769},"You're not allowed to edit the post.",{"type":2916,"tag":2999,"props":5771,"children":5772},{"style":3193},[5773],{"type":2921,"value":5558},{"type":2916,"tag":2999,"props":5775,"children":5776},{"style":3202},[5777],{"type":2921,"value":2923},{"type":2916,"tag":2999,"props":5779,"children":5780},{"style":3193},[5781],{"type":2921,"value":5407},{"type":2916,"tag":2999,"props":5783,"children":5784},{"class":3079,"line":3303},[5785,5789,5793],{"type":2916,"tag":2999,"props":5786,"children":5787},{"style":3193},[5788],{"type":2921,"value":5574},{"type":2916,"tag":2999,"props":5790,"children":5791},{"style":3202},[5792],{"type":2921,"value":5620},{"type":2916,"tag":2999,"props":5794,"children":5795},{"style":3193},[5796],{"type":2921,"value":5407},{"type":2916,"tag":2999,"props":5798,"children":5799},{"class":3079,"line":3320},[5800,5804,5808],{"type":2916,"tag":2999,"props":5801,"children":5802},{"style":3193},[5803],{"type":2921,"value":5558},{"type":2916,"tag":2999,"props":5805,"children":5806},{"style":3202},[5807],{"type":2921,"value":5402},{"type":2916,"tag":2999,"props":5809,"children":5810},{"style":3193},[5811],{"type":2921,"value":5407},{"type":2916,"tag":2923,"props":5813,"children":5814},{},[5815,5816,5822,5824,5829,5830,5835,5837,5844],{"type":2921,"value":4701},{"type":2916,"tag":3074,"props":5817,"children":5819},{"className":5818},[],[5820],{"type":2921,"value":5821},"Bouncer",{"type":2921,"value":5823}," component offers a more flexible and centralized way to handle both can and cannot scenarios within a single component. Instead of using separate ",{"type":2916,"tag":3074,"props":5825,"children":5827},{"className":5826},[],[5828],{"type":2921,"value":5579},{"type":2921,"value":5302},{"type":2916,"tag":3074,"props":5831,"children":5833},{"className":5832},[],[5834],{"type":2921,"value":5620},{"type":2921,"value":5836}," components, you can leverage the Bouncer component and its ",{"type":2916,"tag":2927,"props":5838,"children":5841},{"href":5839,"rel":5840},"https:\u002F\u002Fvuejs.org\u002Fguide\u002Fcomponents\u002Fslots.html#named-slots",[2931],[5842],{"type":2921,"value":5843},"named slots",{"type":2921,"value":5845}," to handle both states in a unified block.",{"type":2916,"tag":3067,"props":5847,"children":5849},{"className":5383,"code":5848,"language":5385,"meta":2866,"style":2866},"\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",[5850],{"type":2916,"tag":3074,"props":5851,"children":5852},{"__ignoreMap":2866},[5853,5865,5894,5962,5969,5977,5985,5993,6000,6008,6016,6023],{"type":2916,"tag":2999,"props":5854,"children":5855},{"class":3079,"line":2900},[5856,5860],{"type":2916,"tag":2999,"props":5857,"children":5858},{"style":3193},[5859],{"type":2921,"value":5397},{"type":2916,"tag":2999,"props":5861,"children":5862},{"style":3202},[5863],{"type":2921,"value":5864},"Bouncer\n",{"type":2916,"tag":2999,"props":5866,"children":5867},{"class":3079,"line":2893},[5868,5873,5878,5882,5886,5890],{"type":2916,"tag":2999,"props":5869,"children":5870},{"style":3193},[5871],{"type":2921,"value":5872},"  :",{"type":2916,"tag":2999,"props":5874,"children":5875},{"style":3338},[5876],{"type":2921,"value":5877},"ability",{"type":2916,"tag":2999,"props":5879,"children":5880},{"style":3193},[5881],{"type":2921,"value":4330},{"type":2916,"tag":2999,"props":5883,"children":5884},{"style":3193},[5885],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":5887,"children":5888},{"style":3187},[5889],{"type":2921,"value":5442},{"type":2916,"tag":2999,"props":5891,"children":5892},{"style":3193},[5893],{"type":2921,"value":5447},{"type":2916,"tag":2999,"props":5895,"children":5896},{"class":3079,"line":2889},[5897,5901,5906,5910,5914,5918,5922,5926,5930,5934,5938,5942,5946,5950,5954,5958],{"type":2916,"tag":2999,"props":5898,"children":5899},{"style":3193},[5900],{"type":2921,"value":5872},{"type":2916,"tag":2999,"props":5902,"children":5903},{"style":3338},[5904],{"type":2921,"value":5905},"args",{"type":2916,"tag":2999,"props":5907,"children":5908},{"style":3193},[5909],{"type":2921,"value":4330},{"type":2916,"tag":2999,"props":5911,"children":5912},{"style":3193},[5913],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":5915,"children":5916},{"style":3187},[5917],{"type":2921,"value":5468},{"type":2916,"tag":2999,"props":5919,"children":5920},{"style":3193},[5921],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":5923,"children":5924},{"style":3187},[5925],{"type":2921,"value":5477},{"type":2916,"tag":2999,"props":5927,"children":5928},{"style":3338},[5929],{"type":2921,"value":5482},{"type":2916,"tag":2999,"props":5931,"children":5932},{"style":3338},[5933],{"type":2921,"value":5487},{"type":2916,"tag":2999,"props":5935,"children":5936},{"style":3338},[5937],{"type":2921,"value":5492},{"type":2916,"tag":2999,"props":5939,"children":5940},{"style":3338},[5941],{"type":2921,"value":5497},{"type":2916,"tag":2999,"props":5943,"children":5944},{"style":3338},[5945],{"type":2921,"value":5502},{"type":2916,"tag":2999,"props":5947,"children":5948},{"style":3338},[5949],{"type":2921,"value":5507},{"type":2916,"tag":2999,"props":5951,"children":5952},{"style":3338},[5953],{"type":2921,"value":5512},{"type":2916,"tag":2999,"props":5955,"children":5956},{"style":3338},[5957],{"type":2921,"value":5517},{"type":2916,"tag":2999,"props":5959,"children":5960},{"style":3338},[5961],{"type":2921,"value":5522},{"type":2916,"tag":2999,"props":5963,"children":5964},{"class":3079,"line":3254},[5965],{"type":2916,"tag":2999,"props":5966,"children":5967},{"style":3193},[5968],{"type":2921,"value":5407},{"type":2916,"tag":2999,"props":5970,"children":5971},{"class":3079,"line":3273},[5972],{"type":2916,"tag":2999,"props":5973,"children":5974},{"style":3187},[5975],{"type":2921,"value":5976},"  \u003Ctemplate #can>\n",{"type":2916,"tag":2999,"props":5978,"children":5979},{"class":3079,"line":3286},[5980],{"type":2916,"tag":2999,"props":5981,"children":5982},{"style":3187},[5983],{"type":2921,"value":5984},"    \u003Cbutton>Edit\u003C\u002Fbutton>\n",{"type":2916,"tag":2999,"props":5986,"children":5987},{"class":3079,"line":3303},[5988],{"type":2916,"tag":2999,"props":5989,"children":5990},{"style":3187},[5991],{"type":2921,"value":5992},"  \u003C\u002Ftemplate>\n",{"type":2916,"tag":2999,"props":5994,"children":5995},{"class":3079,"line":3320},[5996],{"type":2916,"tag":2999,"props":5997,"children":5998},{"emptyLinePlaceholder":1196},[5999],{"type":2921,"value":4369},{"type":2916,"tag":2999,"props":6001,"children":6002},{"class":3079,"line":3348},[6003],{"type":2916,"tag":2999,"props":6004,"children":6005},{"style":3187},[6006],{"type":2921,"value":6007},"  \u003Ctemplate #cannot>\n",{"type":2916,"tag":2999,"props":6009,"children":6010},{"class":3079,"line":3358},[6011],{"type":2916,"tag":2999,"props":6012,"children":6013},{"style":3187},[6014],{"type":2921,"value":6015},"    \u003Cp>You're not allowed to edit the post.\u003C\u002Fp>\n",{"type":2916,"tag":2999,"props":6017,"children":6018},{"class":3079,"line":3367},[6019],{"type":2916,"tag":2999,"props":6020,"children":6021},{"style":3187},[6022],{"type":2921,"value":5992},{"type":2916,"tag":2999,"props":6024,"children":6025},{"class":3079,"line":3376},[6026,6030,6034],{"type":2916,"tag":2999,"props":6027,"children":6028},{"style":3193},[6029],{"type":2921,"value":5558},{"type":2916,"tag":2999,"props":6031,"children":6032},{"style":3202},[6033],{"type":2921,"value":5821},{"type":2916,"tag":2999,"props":6035,"children":6036},{"style":3193},[6037],{"type":2921,"value":5407},{"type":2916,"tag":2923,"props":6039,"children":6040},{},[6041,6043,6049],{"type":2921,"value":6042},"All of these components accept a prop named ",{"type":2916,"tag":3074,"props":6044,"children":6046},{"className":6045},[],[6047],{"type":2921,"value":6048},"as",{"type":2921,"value":6050}," to define the HTML tag to render. By default, it's a renderless component.",{"type":2916,"tag":3067,"props":6052,"children":6054},{"className":5383,"code":6053,"language":5385,"meta":2866,"style":2866},"\u003CCan\n  :ability=\"editPost\"\n  :args=\"[post]\"\n  as=\"div\"\n>\n  \u003Cbutton>Edit\u003C\u002Fbutton>\n\u003C\u002FCan>\n",[6055],{"type":2916,"tag":3074,"props":6056,"children":6057},{"__ignoreMap":2866},[6058,6069,6096,6123,6148,6155,6163],{"type":2916,"tag":2999,"props":6059,"children":6060},{"class":3079,"line":2900},[6061,6065],{"type":2916,"tag":2999,"props":6062,"children":6063},{"style":3193},[6064],{"type":2921,"value":5397},{"type":2916,"tag":2999,"props":6066,"children":6067},{"style":3202},[6068],{"type":2921,"value":5420},{"type":2916,"tag":2999,"props":6070,"children":6071},{"class":3079,"line":2893},[6072,6076,6080,6084,6088,6092],{"type":2916,"tag":2999,"props":6073,"children":6074},{"style":3193},[6075],{"type":2921,"value":5872},{"type":2916,"tag":2999,"props":6077,"children":6078},{"style":3338},[6079],{"type":2921,"value":5877},{"type":2916,"tag":2999,"props":6081,"children":6082},{"style":3193},[6083],{"type":2921,"value":4330},{"type":2916,"tag":2999,"props":6085,"children":6086},{"style":3193},[6087],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":6089,"children":6090},{"style":3187},[6091],{"type":2921,"value":5442},{"type":2916,"tag":2999,"props":6093,"children":6094},{"style":3193},[6095],{"type":2921,"value":5447},{"type":2916,"tag":2999,"props":6097,"children":6098},{"class":3079,"line":2889},[6099,6103,6107,6111,6115,6119],{"type":2916,"tag":2999,"props":6100,"children":6101},{"style":3193},[6102],{"type":2921,"value":5872},{"type":2916,"tag":2999,"props":6104,"children":6105},{"style":3338},[6106],{"type":2921,"value":5905},{"type":2916,"tag":2999,"props":6108,"children":6109},{"style":3193},[6110],{"type":2921,"value":4330},{"type":2916,"tag":2999,"props":6112,"children":6113},{"style":3193},[6114],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":6116,"children":6117},{"style":3187},[6118],{"type":2921,"value":5468},{"type":2916,"tag":2999,"props":6120,"children":6121},{"style":3193},[6122],{"type":2921,"value":5447},{"type":2916,"tag":2999,"props":6124,"children":6125},{"class":3079,"line":3254},[6126,6131,6135,6139,6144],{"type":2916,"tag":2999,"props":6127,"children":6128},{"style":3338},[6129],{"type":2921,"value":6130},"  as",{"type":2916,"tag":2999,"props":6132,"children":6133},{"style":3193},[6134],{"type":2921,"value":4330},{"type":2916,"tag":2999,"props":6136,"children":6137},{"style":3193},[6138],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":6140,"children":6141},{"style":3089},[6142],{"type":2921,"value":6143},"div",{"type":2916,"tag":2999,"props":6145,"children":6146},{"style":3193},[6147],{"type":2921,"value":5447},{"type":2916,"tag":2999,"props":6149,"children":6150},{"class":3079,"line":3273},[6151],{"type":2916,"tag":2999,"props":6152,"children":6153},{"style":3193},[6154],{"type":2921,"value":5407},{"type":2916,"tag":2999,"props":6156,"children":6157},{"class":3079,"line":3286},[6158],{"type":2916,"tag":2999,"props":6159,"children":6160},{"style":3187},[6161],{"type":2921,"value":6162},"  \u003Cbutton>Edit\u003C\u002Fbutton>\n",{"type":2916,"tag":2999,"props":6164,"children":6165},{"class":3079,"line":3303},[6166,6170,6174],{"type":2916,"tag":2999,"props":6167,"children":6168},{"style":3193},[6169],{"type":2921,"value":5558},{"type":2916,"tag":2999,"props":6171,"children":6172},{"style":3202},[6173],{"type":2921,"value":5579},{"type":2916,"tag":2999,"props":6175,"children":6176},{"style":3193},[6177],{"type":2921,"value":5407},{"type":2916,"tag":2923,"props":6179,"children":6180},{},[6181],{"type":2921,"value":6182},"This will render:",{"type":2916,"tag":3067,"props":6184,"children":6188},{"className":6185,"code":6186,"language":6187,"meta":2866,"style":2866},"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",[6189],{"type":2916,"tag":3074,"props":6190,"children":6191},{"__ignoreMap":2866},[6192,6207,6238],{"type":2916,"tag":2999,"props":6193,"children":6194},{"class":3079,"line":2900},[6195,6199,6203],{"type":2916,"tag":2999,"props":6196,"children":6197},{"style":3193},[6198],{"type":2921,"value":5397},{"type":2916,"tag":2999,"props":6200,"children":6201},{"style":3202},[6202],{"type":2921,"value":6143},{"type":2916,"tag":2999,"props":6204,"children":6205},{"style":3193},[6206],{"type":2921,"value":5407},{"type":2916,"tag":2999,"props":6208,"children":6209},{"class":3079,"line":2893},[6210,6214,6218,6222,6226,6230,6234],{"type":2916,"tag":2999,"props":6211,"children":6212},{"style":3193},[6213],{"type":2921,"value":5415},{"type":2916,"tag":2999,"props":6215,"children":6216},{"style":3202},[6217],{"type":2921,"value":5543},{"type":2916,"tag":2999,"props":6219,"children":6220},{"style":3193},[6221],{"type":2921,"value":5548},{"type":2916,"tag":2999,"props":6223,"children":6224},{"style":3187},[6225],{"type":2921,"value":5553},{"type":2916,"tag":2999,"props":6227,"children":6228},{"style":3193},[6229],{"type":2921,"value":5558},{"type":2916,"tag":2999,"props":6231,"children":6232},{"style":3202},[6233],{"type":2921,"value":5543},{"type":2916,"tag":2999,"props":6235,"children":6236},{"style":3193},[6237],{"type":2921,"value":5407},{"type":2916,"tag":2999,"props":6239,"children":6240},{"class":3079,"line":2889},[6241,6245,6249],{"type":2916,"tag":2999,"props":6242,"children":6243},{"style":3193},[6244],{"type":2921,"value":5558},{"type":2916,"tag":2999,"props":6246,"children":6247},{"style":3202},[6248],{"type":2921,"value":6143},{"type":2916,"tag":2999,"props":6250,"children":6251},{"style":3193},[6252],{"type":2921,"value":5407},{"type":2916,"tag":2923,"props":6254,"children":6255},{},[6256],{"type":2921,"value":6257},"Instead of:",{"type":2916,"tag":3067,"props":6259,"children":6261},{"className":6185,"code":6260,"language":6187,"meta":2866,"style":2866},"\u003Cbutton>Edit\u003C\u002Fbutton>\n",[6262],{"type":2916,"tag":3074,"props":6263,"children":6264},{"__ignoreMap":2866},[6265],{"type":2916,"tag":2999,"props":6266,"children":6267},{"class":3079,"line":2900},[6268,6272,6276,6280,6284,6288,6292],{"type":2916,"tag":2999,"props":6269,"children":6270},{"style":3193},[6271],{"type":2921,"value":5397},{"type":2916,"tag":2999,"props":6273,"children":6274},{"style":3202},[6275],{"type":2921,"value":5543},{"type":2916,"tag":2999,"props":6277,"children":6278},{"style":3193},[6279],{"type":2921,"value":5548},{"type":2916,"tag":2999,"props":6281,"children":6282},{"style":3187},[6283],{"type":2921,"value":5553},{"type":2916,"tag":2999,"props":6285,"children":6286},{"style":3193},[6287],{"type":2921,"value":5558},{"type":2916,"tag":2999,"props":6289,"children":6290},{"style":3202},[6291],{"type":2921,"value":5543},{"type":2916,"tag":2999,"props":6293,"children":6294},{"style":3193},[6295],{"type":2921,"value":5407},{"type":2916,"tag":3715,"props":6297,"children":6299},{"id":6298},"multiple-abilities",[6300],{"type":2921,"value":6301},"Multiple abilities",{"type":2916,"tag":2923,"props":6303,"children":6304},{},[6305,6307,6312,6314,6319],{"type":2921,"value":6306},"If you possess multiple abilities, you can provide an array of abilities to the components. The component will render only if ",{"type":2916,"tag":4526,"props":6308,"children":6309},{},[6310],{"type":2921,"value":6311},"all",{"type":2921,"value":6313}," of the abilities ",{"type":2916,"tag":4526,"props":6315,"children":6316},{},[6317],{"type":2921,"value":6318},"match",{"type":2921,"value":6320}," the specified requirements of the component.",{"type":2916,"tag":3067,"props":6322,"children":6324},{"className":5383,"code":6323,"language":5385,"meta":2866,"style":2866},"\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",[6325],{"type":2916,"tag":3074,"props":6326,"children":6327},{"__ignoreMap":2866},[6328,6413,6420,6499,6506,6585,6592,6599,6607,6614,6621,6628,6636,6643],{"type":2916,"tag":2999,"props":6329,"children":6330},{"class":3079,"line":2900},[6331,6335,6339,6344,6348,6352,6356,6361,6365,6370,6374,6378,6382,6386,6390,6395,6399,6404,6408],{"type":2916,"tag":2999,"props":6332,"children":6333},{"style":3193},[6334],{"type":2921,"value":5397},{"type":2916,"tag":2999,"props":6336,"children":6337},{"style":3202},[6338],{"type":2921,"value":5579},{"type":2916,"tag":2999,"props":6340,"children":6341},{"style":3193},[6342],{"type":2921,"value":6343}," :",{"type":2916,"tag":2999,"props":6345,"children":6346},{"style":3338},[6347],{"type":2921,"value":5877},{"type":2916,"tag":2999,"props":6349,"children":6350},{"style":3193},[6351],{"type":2921,"value":4330},{"type":2916,"tag":2999,"props":6353,"children":6354},{"style":3193},[6355],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":6357,"children":6358},{"style":3187},[6359],{"type":2921,"value":6360},"[editPost",{"type":2916,"tag":2999,"props":6362,"children":6363},{"style":3193},[6364],{"type":2921,"value":3536},{"type":2916,"tag":2999,"props":6366,"children":6367},{"style":3187},[6368],{"type":2921,"value":6369}," deletePost]",{"type":2916,"tag":2999,"props":6371,"children":6372},{"style":3193},[6373],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":6375,"children":6376},{"style":3193},[6377],{"type":2921,"value":6343},{"type":2916,"tag":2999,"props":6379,"children":6380},{"style":3338},[6381],{"type":2921,"value":5905},{"type":2916,"tag":2999,"props":6383,"children":6384},{"style":3193},[6385],{"type":2921,"value":4330},{"type":2916,"tag":2999,"props":6387,"children":6388},{"style":3193},[6389],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":6391,"children":6392},{"style":3187},[6393],{"type":2921,"value":6394},"[[post]",{"type":2916,"tag":2999,"props":6396,"children":6397},{"style":3193},[6398],{"type":2921,"value":3536},{"type":2916,"tag":2999,"props":6400,"children":6401},{"style":3187},[6402],{"type":2921,"value":6403}," [post]]",{"type":2916,"tag":2999,"props":6405,"children":6406},{"style":3193},[6407],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":6409,"children":6410},{"style":3193},[6411],{"type":2921,"value":6412}," \u002F>\n",{"type":2916,"tag":2999,"props":6414,"children":6415},{"class":3079,"line":2893},[6416],{"type":2916,"tag":2999,"props":6417,"children":6418},{"emptyLinePlaceholder":1196},[6419],{"type":2921,"value":4369},{"type":2916,"tag":2999,"props":6421,"children":6422},{"class":3079,"line":2889},[6423,6427,6431,6435,6439,6443,6447,6451,6455,6459,6463,6467,6471,6475,6479,6483,6487,6491,6495],{"type":2916,"tag":2999,"props":6424,"children":6425},{"style":3193},[6426],{"type":2921,"value":5397},{"type":2916,"tag":2999,"props":6428,"children":6429},{"style":3202},[6430],{"type":2921,"value":5620},{"type":2916,"tag":2999,"props":6432,"children":6433},{"style":3193},[6434],{"type":2921,"value":6343},{"type":2916,"tag":2999,"props":6436,"children":6437},{"style":3338},[6438],{"type":2921,"value":5877},{"type":2916,"tag":2999,"props":6440,"children":6441},{"style":3193},[6442],{"type":2921,"value":4330},{"type":2916,"tag":2999,"props":6444,"children":6445},{"style":3193},[6446],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":6448,"children":6449},{"style":3187},[6450],{"type":2921,"value":6360},{"type":2916,"tag":2999,"props":6452,"children":6453},{"style":3193},[6454],{"type":2921,"value":3536},{"type":2916,"tag":2999,"props":6456,"children":6457},{"style":3187},[6458],{"type":2921,"value":6369},{"type":2916,"tag":2999,"props":6460,"children":6461},{"style":3193},[6462],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":6464,"children":6465},{"style":3193},[6466],{"type":2921,"value":6343},{"type":2916,"tag":2999,"props":6468,"children":6469},{"style":3338},[6470],{"type":2921,"value":5905},{"type":2916,"tag":2999,"props":6472,"children":6473},{"style":3193},[6474],{"type":2921,"value":4330},{"type":2916,"tag":2999,"props":6476,"children":6477},{"style":3193},[6478],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":6480,"children":6481},{"style":3187},[6482],{"type":2921,"value":6394},{"type":2916,"tag":2999,"props":6484,"children":6485},{"style":3193},[6486],{"type":2921,"value":3536},{"type":2916,"tag":2999,"props":6488,"children":6489},{"style":3187},[6490],{"type":2921,"value":6403},{"type":2916,"tag":2999,"props":6492,"children":6493},{"style":3193},[6494],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":6496,"children":6497},{"style":3193},[6498],{"type":2921,"value":6412},{"type":2916,"tag":2999,"props":6500,"children":6501},{"class":3079,"line":3254},[6502],{"type":2916,"tag":2999,"props":6503,"children":6504},{"emptyLinePlaceholder":1196},[6505],{"type":2921,"value":4369},{"type":2916,"tag":2999,"props":6507,"children":6508},{"class":3079,"line":3273},[6509,6513,6517,6521,6525,6529,6533,6537,6541,6545,6549,6553,6557,6561,6565,6569,6573,6577,6581],{"type":2916,"tag":2999,"props":6510,"children":6511},{"style":3193},[6512],{"type":2921,"value":5397},{"type":2916,"tag":2999,"props":6514,"children":6515},{"style":3202},[6516],{"type":2921,"value":5821},{"type":2916,"tag":2999,"props":6518,"children":6519},{"style":3193},[6520],{"type":2921,"value":6343},{"type":2916,"tag":2999,"props":6522,"children":6523},{"style":3338},[6524],{"type":2921,"value":5877},{"type":2916,"tag":2999,"props":6526,"children":6527},{"style":3193},[6528],{"type":2921,"value":4330},{"type":2916,"tag":2999,"props":6530,"children":6531},{"style":3193},[6532],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":6534,"children":6535},{"style":3187},[6536],{"type":2921,"value":6360},{"type":2916,"tag":2999,"props":6538,"children":6539},{"style":3193},[6540],{"type":2921,"value":3536},{"type":2916,"tag":2999,"props":6542,"children":6543},{"style":3187},[6544],{"type":2921,"value":6369},{"type":2916,"tag":2999,"props":6546,"children":6547},{"style":3193},[6548],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":6550,"children":6551},{"style":3193},[6552],{"type":2921,"value":6343},{"type":2916,"tag":2999,"props":6554,"children":6555},{"style":3338},[6556],{"type":2921,"value":5905},{"type":2916,"tag":2999,"props":6558,"children":6559},{"style":3193},[6560],{"type":2921,"value":4330},{"type":2916,"tag":2999,"props":6562,"children":6563},{"style":3193},[6564],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":6566,"children":6567},{"style":3187},[6568],{"type":2921,"value":6394},{"type":2916,"tag":2999,"props":6570,"children":6571},{"style":3193},[6572],{"type":2921,"value":3536},{"type":2916,"tag":2999,"props":6574,"children":6575},{"style":3187},[6576],{"type":2921,"value":6403},{"type":2916,"tag":2999,"props":6578,"children":6579},{"style":3193},[6580],{"type":2921,"value":5437},{"type":2916,"tag":2999,"props":6582,"children":6583},{"style":3193},[6584],{"type":2921,"value":5407},{"type":2916,"tag":2999,"props":6586,"children":6587},{"class":3079,"line":3286},[6588],{"type":2916,"tag":2999,"props":6589,"children":6590},{"style":3187},[6591],{"type":2921,"value":5976},{"type":2916,"tag":2999,"props":6593,"children":6594},{"class":3079,"line":3303},[6595],{"type":2916,"tag":2999,"props":6596,"children":6597},{"style":3187},[6598],{"type":2921,"value":5984},{"type":2916,"tag":2999,"props":6600,"children":6601},{"class":3079,"line":3320},[6602],{"type":2916,"tag":2999,"props":6603,"children":6604},{"style":3187},[6605],{"type":2921,"value":6606},"    \u003Cbutton>Delete\u003C\u002Fbutton>\n",{"type":2916,"tag":2999,"props":6608,"children":6609},{"class":3079,"line":3348},[6610],{"type":2916,"tag":2999,"props":6611,"children":6612},{"style":3187},[6613],{"type":2921,"value":5992},{"type":2916,"tag":2999,"props":6615,"children":6616},{"class":3079,"line":3358},[6617],{"type":2916,"tag":2999,"props":6618,"children":6619},{"emptyLinePlaceholder":1196},[6620],{"type":2921,"value":4369},{"type":2916,"tag":2999,"props":6622,"children":6623},{"class":3079,"line":3367},[6624],{"type":2916,"tag":2999,"props":6625,"children":6626},{"style":3187},[6627],{"type":2921,"value":6007},{"type":2916,"tag":2999,"props":6629,"children":6630},{"class":3079,"line":3376},[6631],{"type":2916,"tag":2999,"props":6632,"children":6633},{"style":3187},[6634],{"type":2921,"value":6635},"    \u003Cp>You're not allowed to edit or delete the post.\u003C\u002Fp>\n",{"type":2916,"tag":2999,"props":6637,"children":6638},{"class":3079,"line":3385},[6639],{"type":2916,"tag":2999,"props":6640,"children":6641},{"style":3187},[6642],{"type":2921,"value":5992},{"type":2916,"tag":2999,"props":6644,"children":6645},{"class":3079,"line":2905},[6646,6650,6654],{"type":2916,"tag":2999,"props":6647,"children":6648},{"style":3193},[6649],{"type":2921,"value":5558},{"type":2916,"tag":2999,"props":6651,"children":6652},{"style":3202},[6653],{"type":2921,"value":5821},{"type":2916,"tag":2999,"props":6655,"children":6656},{"style":3193},[6657],{"type":2921,"value":5407},{"type":2916,"tag":3020,"props":6659,"children":6661},{"id":6660},"contribution",[6662],{"type":2921,"value":1017},{"type":2916,"tag":6664,"props":6665,"children":6666},"details",{},[6667,6669,6675],{"type":2921,"value":6668},"\n  ",{"type":2916,"tag":6670,"props":6671,"children":6672},"summary",{},[6673],{"type":2921,"value":6674},"Local development",{"type":2916,"tag":3067,"props":6676,"children":6678},{"className":3069,"code":6677,"language":3071,"meta":2866,"style":2866},"# 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",[6679],{"type":2916,"tag":3074,"props":6680,"children":6681},{"__ignoreMap":2866},[6682,6690,6703,6710,6718,6735,6742,6750,6766,6773,6781,6797,6804,6812,6828,6835,6844,6861,6878,6886,6895],{"type":2916,"tag":2999,"props":6683,"children":6684},{"class":3079,"line":2900},[6685],{"type":2916,"tag":2999,"props":6686,"children":6687},{"style":3352},[6688],{"type":2921,"value":6689},"# Install dependencies\n",{"type":2916,"tag":2999,"props":6691,"children":6692},{"class":3079,"line":2893},[6693,6698],{"type":2916,"tag":2999,"props":6694,"children":6695},{"style":3083},[6696],{"type":2921,"value":6697},"npm",{"type":2916,"tag":2999,"props":6699,"children":6700},{"style":3089},[6701],{"type":2921,"value":6702}," install\n",{"type":2916,"tag":2999,"props":6704,"children":6705},{"class":3079,"line":2889},[6706],{"type":2916,"tag":2999,"props":6707,"children":6708},{"emptyLinePlaceholder":1196},[6709],{"type":2921,"value":4369},{"type":2916,"tag":2999,"props":6711,"children":6712},{"class":3079,"line":3254},[6713],{"type":2916,"tag":2999,"props":6714,"children":6715},{"style":3352},[6716],{"type":2921,"value":6717},"# Generate type stubs\n",{"type":2916,"tag":2999,"props":6719,"children":6720},{"class":3079,"line":3273},[6721,6725,6730],{"type":2916,"tag":2999,"props":6722,"children":6723},{"style":3083},[6724],{"type":2921,"value":6697},{"type":2916,"tag":2999,"props":6726,"children":6727},{"style":3089},[6728],{"type":2921,"value":6729}," run",{"type":2916,"tag":2999,"props":6731,"children":6732},{"style":3089},[6733],{"type":2921,"value":6734}," dev:prepare\n",{"type":2916,"tag":2999,"props":6736,"children":6737},{"class":3079,"line":3286},[6738],{"type":2916,"tag":2999,"props":6739,"children":6740},{"emptyLinePlaceholder":1196},[6741],{"type":2921,"value":4369},{"type":2916,"tag":2999,"props":6743,"children":6744},{"class":3079,"line":3303},[6745],{"type":2916,"tag":2999,"props":6746,"children":6747},{"style":3352},[6748],{"type":2921,"value":6749},"# Develop with the playground\n",{"type":2916,"tag":2999,"props":6751,"children":6752},{"class":3079,"line":3320},[6753,6757,6761],{"type":2916,"tag":2999,"props":6754,"children":6755},{"style":3083},[6756],{"type":2921,"value":6697},{"type":2916,"tag":2999,"props":6758,"children":6759},{"style":3089},[6760],{"type":2921,"value":6729},{"type":2916,"tag":2999,"props":6762,"children":6763},{"style":3089},[6764],{"type":2921,"value":6765}," dev\n",{"type":2916,"tag":2999,"props":6767,"children":6768},{"class":3079,"line":3348},[6769],{"type":2916,"tag":2999,"props":6770,"children":6771},{"emptyLinePlaceholder":1196},[6772],{"type":2921,"value":4369},{"type":2916,"tag":2999,"props":6774,"children":6775},{"class":3079,"line":3358},[6776],{"type":2916,"tag":2999,"props":6777,"children":6778},{"style":3352},[6779],{"type":2921,"value":6780},"# Build the playground\n",{"type":2916,"tag":2999,"props":6782,"children":6783},{"class":3079,"line":3367},[6784,6788,6792],{"type":2916,"tag":2999,"props":6785,"children":6786},{"style":3083},[6787],{"type":2921,"value":6697},{"type":2916,"tag":2999,"props":6789,"children":6790},{"style":3089},[6791],{"type":2921,"value":6729},{"type":2916,"tag":2999,"props":6793,"children":6794},{"style":3089},[6795],{"type":2921,"value":6796}," dev:build\n",{"type":2916,"tag":2999,"props":6798,"children":6799},{"class":3079,"line":3376},[6800],{"type":2916,"tag":2999,"props":6801,"children":6802},{"emptyLinePlaceholder":1196},[6803],{"type":2921,"value":4369},{"type":2916,"tag":2999,"props":6805,"children":6806},{"class":3079,"line":3385},[6807],{"type":2916,"tag":2999,"props":6808,"children":6809},{"style":3352},[6810],{"type":2921,"value":6811},"# Run ESLint\n",{"type":2916,"tag":2999,"props":6813,"children":6814},{"class":3079,"line":2905},[6815,6819,6823],{"type":2916,"tag":2999,"props":6816,"children":6817},{"style":3083},[6818],{"type":2921,"value":6697},{"type":2916,"tag":2999,"props":6820,"children":6821},{"style":3089},[6822],{"type":2921,"value":6729},{"type":2916,"tag":2999,"props":6824,"children":6825},{"style":3089},[6826],{"type":2921,"value":6827}," lint\n",{"type":2916,"tag":2999,"props":6829,"children":6830},{"class":3079,"line":3402},[6831],{"type":2916,"tag":2999,"props":6832,"children":6833},{"emptyLinePlaceholder":1196},[6834],{"type":2921,"value":4369},{"type":2916,"tag":2999,"props":6836,"children":6838},{"class":3079,"line":6837},16,[6839],{"type":2916,"tag":2999,"props":6840,"children":6841},{"style":3352},[6842],{"type":2921,"value":6843},"# Run Vitest\n",{"type":2916,"tag":2999,"props":6845,"children":6847},{"class":3079,"line":6846},17,[6848,6852,6856],{"type":2916,"tag":2999,"props":6849,"children":6850},{"style":3083},[6851],{"type":2921,"value":6697},{"type":2916,"tag":2999,"props":6853,"children":6854},{"style":3089},[6855],{"type":2921,"value":6729},{"type":2916,"tag":2999,"props":6857,"children":6858},{"style":3089},[6859],{"type":2921,"value":6860}," test\n",{"type":2916,"tag":2999,"props":6862,"children":6864},{"class":3079,"line":6863},18,[6865,6869,6873],{"type":2916,"tag":2999,"props":6866,"children":6867},{"style":3083},[6868],{"type":2921,"value":6697},{"type":2916,"tag":2999,"props":6870,"children":6871},{"style":3089},[6872],{"type":2921,"value":6729},{"type":2916,"tag":2999,"props":6874,"children":6875},{"style":3089},[6876],{"type":2921,"value":6877}," test:watch\n",{"type":2916,"tag":2999,"props":6879,"children":6881},{"class":3079,"line":6880},19,[6882],{"type":2916,"tag":2999,"props":6883,"children":6884},{"emptyLinePlaceholder":1196},[6885],{"type":2921,"value":4369},{"type":2916,"tag":2999,"props":6887,"children":6889},{"class":3079,"line":6888},20,[6890],{"type":2916,"tag":2999,"props":6891,"children":6892},{"style":3352},[6893],{"type":2921,"value":6894},"# Release new version\n",{"type":2916,"tag":2999,"props":6896,"children":6898},{"class":3079,"line":6897},21,[6899,6903,6907],{"type":2916,"tag":2999,"props":6900,"children":6901},{"style":3083},[6902],{"type":2921,"value":6697},{"type":2916,"tag":2999,"props":6904,"children":6905},{"style":3089},[6906],{"type":2921,"value":6729},{"type":2916,"tag":2999,"props":6908,"children":6909},{"style":3089},[6910],{"type":2921,"value":6911}," release\n",{"type":2916,"tag":3020,"props":6913,"children":6915},{"id":6914},"credits",[6916],{"type":2921,"value":6917},"Credits",{"type":2916,"tag":2923,"props":6919,"children":6920},{},[6921,6923,6930],{"type":2921,"value":6922},"This module, both code and design, is heavily inspired by the ",{"type":2916,"tag":2927,"props":6924,"children":6927},{"href":6925,"rel":6926},"https:\u002F\u002Fdocs.adonisjs.com\u002Fguides\u002Fsecurity\u002Fauthorization",[2931],[6928],{"type":2921,"value":6929},"Adonis Bouncer",{"type":2921,"value":6931},". It's a well written package and I think reinventing the wheel every time is unnecessary.",{"type":2916,"tag":3020,"props":6933,"children":6935},{"id":6934},"license",[6936],{"type":2921,"value":2954},{"type":2916,"tag":2923,"props":6938,"children":6939},{},[6940],{"type":2916,"tag":2927,"props":6941,"children":6943},{"href":6942},".\u002FLICENSE",[6944],{"type":2921,"value":6945},"MIT License",{"type":2916,"tag":6947,"props":6948,"children":6949},"style",{},[6950],{"type":2921,"value":6951},"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":2866,"searchDepth":2893,"depth":2893,"links":6953},[6954,6955,6956,6962,6963,6964],{"id":3022,"depth":2893,"text":395},{"id":3057,"depth":2893,"text":3060},{"id":3115,"depth":2893,"text":3118,"children":6957},[6958,6959,6960,6961],{"id":3134,"depth":2889,"text":3137},{"id":4253,"depth":2889,"text":4256},{"id":4652,"depth":2889,"text":4655},{"id":5372,"depth":2889,"text":5375},{"id":6660,"depth":2893,"text":1017},{"id":6914,"depth":2893,"text":6917},{"id":6934,"depth":2893,"text":2954}]