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