[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f30r277ag21rfj":3,"versions":3011,"module-auth-utils":3016},[4,1124,1971,2805],{"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,430,911,1003,1040,1082],{"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,360,383],{"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,356],{"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},"Module Dependencies","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F4.module-dependencies",{"title":345,"path":346,"stem":347,"titleTemplate":6},"Use Hooks & Extend Types","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F5.recipes-advanced",{"title":349,"path":350,"stem":351,"titleTemplate":6},"Test Your Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F6.testing",{"title":353,"path":354,"stem":355,"titleTemplate":6},"Follow Best Practices","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F7.best-practices",{"title":357,"path":358,"stem":359,"titleTemplate":6},"Publish & Share Your Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F8.ecosystem",{"title":361,"titleTemplate":362,"icon":363,"path":364,"stem":365,"children":366,"page":108},"Recipes","%s · Recipes","i-lucide-cooking-pot","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes","docs\u002F3.x\u002F3.guide\u002F5.recipes",[367,371,375,379],{"title":368,"path":369,"stem":370,"titleTemplate":6},"Custom Routing","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":372,"path":373,"stem":374,"titleTemplate":6},"Vite Plugins","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":376,"path":377,"stem":378,"titleTemplate":6},"Custom useFetch","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":380,"path":381,"stem":382,"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":384,"titleTemplate":385,"icon":386,"path":387,"stem":388,"children":389,"page":108},"Going Further","%s · Nuxt Advanced","i-lucide-star","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further","docs\u002F3.x\u002F3.guide\u002F6.going-further",[390,394,398,402,406,410,414,418,422,426],{"title":391,"path":392,"stem":393,"titleTemplate":6},"Custom Events","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":395,"path":396,"stem":397,"titleTemplate":6},"Experimental Features","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":399,"path":400,"stem":401,"titleTemplate":6},"Features","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":403,"path":404,"stem":405,"titleTemplate":6},"Runtime Config","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":407,"path":408,"stem":409,"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":411,"path":412,"stem":413,"titleTemplate":6},"Lifecycle Hooks","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":415,"path":416,"stem":417,"titleTemplate":6},"Nuxt Kit","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":419,"path":420,"stem":421,"titleTemplate":6},"NuxtApp","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":423,"path":424,"stem":425,"titleTemplate":6},"Authoring Nuxt Layers","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":427,"path":428,"stem":429,"titleTemplate":6},"Debugging","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":431,"titleTemplate":432,"icon":433,"path":434,"stem":435,"children":436,"page":108},"API","%s · Nuxt API","i-lucide-code-xml","\u002Fdocs\u002F3.x\u002Fapi","docs\u002F3.x\u002F4.api",[437,503,626,749,820,893,906],{"title":438,"titleTemplate":439,"icon":324,"path":440,"stem":441,"children":442,"page":108},"Components","%s · Nuxt Components","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents","docs\u002F3.x\u002F4.api\u002F1.components",[443,447,451,455,459,463,467,471,475,479,483,487,491,495,499],{"title":444,"path":445,"stem":446,"titleTemplate":6},"\u003CClientOnly>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":448,"path":449,"stem":450,"titleTemplate":6},"\u003CDevOnly>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":452,"path":453,"stem":454,"titleTemplate":6},"\u003CNuxtClientFallback>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":456,"path":457,"stem":458,"titleTemplate":6},"\u003CNuxtPicture>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F3.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":460,"path":461,"stem":462,"titleTemplate":6},"\u003CTeleport>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F3.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":464,"path":465,"stem":466,"titleTemplate":6},"\u003CNuxtRouteAnnouncer>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F3.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":468,"path":469,"stem":470,"titleTemplate":6},"\u003CNuxtTime>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F3.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":472,"path":473,"stem":474,"titleTemplate":6},"\u003CNuxtPage>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F3.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":476,"path":477,"stem":478,"titleTemplate":6},"\u003CNuxtLayout>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F3.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":480,"path":481,"stem":482,"titleTemplate":6},"\u003CNuxtLink>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F3.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":484,"path":485,"stem":486,"titleTemplate":6},"\u003CNuxtLoadingIndicator>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F3.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":488,"path":489,"stem":490,"titleTemplate":6},"\u003CNuxtErrorBoundary>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F3.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":492,"path":493,"stem":494,"titleTemplate":6},"\u003CNuxtWelcome>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F3.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":496,"path":497,"stem":498,"titleTemplate":6},"\u003CNuxtIsland>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F3.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":500,"path":501,"stem":502,"titleTemplate":6},"\u003CNuxtImg>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F3.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":504,"titleTemplate":505,"icon":506,"path":507,"stem":508,"children":509,"page":108},"Composables","%s · Nuxt Composables","i-lucide-arrow-left-right","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables","docs\u002F3.x\u002F4.api\u002F2.composables",[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,622],{"title":511,"path":512,"stem":513,"titleTemplate":6},"onPrehydrate","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":515,"path":516,"stem":517,"titleTemplate":6},"useAppConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":519,"path":520,"stem":521,"titleTemplate":6},"useAsyncData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":523,"path":524,"stem":525,"titleTemplate":6},"useCookie","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":527,"path":528,"stem":529,"titleTemplate":6},"useError","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":531,"path":532,"stem":533,"titleTemplate":6},"useFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":535,"path":536,"stem":537,"titleTemplate":6},"useHead","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":539,"path":540,"stem":541,"titleTemplate":6},"useHeadSafe","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":543,"path":544,"stem":545,"titleTemplate":6},"useHydration","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":547,"path":548,"stem":549,"titleTemplate":6},"useLazyAsyncData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":551,"path":552,"stem":553,"titleTemplate":6},"useLazyFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":555,"path":556,"stem":557,"titleTemplate":6},"useLoadingIndicator","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":559,"path":560,"stem":561,"titleTemplate":6},"useNuxtApp","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":563,"path":564,"stem":565,"titleTemplate":6},"useNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":567,"path":568,"stem":569,"titleTemplate":6},"usePreviewMode","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":571,"path":572,"stem":573,"titleTemplate":6},"useRequestEvent","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":575,"path":576,"stem":577,"titleTemplate":6},"useRequestFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":579,"path":580,"stem":581,"titleTemplate":6},"useRequestHeader","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":583,"path":584,"stem":585,"titleTemplate":6},"useRequestHeaders","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":587,"path":588,"stem":589,"titleTemplate":6},"useRequestURL","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":591,"path":592,"stem":593,"titleTemplate":6},"useResponseHeader","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":595,"path":596,"stem":597,"titleTemplate":6},"useRoute","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":599,"path":600,"stem":601,"titleTemplate":6},"useRouteAnnouncer","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":603,"path":604,"stem":605,"titleTemplate":6},"useRouter","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":607,"path":608,"stem":609,"titleTemplate":6},"useRuntimeConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":611,"path":612,"stem":613,"titleTemplate":6},"useRuntimeHook","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":615,"path":616,"stem":617,"titleTemplate":6},"useSeoMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":619,"path":620,"stem":621,"titleTemplate":6},"useServerSeoMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":623,"path":624,"stem":625,"titleTemplate":6},"useState","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":627,"titleTemplate":628,"icon":629,"path":630,"stem":631,"children":632,"page":108},"Utils","%s · Nuxt Utils","i-lucide-square-function","\u002Fdocs\u002F3.x\u002Fapi\u002Futils","docs\u002F3.x\u002F4.api\u002F3.utils",[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,745],{"title":634,"path":635,"stem":636,"titleTemplate":6},"$fetch","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F3.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":638,"path":639,"stem":640,"titleTemplate":6},"abortNavigation","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":642,"path":643,"stem":644,"titleTemplate":6},"addRouteMiddleware","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":646,"path":647,"stem":648,"titleTemplate":6},"callOnce","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":650,"path":651,"stem":652,"titleTemplate":6},"clearError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":654,"path":655,"stem":656,"titleTemplate":6},"clearNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":658,"path":659,"stem":660,"titleTemplate":6},"clearNuxtState","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":662,"path":663,"stem":664,"titleTemplate":6},"createError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":666,"path":667,"stem":668,"titleTemplate":6},"defineLazyHydrationComponent","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":670,"path":671,"stem":672,"titleTemplate":6},"defineNuxtComponent","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":674,"path":675,"stem":676,"titleTemplate":6},"defineNuxtPlugin","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":678,"path":679,"stem":680,"titleTemplate":6},"defineNuxtRouteMiddleware","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":682,"path":683,"stem":684,"titleTemplate":6},"definePageMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":686,"path":687,"stem":688,"titleTemplate":6},"defineRouteRules","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":690,"path":691,"stem":692,"titleTemplate":6},"navigateTo","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":694,"path":695,"stem":696,"titleTemplate":6},"onBeforeRouteLeave","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":698,"path":699,"stem":700,"titleTemplate":6},"onBeforeRouteUpdate","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":702,"path":703,"stem":704,"titleTemplate":6},"onNuxtReady","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":706,"path":707,"stem":708,"titleTemplate":6},"prefetchComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":710,"path":711,"stem":712,"titleTemplate":6},"preloadComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":714,"path":715,"stem":716,"titleTemplate":6},"preloadRouteComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":718,"path":719,"stem":720,"titleTemplate":6},"prerenderRoutes","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":722,"path":723,"stem":724,"titleTemplate":6},"refreshCookie","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F3.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":726,"path":727,"stem":728,"titleTemplate":6},"refreshNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F3.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":730,"path":731,"stem":732,"titleTemplate":6},"reloadNuxtApp","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F3.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":734,"path":735,"stem":736,"titleTemplate":6},"setPageLayout","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":738,"path":739,"stem":740,"titleTemplate":6},"setResponseStatus","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":742,"path":743,"stem":744,"titleTemplate":6},"showError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":746,"path":747,"stem":748,"titleTemplate":6},"updateAppConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":750,"titleTemplate":751,"icon":752,"path":753,"stem":754,"children":755,"page":108},"Commands","%s · Nuxt Commands","i-lucide-square-terminal","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands","docs\u002F3.x\u002F4.api\u002F4.commands",[756,760,764,768,772,776,780,784,788,792,796,800,804,808,812,816],{"title":757,"path":758,"stem":759,"titleTemplate":6},"nuxt add","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fadd",{"title":761,"path":762,"stem":763,"titleTemplate":6},"nuxt analyze","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":765,"path":766,"stem":767,"titleTemplate":6},"nuxt build","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":769,"path":770,"stem":771,"titleTemplate":6},"nuxt build-module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":773,"path":774,"stem":775,"titleTemplate":6},"nuxt cleanup","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":777,"path":778,"stem":779,"titleTemplate":6},"nuxt dev","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdev",{"title":781,"path":782,"stem":783,"titleTemplate":6},"nuxt devtools","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":785,"path":786,"stem":787,"titleTemplate":6},"nuxt generate","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":789,"path":790,"stem":791,"titleTemplate":6},"nuxt info","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finfo",{"title":793,"path":794,"stem":795,"titleTemplate":6},"create nuxt","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finit",{"title":797,"path":798,"stem":799,"titleTemplate":6},"nuxt module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":801,"path":802,"stem":803,"titleTemplate":6},"nuxt prepare","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":805,"path":806,"stem":807,"titleTemplate":6},"nuxt preview","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":809,"path":810,"stem":811,"titleTemplate":6},"nuxt test","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftest",{"title":813,"path":814,"stem":815,"titleTemplate":6},"nuxt typecheck","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":817,"path":818,"stem":819,"titleTemplate":6},"nuxt upgrade","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":415,"titleTemplate":821,"icon":822,"path":823,"stem":824,"children":825,"page":108},"%s · Nuxt Kit","i-lucide-package","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit","docs\u002F3.x\u002F4.api\u002F5.kit",[826,829,832,836,840,844,848,852,856,859,863,867,870,873,877,881,885,889],{"title":276,"path":827,"stem":828,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F3.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":403,"path":830,"stem":831,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":833,"path":834,"stem":835,"titleTemplate":6},"Templates","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":837,"path":838,"stem":839,"titleTemplate":6},"Nitro","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F3.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":841,"path":842,"stem":843,"titleTemplate":6},"Resolving","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F3.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":845,"path":846,"stem":847,"titleTemplate":6},"Logging","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F3.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":849,"path":850,"stem":851,"titleTemplate":6},"Builder","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F3.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":853,"path":854,"stem":855,"titleTemplate":6},"Examples","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F3.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":857,"stem":858,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F3.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":860,"path":861,"stem":862,"titleTemplate":6},"Programmatic Usage","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F3.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":864,"path":865,"stem":866,"titleTemplate":6},"Compatibility","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F3.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":868,"stem":869,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F3.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":438,"path":871,"stem":872,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F3.x\u002F4.api\u002F5.kit\u002F5.components",{"title":874,"path":875,"stem":876,"titleTemplate":6},"Context","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F3.x\u002F4.api\u002F5.kit\u002F6.context",{"title":878,"path":879,"stem":880,"titleTemplate":6},"Pages","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F3.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":882,"path":883,"stem":884,"titleTemplate":6},"Layout","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F3.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":886,"path":887,"stem":888,"titleTemplate":6},"Head","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.head",{"title":890,"path":891,"stem":892,"titleTemplate":6},"Plugins","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":894,"titleTemplate":6,"icon":895,"path":896,"stem":897,"children":898,"page":108},"Advanced","i-lucide-brain","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced","docs\u002F3.x\u002F4.api\u002F6.advanced",[899,902],{"title":411,"path":900,"stem":901,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":903,"path":904,"stem":905,"titleTemplate":6},"Import meta","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":907,"path":908,"stem":909,"titleTemplate":910,"icon":32},"Nuxt Configuration","\u002Fdocs\u002F3.x\u002Fapi\u002Fnuxt-config","docs\u002F3.x\u002F4.api\u002F6.nuxt-config","%s",{"title":853,"titleTemplate":912,"icon":913,"path":914,"stem":915,"children":916,"page":108},"%s · Nuxt Examples","i-lucide-app-window-mac","\u002Fdocs\u002F3.x\u002Fexamples","docs\u002F3.x\u002F4.examples",[917,921,943,958,994],{"title":918,"path":919,"stem":920,"titleTemplate":6},"Hello World","\u002Fdocs\u002F3.x\u002Fexamples\u002Fhello-world","docs\u002F3.x\u002F4.examples\u002F0.hello-world",{"title":399,"path":922,"stem":923,"children":924,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures","docs\u002F3.x\u002F4.examples\u002F1.features",[925,929,932,935,939],{"title":926,"path":927,"stem":928,"titleTemplate":6},"Auto Imports","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F3.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":930,"stem":931,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F3.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":933,"stem":934,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F3.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":936,"path":937,"stem":938,"titleTemplate":6},"Meta Tags","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F3.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":940,"path":941,"stem":942,"titleTemplate":6},"Layouts","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F3.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":944,"stem":945,"children":946,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting","docs\u002F3.x\u002F4.examples\u002F2.routing",[947,951,954],{"title":948,"path":949,"stem":950,"titleTemplate":6},"Middleware","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":878,"path":952,"stem":953,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":955,"path":956,"stem":957,"titleTemplate":6},"Universal Router","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":894,"path":959,"stem":960,"children":961,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced","docs\u002F3.x\u002F4.examples\u002F4.advanced",[962,965,968,972,976,980,984,987,990],{"title":84,"path":963,"stem":964,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":966,"stem":967,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":969,"path":970,"stem":971,"titleTemplate":6},"JSX \u002F TSX","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":973,"path":974,"stem":975,"titleTemplate":6},"Locale","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":977,"path":978,"stem":979,"titleTemplate":6},"Module Extend Pages","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":981,"path":982,"stem":983,"titleTemplate":6},"Teleport","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":985,"stem":986,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":523,"path":988,"stem":989,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":991,"path":992,"stem":993,"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":995,"path":996,"stem":997,"children":998,"page":108},"Experimental","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental","docs\u002F3.x\u002F4.examples\u002F7.experimental",[999],{"title":1000,"path":1001,"stem":1002,"titleTemplate":6},"WASM","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F3.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1004,"titleTemplate":1005,"icon":1006,"path":1007,"stem":1008,"children":1009,"page":108},"Community","%s · Nuxt Community","i-lucide-messages-square","\u002Fdocs\u002F3.x\u002Fcommunity","docs\u002F3.x\u002F5.community",[1010,1015,1020,1025,1030,1035],{"title":1011,"path":1012,"stem":1013,"titleTemplate":6,"icon":1014},"Getting Help","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fgetting-help","docs\u002F3.x\u002F5.community\u002F2.getting-help","i-lucide-life-buoy",{"title":1016,"path":1017,"stem":1018,"titleTemplate":6,"icon":1019},"Reporting Bugs","\u002Fdocs\u002F3.x\u002Fcommunity\u002Freporting-bugs","docs\u002F3.x\u002F5.community\u002F3.reporting-bugs","i-lucide-bug",{"title":1021,"path":1022,"stem":1023,"titleTemplate":6,"icon":1024},"Contribution","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fcontribution","docs\u002F3.x\u002F5.community\u002F4.contribution","i-lucide-git-pull-request",{"title":1026,"path":1027,"stem":1028,"titleTemplate":6,"icon":1029},"Framework","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fframework-contribution","docs\u002F3.x\u002F5.community\u002F5.framework-contribution","i-lucide-github",{"title":1031,"path":1032,"stem":1033,"titleTemplate":6,"icon":1034},"Roadmap","\u002Fdocs\u002F3.x\u002Fcommunity\u002Froadmap","docs\u002F3.x\u002F5.community\u002F6.roadmap","i-lucide-map",{"title":1036,"path":1037,"stem":1038,"titleTemplate":6,"icon":1039},"Releases","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fchangelog","docs\u002F3.x\u002F5.community\u002F7.changelog","i-lucide-bell-dot",{"title":1041,"titleTemplate":1042,"icon":1043,"path":1044,"stem":1045,"children":1046,"page":108},"Migrate to Nuxt Bridge","Migrate to Nuxt Bridge: %s","i-lucide-ship","\u002Fdocs\u002F3.x\u002Fbridge","docs\u002F3.x\u002F6.bridge",[1047,1051,1054,1057,1061,1065,1069,1072,1075,1078],{"title":1048,"path":1049,"stem":1050,"titleTemplate":6},"Overview","\u002Fdocs\u002F3.x\u002Fbridge\u002Foverview","docs\u002F3.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1052,"stem":1053,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fconfiguration","docs\u002F3.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1055,"stem":1056,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Ftypescript","docs\u002F3.x\u002F6.bridge\u002F2.typescript",{"title":1058,"path":1059,"stem":1060,"titleTemplate":6},"Legacy Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F3.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1062,"path":1063,"stem":1064,"titleTemplate":6},"Plugins and Middleware","\u002Fdocs\u002F3.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F3.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1066,"path":1067,"stem":1068,"titleTemplate":6},"New Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F3.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":936,"path":1070,"stem":1071,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fmeta","docs\u002F3.x\u002F6.bridge\u002F6.meta",{"title":403,"path":1073,"stem":1074,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fruntime-config","docs\u002F3.x\u002F6.bridge\u002F7.runtime-config",{"title":837,"path":1076,"stem":1077,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fnitro","docs\u002F3.x\u002F6.bridge\u002F8.nitro",{"title":1079,"path":1080,"stem":1081,"titleTemplate":6},"Vite","\u002Fdocs\u002F3.x\u002Fbridge\u002Fvite","docs\u002F3.x\u002F6.bridge\u002F9.vite",{"title":1083,"titleTemplate":1084,"icon":107,"path":1085,"stem":1086,"children":1087,"page":108},"Migrate to Nuxt 3","Migrate to Nuxt 3: %s","\u002Fdocs\u002F3.x\u002Fmigration","docs\u002F3.x\u002F7.migration",[1088,1091,1095,1098,1101,1104,1107,1110,1113,1117,1121],{"title":1048,"path":1089,"stem":1090,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Foverview","docs\u002F3.x\u002F7.migration\u002F1.overview",{"title":1092,"path":1093,"stem":1094,"titleTemplate":6},"Build Tooling","\u002Fdocs\u002F3.x\u002Fmigration\u002Fbundling","docs\u002F3.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1096,"stem":1097,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fserver","docs\u002F3.x\u002F7.migration\u002F11.server",{"title":29,"path":1099,"stem":1100,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fconfiguration","docs\u002F3.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1102,"stem":1103,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmodule-authors","docs\u002F3.x\u002F7.migration\u002F20.module-authors",{"title":926,"path":1105,"stem":1106,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fauto-imports","docs\u002F3.x\u002F7.migration\u002F3.auto-imports",{"title":936,"path":1108,"stem":1109,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmeta","docs\u002F3.x\u002F7.migration\u002F4.meta",{"title":1062,"path":1111,"stem":1112,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F3.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1114,"path":1115,"stem":1116,"titleTemplate":6},"Pages and Layouts","\u002Fdocs\u002F3.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F3.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1118,"path":1119,"stem":1120,"titleTemplate":6},"Component Options","\u002Fdocs\u002F3.x\u002Fmigration\u002Fcomponent-options","docs\u002F3.x\u002F7.migration\u002F7.component-options",{"title":403,"path":1122,"stem":1123,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fruntime-config","docs\u002F3.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1125,"stem":1126,"children":1127,"page":108},"\u002Fdocs\u002F4.x","docs\u002F4.x",[1128,1186,1280,1419,1801,1878,1900,1934],{"title":12,"titleTemplate":13,"icon":14,"path":1129,"stem":1130,"children":1131,"page":108},"\u002Fdocs\u002F4.x\u002Fgetting-started","docs\u002F4.x\u002F1.getting-started",[1132,1135,1138,1141,1144,1147,1150,1153,1156,1159,1162,1165,1168,1171,1174,1177,1180,1183],{"title":19,"path":1133,"stem":1134,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fintroduction","docs\u002F4.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1136,"stem":1137,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Finstallation","docs\u002F4.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1139,"stem":1140,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fconfiguration","docs\u002F4.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":1142,"stem":1143,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fviews","docs\u002F4.x\u002F1.getting-started\u002F04.views",{"title":39,"path":1145,"stem":1146,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fassets","docs\u002F4.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":1148,"stem":1149,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstyling","docs\u002F4.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":1151,"stem":1152,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Frouting","docs\u002F4.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":1154,"stem":1155,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fseo-meta","docs\u002F4.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":1157,"stem":1158,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftransitions","docs\u002F4.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":1160,"stem":1161,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F4.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":1163,"stem":1164,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstate-management","docs\u002F4.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":1166,"stem":1167,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ferror-handling","docs\u002F4.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":1169,"stem":1170,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fserver","docs\u002F4.x\u002F1.getting-started\u002F13.server",{"title":84,"path":1172,"stem":1173,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Flayers","docs\u002F4.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":1175,"stem":1176,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fprerendering","docs\u002F4.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":1178,"stem":1179,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdeployment","docs\u002F4.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":1181,"stem":1182,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftesting","docs\u002F4.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":1184,"stem":1185,"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":1187,"stem":1188,"children":1189,"page":108},"\u002Fdocs\u002F4.x\u002Fdirectory-structure","docs\u002F4.x\u002F2.directory-structure",[1190,1193,1196,1238,1241,1244,1247,1250,1253,1256,1259,1262,1265,1268,1271,1274,1277],{"title":117,"path":1191,"stem":1192,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F4.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":1194,"stem":1195,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Foutput","docs\u002F4.x\u002F2.directory-structure\u002F0.output",{"title":1197,"titleTemplate":111,"head":1198,"defaultOpen":1200,"icon":1201,"path":1202,"stem":1203,"children":1204,"page":108},"app",{"title":1199},"app\u002F",true,"i-vscode-icons-folder-type-app","\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app",[1205,1208,1211,1214,1217,1220,1223,1226,1229,1232,1235],{"title":127,"path":1206,"stem":1207,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":1209,"stem":1210,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":1212,"stem":1213,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":1215,"stem":1216,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":1218,"stem":1219,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":1221,"stem":1222,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":1224,"stem":1225,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":1227,"stem":1228,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":1230,"stem":1231,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":1233,"stem":1234,"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":1236,"stem":1237,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":1239,"stem":1240,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fcontent","docs\u002F4.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":1242,"stem":1243,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Flayers","docs\u002F4.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":1245,"stem":1246,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fmodules","docs\u002F4.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":1248,"stem":1249,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F4.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":1251,"stem":1252,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpublic","docs\u002F4.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":1254,"stem":1255,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fserver","docs\u002F4.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":1257,"stem":1258,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fshared","docs\u002F4.x\u002F2.directory-structure\u002F1.shared",{"title":200,"path":1260,"stem":1261,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fenv","docs\u002F4.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":1263,"stem":1264,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F4.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":1266,"stem":1267,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":1269,"stem":1270,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":1272,"stem":1273,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F4.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":1275,"stem":1276,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpackage","docs\u002F4.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":1278,"stem":1279,"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":1281,"stem":1282,"children":1283,"page":108},"\u002Fdocs\u002F4.x\u002Fguide","docs\u002F4.x\u002F3.guide",[1284,1309,1327,1337,1365,1381],{"title":253,"titleTemplate":254,"icon":255,"path":1285,"stem":1286,"children":1287,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts","docs\u002F4.x\u002F3.guide\u002F1.concepts",[1288,1291,1294,1297,1300,1303,1306],{"title":260,"path":1289,"stem":1290,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":1292,"stem":1293,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":1295,"stem":1296,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":1298,"stem":1299,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":1301,"stem":1302,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":1304,"stem":1305,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":1307,"stem":1308,"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":1310,"stem":1311,"children":1312,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F2.best-practices",[1313,1317,1321,1324],{"title":1314,"path":1315,"stem":1316,"titleTemplate":6},"Dev Containers","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fdevcontainers","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fdevcontainers",{"title":1318,"path":1319,"stem":1320,"titleTemplate":6},"Nuxt and Hydration","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":1322,"stem":1323,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":1325,"stem":1326,"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":1328,"stem":1329,"children":1330,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai","docs\u002F4.x\u002F3.guide\u002F3.ai",[1331,1334],{"title":314,"path":1332,"stem":1333,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F4.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":1335,"stem":1336,"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":1338,"stem":1339,"children":1340,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F4.modules",[1341,1344,1347,1350,1353,1356,1359,1362],{"title":329,"path":1342,"stem":1343,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":1345,"stem":1346,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":1348,"stem":1349,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":1351,"stem":1352,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F4.module-dependencies",{"title":345,"path":1354,"stem":1355,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F5.recipes-advanced",{"title":349,"path":1357,"stem":1358,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F6.testing",{"title":353,"path":1360,"stem":1361,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F7.best-practices",{"title":357,"path":1363,"stem":1364,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F8.ecosystem",{"title":361,"titleTemplate":362,"icon":363,"path":1366,"stem":1367,"children":1368,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes","docs\u002F4.x\u002F3.guide\u002F5.recipes",[1369,1372,1375,1378],{"title":368,"path":1370,"stem":1371,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":372,"path":1373,"stem":1374,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":376,"path":1376,"stem":1377,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":380,"path":1379,"stem":1380,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":384,"titleTemplate":385,"icon":386,"path":1382,"stem":1383,"children":1384,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further","docs\u002F4.x\u002F3.guide\u002F6.going-further",[1385,1388,1391,1394,1397,1400,1403,1406,1409,1412,1416],{"title":391,"path":1386,"stem":1387,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":395,"path":1389,"stem":1390,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":399,"path":1392,"stem":1393,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":403,"path":1395,"stem":1396,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":407,"path":1398,"stem":1399,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":411,"path":1401,"stem":1402,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":415,"path":1404,"stem":1405,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":419,"path":1407,"stem":1408,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":423,"path":1410,"stem":1411,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":1413,"path":1414,"stem":1415,"titleTemplate":6},"Creating a Builder","\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fbuilders","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F8.builders",{"title":427,"path":1417,"stem":1418,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":431,"titleTemplate":432,"icon":433,"path":1420,"stem":1421,"children":1422,"page":108},"\u002Fdocs\u002F4.x\u002Fapi","docs\u002F4.x\u002F4.api",[1423,1476,1583,1674,1726,1788,1798],{"title":438,"titleTemplate":439,"icon":324,"path":1424,"stem":1425,"children":1426,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F1.components",[1427,1430,1433,1436,1439,1442,1445,1448,1452,1455,1458,1461,1464,1467,1470,1473],{"title":444,"path":1428,"stem":1429,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":448,"path":1431,"stem":1432,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":452,"path":1434,"stem":1435,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":456,"path":1437,"stem":1438,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F4.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":460,"path":1440,"stem":1441,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F4.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":464,"path":1443,"stem":1444,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":468,"path":1446,"stem":1447,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F4.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1449,"path":1450,"stem":1451,"titleTemplate":6},"\u003CNuxtAnnouncer>","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":472,"path":1453,"stem":1454,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F4.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":476,"path":1456,"stem":1457,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F4.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":480,"path":1459,"stem":1460,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F4.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":484,"path":1462,"stem":1463,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F4.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":488,"path":1465,"stem":1466,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F4.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":492,"path":1468,"stem":1469,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F4.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":496,"path":1471,"stem":1472,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F4.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":500,"path":1474,"stem":1475,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F4.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":504,"titleTemplate":505,"icon":506,"path":1477,"stem":1478,"children":1479,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables","docs\u002F4.x\u002F4.api\u002F2.composables",[1480,1484,1488,1491,1495,1498,1501,1504,1507,1510,1513,1516,1519,1523,1526,1529,1532,1535,1538,1541,1544,1547,1550,1553,1556,1559,1562,1565,1568,1571,1574,1577,1580],{"title":1481,"path":1482,"stem":1483,"titleTemplate":6},"createUseAsyncData","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1485,"path":1486,"stem":1487,"titleTemplate":6},"createUseFetch","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":511,"path":1489,"stem":1490,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1492,"path":1493,"stem":1494,"titleTemplate":6},"useAnnouncer","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":515,"path":1496,"stem":1497,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":519,"path":1499,"stem":1500,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":523,"path":1502,"stem":1503,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":527,"path":1505,"stem":1506,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":531,"path":1508,"stem":1509,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":535,"path":1511,"stem":1512,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":539,"path":1514,"stem":1515,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":543,"path":1517,"stem":1518,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":1520,"path":1521,"stem":1522,"titleTemplate":6},"useLayout","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-layout","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-layout",{"title":547,"path":1524,"stem":1525,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":551,"path":1527,"stem":1528,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":555,"path":1530,"stem":1531,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":559,"path":1533,"stem":1534,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":563,"path":1536,"stem":1537,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":567,"path":1539,"stem":1540,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":571,"path":1542,"stem":1543,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":575,"path":1545,"stem":1546,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":579,"path":1548,"stem":1549,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":583,"path":1551,"stem":1552,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":587,"path":1554,"stem":1555,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":591,"path":1557,"stem":1558,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":595,"path":1560,"stem":1561,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":599,"path":1563,"stem":1564,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":603,"path":1566,"stem":1567,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":607,"path":1569,"stem":1570,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":611,"path":1572,"stem":1573,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":615,"path":1575,"stem":1576,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":619,"path":1578,"stem":1579,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":623,"path":1581,"stem":1582,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":627,"titleTemplate":628,"icon":629,"path":1584,"stem":1585,"children":1586,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils","docs\u002F4.x\u002F4.api\u002F3.utils",[1587,1590,1593,1596,1599,1602,1605,1608,1611,1614,1617,1620,1623,1626,1629,1632,1635,1638,1641,1644,1647,1650,1653,1656,1659,1662,1665,1668,1671],{"title":634,"path":1588,"stem":1589,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F4.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":638,"path":1591,"stem":1592,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":642,"path":1594,"stem":1595,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":646,"path":1597,"stem":1598,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":650,"path":1600,"stem":1601,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":654,"path":1603,"stem":1604,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":658,"path":1606,"stem":1607,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":662,"path":1609,"stem":1610,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":666,"path":1612,"stem":1613,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":670,"path":1615,"stem":1616,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":674,"path":1618,"stem":1619,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":678,"path":1621,"stem":1622,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":682,"path":1624,"stem":1625,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":686,"path":1627,"stem":1628,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":690,"path":1630,"stem":1631,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":694,"path":1633,"stem":1634,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":698,"path":1636,"stem":1637,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":702,"path":1639,"stem":1640,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":706,"path":1642,"stem":1643,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":710,"path":1645,"stem":1646,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":714,"path":1648,"stem":1649,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":718,"path":1651,"stem":1652,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":722,"path":1654,"stem":1655,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":726,"path":1657,"stem":1658,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":730,"path":1660,"stem":1661,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F4.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":734,"path":1663,"stem":1664,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":738,"path":1666,"stem":1667,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":742,"path":1669,"stem":1670,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":746,"path":1672,"stem":1673,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":750,"titleTemplate":751,"icon":752,"path":1675,"stem":1676,"children":1677,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands","docs\u002F4.x\u002F4.api\u002F4.commands",[1678,1681,1684,1687,1690,1693,1696,1699,1702,1705,1708,1711,1714,1717,1720,1723],{"title":757,"path":1679,"stem":1680,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fadd",{"title":761,"path":1682,"stem":1683,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":765,"path":1685,"stem":1686,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":769,"path":1688,"stem":1689,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":773,"path":1691,"stem":1692,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":777,"path":1694,"stem":1695,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdev",{"title":781,"path":1697,"stem":1698,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":785,"path":1700,"stem":1701,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":789,"path":1703,"stem":1704,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finfo",{"title":793,"path":1706,"stem":1707,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finit",{"title":797,"path":1709,"stem":1710,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":801,"path":1712,"stem":1713,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":805,"path":1715,"stem":1716,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":809,"path":1718,"stem":1719,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftest",{"title":813,"path":1721,"stem":1722,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":817,"path":1724,"stem":1725,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":415,"titleTemplate":821,"icon":822,"path":1727,"stem":1728,"children":1729,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit","docs\u002F4.x\u002F4.api\u002F5.kit",[1730,1733,1736,1739,1743,1746,1749,1752,1755,1758,1761,1764,1767,1770,1773,1776,1779,1782,1785],{"title":276,"path":1731,"stem":1732,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F4.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":403,"path":1734,"stem":1735,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":833,"path":1737,"stem":1738,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":1740,"path":1741,"stem":1742,"titleTemplate":6},"App Config","\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fapp-config","docs\u002F4.x\u002F4.api\u002F5.kit\u002F11.app-config",{"title":837,"path":1744,"stem":1745,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F4.x\u002F4.api\u002F5.kit\u002F12.nitro",{"title":841,"path":1747,"stem":1748,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F4.x\u002F4.api\u002F5.kit\u002F13.resolving",{"title":845,"path":1750,"stem":1751,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F4.x\u002F4.api\u002F5.kit\u002F14.logging",{"title":849,"path":1753,"stem":1754,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F4.x\u002F4.api\u002F5.kit\u002F15.builder",{"title":853,"path":1756,"stem":1757,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F4.x\u002F4.api\u002F5.kit\u002F16.examples",{"title":84,"path":1759,"stem":1760,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F4.x\u002F4.api\u002F5.kit\u002F17.layers",{"title":860,"path":1762,"stem":1763,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F4.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":864,"path":1765,"stem":1766,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F4.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":1768,"stem":1769,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F4.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":438,"path":1771,"stem":1772,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F5.kit\u002F5.components",{"title":874,"path":1774,"stem":1775,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F4.x\u002F4.api\u002F5.kit\u002F6.context",{"title":878,"path":1777,"stem":1778,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F4.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":882,"path":1780,"stem":1781,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F4.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":886,"path":1783,"stem":1784,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.head",{"title":890,"path":1786,"stem":1787,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":894,"titleTemplate":6,"icon":895,"path":1789,"stem":1790,"children":1791,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced","docs\u002F4.x\u002F4.api\u002F6.advanced",[1792,1795],{"title":411,"path":1793,"stem":1794,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":903,"path":1796,"stem":1797,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":907,"path":1799,"stem":1800,"titleTemplate":910,"icon":32},"\u002Fdocs\u002F4.x\u002Fapi\u002Fnuxt-config","docs\u002F4.x\u002F4.api\u002F6.nuxt-config",{"title":853,"titleTemplate":912,"icon":913,"path":1802,"stem":1803,"children":1804,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples","docs\u002F4.x\u002F4.examples",[1805,1808,1827,1840,1871],{"title":918,"path":1806,"stem":1807,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fhello-world","docs\u002F4.x\u002F4.examples\u002F0.hello-world",{"title":399,"path":1809,"stem":1810,"children":1811,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures","docs\u002F4.x\u002F4.examples\u002F1.features",[1812,1815,1818,1821,1824],{"title":926,"path":1813,"stem":1814,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F4.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":1816,"stem":1817,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F4.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":1819,"stem":1820,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F4.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":936,"path":1822,"stem":1823,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F4.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":940,"path":1825,"stem":1826,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F4.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":1828,"stem":1829,"children":1830,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting","docs\u002F4.x\u002F4.examples\u002F2.routing",[1831,1834,1837],{"title":948,"path":1832,"stem":1833,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":878,"path":1835,"stem":1836,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":955,"path":1838,"stem":1839,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":894,"path":1841,"stem":1842,"children":1843,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced","docs\u002F4.x\u002F4.examples\u002F4.advanced",[1844,1847,1850,1853,1856,1859,1862,1865,1868],{"title":84,"path":1845,"stem":1846,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":1848,"stem":1849,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":969,"path":1851,"stem":1852,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":973,"path":1854,"stem":1855,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":977,"path":1857,"stem":1858,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":981,"path":1860,"stem":1861,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":1863,"stem":1864,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":523,"path":1866,"stem":1867,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":991,"path":1869,"stem":1870,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":995,"path":1872,"stem":1873,"children":1874,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental","docs\u002F4.x\u002F4.examples\u002F7.experimental",[1875],{"title":1000,"path":1876,"stem":1877,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F4.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1004,"titleTemplate":1005,"icon":1006,"path":1879,"stem":1880,"children":1881,"page":108},"\u002Fdocs\u002F4.x\u002Fcommunity","docs\u002F4.x\u002F5.community",[1882,1885,1888,1891,1894,1897],{"title":1011,"path":1883,"stem":1884,"titleTemplate":6,"icon":1014},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fgetting-help","docs\u002F4.x\u002F5.community\u002F2.getting-help",{"title":1016,"path":1886,"stem":1887,"titleTemplate":6,"icon":1019},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Freporting-bugs","docs\u002F4.x\u002F5.community\u002F3.reporting-bugs",{"title":1021,"path":1889,"stem":1890,"titleTemplate":6,"icon":1024},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fcontribution","docs\u002F4.x\u002F5.community\u002F4.contribution",{"title":1026,"path":1892,"stem":1893,"titleTemplate":6,"icon":1029},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fframework-contribution","docs\u002F4.x\u002F5.community\u002F5.framework-contribution",{"title":1031,"path":1895,"stem":1896,"titleTemplate":6,"icon":1034},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Froadmap","docs\u002F4.x\u002F5.community\u002F6.roadmap",{"title":1036,"path":1898,"stem":1899,"titleTemplate":6,"icon":1039},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fchangelog","docs\u002F4.x\u002F5.community\u002F7.changelog",{"title":1041,"titleTemplate":1042,"icon":1043,"path":1901,"stem":1902,"children":1903,"page":108},"\u002Fdocs\u002F4.x\u002Fbridge","docs\u002F4.x\u002F6.bridge",[1904,1907,1910,1913,1916,1919,1922,1925,1928,1931],{"title":1048,"path":1905,"stem":1906,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Foverview","docs\u002F4.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1908,"stem":1909,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fconfiguration","docs\u002F4.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1911,"stem":1912,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Ftypescript","docs\u002F4.x\u002F6.bridge\u002F2.typescript",{"title":1058,"path":1914,"stem":1915,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F4.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1062,"path":1917,"stem":1918,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F4.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1066,"path":1920,"stem":1921,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F4.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":936,"path":1923,"stem":1924,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fmeta","docs\u002F4.x\u002F6.bridge\u002F6.meta",{"title":403,"path":1926,"stem":1927,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fruntime-config","docs\u002F4.x\u002F6.bridge\u002F7.runtime-config",{"title":837,"path":1929,"stem":1930,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnitro","docs\u002F4.x\u002F6.bridge\u002F8.nitro",{"title":1079,"path":1932,"stem":1933,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fvite","docs\u002F4.x\u002F6.bridge\u002F9.vite",{"title":1083,"titleTemplate":1084,"icon":107,"path":1935,"stem":1936,"children":1937,"page":108},"\u002Fdocs\u002F4.x\u002Fmigration","docs\u002F4.x\u002F7.migration",[1938,1941,1944,1947,1950,1953,1956,1959,1962,1965,1968],{"title":1048,"path":1939,"stem":1940,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Foverview","docs\u002F4.x\u002F7.migration\u002F1.overview",{"title":1092,"path":1942,"stem":1943,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fbundling","docs\u002F4.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1945,"stem":1946,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fserver","docs\u002F4.x\u002F7.migration\u002F11.server",{"title":29,"path":1948,"stem":1949,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fconfiguration","docs\u002F4.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1951,"stem":1952,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmodule-authors","docs\u002F4.x\u002F7.migration\u002F20.module-authors",{"title":926,"path":1954,"stem":1955,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fauto-imports","docs\u002F4.x\u002F7.migration\u002F3.auto-imports",{"title":936,"path":1957,"stem":1958,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmeta","docs\u002F4.x\u002F7.migration\u002F4.meta",{"title":1062,"path":1960,"stem":1961,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F4.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1114,"path":1963,"stem":1964,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F4.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1118,"path":1966,"stem":1967,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fcomponent-options","docs\u002F4.x\u002F7.migration\u002F7.component-options",{"title":403,"path":1969,"stem":1970,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fruntime-config","docs\u002F4.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1972,"stem":1973,"children":1974,"page":108},"\u002Fdocs\u002F5.x","docs\u002F5.x",[1975,2033,2123,2259,2635,2712,2734,2768],{"title":12,"titleTemplate":13,"icon":14,"path":1976,"stem":1977,"children":1978,"page":108},"\u002Fdocs\u002F5.x\u002Fgetting-started","docs\u002F5.x\u002F1.getting-started",[1979,1982,1985,1988,1991,1994,1997,2000,2003,2006,2009,2012,2015,2018,2021,2024,2027,2030],{"title":19,"path":1980,"stem":1981,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fintroduction","docs\u002F5.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1983,"stem":1984,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Finstallation","docs\u002F5.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1986,"stem":1987,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fconfiguration","docs\u002F5.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":1989,"stem":1990,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fviews","docs\u002F5.x\u002F1.getting-started\u002F04.views",{"title":39,"path":1992,"stem":1993,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fassets","docs\u002F5.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":1995,"stem":1996,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstyling","docs\u002F5.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":1998,"stem":1999,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Frouting","docs\u002F5.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":2001,"stem":2002,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fseo-meta","docs\u002F5.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":2004,"stem":2005,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftransitions","docs\u002F5.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":2007,"stem":2008,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F5.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":2010,"stem":2011,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstate-management","docs\u002F5.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":2013,"stem":2014,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ferror-handling","docs\u002F5.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":2016,"stem":2017,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fserver","docs\u002F5.x\u002F1.getting-started\u002F13.server",{"title":84,"path":2019,"stem":2020,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Flayers","docs\u002F5.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":2022,"stem":2023,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fprerendering","docs\u002F5.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":2025,"stem":2026,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdeployment","docs\u002F5.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":2028,"stem":2029,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftesting","docs\u002F5.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":2031,"stem":2032,"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":2034,"stem":2035,"children":2036,"page":108},"\u002Fdocs\u002F5.x\u002Fdirectory-structure","docs\u002F5.x\u002F2.directory-structure",[2037,2040,2043,2081,2084,2087,2090,2093,2096,2099,2102,2105,2108,2111,2114,2117,2120],{"title":117,"path":2038,"stem":2039,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F5.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":2041,"stem":2042,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Foutput","docs\u002F5.x\u002F2.directory-structure\u002F0.output",{"title":1197,"titleTemplate":111,"head":2044,"defaultOpen":1200,"icon":1201,"path":2045,"stem":2046,"children":2047,"page":108},{"title":1199},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app",[2048,2051,2054,2057,2060,2063,2066,2069,2072,2075,2078],{"title":127,"path":2049,"stem":2050,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":2052,"stem":2053,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":2055,"stem":2056,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":2058,"stem":2059,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":2061,"stem":2062,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":2064,"stem":2065,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":2067,"stem":2068,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":2070,"stem":2071,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":2073,"stem":2074,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":2076,"stem":2077,"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":2079,"stem":2080,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":2082,"stem":2083,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fcontent","docs\u002F5.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":2085,"stem":2086,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Flayers","docs\u002F5.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":2088,"stem":2089,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fmodules","docs\u002F5.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":2091,"stem":2092,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F5.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":2094,"stem":2095,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpublic","docs\u002F5.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":2097,"stem":2098,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fserver","docs\u002F5.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":2100,"stem":2101,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fshared","docs\u002F5.x\u002F2.directory-structure\u002F1.shared",{"title":200,"path":2103,"stem":2104,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fenv","docs\u002F5.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":2106,"stem":2107,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F5.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":2109,"stem":2110,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":2112,"stem":2113,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":2115,"stem":2116,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F5.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":2118,"stem":2119,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpackage","docs\u002F5.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":2121,"stem":2122,"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":2124,"stem":2125,"children":2126,"page":108},"\u002Fdocs\u002F5.x\u002Fguide","docs\u002F5.x\u002F3.guide",[2127,2152,2168,2178,2206,2222],{"title":253,"titleTemplate":254,"icon":255,"path":2128,"stem":2129,"children":2130,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts","docs\u002F5.x\u002F3.guide\u002F1.concepts",[2131,2134,2137,2140,2143,2146,2149],{"title":260,"path":2132,"stem":2133,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":2135,"stem":2136,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":2138,"stem":2139,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":2141,"stem":2142,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":2144,"stem":2145,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":2147,"stem":2148,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":2150,"stem":2151,"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":2153,"stem":2154,"children":2155,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F2.best-practices",[2156,2159,2162,2165],{"title":1314,"path":2157,"stem":2158,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fdevcontainers","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fdevcontainers",{"title":1318,"path":2160,"stem":2161,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":2163,"stem":2164,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":2166,"stem":2167,"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":2169,"stem":2170,"children":2171,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai","docs\u002F5.x\u002F3.guide\u002F3.ai",[2172,2175],{"title":314,"path":2173,"stem":2174,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F5.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":2176,"stem":2177,"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":2179,"stem":2180,"children":2181,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F4.modules",[2182,2185,2188,2191,2194,2197,2200,2203],{"title":329,"path":2183,"stem":2184,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":2186,"stem":2187,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":2189,"stem":2190,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":2192,"stem":2193,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F4.module-dependencies",{"title":345,"path":2195,"stem":2196,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F5.recipes-advanced",{"title":349,"path":2198,"stem":2199,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F6.testing",{"title":353,"path":2201,"stem":2202,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F7.best-practices",{"title":357,"path":2204,"stem":2205,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F8.ecosystem",{"title":361,"titleTemplate":362,"icon":363,"path":2207,"stem":2208,"children":2209,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes","docs\u002F5.x\u002F3.guide\u002F5.recipes",[2210,2213,2216,2219],{"title":368,"path":2211,"stem":2212,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":372,"path":2214,"stem":2215,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":376,"path":2217,"stem":2218,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":380,"path":2220,"stem":2221,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":384,"titleTemplate":385,"icon":386,"path":2223,"stem":2224,"children":2225,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further","docs\u002F5.x\u002F3.guide\u002F6.going-further",[2226,2229,2232,2235,2238,2241,2244,2247,2250,2253,2256],{"title":391,"path":2227,"stem":2228,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":395,"path":2230,"stem":2231,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":399,"path":2233,"stem":2234,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":403,"path":2236,"stem":2237,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":407,"path":2239,"stem":2240,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":411,"path":2242,"stem":2243,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":415,"path":2245,"stem":2246,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":419,"path":2248,"stem":2249,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":423,"path":2251,"stem":2252,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":1413,"path":2254,"stem":2255,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fbuilders","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F8.builders",{"title":427,"path":2257,"stem":2258,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":431,"titleTemplate":432,"icon":433,"path":2260,"stem":2261,"children":2262,"page":108},"\u002Fdocs\u002F5.x\u002Fapi","docs\u002F5.x\u002F4.api",[2263,2315,2418,2509,2561,2622,2632],{"title":438,"titleTemplate":439,"icon":324,"path":2264,"stem":2265,"children":2266,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F1.components",[2267,2270,2273,2276,2279,2282,2285,2288,2291,2294,2297,2300,2303,2306,2309,2312],{"title":444,"path":2268,"stem":2269,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":448,"path":2271,"stem":2272,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":452,"path":2274,"stem":2275,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":456,"path":2277,"stem":2278,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F5.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":460,"path":2280,"stem":2281,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F5.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":464,"path":2283,"stem":2284,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":468,"path":2286,"stem":2287,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F5.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1449,"path":2289,"stem":2290,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":472,"path":2292,"stem":2293,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F5.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":476,"path":2295,"stem":2296,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F5.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":480,"path":2298,"stem":2299,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F5.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":484,"path":2301,"stem":2302,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F5.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":488,"path":2304,"stem":2305,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F5.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":492,"path":2307,"stem":2308,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F5.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":496,"path":2310,"stem":2311,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F5.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":500,"path":2313,"stem":2314,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F5.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":504,"titleTemplate":505,"icon":506,"path":2316,"stem":2317,"children":2318,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables","docs\u002F5.x\u002F4.api\u002F2.composables",[2319,2322,2325,2328,2331,2334,2337,2340,2343,2346,2349,2352,2355,2358,2361,2364,2367,2370,2373,2376,2379,2382,2385,2388,2391,2394,2397,2400,2403,2406,2409,2412,2415],{"title":1481,"path":2320,"stem":2321,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1485,"path":2323,"stem":2324,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":511,"path":2326,"stem":2327,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1492,"path":2329,"stem":2330,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":515,"path":2332,"stem":2333,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":519,"path":2335,"stem":2336,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":523,"path":2338,"stem":2339,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":527,"path":2341,"stem":2342,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":531,"path":2344,"stem":2345,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":535,"path":2347,"stem":2348,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":539,"path":2350,"stem":2351,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":543,"path":2353,"stem":2354,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":1520,"path":2356,"stem":2357,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-layout","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-layout",{"title":547,"path":2359,"stem":2360,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":551,"path":2362,"stem":2363,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":555,"path":2365,"stem":2366,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":559,"path":2368,"stem":2369,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":563,"path":2371,"stem":2372,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":567,"path":2374,"stem":2375,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":571,"path":2377,"stem":2378,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":575,"path":2380,"stem":2381,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":579,"path":2383,"stem":2384,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":583,"path":2386,"stem":2387,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":587,"path":2389,"stem":2390,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":591,"path":2392,"stem":2393,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":595,"path":2395,"stem":2396,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":599,"path":2398,"stem":2399,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":603,"path":2401,"stem":2402,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":607,"path":2404,"stem":2405,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":611,"path":2407,"stem":2408,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":615,"path":2410,"stem":2411,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":619,"path":2413,"stem":2414,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":623,"path":2416,"stem":2417,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":627,"titleTemplate":628,"icon":629,"path":2419,"stem":2420,"children":2421,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils","docs\u002F5.x\u002F4.api\u002F3.utils",[2422,2425,2428,2431,2434,2437,2440,2443,2446,2449,2452,2455,2458,2461,2464,2467,2470,2473,2476,2479,2482,2485,2488,2491,2494,2497,2500,2503,2506],{"title":634,"path":2423,"stem":2424,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F5.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":638,"path":2426,"stem":2427,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":642,"path":2429,"stem":2430,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":646,"path":2432,"stem":2433,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":650,"path":2435,"stem":2436,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":654,"path":2438,"stem":2439,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":658,"path":2441,"stem":2442,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":662,"path":2444,"stem":2445,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":666,"path":2447,"stem":2448,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":670,"path":2450,"stem":2451,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":674,"path":2453,"stem":2454,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":678,"path":2456,"stem":2457,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":682,"path":2459,"stem":2460,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":686,"path":2462,"stem":2463,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":690,"path":2465,"stem":2466,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":694,"path":2468,"stem":2469,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":698,"path":2471,"stem":2472,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":702,"path":2474,"stem":2475,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":706,"path":2477,"stem":2478,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":710,"path":2480,"stem":2481,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":714,"path":2483,"stem":2484,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":718,"path":2486,"stem":2487,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":722,"path":2489,"stem":2490,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":726,"path":2492,"stem":2493,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":730,"path":2495,"stem":2496,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F5.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":734,"path":2498,"stem":2499,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":738,"path":2501,"stem":2502,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":742,"path":2504,"stem":2505,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":746,"path":2507,"stem":2508,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":750,"titleTemplate":751,"icon":752,"path":2510,"stem":2511,"children":2512,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands","docs\u002F5.x\u002F4.api\u002F4.commands",[2513,2516,2519,2522,2525,2528,2531,2534,2537,2540,2543,2546,2549,2552,2555,2558],{"title":757,"path":2514,"stem":2515,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fadd",{"title":761,"path":2517,"stem":2518,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":765,"path":2520,"stem":2521,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":769,"path":2523,"stem":2524,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":773,"path":2526,"stem":2527,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":777,"path":2529,"stem":2530,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdev",{"title":781,"path":2532,"stem":2533,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":785,"path":2535,"stem":2536,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":789,"path":2538,"stem":2539,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finfo",{"title":793,"path":2541,"stem":2542,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finit",{"title":797,"path":2544,"stem":2545,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":801,"path":2547,"stem":2548,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":805,"path":2550,"stem":2551,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":809,"path":2553,"stem":2554,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftest",{"title":813,"path":2556,"stem":2557,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":817,"path":2559,"stem":2560,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":415,"titleTemplate":821,"icon":822,"path":2562,"stem":2563,"children":2564,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit","docs\u002F5.x\u002F4.api\u002F5.kit",[2565,2568,2571,2574,2577,2580,2583,2586,2589,2592,2595,2598,2601,2604,2607,2610,2613,2616,2619],{"title":276,"path":2566,"stem":2567,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F5.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":403,"path":2569,"stem":2570,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":833,"path":2572,"stem":2573,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":1740,"path":2575,"stem":2576,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fapp-config","docs\u002F5.x\u002F4.api\u002F5.kit\u002F11.app-config",{"title":837,"path":2578,"stem":2579,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F5.x\u002F4.api\u002F5.kit\u002F12.nitro",{"title":841,"path":2581,"stem":2582,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F5.x\u002F4.api\u002F5.kit\u002F13.resolving",{"title":845,"path":2584,"stem":2585,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F5.x\u002F4.api\u002F5.kit\u002F14.logging",{"title":849,"path":2587,"stem":2588,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F5.x\u002F4.api\u002F5.kit\u002F15.builder",{"title":853,"path":2590,"stem":2591,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F5.x\u002F4.api\u002F5.kit\u002F16.examples",{"title":84,"path":2593,"stem":2594,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F5.x\u002F4.api\u002F5.kit\u002F17.layers",{"title":860,"path":2596,"stem":2597,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F5.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":864,"path":2599,"stem":2600,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F5.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":2602,"stem":2603,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F5.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":438,"path":2605,"stem":2606,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F5.kit\u002F5.components",{"title":874,"path":2608,"stem":2609,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F5.x\u002F4.api\u002F5.kit\u002F6.context",{"title":878,"path":2611,"stem":2612,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F5.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":882,"path":2614,"stem":2615,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F5.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":886,"path":2617,"stem":2618,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.head",{"title":890,"path":2620,"stem":2621,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":894,"titleTemplate":6,"icon":895,"path":2623,"stem":2624,"children":2625,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced","docs\u002F5.x\u002F4.api\u002F6.advanced",[2626,2629],{"title":411,"path":2627,"stem":2628,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":903,"path":2630,"stem":2631,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":907,"path":2633,"stem":2634,"titleTemplate":910,"icon":32},"\u002Fdocs\u002F5.x\u002Fapi\u002Fnuxt-config","docs\u002F5.x\u002F4.api\u002F6.nuxt-config",{"title":853,"titleTemplate":912,"icon":913,"path":2636,"stem":2637,"children":2638,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples","docs\u002F5.x\u002F4.examples",[2639,2642,2661,2674,2705],{"title":918,"path":2640,"stem":2641,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fhello-world","docs\u002F5.x\u002F4.examples\u002F0.hello-world",{"title":399,"path":2643,"stem":2644,"children":2645,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures","docs\u002F5.x\u002F4.examples\u002F1.features",[2646,2649,2652,2655,2658],{"title":926,"path":2647,"stem":2648,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F5.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":2650,"stem":2651,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F5.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":2653,"stem":2654,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F5.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":936,"path":2656,"stem":2657,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F5.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":940,"path":2659,"stem":2660,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F5.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":2662,"stem":2663,"children":2664,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting","docs\u002F5.x\u002F4.examples\u002F2.routing",[2665,2668,2671],{"title":948,"path":2666,"stem":2667,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":878,"path":2669,"stem":2670,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":955,"path":2672,"stem":2673,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":894,"path":2675,"stem":2676,"children":2677,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced","docs\u002F5.x\u002F4.examples\u002F4.advanced",[2678,2681,2684,2687,2690,2693,2696,2699,2702],{"title":84,"path":2679,"stem":2680,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":2682,"stem":2683,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":969,"path":2685,"stem":2686,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":973,"path":2688,"stem":2689,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":977,"path":2691,"stem":2692,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":981,"path":2694,"stem":2695,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":2697,"stem":2698,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":523,"path":2700,"stem":2701,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":991,"path":2703,"stem":2704,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":995,"path":2706,"stem":2707,"children":2708,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental","docs\u002F5.x\u002F4.examples\u002F7.experimental",[2709],{"title":1000,"path":2710,"stem":2711,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F5.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1004,"titleTemplate":1005,"icon":1006,"path":2713,"stem":2714,"children":2715,"page":108},"\u002Fdocs\u002F5.x\u002Fcommunity","docs\u002F5.x\u002F5.community",[2716,2719,2722,2725,2728,2731],{"title":1011,"path":2717,"stem":2718,"titleTemplate":6,"icon":1014},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fgetting-help","docs\u002F5.x\u002F5.community\u002F2.getting-help",{"title":1016,"path":2720,"stem":2721,"titleTemplate":6,"icon":1019},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Freporting-bugs","docs\u002F5.x\u002F5.community\u002F3.reporting-bugs",{"title":1021,"path":2723,"stem":2724,"titleTemplate":6,"icon":1024},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fcontribution","docs\u002F5.x\u002F5.community\u002F4.contribution",{"title":1026,"path":2726,"stem":2727,"titleTemplate":6,"icon":1029},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fframework-contribution","docs\u002F5.x\u002F5.community\u002F5.framework-contribution",{"title":1031,"path":2729,"stem":2730,"titleTemplate":6,"icon":1034},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Froadmap","docs\u002F5.x\u002F5.community\u002F6.roadmap",{"title":1036,"path":2732,"stem":2733,"titleTemplate":6,"icon":1039},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fchangelog","docs\u002F5.x\u002F5.community\u002F7.changelog",{"title":1041,"titleTemplate":1042,"icon":1043,"path":2735,"stem":2736,"children":2737,"page":108},"\u002Fdocs\u002F5.x\u002Fbridge","docs\u002F5.x\u002F6.bridge",[2738,2741,2744,2747,2750,2753,2756,2759,2762,2765],{"title":1048,"path":2739,"stem":2740,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Foverview","docs\u002F5.x\u002F6.bridge\u002F1.overview",{"title":29,"path":2742,"stem":2743,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fconfiguration","docs\u002F5.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":2745,"stem":2746,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Ftypescript","docs\u002F5.x\u002F6.bridge\u002F2.typescript",{"title":1058,"path":2748,"stem":2749,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F5.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1062,"path":2751,"stem":2752,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F5.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1066,"path":2754,"stem":2755,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F5.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":936,"path":2757,"stem":2758,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fmeta","docs\u002F5.x\u002F6.bridge\u002F6.meta",{"title":403,"path":2760,"stem":2761,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fruntime-config","docs\u002F5.x\u002F6.bridge\u002F7.runtime-config",{"title":837,"path":2763,"stem":2764,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnitro","docs\u002F5.x\u002F6.bridge\u002F8.nitro",{"title":1079,"path":2766,"stem":2767,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fvite","docs\u002F5.x\u002F6.bridge\u002F9.vite",{"title":1083,"titleTemplate":1084,"icon":107,"path":2769,"stem":2770,"children":2771,"page":108},"\u002Fdocs\u002F5.x\u002Fmigration","docs\u002F5.x\u002F7.migration",[2772,2775,2778,2781,2784,2787,2790,2793,2796,2799,2802],{"title":1048,"path":2773,"stem":2774,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Foverview","docs\u002F5.x\u002F7.migration\u002F1.overview",{"title":1092,"path":2776,"stem":2777,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fbundling","docs\u002F5.x\u002F7.migration\u002F10.bundling",{"title":79,"path":2779,"stem":2780,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fserver","docs\u002F5.x\u002F7.migration\u002F11.server",{"title":29,"path":2782,"stem":2783,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fconfiguration","docs\u002F5.x\u002F7.migration\u002F2.configuration",{"title":276,"path":2785,"stem":2786,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmodule-authors","docs\u002F5.x\u002F7.migration\u002F20.module-authors",{"title":926,"path":2788,"stem":2789,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fauto-imports","docs\u002F5.x\u002F7.migration\u002F3.auto-imports",{"title":936,"path":2791,"stem":2792,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmeta","docs\u002F5.x\u002F7.migration\u002F4.meta",{"title":1062,"path":2794,"stem":2795,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F5.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1114,"path":2797,"stem":2798,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F5.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1118,"path":2800,"stem":2801,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fcomponent-options","docs\u002F5.x\u002F7.migration\u002F7.component-options",{"title":403,"path":2803,"stem":2804,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fruntime-config","docs\u002F5.x\u002F7.migration\u002F8.runtime-config",{"title":2806,"icon":2807,"path":2808,"stem":2809,"children":2810,"page":108},"Blog","i-lucide-newspaper","\u002Fblog","blog",[2811,2815,2819,2823,2827,2831,2835,2839,2843,2847,2851,2855,2859,2863,2867,2871,2875,2879,2883,2887,2891,2895,2899,2903,2907,2911,2915,2919,2923,2927,2931,2935,2939,2943,2947,2951,2955,2959,2963,2967,2971,2975,2979,2983,2987,2991,2995,2999,3003,3007],{"title":2812,"path":2813,"stem":2814},"Announcing 3.0","\u002Fblog\u002Fv3","blog\u002F1.v3",{"title":2816,"path":2817,"stem":2818},"Nuxt 3.3","\u002Fblog\u002Fv3-3","blog\u002F10.v3-3",{"title":2820,"path":2821,"stem":2822},"Nuxt 3.4","\u002Fblog\u002Fv3-4","blog\u002F11.v3-4",{"title":2824,"path":2825,"stem":2826},"Nuxt 3.5","\u002Fblog\u002Fv3-5","blog\u002F12.v3-5",{"title":2828,"path":2829,"stem":2830},"Nuxt 3.6","\u002Fblog\u002Fv3-6","blog\u002F13.v3-6",{"title":2832,"path":2833,"stem":2834},"Nuxt on the Edge","\u002Fblog\u002Fnuxt-on-the-edge","blog\u002F14.nuxt-on-the-edge",{"title":2836,"path":2837,"stem":2838},"Nuxt 3.7","\u002Fblog\u002Fv3-7","blog\u002F15.v3-7",{"title":2840,"path":2841,"stem":2842},"A New Website","\u002Fblog\u002Fnew-website","blog\u002F16.new-website",{"title":2844,"path":2845,"stem":2846},"Nuxt 3.8","\u002Fblog\u002Fv3-8","blog\u002F17.v3-8",{"title":2848,"path":2849,"stem":2850},"Nuxt DevTools v1.0","\u002Fblog\u002Fnuxt-devtools-v1-0","blog\u002F18.nuxt-devtools-v1-0",{"title":2852,"path":2853,"stem":2854},"Nuxt 3.9","\u002Fblog\u002Fv3-9","blog\u002F19.v3-9",{"title":2856,"path":2857,"stem":2858},"Nuxt: A vision for 2023","\u002Fblog\u002Fvision-2023","blog\u002F2.vision-2023",{"title":2860,"path":2861,"stem":2862},"Nuxt 3.10","\u002Fblog\u002Fv3-10","blog\u002F20.v3-10",{"title":2864,"path":2865,"stem":2866},"The Evolution of Shiki v1.0","\u002Fblog\u002Fshiki-v1","blog\u002F21.shiki-v1",{"title":2868,"path":2869,"stem":2870},"Nuxt 3.11","\u002Fblog\u002Fv3-11","blog\u002F22.v3-11",{"title":2872,"path":2873,"stem":2874},"Nuxt: Looking forward","\u002Fblog\u002Flooking-forward-2024","blog\u002F23.looking-forward-2024",{"title":2876,"path":2877,"stem":2878},"Refreshed Nuxt ESLint Integrations","\u002Fblog\u002Feslint-module","blog\u002F24.eslint-module",{"title":2880,"path":2881,"stem":2882},"Nuxt 3.12","\u002Fblog\u002Fv3-12","blog\u002F25.v3-12",{"title":2884,"path":2885,"stem":2886},"Introducing Nuxt Scripts","\u002Fblog\u002Fnuxt-scripts","blog\u002F26.nuxt-scripts",{"title":2888,"path":2889,"stem":2890},"Nuxt 3.13","\u002Fblog\u002Fv3-13","blog\u002F27.v3-13",{"title":2892,"path":2893,"stem":2894},"Nuxt 3.14","\u002Fblog\u002Fv3-14","blog\u002F27.v3-14",{"title":2896,"path":2897,"stem":2898},"Introducing Nuxt Icon v1","\u002Fblog\u002Fnuxt-icon-v1-0","blog\u002F29.nuxt-icon-v1-0",{"title":2900,"path":2901,"stem":2902},"Introducing Nuxt DevTools","\u002Fblog\u002Fintroducing-nuxt-devtools","blog\u002F3.introducing-nuxt-devtools",{"title":2904,"path":2905,"stem":2906},"Announcing Nuxt 3 Release Candidate","\u002Fblog\u002Fnuxt3-rc","blog\u002F3.nuxt3-rc",{"title":2908,"path":2909,"stem":2910},"Nuxt 3.15","\u002Fblog\u002Fv3-15","blog\u002F30.v3-15",{"title":2912,"path":2913,"stem":2914},"Nuxt 3.16","\u002Fblog\u002Fv3-16","blog\u002F31.v3-16",{"title":2916,"path":2917,"stem":2918},"Nuxt UI v3","\u002Fblog\u002Fnuxt-ui-v3","blog\u002F32.nuxt-ui-v3",{"title":2920,"path":2921,"stem":2922},"Nuxt 3.17","\u002Fblog\u002Fv3-17","blog\u002F33.v3-17",{"title":2924,"path":2925,"stem":2926},"Roadmap to v4","\u002Fblog\u002Froadmap-v4","blog\u002F34.roadmap-v4",{"title":2928,"path":2929,"stem":2930},"Building a Privacy-First Feedback Widget","\u002Fblog\u002Fbuilding-a-feedback-widget","blog\u002F35.building-a-feedback-widget",{"title":2932,"path":2933,"stem":2934},"Announcing Nuxt 4.0","\u002Fblog\u002Fv4","blog\u002F36.v4",{"title":2936,"path":2937,"stem":2938},"Nuxt 3.18","\u002Fblog\u002Fv3-18","blog\u002F37.v3-18",{"title":2940,"path":2941,"stem":2942},"Nuxt 4.1","\u002Fblog\u002Fv4-1","blog\u002F38.v4-1",{"title":2944,"path":2945,"stem":2946},"Nuxt UI v4","\u002Fblog\u002Fnuxt-ui-v4","blog\u002F39.nuxt-ui-v4",{"title":2948,"path":2949,"stem":2950},"Nuxt 2 End-of-Life (EOL)","\u002Fblog\u002Fnuxt2-eol","blog\u002F4.nuxt2-eol",{"title":2952,"path":2953,"stem":2954},"Introducing Nuxt 3 Beta","\u002Fblog\u002Fnuxt3-beta","blog\u002F4.nuxt3-beta",{"title":2956,"path":2957,"stem":2958},"Building an MCP Server for Nuxt","\u002Fblog\u002Fbuilding-nuxt-mcp","blog\u002F40.building-nuxt-mcp",{"title":2960,"path":2961,"stem":2962},"Nuxt 4.2","\u002Fblog\u002Fv4-2","blog\u002F40.v4-2",{"title":2964,"path":2965,"stem":2966},"Nuxt Image v2","\u002Fblog\u002Fnuxt-image-v2","blog\u002F41.nuxt-image-v2",{"title":2968,"path":2969,"stem":2970},"Nuxt 4.3","\u002Fblog\u002Fv4-3","blog\u002F42.v4-3",{"title":2972,"path":2973,"stem":2974},"Nuxt 4.4","\u002Fblog\u002Fv4-4","blog\u002F43.v4-4",{"title":2976,"path":2977,"stem":2978},"Introducing the Nuxt Agent","\u002Fblog\u002Fintroducing-nuxt-agent","blog\u002F44.introducing-nuxt-agent",{"title":2980,"path":2981,"stem":2982},"Meet Nuxi","\u002Fblog\u002Fmeet-nuxi","blog\u002F45.meet-nuxi",{"title":2984,"path":2985,"stem":2986},"Nuxt 4.5","\u002Fblog\u002Fv4-5","blog\u002F46.v4-5",{"title":2988,"path":2989,"stem":2990},"Nuxt Security Patch Releases","\u002Fblog\u002Fv4-5-security","blog\u002F47.v4-5-security",{"title":2992,"path":2993,"stem":2994},"Going Full Static","\u002Fblog\u002Fgoing-full-static","blog\u002F5.going-full-static",{"title":2996,"path":2997,"stem":2998},"Introducing Smart Prefetching","\u002Fblog\u002Fintroducing-smart-prefetching","blog\u002F6.introducing-smart-prefetching",{"title":3000,"path":3001,"stem":3002},"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":3004,"path":3005,"stem":3006},"Nuxt 2 Static Improvements","\u002Fblog\u002Fnuxt-static-improvements","blog\u002F8.nuxt-static-improvements",{"title":3008,"path":3009,"stem":3010},"Nuxt 2: From Terminal to Browser","\u002Fblog\u002Fnuxtjs-from-terminal-to-browser","blog\u002F9.nuxtjs-from-terminal-to-browser",{"v5":3012,"v4":3013,"v3":3014,"v2":3015},"5 (nightly)","4.5.1","3.21.10","2.18.1",{"name":3017,"description":3018,"repo":3019,"npm":3020,"icon":3021,"github":3022,"website":3022,"learn_more":3021,"category":3023,"type":3024,"maintainers":3025,"compatibility":3030,"generatedAt":3033,"contributors":3034,"stats":3132,"readme":3141},"auth-utils","Add Authentication to Nuxt applications with secured & sealed cookies sessions.","atinux\u002Fnuxt-auth-utils","nuxt-auth-utils","","https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils","Security","3rd-party",[3026],{"name":3027,"github":3028,"twitter":3028,"bluesky":3029},"Sébastien Chopin","atinux","atinux.com",{"nuxt":3031,"requires":3032},">=3.0.0",{},"2026-07-28T06:41:52.756Z",[3035,3038,3042,3046,3050,3054,3058,3061,3064,3067,3070,3074,3077,3080,3083,3086,3089,3092,3095,3098,3101,3104,3108,3111,3114,3117,3120,3123,3126,3129],{"id":3036,"username":3028,"contributions":3037},904724,197,{"id":3039,"username":3040,"contributions":3041},28706372,"danielroe",16,{"id":3043,"username":3044,"contributions":3045},50090595,"ahmedrangel",9,{"id":3047,"username":3048,"contributions":3049},12988935,"Gerbuuun",8,{"id":3051,"username":3052,"contributions":3053},45267552,"Barbapapazes",7,{"id":3055,"username":3056,"contributions":3057},13056429,"sandros94",3,{"id":3059,"username":3060,"contributions":3057},16264115,"Yizack",{"id":3062,"username":3063,"contributions":3057},967369,"acidjazz",{"id":3065,"username":3066,"contributions":3057},15887916,"blumgart",{"id":3068,"username":3069,"contributions":3057},67746033,"justserdar",{"id":3071,"username":3072,"contributions":3073},10636392,"brianacdev",2,{"id":3075,"username":3076,"contributions":3073},67898185,"larsrickert",{"id":3078,"username":3079,"contributions":3073},40021217,"kingyue737",{"id":3081,"username":3082,"contributions":3073},59120414,"cth-latest",{"id":3084,"username":3085,"contributions":3073},19751938,"noook",{"id":3087,"username":3088,"contributions":3073},1409645,"mariosant",{"id":3090,"username":3091,"contributions":3073},24661232,"Jorgagu",{"id":3093,"username":3094,"contributions":3073},5326365,"harlan-zw",{"id":3096,"username":3097,"contributions":3073},61092270,"stranavad",{"id":3099,"username":3100,"contributions":3073},1592441,"mendrinos",{"id":3102,"username":3103,"contributions":3073},376963,"bisand",{"id":3105,"username":3106,"contributions":3107},18315316,"Syrex-o",1,{"id":3109,"username":3110,"contributions":3107},3109921,"silvio-e",{"id":3112,"username":3113,"contributions":3107},18753964,"sifferhans",{"id":3115,"username":3116,"contributions":3107},17186421,"samulefevre",{"id":3118,"username":3119,"contributions":3107},15785987,"samydoesit",{"id":3121,"username":3122,"contributions":3107},31662219,"rudokemper",{"id":3124,"username":3125,"contributions":3107},29805551,"RobertHaba",{"id":3127,"username":3128,"contributions":3107},1231105,"SteinRobert",{"id":3130,"username":3131,"contributions":3107},5472296,"robert-hoffmann",{"version":3133,"downloads":3134,"stars":3135,"watchers":3136,"forks":3137,"defaultBranch":3138,"publishedAt":3139,"createdAt":3140},"0.5.29",338309,1586,11,187,"main",1771335673386,1699356484873,{"data":3142,"body":3144,"toc":14132},{"title":3143,"description":3021},"Nuxt Auth Utils",{"type":3145,"children":3146},"root",[3147,3154,3200,3204,3238,3244,3343,3357,3363,3375,3387,3398,3404,3420,3462,3484,3519,3531,3539,3545,3550,3557,4098,4107,4610,4632,4638,4651,4657,5034,5054,5233,5245,5251,5256,5276,5297,5324,5502,5507,5528,5536,5543,5786,5799,5805,5816,6221,6233,6246,6251,6281,6407,6420,6531,6542,6698,6704,6709,6714,6722,6756,6769,6848,6853,6858,6863,6870,6902,6914,6993,6998,7003,7017,7337,7477,7507,8435,8470,9307,9341,9854,9859,10698,10716,10722,10751,10762,10768,10773,11055,11061,11080,11306,11330,11335,11355,11360,11368,11387,11475,11501,11507,11524,11611,11629,11639,11651,11656,11909,11921,11933,12306,12334,12340,12353,12371,12474,12494,12844,12858,13358,13363,13390,13401,13571,13576,13722,13742,13845,13863,13869,13889,13895,14126],{"type":3148,"tag":3149,"props":3150,"children":3151},"element","h1",{"id":3020},[3152],{"type":3153,"value":3143},"text",{"type":3148,"tag":3155,"props":3156,"children":3157},"p",{},[3158,3171,3181,3190],{"type":3148,"tag":3159,"props":3160,"children":3164},"a",{"href":3161,"rel":3162},"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fnuxt-auth-utils",[3163],"nofollow",[3165],{"type":3148,"tag":3166,"props":3167,"children":3170},"img",{"alt":3168,"src":3169},"npm version","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fnuxt-auth-utils\u002Flatest.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3148,"tag":3159,"props":3172,"children":3175},{"href":3173,"rel":3174},"https:\u002F\u002Fnpm.chart.dev\u002Fnuxt-auth-utils",[3163],[3176],{"type":3148,"tag":3166,"props":3177,"children":3180},{"alt":3178,"src":3179},"npm downloads","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3148,"tag":3159,"props":3182,"children":3184},{"href":3161,"rel":3183},[3163],[3185],{"type":3148,"tag":3166,"props":3186,"children":3189},{"alt":3187,"src":3188},"License","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3148,"tag":3159,"props":3191,"children":3194},{"href":3192,"rel":3193},"https:\u002F\u002Fnuxt.com",[3163],[3195],{"type":3148,"tag":3166,"props":3196,"children":3199},{"alt":3197,"src":3198},"Nuxt","https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNuxt-020420?logo=nuxt.js",[],{"type":3148,"tag":3155,"props":3201,"children":3202},{},[3203],{"type":3153,"value":3018},{"type":3148,"tag":3205,"props":3206,"children":3207},"ul",{},[3208,3218,3228],{"type":3148,"tag":3209,"props":3210,"children":3211},"li",{},[3212],{"type":3148,"tag":3159,"props":3213,"children":3215},{"href":3214},"\u002FCHANGELOG.md",[3216],{"type":3153,"value":3217},"Release Notes",{"type":3148,"tag":3209,"props":3219,"children":3220},{},[3221],{"type":3148,"tag":3159,"props":3222,"children":3225},{"href":3223,"rel":3224},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fatidone",[3163],[3226],{"type":3153,"value":3227},"Demo with OAuth",{"type":3148,"tag":3209,"props":3229,"children":3230},{},[3231],{"type":3148,"tag":3159,"props":3232,"children":3235},{"href":3233,"rel":3234},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Ftodo-passkeys",[3163],[3236],{"type":3153,"value":3237},"Demo with Passkeys",{"type":3148,"tag":3239,"props":3240,"children":3242},"h2",{"id":3241},"features",[3243],{"type":3153,"value":399},{"type":3148,"tag":3205,"props":3245,"children":3246},{},[3247,3258,3267,3276,3285,3301,3310,3325,3334],{"type":3148,"tag":3209,"props":3248,"children":3249},{},[3250,3256],{"type":3148,"tag":3159,"props":3251,"children":3253},{"href":3252},"#hybrid-rendering",[3254],{"type":3153,"value":3255},"Hybrid Rendering",{"type":3153,"value":3257}," support (SSR \u002F CSR \u002F SWR \u002F Prerendering)",{"type":3148,"tag":3209,"props":3259,"children":3260},{},[3261],{"type":3148,"tag":3159,"props":3262,"children":3264},{"href":3263},"#supported-oauth-providers",[3265],{"type":3153,"value":3266},"40+ OAuth Providers",{"type":3148,"tag":3209,"props":3268,"children":3269},{},[3270],{"type":3148,"tag":3159,"props":3271,"children":3273},{"href":3272},"#password-hashing",[3274],{"type":3153,"value":3275},"Password Hashing",{"type":3148,"tag":3209,"props":3277,"children":3278},{},[3279],{"type":3148,"tag":3159,"props":3280,"children":3282},{"href":3281},"#webauthn-passkey",[3283],{"type":3153,"value":3284},"WebAuthn (passkey)",{"type":3148,"tag":3209,"props":3286,"children":3287},{},[3288],{"type":3148,"tag":3159,"props":3289,"children":3291},{"href":3290},"#vue-composable",[3292,3299],{"type":3148,"tag":3293,"props":3294,"children":3296},"code",{"className":3295},[],[3297],{"type":3153,"value":3298},"useUserSession()",{"type":3153,"value":3300}," Vue composable",{"type":3148,"tag":3209,"props":3302,"children":3303},{},[3304],{"type":3148,"tag":3159,"props":3305,"children":3307},{"href":3306},"#server-utils",[3308],{"type":3153,"value":3309},"Tree-shakable server utils",{"type":3148,"tag":3209,"props":3311,"children":3312},{},[3313],{"type":3148,"tag":3159,"props":3314,"children":3316},{"href":3315},"#authstate-component",[3317,3323],{"type":3148,"tag":3293,"props":3318,"children":3320},{"className":3319},[],[3321],{"type":3153,"value":3322},"\u003CAuthState>",{"type":3153,"value":3324}," component",{"type":3148,"tag":3209,"props":3326,"children":3327},{},[3328],{"type":3148,"tag":3159,"props":3329,"children":3331},{"href":3330},"#extend-session",[3332],{"type":3153,"value":3333},"Extendable with hooks",{"type":3148,"tag":3209,"props":3335,"children":3336},{},[3337],{"type":3148,"tag":3159,"props":3338,"children":3340},{"href":3339},"#websocket-support",[3341],{"type":3153,"value":3342},"WebSocket support",{"type":3148,"tag":3155,"props":3344,"children":3345},{},[3346,3348,3355],{"type":3153,"value":3347},"It has few dependencies (only from ",{"type":3148,"tag":3159,"props":3349,"children":3352},{"href":3350,"rel":3351},"https:\u002F\u002Fgithub.com\u002Funjs",[3163],[3353],{"type":3153,"value":3354},"UnJS",{"type":3153,"value":3356},"), run on multiple JS environments (Node, Deno, Workers) and is fully typed with TypeScript.",{"type":3148,"tag":3239,"props":3358,"children":3360},{"id":3359},"requirements",[3361],{"type":3153,"value":3362},"Requirements",{"type":3148,"tag":3155,"props":3364,"children":3365},{},[3366,3368,3373],{"type":3153,"value":3367},"This module only works with a Nuxt server running as it uses server API routes (",{"type":3148,"tag":3293,"props":3369,"children":3371},{"className":3370},[],[3372],{"type":3153,"value":765},{"type":3153,"value":3374},").",{"type":3148,"tag":3155,"props":3376,"children":3377},{},[3378,3380,3385],{"type":3153,"value":3379},"This means that you cannot use this module with ",{"type":3148,"tag":3293,"props":3381,"children":3383},{"className":3382},[],[3384],{"type":3153,"value":785},{"type":3153,"value":3386},".",{"type":3148,"tag":3155,"props":3388,"children":3389},{},[3390,3392,3396],{"type":3153,"value":3391},"You can anyway use ",{"type":3148,"tag":3159,"props":3393,"children":3394},{"href":3252},[3395],{"type":3153,"value":3255},{"type":3153,"value":3397}," to pre-render pages of your application or disable server-side rendering completely.",{"type":3148,"tag":3239,"props":3399,"children":3401},{"id":3400},"quick-setup",[3402],{"type":3153,"value":3403},"Quick Setup",{"type":3148,"tag":3405,"props":3406,"children":3407},"ol",{},[3408],{"type":3148,"tag":3209,"props":3409,"children":3410},{},[3411,3413,3418],{"type":3153,"value":3412},"Add ",{"type":3148,"tag":3293,"props":3414,"children":3416},{"className":3415},[],[3417],{"type":3153,"value":3020},{"type":3153,"value":3419}," in your Nuxt project",{"type":3148,"tag":3421,"props":3422,"children":3426},"pre",{"className":3423,"code":3424,"language":3425,"meta":3021,"style":3021},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","npx nuxi@latest module add auth-utils\n","bash",[3427],{"type":3148,"tag":3293,"props":3428,"children":3429},{"__ignoreMap":3021},[3430],{"type":3148,"tag":3431,"props":3432,"children":3434},"span",{"class":3433,"line":3107},"line",[3435,3441,3447,3452,3457],{"type":3148,"tag":3431,"props":3436,"children":3438},{"style":3437},"--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B",[3439],{"type":3153,"value":3440},"npx",{"type":3148,"tag":3431,"props":3442,"children":3444},{"style":3443},"--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D",[3445],{"type":3153,"value":3446}," nuxi@latest",{"type":3148,"tag":3431,"props":3448,"children":3449},{"style":3443},[3450],{"type":3153,"value":3451}," module",{"type":3148,"tag":3431,"props":3453,"children":3454},{"style":3443},[3455],{"type":3153,"value":3456}," add",{"type":3148,"tag":3431,"props":3458,"children":3459},{"style":3443},[3460],{"type":3153,"value":3461}," auth-utils\n",{"type":3148,"tag":3405,"props":3463,"children":3464},{"start":3073},[3465],{"type":3148,"tag":3209,"props":3466,"children":3467},{},[3468,3470,3476,3478,3483],{"type":3153,"value":3469},"Add a ",{"type":3148,"tag":3293,"props":3471,"children":3473},{"className":3472},[],[3474],{"type":3153,"value":3475},"NUXT_SESSION_PASSWORD",{"type":3153,"value":3477}," env variable with at least 32 characters in the ",{"type":3148,"tag":3293,"props":3479,"children":3481},{"className":3480},[],[3482],{"type":3153,"value":200},{"type":3153,"value":3386},{"type":3148,"tag":3421,"props":3485,"children":3487},{"className":3423,"code":3486,"language":3425,"meta":3021,"style":3021},"# .env\nNUXT_SESSION_PASSWORD=password-with-at-least-32-characters\n",[3488],{"type":3148,"tag":3293,"props":3489,"children":3490},{"__ignoreMap":3021},[3491,3500],{"type":3148,"tag":3431,"props":3492,"children":3493},{"class":3433,"line":3107},[3494],{"type":3148,"tag":3431,"props":3495,"children":3497},{"style":3496},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[3498],{"type":3153,"value":3499},"# .env\n",{"type":3148,"tag":3431,"props":3501,"children":3502},{"class":3433,"line":3073},[3503,3508,3514],{"type":3148,"tag":3431,"props":3504,"children":3506},{"style":3505},"--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8",[3507],{"type":3153,"value":3475},{"type":3148,"tag":3431,"props":3509,"children":3511},{"style":3510},"--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF",[3512],{"type":3153,"value":3513},"=",{"type":3148,"tag":3431,"props":3515,"children":3516},{"style":3443},[3517],{"type":3153,"value":3518},"password-with-at-least-32-characters\n",{"type":3148,"tag":3155,"props":3520,"children":3521},{},[3522,3524,3529],{"type":3153,"value":3523},"Nuxt Auth Utils generates one for you when running Nuxt in development the first time if no ",{"type":3148,"tag":3293,"props":3525,"children":3527},{"className":3526},[],[3528],{"type":3153,"value":3475},{"type":3153,"value":3530}," is set.",{"type":3148,"tag":3405,"props":3532,"children":3533},{"start":3057},[3534],{"type":3148,"tag":3209,"props":3535,"children":3536},{},[3537],{"type":3153,"value":3538},"That's it! You can now add authentication to your Nuxt app ✨",{"type":3148,"tag":3239,"props":3540,"children":3542},{"id":3541},"vue-composable",[3543],{"type":3153,"value":3544},"Vue Composable",{"type":3148,"tag":3155,"props":3546,"children":3547},{},[3548],{"type":3153,"value":3549},"Nuxt Auth Utils automatically adds some plugins to fetch the current user session to let you access it from your Vue components.",{"type":3148,"tag":3551,"props":3552,"children":3554},"h3",{"id":3553},"user-session",[3555],{"type":3153,"value":3556},"User Session",{"type":3148,"tag":3421,"props":3558,"children":3562},{"className":3559,"code":3560,"language":3561,"meta":3021,"style":3021},"language-vue shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","\u003Cscript setup>\nconst { loggedIn, user, session, fetch, clear, openInPopup } = useUserSession()\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv v-if=\"loggedIn\">\n    \u003Ch1>Welcome {{ user.login }}!\u003C\u002Fh1>\n    \u003Cp>Logged in since {{ session.loggedInAt }}\u003C\u002Fp>\n    \u003Cbutton @click=\"clear\">Logout\u003C\u002Fbutton>\n  \u003C\u002Fdiv>\n  \u003Cdiv v-else>\n    \u003Ch1>Not logged in\u003C\u002Fh1>\n    \u003Ca href=\"\u002Fauth\u002Fgithub\">Login with GitHub\u003C\u002Fa>\n    \u003C!-- or open the OAuth route in a popup -->\n    \u003Cbutton @click=\"openInPopup('\u002Fauth\u002Fgithub')\">Login with GitHub\u003C\u002Fbutton>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n","vue",[3563],{"type":3148,"tag":3293,"props":3564,"children":3565},{"__ignoreMap":3021},[3566,3591,3676,3692,3701,3718,3759,3793,3825,3880,3897,3917,3950,4005,4014,4067,4082],{"type":3148,"tag":3431,"props":3567,"children":3568},{"class":3433,"line":3107},[3569,3574,3580,3586],{"type":3148,"tag":3431,"props":3570,"children":3571},{"style":3510},[3572],{"type":3153,"value":3573},"\u003C",{"type":3148,"tag":3431,"props":3575,"children":3577},{"style":3576},"--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178",[3578],{"type":3153,"value":3579},"script",{"type":3148,"tag":3431,"props":3581,"children":3583},{"style":3582},"--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA",[3584],{"type":3153,"value":3585}," setup",{"type":3148,"tag":3431,"props":3587,"children":3588},{"style":3510},[3589],{"type":3153,"value":3590},">\n",{"type":3148,"tag":3431,"props":3592,"children":3593},{"class":3433,"line":3073},[3594,3599,3604,3609,3614,3619,3623,3628,3632,3637,3641,3646,3650,3655,3660,3665,3671],{"type":3148,"tag":3431,"props":3595,"children":3596},{"style":3582},[3597],{"type":3153,"value":3598},"const",{"type":3148,"tag":3431,"props":3600,"children":3601},{"style":3510},[3602],{"type":3153,"value":3603}," {",{"type":3148,"tag":3431,"props":3605,"children":3606},{"style":3505},[3607],{"type":3153,"value":3608}," loggedIn",{"type":3148,"tag":3431,"props":3610,"children":3611},{"style":3510},[3612],{"type":3153,"value":3613},",",{"type":3148,"tag":3431,"props":3615,"children":3616},{"style":3505},[3617],{"type":3153,"value":3618}," user",{"type":3148,"tag":3431,"props":3620,"children":3621},{"style":3510},[3622],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":3624,"children":3625},{"style":3505},[3626],{"type":3153,"value":3627}," session",{"type":3148,"tag":3431,"props":3629,"children":3630},{"style":3510},[3631],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":3633,"children":3634},{"style":3505},[3635],{"type":3153,"value":3636}," fetch",{"type":3148,"tag":3431,"props":3638,"children":3639},{"style":3510},[3640],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":3642,"children":3643},{"style":3505},[3644],{"type":3153,"value":3645}," clear",{"type":3148,"tag":3431,"props":3647,"children":3648},{"style":3510},[3649],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":3651,"children":3652},{"style":3505},[3653],{"type":3153,"value":3654}," openInPopup ",{"type":3148,"tag":3431,"props":3656,"children":3657},{"style":3510},[3658],{"type":3153,"value":3659},"}",{"type":3148,"tag":3431,"props":3661,"children":3662},{"style":3510},[3663],{"type":3153,"value":3664}," =",{"type":3148,"tag":3431,"props":3666,"children":3668},{"style":3667},"--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF",[3669],{"type":3153,"value":3670}," useUserSession",{"type":3148,"tag":3431,"props":3672,"children":3673},{"style":3505},[3674],{"type":3153,"value":3675},"()\n",{"type":3148,"tag":3431,"props":3677,"children":3678},{"class":3433,"line":3057},[3679,3684,3688],{"type":3148,"tag":3431,"props":3680,"children":3681},{"style":3510},[3682],{"type":3153,"value":3683},"\u003C\u002F",{"type":3148,"tag":3431,"props":3685,"children":3686},{"style":3576},[3687],{"type":3153,"value":3579},{"type":3148,"tag":3431,"props":3689,"children":3690},{"style":3510},[3691],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":3693,"children":3695},{"class":3433,"line":3694},4,[3696],{"type":3148,"tag":3431,"props":3697,"children":3698},{"emptyLinePlaceholder":1200},[3699],{"type":3153,"value":3700},"\n",{"type":3148,"tag":3431,"props":3702,"children":3704},{"class":3433,"line":3703},5,[3705,3709,3714],{"type":3148,"tag":3431,"props":3706,"children":3707},{"style":3510},[3708],{"type":3153,"value":3573},{"type":3148,"tag":3431,"props":3710,"children":3711},{"style":3576},[3712],{"type":3153,"value":3713},"template",{"type":3148,"tag":3431,"props":3715,"children":3716},{"style":3510},[3717],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":3719,"children":3721},{"class":3433,"line":3720},6,[3722,3727,3732,3737,3741,3746,3751,3755],{"type":3148,"tag":3431,"props":3723,"children":3724},{"style":3510},[3725],{"type":3153,"value":3726},"  \u003C",{"type":3148,"tag":3431,"props":3728,"children":3729},{"style":3576},[3730],{"type":3153,"value":3731},"div",{"type":3148,"tag":3431,"props":3733,"children":3734},{"style":3582},[3735],{"type":3153,"value":3736}," v-if",{"type":3148,"tag":3431,"props":3738,"children":3739},{"style":3510},[3740],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":3742,"children":3743},{"style":3510},[3744],{"type":3153,"value":3745},"\"",{"type":3148,"tag":3431,"props":3747,"children":3748},{"style":3443},[3749],{"type":3153,"value":3750},"loggedIn",{"type":3148,"tag":3431,"props":3752,"children":3753},{"style":3510},[3754],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":3756,"children":3757},{"style":3510},[3758],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":3760,"children":3761},{"class":3433,"line":3053},[3762,3767,3771,3776,3781,3785,3789],{"type":3148,"tag":3431,"props":3763,"children":3764},{"style":3510},[3765],{"type":3153,"value":3766},"    \u003C",{"type":3148,"tag":3431,"props":3768,"children":3769},{"style":3576},[3770],{"type":3153,"value":3149},{"type":3148,"tag":3431,"props":3772,"children":3773},{"style":3510},[3774],{"type":3153,"value":3775},">",{"type":3148,"tag":3431,"props":3777,"children":3778},{"style":3505},[3779],{"type":3153,"value":3780},"Welcome {{ user.login }}!",{"type":3148,"tag":3431,"props":3782,"children":3783},{"style":3510},[3784],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":3786,"children":3787},{"style":3576},[3788],{"type":3153,"value":3149},{"type":3148,"tag":3431,"props":3790,"children":3791},{"style":3510},[3792],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":3794,"children":3795},{"class":3433,"line":3049},[3796,3800,3804,3808,3813,3817,3821],{"type":3148,"tag":3431,"props":3797,"children":3798},{"style":3510},[3799],{"type":3153,"value":3766},{"type":3148,"tag":3431,"props":3801,"children":3802},{"style":3576},[3803],{"type":3153,"value":3155},{"type":3148,"tag":3431,"props":3805,"children":3806},{"style":3510},[3807],{"type":3153,"value":3775},{"type":3148,"tag":3431,"props":3809,"children":3810},{"style":3505},[3811],{"type":3153,"value":3812},"Logged in since {{ session.loggedInAt }}",{"type":3148,"tag":3431,"props":3814,"children":3815},{"style":3510},[3816],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":3818,"children":3819},{"style":3576},[3820],{"type":3153,"value":3155},{"type":3148,"tag":3431,"props":3822,"children":3823},{"style":3510},[3824],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":3826,"children":3827},{"class":3433,"line":3045},[3828,3832,3837,3842,3846,3850,3855,3859,3863,3868,3872,3876],{"type":3148,"tag":3431,"props":3829,"children":3830},{"style":3510},[3831],{"type":3153,"value":3766},{"type":3148,"tag":3431,"props":3833,"children":3834},{"style":3576},[3835],{"type":3153,"value":3836},"button",{"type":3148,"tag":3431,"props":3838,"children":3839},{"style":3582},[3840],{"type":3153,"value":3841}," @click",{"type":3148,"tag":3431,"props":3843,"children":3844},{"style":3510},[3845],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":3847,"children":3848},{"style":3510},[3849],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":3851,"children":3852},{"style":3443},[3853],{"type":3153,"value":3854},"clear",{"type":3148,"tag":3431,"props":3856,"children":3857},{"style":3510},[3858],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":3860,"children":3861},{"style":3510},[3862],{"type":3153,"value":3775},{"type":3148,"tag":3431,"props":3864,"children":3865},{"style":3505},[3866],{"type":3153,"value":3867},"Logout",{"type":3148,"tag":3431,"props":3869,"children":3870},{"style":3510},[3871],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":3873,"children":3874},{"style":3576},[3875],{"type":3153,"value":3836},{"type":3148,"tag":3431,"props":3877,"children":3878},{"style":3510},[3879],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":3881,"children":3883},{"class":3433,"line":3882},10,[3884,3889,3893],{"type":3148,"tag":3431,"props":3885,"children":3886},{"style":3510},[3887],{"type":3153,"value":3888},"  \u003C\u002F",{"type":3148,"tag":3431,"props":3890,"children":3891},{"style":3576},[3892],{"type":3153,"value":3731},{"type":3148,"tag":3431,"props":3894,"children":3895},{"style":3510},[3896],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":3898,"children":3899},{"class":3433,"line":3136},[3900,3904,3908,3913],{"type":3148,"tag":3431,"props":3901,"children":3902},{"style":3510},[3903],{"type":3153,"value":3726},{"type":3148,"tag":3431,"props":3905,"children":3906},{"style":3576},[3907],{"type":3153,"value":3731},{"type":3148,"tag":3431,"props":3909,"children":3910},{"style":3582},[3911],{"type":3153,"value":3912}," v-else",{"type":3148,"tag":3431,"props":3914,"children":3915},{"style":3510},[3916],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":3918,"children":3920},{"class":3433,"line":3919},12,[3921,3925,3929,3933,3938,3942,3946],{"type":3148,"tag":3431,"props":3922,"children":3923},{"style":3510},[3924],{"type":3153,"value":3766},{"type":3148,"tag":3431,"props":3926,"children":3927},{"style":3576},[3928],{"type":3153,"value":3149},{"type":3148,"tag":3431,"props":3930,"children":3931},{"style":3510},[3932],{"type":3153,"value":3775},{"type":3148,"tag":3431,"props":3934,"children":3935},{"style":3505},[3936],{"type":3153,"value":3937},"Not logged in",{"type":3148,"tag":3431,"props":3939,"children":3940},{"style":3510},[3941],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":3943,"children":3944},{"style":3576},[3945],{"type":3153,"value":3149},{"type":3148,"tag":3431,"props":3947,"children":3948},{"style":3510},[3949],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":3951,"children":3953},{"class":3433,"line":3952},13,[3954,3958,3962,3967,3971,3975,3980,3984,3988,3993,3997,4001],{"type":3148,"tag":3431,"props":3955,"children":3956},{"style":3510},[3957],{"type":3153,"value":3766},{"type":3148,"tag":3431,"props":3959,"children":3960},{"style":3576},[3961],{"type":3153,"value":3159},{"type":3148,"tag":3431,"props":3963,"children":3964},{"style":3582},[3965],{"type":3153,"value":3966}," href",{"type":3148,"tag":3431,"props":3968,"children":3969},{"style":3510},[3970],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":3972,"children":3973},{"style":3510},[3974],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":3976,"children":3977},{"style":3443},[3978],{"type":3153,"value":3979},"\u002Fauth\u002Fgithub",{"type":3148,"tag":3431,"props":3981,"children":3982},{"style":3510},[3983],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":3985,"children":3986},{"style":3510},[3987],{"type":3153,"value":3775},{"type":3148,"tag":3431,"props":3989,"children":3990},{"style":3505},[3991],{"type":3153,"value":3992},"Login with GitHub",{"type":3148,"tag":3431,"props":3994,"children":3995},{"style":3510},[3996],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":3998,"children":3999},{"style":3576},[4000],{"type":3153,"value":3159},{"type":3148,"tag":3431,"props":4002,"children":4003},{"style":3510},[4004],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":4006,"children":4008},{"class":3433,"line":4007},14,[4009],{"type":3148,"tag":3431,"props":4010,"children":4011},{"style":3496},[4012],{"type":3153,"value":4013},"    \u003C!-- or open the OAuth route in a popup -->\n",{"type":3148,"tag":3431,"props":4015,"children":4017},{"class":3433,"line":4016},15,[4018,4022,4026,4030,4034,4038,4043,4047,4051,4055,4059,4063],{"type":3148,"tag":3431,"props":4019,"children":4020},{"style":3510},[4021],{"type":3153,"value":3766},{"type":3148,"tag":3431,"props":4023,"children":4024},{"style":3576},[4025],{"type":3153,"value":3836},{"type":3148,"tag":3431,"props":4027,"children":4028},{"style":3582},[4029],{"type":3153,"value":3841},{"type":3148,"tag":3431,"props":4031,"children":4032},{"style":3510},[4033],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":4035,"children":4036},{"style":3510},[4037],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":4039,"children":4040},{"style":3443},[4041],{"type":3153,"value":4042},"openInPopup('\u002Fauth\u002Fgithub')",{"type":3148,"tag":3431,"props":4044,"children":4045},{"style":3510},[4046],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":4048,"children":4049},{"style":3510},[4050],{"type":3153,"value":3775},{"type":3148,"tag":3431,"props":4052,"children":4053},{"style":3505},[4054],{"type":3153,"value":3992},{"type":3148,"tag":3431,"props":4056,"children":4057},{"style":3510},[4058],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":4060,"children":4061},{"style":3576},[4062],{"type":3153,"value":3836},{"type":3148,"tag":3431,"props":4064,"children":4065},{"style":3510},[4066],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":4068,"children":4069},{"class":3433,"line":3041},[4070,4074,4078],{"type":3148,"tag":3431,"props":4071,"children":4072},{"style":3510},[4073],{"type":3153,"value":3888},{"type":3148,"tag":3431,"props":4075,"children":4076},{"style":3576},[4077],{"type":3153,"value":3731},{"type":3148,"tag":3431,"props":4079,"children":4080},{"style":3510},[4081],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":4083,"children":4085},{"class":3433,"line":4084},17,[4086,4090,4094],{"type":3148,"tag":3431,"props":4087,"children":4088},{"style":3510},[4089],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":4091,"children":4092},{"style":3576},[4093],{"type":3153,"value":3713},{"type":3148,"tag":3431,"props":4095,"children":4096},{"style":3510},[4097],{"type":3153,"value":3590},{"type":3148,"tag":3155,"props":4099,"children":4100},{},[4101],{"type":3148,"tag":4102,"props":4103,"children":4104},"strong",{},[4105],{"type":3153,"value":4106},"TypeScript Signature:",{"type":3148,"tag":3421,"props":4108,"children":4112},{"className":4109,"code":4110,"language":4111,"meta":3021,"style":3021},"language-ts shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","interface UserSessionComposable {\n  \u002F**\n   * Computed indicating if the auth session is ready\n   *\u002F\n  ready: ComputedRef\u003Cboolean>\n  \u002F**\n   * Computed indicating if the user is logged in.\n   *\u002F\n  loggedIn: ComputedRef\u003Cboolean>\n  \u002F**\n   * The user object if logged in, null otherwise.\n   *\u002F\n  user: ComputedRef\u003CUser | null>\n  \u002F**\n   * The session object.\n   *\u002F\n  session: Ref\u003CUserSession>\n  \u002F**\n   * Fetch the user session from the server.\n   *\u002F\n  fetch: () => Promise\u003Cvoid>\n  \u002F**\n   * Clear the user session and remove the session cookie.\n   *\u002F\n  clear: () => Promise\u003Cvoid>\n  \u002F**\n   * Open the OAuth route in a popup that auto-closes when successful.\n   *\u002F\n  openInPopup: (route: string, size?: { width?: number, height?: number }) => void\n}\n","ts",[4113],{"type":3148,"tag":3293,"props":4114,"children":4115},{"__ignoreMap":3021},[4116,4134,4142,4150,4158,4189,4196,4204,4211,4239,4246,4254,4261,4300,4307,4315,4322,4352,4360,4369,4377,4418,4426,4435,4443,4480,4488,4497,4505,4601],{"type":3148,"tag":3431,"props":4117,"children":4118},{"class":3433,"line":3107},[4119,4124,4129],{"type":3148,"tag":3431,"props":4120,"children":4121},{"style":3582},[4122],{"type":3153,"value":4123},"interface",{"type":3148,"tag":3431,"props":4125,"children":4126},{"style":3437},[4127],{"type":3153,"value":4128}," UserSessionComposable",{"type":3148,"tag":3431,"props":4130,"children":4131},{"style":3510},[4132],{"type":3153,"value":4133}," {\n",{"type":3148,"tag":3431,"props":4135,"children":4136},{"class":3433,"line":3073},[4137],{"type":3148,"tag":3431,"props":4138,"children":4139},{"style":3496},[4140],{"type":3153,"value":4141},"  \u002F**\n",{"type":3148,"tag":3431,"props":4143,"children":4144},{"class":3433,"line":3057},[4145],{"type":3148,"tag":3431,"props":4146,"children":4147},{"style":3496},[4148],{"type":3153,"value":4149},"   * Computed indicating if the auth session is ready\n",{"type":3148,"tag":3431,"props":4151,"children":4152},{"class":3433,"line":3694},[4153],{"type":3148,"tag":3431,"props":4154,"children":4155},{"style":3496},[4156],{"type":3153,"value":4157},"   *\u002F\n",{"type":3148,"tag":3431,"props":4159,"children":4160},{"class":3433,"line":3703},[4161,4166,4171,4176,4180,4185],{"type":3148,"tag":3431,"props":4162,"children":4163},{"style":3576},[4164],{"type":3153,"value":4165},"  ready",{"type":3148,"tag":3431,"props":4167,"children":4168},{"style":3510},[4169],{"type":3153,"value":4170},":",{"type":3148,"tag":3431,"props":4172,"children":4173},{"style":3437},[4174],{"type":3153,"value":4175}," ComputedRef",{"type":3148,"tag":3431,"props":4177,"children":4178},{"style":3510},[4179],{"type":3153,"value":3573},{"type":3148,"tag":3431,"props":4181,"children":4182},{"style":3437},[4183],{"type":3153,"value":4184},"boolean",{"type":3148,"tag":3431,"props":4186,"children":4187},{"style":3510},[4188],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":4190,"children":4191},{"class":3433,"line":3720},[4192],{"type":3148,"tag":3431,"props":4193,"children":4194},{"style":3496},[4195],{"type":3153,"value":4141},{"type":3148,"tag":3431,"props":4197,"children":4198},{"class":3433,"line":3053},[4199],{"type":3148,"tag":3431,"props":4200,"children":4201},{"style":3496},[4202],{"type":3153,"value":4203},"   * Computed indicating if the user is logged in.\n",{"type":3148,"tag":3431,"props":4205,"children":4206},{"class":3433,"line":3049},[4207],{"type":3148,"tag":3431,"props":4208,"children":4209},{"style":3496},[4210],{"type":3153,"value":4157},{"type":3148,"tag":3431,"props":4212,"children":4213},{"class":3433,"line":3045},[4214,4219,4223,4227,4231,4235],{"type":3148,"tag":3431,"props":4215,"children":4216},{"style":3576},[4217],{"type":3153,"value":4218},"  loggedIn",{"type":3148,"tag":3431,"props":4220,"children":4221},{"style":3510},[4222],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":4224,"children":4225},{"style":3437},[4226],{"type":3153,"value":4175},{"type":3148,"tag":3431,"props":4228,"children":4229},{"style":3510},[4230],{"type":3153,"value":3573},{"type":3148,"tag":3431,"props":4232,"children":4233},{"style":3437},[4234],{"type":3153,"value":4184},{"type":3148,"tag":3431,"props":4236,"children":4237},{"style":3510},[4238],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":4240,"children":4241},{"class":3433,"line":3882},[4242],{"type":3148,"tag":3431,"props":4243,"children":4244},{"style":3496},[4245],{"type":3153,"value":4141},{"type":3148,"tag":3431,"props":4247,"children":4248},{"class":3433,"line":3136},[4249],{"type":3148,"tag":3431,"props":4250,"children":4251},{"style":3496},[4252],{"type":3153,"value":4253},"   * The user object if logged in, null otherwise.\n",{"type":3148,"tag":3431,"props":4255,"children":4256},{"class":3433,"line":3919},[4257],{"type":3148,"tag":3431,"props":4258,"children":4259},{"style":3496},[4260],{"type":3153,"value":4157},{"type":3148,"tag":3431,"props":4262,"children":4263},{"class":3433,"line":3952},[4264,4269,4273,4277,4281,4286,4291,4296],{"type":3148,"tag":3431,"props":4265,"children":4266},{"style":3576},[4267],{"type":3153,"value":4268},"  user",{"type":3148,"tag":3431,"props":4270,"children":4271},{"style":3510},[4272],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":4274,"children":4275},{"style":3437},[4276],{"type":3153,"value":4175},{"type":3148,"tag":3431,"props":4278,"children":4279},{"style":3510},[4280],{"type":3153,"value":3573},{"type":3148,"tag":3431,"props":4282,"children":4283},{"style":3437},[4284],{"type":3153,"value":4285},"User",{"type":3148,"tag":3431,"props":4287,"children":4288},{"style":3510},[4289],{"type":3153,"value":4290}," |",{"type":3148,"tag":3431,"props":4292,"children":4293},{"style":3437},[4294],{"type":3153,"value":4295}," null",{"type":3148,"tag":3431,"props":4297,"children":4298},{"style":3510},[4299],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":4301,"children":4302},{"class":3433,"line":4007},[4303],{"type":3148,"tag":3431,"props":4304,"children":4305},{"style":3496},[4306],{"type":3153,"value":4141},{"type":3148,"tag":3431,"props":4308,"children":4309},{"class":3433,"line":4016},[4310],{"type":3148,"tag":3431,"props":4311,"children":4312},{"style":3496},[4313],{"type":3153,"value":4314},"   * The session object.\n",{"type":3148,"tag":3431,"props":4316,"children":4317},{"class":3433,"line":3041},[4318],{"type":3148,"tag":3431,"props":4319,"children":4320},{"style":3496},[4321],{"type":3153,"value":4157},{"type":3148,"tag":3431,"props":4323,"children":4324},{"class":3433,"line":4084},[4325,4330,4334,4339,4343,4348],{"type":3148,"tag":3431,"props":4326,"children":4327},{"style":3576},[4328],{"type":3153,"value":4329},"  session",{"type":3148,"tag":3431,"props":4331,"children":4332},{"style":3510},[4333],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":4335,"children":4336},{"style":3437},[4337],{"type":3153,"value":4338}," Ref",{"type":3148,"tag":3431,"props":4340,"children":4341},{"style":3510},[4342],{"type":3153,"value":3573},{"type":3148,"tag":3431,"props":4344,"children":4345},{"style":3437},[4346],{"type":3153,"value":4347},"UserSession",{"type":3148,"tag":3431,"props":4349,"children":4350},{"style":3510},[4351],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":4353,"children":4355},{"class":3433,"line":4354},18,[4356],{"type":3148,"tag":3431,"props":4357,"children":4358},{"style":3496},[4359],{"type":3153,"value":4141},{"type":3148,"tag":3431,"props":4361,"children":4363},{"class":3433,"line":4362},19,[4364],{"type":3148,"tag":3431,"props":4365,"children":4366},{"style":3496},[4367],{"type":3153,"value":4368},"   * Fetch the user session from the server.\n",{"type":3148,"tag":3431,"props":4370,"children":4372},{"class":3433,"line":4371},20,[4373],{"type":3148,"tag":3431,"props":4374,"children":4375},{"style":3496},[4376],{"type":3153,"value":4157},{"type":3148,"tag":3431,"props":4378,"children":4380},{"class":3433,"line":4379},21,[4381,4386,4390,4395,4400,4405,4409,4414],{"type":3148,"tag":3431,"props":4382,"children":4383},{"style":3576},[4384],{"type":3153,"value":4385},"  fetch",{"type":3148,"tag":3431,"props":4387,"children":4388},{"style":3510},[4389],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":4391,"children":4392},{"style":3510},[4393],{"type":3153,"value":4394}," ()",{"type":3148,"tag":3431,"props":4396,"children":4397},{"style":3582},[4398],{"type":3153,"value":4399}," =>",{"type":3148,"tag":3431,"props":4401,"children":4402},{"style":3437},[4403],{"type":3153,"value":4404}," Promise",{"type":3148,"tag":3431,"props":4406,"children":4407},{"style":3510},[4408],{"type":3153,"value":3573},{"type":3148,"tag":3431,"props":4410,"children":4411},{"style":3437},[4412],{"type":3153,"value":4413},"void",{"type":3148,"tag":3431,"props":4415,"children":4416},{"style":3510},[4417],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":4419,"children":4421},{"class":3433,"line":4420},22,[4422],{"type":3148,"tag":3431,"props":4423,"children":4424},{"style":3496},[4425],{"type":3153,"value":4141},{"type":3148,"tag":3431,"props":4427,"children":4429},{"class":3433,"line":4428},23,[4430],{"type":3148,"tag":3431,"props":4431,"children":4432},{"style":3496},[4433],{"type":3153,"value":4434},"   * Clear the user session and remove the session cookie.\n",{"type":3148,"tag":3431,"props":4436,"children":4438},{"class":3433,"line":4437},24,[4439],{"type":3148,"tag":3431,"props":4440,"children":4441},{"style":3496},[4442],{"type":3153,"value":4157},{"type":3148,"tag":3431,"props":4444,"children":4446},{"class":3433,"line":4445},25,[4447,4452,4456,4460,4464,4468,4472,4476],{"type":3148,"tag":3431,"props":4448,"children":4449},{"style":3576},[4450],{"type":3153,"value":4451},"  clear",{"type":3148,"tag":3431,"props":4453,"children":4454},{"style":3510},[4455],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":4457,"children":4458},{"style":3510},[4459],{"type":3153,"value":4394},{"type":3148,"tag":3431,"props":4461,"children":4462},{"style":3582},[4463],{"type":3153,"value":4399},{"type":3148,"tag":3431,"props":4465,"children":4466},{"style":3437},[4467],{"type":3153,"value":4404},{"type":3148,"tag":3431,"props":4469,"children":4470},{"style":3510},[4471],{"type":3153,"value":3573},{"type":3148,"tag":3431,"props":4473,"children":4474},{"style":3437},[4475],{"type":3153,"value":4413},{"type":3148,"tag":3431,"props":4477,"children":4478},{"style":3510},[4479],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":4481,"children":4483},{"class":3433,"line":4482},26,[4484],{"type":3148,"tag":3431,"props":4485,"children":4486},{"style":3496},[4487],{"type":3153,"value":4141},{"type":3148,"tag":3431,"props":4489,"children":4491},{"class":3433,"line":4490},27,[4492],{"type":3148,"tag":3431,"props":4493,"children":4494},{"style":3496},[4495],{"type":3153,"value":4496},"   * Open the OAuth route in a popup that auto-closes when successful.\n",{"type":3148,"tag":3431,"props":4498,"children":4500},{"class":3433,"line":4499},28,[4501],{"type":3148,"tag":3431,"props":4502,"children":4503},{"style":3496},[4504],{"type":3153,"value":4157},{"type":3148,"tag":3431,"props":4506,"children":4508},{"class":3433,"line":4507},29,[4509,4514,4518,4523,4529,4533,4538,4542,4547,4552,4556,4561,4565,4570,4574,4579,4583,4587,4592,4596],{"type":3148,"tag":3431,"props":4510,"children":4511},{"style":3576},[4512],{"type":3153,"value":4513},"  openInPopup",{"type":3148,"tag":3431,"props":4515,"children":4516},{"style":3510},[4517],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":4519,"children":4520},{"style":3510},[4521],{"type":3153,"value":4522}," (",{"type":3148,"tag":3431,"props":4524,"children":4526},{"style":4525},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[4527],{"type":3153,"value":4528},"route",{"type":3148,"tag":3431,"props":4530,"children":4531},{"style":3510},[4532],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":4534,"children":4535},{"style":3437},[4536],{"type":3153,"value":4537}," string",{"type":3148,"tag":3431,"props":4539,"children":4540},{"style":3510},[4541],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":4543,"children":4544},{"style":4525},[4545],{"type":3153,"value":4546}," size",{"type":3148,"tag":3431,"props":4548,"children":4549},{"style":3510},[4550],{"type":3153,"value":4551},"?:",{"type":3148,"tag":3431,"props":4553,"children":4554},{"style":3510},[4555],{"type":3153,"value":3603},{"type":3148,"tag":3431,"props":4557,"children":4558},{"style":3576},[4559],{"type":3153,"value":4560}," width",{"type":3148,"tag":3431,"props":4562,"children":4563},{"style":3510},[4564],{"type":3153,"value":4551},{"type":3148,"tag":3431,"props":4566,"children":4567},{"style":3437},[4568],{"type":3153,"value":4569}," number",{"type":3148,"tag":3431,"props":4571,"children":4572},{"style":3510},[4573],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":4575,"children":4576},{"style":3576},[4577],{"type":3153,"value":4578}," height",{"type":3148,"tag":3431,"props":4580,"children":4581},{"style":3510},[4582],{"type":3153,"value":4551},{"type":3148,"tag":3431,"props":4584,"children":4585},{"style":3437},[4586],{"type":3153,"value":4569},{"type":3148,"tag":3431,"props":4588,"children":4589},{"style":3510},[4590],{"type":3153,"value":4591}," })",{"type":3148,"tag":3431,"props":4593,"children":4594},{"style":3582},[4595],{"type":3153,"value":4399},{"type":3148,"tag":3431,"props":4597,"children":4598},{"style":3437},[4599],{"type":3153,"value":4600}," void\n",{"type":3148,"tag":3431,"props":4602,"children":4604},{"class":3433,"line":4603},30,[4605],{"type":3148,"tag":3431,"props":4606,"children":4607},{"style":3510},[4608],{"type":3153,"value":4609},"}\n",{"type":3148,"tag":4611,"props":4612,"children":4613},"blockquote",{},[4614],{"type":3148,"tag":3155,"props":4615,"children":4616},{},[4617,4622,4624,4630],{"type":3148,"tag":3431,"props":4618,"children":4619},{},[4620],{"type":3153,"value":4621},"!IMPORTANT",{"type":3153,"value":4623},"\nNuxt Auth Utils uses the ",{"type":3148,"tag":3293,"props":4625,"children":4627},{"className":4626},[],[4628],{"type":3153,"value":4629},"\u002Fapi\u002F_auth\u002Fsession",{"type":3153,"value":4631}," route for session management. Ensure your API route middleware doesn't interfere with this path.",{"type":3148,"tag":3239,"props":4633,"children":4635},{"id":4634},"server-utils",[4636],{"type":3153,"value":4637},"Server Utils",{"type":3148,"tag":3155,"props":4639,"children":4640},{},[4641,4643,4649],{"type":3153,"value":4642},"The following helpers are auto-imported in your ",{"type":3148,"tag":3293,"props":4644,"children":4646},{"className":4645},[],[4647],{"type":3153,"value":4648},"server\u002F",{"type":3153,"value":4650}," directory.",{"type":3148,"tag":3551,"props":4652,"children":4654},{"id":4653},"session-management",[4655],{"type":3153,"value":4656},"Session Management",{"type":3148,"tag":3421,"props":4658,"children":4660},{"className":4109,"code":4659,"language":4111,"meta":3021,"style":3021},"\u002F\u002F Set a user session, note that this data is encrypted in the cookie but can be decrypted with an API call\n\u002F\u002F Only store the data that allow you to recognize a user, but do not store sensitive data\n\u002F\u002F Merges new data with existing data using unjs\u002Fdefu library\nawait setUserSession(event, {\n  \u002F\u002F User data\n  user: {\n    login: 'atinux'\n  },\n  \u002F\u002F Private data accessible only on server\u002F routes\n  secure: {\n    apiToken: '1234567890'\n  },\n  \u002F\u002F Any extra fields for the session data\n  loggedInAt: new Date()\n})\n\n\u002F\u002F Replace a user session. Same behaviour as setUserSession, except it does not merge data with existing data\nawait replaceUserSession(event, data)\n\n\u002F\u002F Get the current user session\nconst session = await getUserSession(event)\n\n\u002F\u002F Clear the current user session\nawait clearUserSession(event)\n\n\u002F\u002F Require a user session (send back 401 if no `user` key in session)\nconst session = await requireUserSession(event)\n",[4661],{"type":3148,"tag":3293,"props":4662,"children":4663},{"__ignoreMap":3021},[4664,4672,4680,4688,4715,4723,4738,4764,4772,4780,4796,4821,4828,4836,4862,4874,4881,4889,4914,4921,4929,4960,4967,4975,4991,4998,5006],{"type":3148,"tag":3431,"props":4665,"children":4666},{"class":3433,"line":3107},[4667],{"type":3148,"tag":3431,"props":4668,"children":4669},{"style":3496},[4670],{"type":3153,"value":4671},"\u002F\u002F Set a user session, note that this data is encrypted in the cookie but can be decrypted with an API call\n",{"type":3148,"tag":3431,"props":4673,"children":4674},{"class":3433,"line":3073},[4675],{"type":3148,"tag":3431,"props":4676,"children":4677},{"style":3496},[4678],{"type":3153,"value":4679},"\u002F\u002F Only store the data that allow you to recognize a user, but do not store sensitive data\n",{"type":3148,"tag":3431,"props":4681,"children":4682},{"class":3433,"line":3057},[4683],{"type":3148,"tag":3431,"props":4684,"children":4685},{"style":3496},[4686],{"type":3153,"value":4687},"\u002F\u002F Merges new data with existing data using unjs\u002Fdefu library\n",{"type":3148,"tag":3431,"props":4689,"children":4690},{"class":3433,"line":3694},[4691,4697,4702,4707,4711],{"type":3148,"tag":3431,"props":4692,"children":4694},{"style":4693},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[4695],{"type":3153,"value":4696},"await",{"type":3148,"tag":3431,"props":4698,"children":4699},{"style":3667},[4700],{"type":3153,"value":4701}," setUserSession",{"type":3148,"tag":3431,"props":4703,"children":4704},{"style":3505},[4705],{"type":3153,"value":4706},"(event",{"type":3148,"tag":3431,"props":4708,"children":4709},{"style":3510},[4710],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":4712,"children":4713},{"style":3510},[4714],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":4716,"children":4717},{"class":3433,"line":3703},[4718],{"type":3148,"tag":3431,"props":4719,"children":4720},{"style":3496},[4721],{"type":3153,"value":4722},"  \u002F\u002F User data\n",{"type":3148,"tag":3431,"props":4724,"children":4725},{"class":3433,"line":3720},[4726,4730,4734],{"type":3148,"tag":3431,"props":4727,"children":4728},{"style":3576},[4729],{"type":3153,"value":4268},{"type":3148,"tag":3431,"props":4731,"children":4732},{"style":3510},[4733],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":4735,"children":4736},{"style":3510},[4737],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":4739,"children":4740},{"class":3433,"line":3053},[4741,4746,4750,4755,4759],{"type":3148,"tag":3431,"props":4742,"children":4743},{"style":3576},[4744],{"type":3153,"value":4745},"    login",{"type":3148,"tag":3431,"props":4747,"children":4748},{"style":3510},[4749],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":4751,"children":4752},{"style":3510},[4753],{"type":3153,"value":4754}," '",{"type":3148,"tag":3431,"props":4756,"children":4757},{"style":3443},[4758],{"type":3153,"value":3028},{"type":3148,"tag":3431,"props":4760,"children":4761},{"style":3510},[4762],{"type":3153,"value":4763},"'\n",{"type":3148,"tag":3431,"props":4765,"children":4766},{"class":3433,"line":3049},[4767],{"type":3148,"tag":3431,"props":4768,"children":4769},{"style":3510},[4770],{"type":3153,"value":4771},"  },\n",{"type":3148,"tag":3431,"props":4773,"children":4774},{"class":3433,"line":3045},[4775],{"type":3148,"tag":3431,"props":4776,"children":4777},{"style":3496},[4778],{"type":3153,"value":4779},"  \u002F\u002F Private data accessible only on server\u002F routes\n",{"type":3148,"tag":3431,"props":4781,"children":4782},{"class":3433,"line":3882},[4783,4788,4792],{"type":3148,"tag":3431,"props":4784,"children":4785},{"style":3576},[4786],{"type":3153,"value":4787},"  secure",{"type":3148,"tag":3431,"props":4789,"children":4790},{"style":3510},[4791],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":4793,"children":4794},{"style":3510},[4795],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":4797,"children":4798},{"class":3433,"line":3136},[4799,4804,4808,4812,4817],{"type":3148,"tag":3431,"props":4800,"children":4801},{"style":3576},[4802],{"type":3153,"value":4803},"    apiToken",{"type":3148,"tag":3431,"props":4805,"children":4806},{"style":3510},[4807],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":4809,"children":4810},{"style":3510},[4811],{"type":3153,"value":4754},{"type":3148,"tag":3431,"props":4813,"children":4814},{"style":3443},[4815],{"type":3153,"value":4816},"1234567890",{"type":3148,"tag":3431,"props":4818,"children":4819},{"style":3510},[4820],{"type":3153,"value":4763},{"type":3148,"tag":3431,"props":4822,"children":4823},{"class":3433,"line":3919},[4824],{"type":3148,"tag":3431,"props":4825,"children":4826},{"style":3510},[4827],{"type":3153,"value":4771},{"type":3148,"tag":3431,"props":4829,"children":4830},{"class":3433,"line":3952},[4831],{"type":3148,"tag":3431,"props":4832,"children":4833},{"style":3496},[4834],{"type":3153,"value":4835},"  \u002F\u002F Any extra fields for the session data\n",{"type":3148,"tag":3431,"props":4837,"children":4838},{"class":3433,"line":4007},[4839,4844,4848,4853,4858],{"type":3148,"tag":3431,"props":4840,"children":4841},{"style":3576},[4842],{"type":3153,"value":4843},"  loggedInAt",{"type":3148,"tag":3431,"props":4845,"children":4846},{"style":3510},[4847],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":4849,"children":4850},{"style":3510},[4851],{"type":3153,"value":4852}," new",{"type":3148,"tag":3431,"props":4854,"children":4855},{"style":3667},[4856],{"type":3153,"value":4857}," Date",{"type":3148,"tag":3431,"props":4859,"children":4860},{"style":3505},[4861],{"type":3153,"value":3675},{"type":3148,"tag":3431,"props":4863,"children":4864},{"class":3433,"line":4016},[4865,4869],{"type":3148,"tag":3431,"props":4866,"children":4867},{"style":3510},[4868],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":4870,"children":4871},{"style":3505},[4872],{"type":3153,"value":4873},")\n",{"type":3148,"tag":3431,"props":4875,"children":4876},{"class":3433,"line":3041},[4877],{"type":3148,"tag":3431,"props":4878,"children":4879},{"emptyLinePlaceholder":1200},[4880],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":4882,"children":4883},{"class":3433,"line":4084},[4884],{"type":3148,"tag":3431,"props":4885,"children":4886},{"style":3496},[4887],{"type":3153,"value":4888},"\u002F\u002F Replace a user session. Same behaviour as setUserSession, except it does not merge data with existing data\n",{"type":3148,"tag":3431,"props":4890,"children":4891},{"class":3433,"line":4354},[4892,4896,4901,4905,4909],{"type":3148,"tag":3431,"props":4893,"children":4894},{"style":4693},[4895],{"type":3153,"value":4696},{"type":3148,"tag":3431,"props":4897,"children":4898},{"style":3667},[4899],{"type":3153,"value":4900}," replaceUserSession",{"type":3148,"tag":3431,"props":4902,"children":4903},{"style":3505},[4904],{"type":3153,"value":4706},{"type":3148,"tag":3431,"props":4906,"children":4907},{"style":3510},[4908],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":4910,"children":4911},{"style":3505},[4912],{"type":3153,"value":4913}," data)\n",{"type":3148,"tag":3431,"props":4915,"children":4916},{"class":3433,"line":4362},[4917],{"type":3148,"tag":3431,"props":4918,"children":4919},{"emptyLinePlaceholder":1200},[4920],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":4922,"children":4923},{"class":3433,"line":4371},[4924],{"type":3148,"tag":3431,"props":4925,"children":4926},{"style":3496},[4927],{"type":3153,"value":4928},"\u002F\u002F Get the current user session\n",{"type":3148,"tag":3431,"props":4930,"children":4931},{"class":3433,"line":4379},[4932,4936,4941,4945,4950,4955],{"type":3148,"tag":3431,"props":4933,"children":4934},{"style":3582},[4935],{"type":3153,"value":3598},{"type":3148,"tag":3431,"props":4937,"children":4938},{"style":3505},[4939],{"type":3153,"value":4940}," session ",{"type":3148,"tag":3431,"props":4942,"children":4943},{"style":3510},[4944],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":4946,"children":4947},{"style":4693},[4948],{"type":3153,"value":4949}," await",{"type":3148,"tag":3431,"props":4951,"children":4952},{"style":3667},[4953],{"type":3153,"value":4954}," getUserSession",{"type":3148,"tag":3431,"props":4956,"children":4957},{"style":3505},[4958],{"type":3153,"value":4959},"(event)\n",{"type":3148,"tag":3431,"props":4961,"children":4962},{"class":3433,"line":4420},[4963],{"type":3148,"tag":3431,"props":4964,"children":4965},{"emptyLinePlaceholder":1200},[4966],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":4968,"children":4969},{"class":3433,"line":4428},[4970],{"type":3148,"tag":3431,"props":4971,"children":4972},{"style":3496},[4973],{"type":3153,"value":4974},"\u002F\u002F Clear the current user session\n",{"type":3148,"tag":3431,"props":4976,"children":4977},{"class":3433,"line":4437},[4978,4982,4987],{"type":3148,"tag":3431,"props":4979,"children":4980},{"style":4693},[4981],{"type":3153,"value":4696},{"type":3148,"tag":3431,"props":4983,"children":4984},{"style":3667},[4985],{"type":3153,"value":4986}," clearUserSession",{"type":3148,"tag":3431,"props":4988,"children":4989},{"style":3505},[4990],{"type":3153,"value":4959},{"type":3148,"tag":3431,"props":4992,"children":4993},{"class":3433,"line":4445},[4994],{"type":3148,"tag":3431,"props":4995,"children":4996},{"emptyLinePlaceholder":1200},[4997],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":4999,"children":5000},{"class":3433,"line":4482},[5001],{"type":3148,"tag":3431,"props":5002,"children":5003},{"style":3496},[5004],{"type":3153,"value":5005},"\u002F\u002F Require a user session (send back 401 if no `user` key in session)\n",{"type":3148,"tag":3431,"props":5007,"children":5008},{"class":3433,"line":4490},[5009,5013,5017,5021,5025,5030],{"type":3148,"tag":3431,"props":5010,"children":5011},{"style":3582},[5012],{"type":3153,"value":3598},{"type":3148,"tag":3431,"props":5014,"children":5015},{"style":3505},[5016],{"type":3153,"value":4940},{"type":3148,"tag":3431,"props":5018,"children":5019},{"style":3510},[5020],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":5022,"children":5023},{"style":4693},[5024],{"type":3153,"value":4949},{"type":3148,"tag":3431,"props":5026,"children":5027},{"style":3667},[5028],{"type":3153,"value":5029}," requireUserSession",{"type":3148,"tag":3431,"props":5031,"children":5032},{"style":3505},[5033],{"type":3153,"value":4959},{"type":3148,"tag":3155,"props":5035,"children":5036},{},[5037,5039,5045,5047,5052],{"type":3153,"value":5038},"You can define the type for your user session by creating a type declaration file (for example, ",{"type":3148,"tag":3293,"props":5040,"children":5042},{"className":5041},[],[5043],{"type":3153,"value":5044},"auth.d.ts",{"type":3153,"value":5046},") in your project to augment the ",{"type":3148,"tag":3293,"props":5048,"children":5050},{"className":5049},[],[5051],{"type":3153,"value":4347},{"type":3153,"value":5053}," type:",{"type":3148,"tag":3421,"props":5055,"children":5057},{"className":4109,"code":5056,"language":4111,"meta":3021,"style":3021},"\u002F\u002F shared\u002Ftypes\u002Fauth.d.ts\ndeclare module '#auth-utils' {\n  interface User {\n    \u002F\u002F Add your own fields\n  }\n\n  interface UserSession {\n    \u002F\u002F Add your own fields\n  }\n\n  interface SecureSessionData {\n    \u002F\u002F Add your own fields\n  }\n}\n\nexport {}\n",[5058],{"type":3148,"tag":3293,"props":5059,"children":5060},{"__ignoreMap":3021},[5061,5069,5099,5116,5124,5132,5139,5155,5162,5169,5176,5192,5199,5206,5213,5220],{"type":3148,"tag":3431,"props":5062,"children":5063},{"class":3433,"line":3107},[5064],{"type":3148,"tag":3431,"props":5065,"children":5066},{"style":3496},[5067],{"type":3153,"value":5068},"\u002F\u002F shared\u002Ftypes\u002Fauth.d.ts\n",{"type":3148,"tag":3431,"props":5070,"children":5071},{"class":3433,"line":3073},[5072,5077,5081,5085,5090,5095],{"type":3148,"tag":3431,"props":5073,"children":5074},{"style":3582},[5075],{"type":3153,"value":5076},"declare",{"type":3148,"tag":3431,"props":5078,"children":5079},{"style":3582},[5080],{"type":3153,"value":3451},{"type":3148,"tag":3431,"props":5082,"children":5083},{"style":3510},[5084],{"type":3153,"value":4754},{"type":3148,"tag":3431,"props":5086,"children":5087},{"style":3443},[5088],{"type":3153,"value":5089},"#auth-utils",{"type":3148,"tag":3431,"props":5091,"children":5092},{"style":3510},[5093],{"type":3153,"value":5094},"'",{"type":3148,"tag":3431,"props":5096,"children":5097},{"style":3510},[5098],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":5100,"children":5101},{"class":3433,"line":3057},[5102,5107,5112],{"type":3148,"tag":3431,"props":5103,"children":5104},{"style":3582},[5105],{"type":3153,"value":5106},"  interface",{"type":3148,"tag":3431,"props":5108,"children":5109},{"style":3437},[5110],{"type":3153,"value":5111}," User",{"type":3148,"tag":3431,"props":5113,"children":5114},{"style":3510},[5115],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":5117,"children":5118},{"class":3433,"line":3694},[5119],{"type":3148,"tag":3431,"props":5120,"children":5121},{"style":3496},[5122],{"type":3153,"value":5123},"    \u002F\u002F Add your own fields\n",{"type":3148,"tag":3431,"props":5125,"children":5126},{"class":3433,"line":3703},[5127],{"type":3148,"tag":3431,"props":5128,"children":5129},{"style":3510},[5130],{"type":3153,"value":5131},"  }\n",{"type":3148,"tag":3431,"props":5133,"children":5134},{"class":3433,"line":3720},[5135],{"type":3148,"tag":3431,"props":5136,"children":5137},{"emptyLinePlaceholder":1200},[5138],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":5140,"children":5141},{"class":3433,"line":3053},[5142,5146,5151],{"type":3148,"tag":3431,"props":5143,"children":5144},{"style":3582},[5145],{"type":3153,"value":5106},{"type":3148,"tag":3431,"props":5147,"children":5148},{"style":3437},[5149],{"type":3153,"value":5150}," UserSession",{"type":3148,"tag":3431,"props":5152,"children":5153},{"style":3510},[5154],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":5156,"children":5157},{"class":3433,"line":3049},[5158],{"type":3148,"tag":3431,"props":5159,"children":5160},{"style":3496},[5161],{"type":3153,"value":5123},{"type":3148,"tag":3431,"props":5163,"children":5164},{"class":3433,"line":3045},[5165],{"type":3148,"tag":3431,"props":5166,"children":5167},{"style":3510},[5168],{"type":3153,"value":5131},{"type":3148,"tag":3431,"props":5170,"children":5171},{"class":3433,"line":3882},[5172],{"type":3148,"tag":3431,"props":5173,"children":5174},{"emptyLinePlaceholder":1200},[5175],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":5177,"children":5178},{"class":3433,"line":3136},[5179,5183,5188],{"type":3148,"tag":3431,"props":5180,"children":5181},{"style":3582},[5182],{"type":3153,"value":5106},{"type":3148,"tag":3431,"props":5184,"children":5185},{"style":3437},[5186],{"type":3153,"value":5187}," SecureSessionData",{"type":3148,"tag":3431,"props":5189,"children":5190},{"style":3510},[5191],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":5193,"children":5194},{"class":3433,"line":3919},[5195],{"type":3148,"tag":3431,"props":5196,"children":5197},{"style":3496},[5198],{"type":3153,"value":5123},{"type":3148,"tag":3431,"props":5200,"children":5201},{"class":3433,"line":3952},[5202],{"type":3148,"tag":3431,"props":5203,"children":5204},{"style":3510},[5205],{"type":3153,"value":5131},{"type":3148,"tag":3431,"props":5207,"children":5208},{"class":3433,"line":4007},[5209],{"type":3148,"tag":3431,"props":5210,"children":5211},{"style":3510},[5212],{"type":3153,"value":4609},{"type":3148,"tag":3431,"props":5214,"children":5215},{"class":3433,"line":4016},[5216],{"type":3148,"tag":3431,"props":5217,"children":5218},{"emptyLinePlaceholder":1200},[5219],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":5221,"children":5222},{"class":3433,"line":3041},[5223,5228],{"type":3148,"tag":3431,"props":5224,"children":5225},{"style":4693},[5226],{"type":3153,"value":5227},"export",{"type":3148,"tag":3431,"props":5229,"children":5230},{"style":3510},[5231],{"type":3153,"value":5232}," {}\n",{"type":3148,"tag":4611,"props":5234,"children":5235},{},[5236],{"type":3148,"tag":3155,"props":5237,"children":5238},{},[5239,5243],{"type":3148,"tag":3431,"props":5240,"children":5241},{},[5242],{"type":3153,"value":4621},{"type":3153,"value":5244},"\nSince we encrypt and store session data in cookies, we're constrained by the 4096-byte cookie size limit. Store only essential information.",{"type":3148,"tag":3551,"props":5246,"children":5248},{"id":5247},"oauth-event-handlers",[5249],{"type":3153,"value":5250},"OAuth Event Handlers",{"type":3148,"tag":3155,"props":5252,"children":5253},{},[5254],{"type":3153,"value":5255},"All handlers can be auto-imported and used in your server routes or API routes.",{"type":3148,"tag":3155,"props":5257,"children":5258},{},[5259,5261,5267,5269,5275],{"type":3153,"value":5260},"The pattern is ",{"type":3148,"tag":3293,"props":5262,"children":5264},{"className":5263},[],[5265],{"type":3153,"value":5266},"defineOAuth\u003CProvider>EventHandler({ onSuccess, config?, onError? })",{"type":3153,"value":5268},", example: ",{"type":3148,"tag":3293,"props":5270,"children":5272},{"className":5271},[],[5273],{"type":3153,"value":5274},"defineOAuthGitHubEventHandler",{"type":3153,"value":3386},{"type":3148,"tag":3155,"props":5277,"children":5278},{},[5279,5281,5287,5289,5295],{"type":3153,"value":5280},"The helper returns an event handler that automatically redirects to the provider authorization page and then calls ",{"type":3148,"tag":3293,"props":5282,"children":5284},{"className":5283},[],[5285],{"type":3153,"value":5286},"onSuccess",{"type":3153,"value":5288}," or ",{"type":3148,"tag":3293,"props":5290,"children":5292},{"className":5291},[],[5293],{"type":3153,"value":5294},"onError",{"type":3153,"value":5296}," depending on the result.",{"type":3148,"tag":3155,"props":5298,"children":5299},{},[5300,5302,5308,5310,5316,5318,5323],{"type":3153,"value":5301},"The ",{"type":3148,"tag":3293,"props":5303,"children":5305},{"className":5304},[],[5306],{"type":3153,"value":5307},"config",{"type":3153,"value":5309}," can be defined directly from the ",{"type":3148,"tag":3293,"props":5311,"children":5313},{"className":5312},[],[5314],{"type":3153,"value":5315},"runtimeConfig",{"type":3153,"value":5317}," in your ",{"type":3148,"tag":3293,"props":5319,"children":5321},{"className":5320},[],[5322],{"type":3153,"value":233},{"type":3153,"value":4170},{"type":3148,"tag":3421,"props":5325,"children":5327},{"className":4109,"code":5326,"language":4111,"meta":3021,"style":3021},"export default defineNuxtConfig({\n  runtimeConfig: {\n    oauth: {\n      \u002F\u002F provider in lowercase (github, google, etc.)\n      \u003Cprovider>: {\n        clientId: '...',\n        clientSecret: '...'\n      }\n    }\n  }\n})\n",[5328],{"type":3148,"tag":3293,"props":5329,"children":5330},{"__ignoreMap":3021},[5331,5358,5374,5390,5398,5414,5444,5468,5476,5484,5491],{"type":3148,"tag":3431,"props":5332,"children":5333},{"class":3433,"line":3107},[5334,5338,5343,5348,5353],{"type":3148,"tag":3431,"props":5335,"children":5336},{"style":4693},[5337],{"type":3153,"value":5227},{"type":3148,"tag":3431,"props":5339,"children":5340},{"style":4693},[5341],{"type":3153,"value":5342}," default",{"type":3148,"tag":3431,"props":5344,"children":5345},{"style":3667},[5346],{"type":3153,"value":5347}," defineNuxtConfig",{"type":3148,"tag":3431,"props":5349,"children":5350},{"style":3505},[5351],{"type":3153,"value":5352},"(",{"type":3148,"tag":3431,"props":5354,"children":5355},{"style":3510},[5356],{"type":3153,"value":5357},"{\n",{"type":3148,"tag":3431,"props":5359,"children":5360},{"class":3433,"line":3073},[5361,5366,5370],{"type":3148,"tag":3431,"props":5362,"children":5363},{"style":3576},[5364],{"type":3153,"value":5365},"  runtimeConfig",{"type":3148,"tag":3431,"props":5367,"children":5368},{"style":3510},[5369],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":5371,"children":5372},{"style":3510},[5373],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":5375,"children":5376},{"class":3433,"line":3057},[5377,5382,5386],{"type":3148,"tag":3431,"props":5378,"children":5379},{"style":3576},[5380],{"type":3153,"value":5381},"    oauth",{"type":3148,"tag":3431,"props":5383,"children":5384},{"style":3510},[5385],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":5387,"children":5388},{"style":3510},[5389],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":5391,"children":5392},{"class":3433,"line":3694},[5393],{"type":3148,"tag":3431,"props":5394,"children":5395},{"style":3496},[5396],{"type":3153,"value":5397},"      \u002F\u002F provider in lowercase (github, google, etc.)\n",{"type":3148,"tag":3431,"props":5399,"children":5400},{"class":3433,"line":3703},[5401,5406,5410],{"type":3148,"tag":3431,"props":5402,"children":5403},{"style":3505},[5404],{"type":3153,"value":5405},"      \u003Cprovider>",{"type":3148,"tag":3431,"props":5407,"children":5408},{"style":3510},[5409],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":5411,"children":5412},{"style":3510},[5413],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":5415,"children":5416},{"class":3433,"line":3720},[5417,5422,5426,5430,5435,5439],{"type":3148,"tag":3431,"props":5418,"children":5419},{"style":3576},[5420],{"type":3153,"value":5421},"        clientId",{"type":3148,"tag":3431,"props":5423,"children":5424},{"style":3510},[5425],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":5427,"children":5428},{"style":3510},[5429],{"type":3153,"value":4754},{"type":3148,"tag":3431,"props":5431,"children":5432},{"style":3443},[5433],{"type":3153,"value":5434},"...",{"type":3148,"tag":3431,"props":5436,"children":5437},{"style":3510},[5438],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":5440,"children":5441},{"style":3510},[5442],{"type":3153,"value":5443},",\n",{"type":3148,"tag":3431,"props":5445,"children":5446},{"class":3433,"line":3053},[5447,5452,5456,5460,5464],{"type":3148,"tag":3431,"props":5448,"children":5449},{"style":3576},[5450],{"type":3153,"value":5451},"        clientSecret",{"type":3148,"tag":3431,"props":5453,"children":5454},{"style":3510},[5455],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":5457,"children":5458},{"style":3510},[5459],{"type":3153,"value":4754},{"type":3148,"tag":3431,"props":5461,"children":5462},{"style":3443},[5463],{"type":3153,"value":5434},{"type":3148,"tag":3431,"props":5465,"children":5466},{"style":3510},[5467],{"type":3153,"value":4763},{"type":3148,"tag":3431,"props":5469,"children":5470},{"class":3433,"line":3049},[5471],{"type":3148,"tag":3431,"props":5472,"children":5473},{"style":3510},[5474],{"type":3153,"value":5475},"      }\n",{"type":3148,"tag":3431,"props":5477,"children":5478},{"class":3433,"line":3045},[5479],{"type":3148,"tag":3431,"props":5480,"children":5481},{"style":3510},[5482],{"type":3153,"value":5483},"    }\n",{"type":3148,"tag":3431,"props":5485,"children":5486},{"class":3433,"line":3882},[5487],{"type":3148,"tag":3431,"props":5488,"children":5489},{"style":3510},[5490],{"type":3153,"value":5131},{"type":3148,"tag":3431,"props":5492,"children":5493},{"class":3433,"line":3136},[5494,5498],{"type":3148,"tag":3431,"props":5495,"children":5496},{"style":3510},[5497],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":5499,"children":5500},{"style":3505},[5501],{"type":3153,"value":4873},{"type":3148,"tag":3155,"props":5503,"children":5504},{},[5505],{"type":3153,"value":5506},"It can also be set using environment variables:",{"type":3148,"tag":3205,"props":5508,"children":5509},{},[5510,5519],{"type":3148,"tag":3209,"props":5511,"children":5512},{},[5513],{"type":3148,"tag":3293,"props":5514,"children":5516},{"className":5515},[],[5517],{"type":3153,"value":5518},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_ID",{"type":3148,"tag":3209,"props":5520,"children":5521},{},[5522],{"type":3148,"tag":3293,"props":5523,"children":5525},{"className":5524},[],[5526],{"type":3153,"value":5527},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_SECRET",{"type":3148,"tag":4611,"props":5529,"children":5530},{},[5531],{"type":3148,"tag":3155,"props":5532,"children":5533},{},[5534],{"type":3153,"value":5535},"Provider is in uppercase (GITHUB, GOOGLE, etc.)",{"type":3148,"tag":5537,"props":5538,"children":5540},"h4",{"id":5539},"supported-oauth-providers",[5541],{"type":3153,"value":5542},"Supported OAuth Providers",{"type":3148,"tag":3205,"props":5544,"children":5545},{},[5546,5551,5556,5561,5566,5571,5576,5581,5586,5591,5596,5601,5606,5611,5616,5621,5626,5631,5636,5641,5646,5651,5656,5661,5666,5671,5676,5681,5686,5691,5696,5701,5706,5711,5716,5721,5726,5731,5736,5741,5746,5751,5756,5761,5766,5771,5776,5781],{"type":3148,"tag":3209,"props":5547,"children":5548},{},[5549],{"type":3153,"value":5550},"Apple",{"type":3148,"tag":3209,"props":5552,"children":5553},{},[5554],{"type":3153,"value":5555},"Atlassian",{"type":3148,"tag":3209,"props":5557,"children":5558},{},[5559],{"type":3153,"value":5560},"Auth0",{"type":3148,"tag":3209,"props":5562,"children":5563},{},[5564],{"type":3153,"value":5565},"Authentik",{"type":3148,"tag":3209,"props":5567,"children":5568},{},[5569],{"type":3153,"value":5570},"AWS Cognito",{"type":3148,"tag":3209,"props":5572,"children":5573},{},[5574],{"type":3153,"value":5575},"Azure B2C",{"type":3148,"tag":3209,"props":5577,"children":5578},{},[5579],{"type":3153,"value":5580},"Battle.net",{"type":3148,"tag":3209,"props":5582,"children":5583},{},[5584],{"type":3153,"value":5585},"Bluesky (AT Protocol)",{"type":3148,"tag":3209,"props":5587,"children":5588},{},[5589],{"type":3153,"value":5590},"Box.com",{"type":3148,"tag":3209,"props":5592,"children":5593},{},[5594],{"type":3153,"value":5595},"Discord",{"type":3148,"tag":3209,"props":5597,"children":5598},{},[5599],{"type":3153,"value":5600},"Dropbox",{"type":3148,"tag":3209,"props":5602,"children":5603},{},[5604],{"type":3153,"value":5605},"Facebook",{"type":3148,"tag":3209,"props":5607,"children":5608},{},[5609],{"type":3153,"value":5610},"GitHub",{"type":3148,"tag":3209,"props":5612,"children":5613},{},[5614],{"type":3153,"value":5615},"GitLab",{"type":3148,"tag":3209,"props":5617,"children":5618},{},[5619],{"type":3153,"value":5620},"Gitea",{"type":3148,"tag":3209,"props":5622,"children":5623},{},[5624],{"type":3153,"value":5625},"Google",{"type":3148,"tag":3209,"props":5627,"children":5628},{},[5629],{"type":3153,"value":5630},"Heroku",{"type":3148,"tag":3209,"props":5632,"children":5633},{},[5634],{"type":3153,"value":5635},"Hubspot",{"type":3148,"tag":3209,"props":5637,"children":5638},{},[5639],{"type":3153,"value":5640},"Instagram",{"type":3148,"tag":3209,"props":5642,"children":5643},{},[5644],{"type":3153,"value":5645},"Kick",{"type":3148,"tag":3209,"props":5647,"children":5648},{},[5649],{"type":3153,"value":5650},"Keycloak",{"type":3148,"tag":3209,"props":5652,"children":5653},{},[5654],{"type":3153,"value":5655},"Line",{"type":3148,"tag":3209,"props":5657,"children":5658},{},[5659],{"type":3153,"value":5660},"Linear",{"type":3148,"tag":3209,"props":5662,"children":5663},{},[5664],{"type":3153,"value":5665},"LinkedIn",{"type":3148,"tag":3209,"props":5667,"children":5668},{},[5669],{"type":3153,"value":5670},"LiveChat",{"type":3148,"tag":3209,"props":5672,"children":5673},{},[5674],{"type":3153,"value":5675},"Microsoft",{"type":3148,"tag":3209,"props":5677,"children":5678},{},[5679],{"type":3153,"value":5680},"OIDC \u002F OpenID Connect (Generic)",{"type":3148,"tag":3209,"props":5682,"children":5683},{},[5684],{"type":3153,"value":5685},"Okta",{"type":3148,"tag":3209,"props":5687,"children":5688},{},[5689],{"type":3153,"value":5690},"Ory",{"type":3148,"tag":3209,"props":5692,"children":5693},{},[5694],{"type":3153,"value":5695},"osu!",{"type":3148,"tag":3209,"props":5697,"children":5698},{},[5699],{"type":3153,"value":5700},"PayPal",{"type":3148,"tag":3209,"props":5702,"children":5703},{},[5704],{"type":3153,"value":5705},"Polar",{"type":3148,"tag":3209,"props":5707,"children":5708},{},[5709],{"type":3153,"value":5710},"Riot Games",{"type":3148,"tag":3209,"props":5712,"children":5713},{},[5714],{"type":3153,"value":5715},"Salesforce",{"type":3148,"tag":3209,"props":5717,"children":5718},{},[5719],{"type":3153,"value":5720},"Seznam",{"type":3148,"tag":3209,"props":5722,"children":5723},{},[5724],{"type":3153,"value":5725},"Shopify Customer",{"type":3148,"tag":3209,"props":5727,"children":5728},{},[5729],{"type":3153,"value":5730},"Slack",{"type":3148,"tag":3209,"props":5732,"children":5733},{},[5734],{"type":3153,"value":5735},"Spotify",{"type":3148,"tag":3209,"props":5737,"children":5738},{},[5739],{"type":3153,"value":5740},"Steam",{"type":3148,"tag":3209,"props":5742,"children":5743},{},[5744],{"type":3153,"value":5745},"Strava",{"type":3148,"tag":3209,"props":5747,"children":5748},{},[5749],{"type":3153,"value":5750},"TikTok",{"type":3148,"tag":3209,"props":5752,"children":5753},{},[5754],{"type":3153,"value":5755},"Twitch",{"type":3148,"tag":3209,"props":5757,"children":5758},{},[5759],{"type":3153,"value":5760},"VK",{"type":3148,"tag":3209,"props":5762,"children":5763},{},[5764],{"type":3153,"value":5765},"WorkOS",{"type":3148,"tag":3209,"props":5767,"children":5768},{},[5769],{"type":3153,"value":5770},"X (Twitter)",{"type":3148,"tag":3209,"props":5772,"children":5773},{},[5774],{"type":3153,"value":5775},"XSUAA",{"type":3148,"tag":3209,"props":5777,"children":5778},{},[5779],{"type":3153,"value":5780},"Yandex",{"type":3148,"tag":3209,"props":5782,"children":5783},{},[5784],{"type":3153,"value":5785},"Zitadel",{"type":3148,"tag":3155,"props":5787,"children":5788},{},[5789,5791,5798],{"type":3153,"value":5790},"You can add your favorite provider by creating a new file in ",{"type":3148,"tag":3159,"props":5792,"children":5795},{"href":5793,"rel":5794},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Ftree\u002Fmain\u002Fsrc\u002Fruntime\u002Fserver\u002Flib\u002Foauth",[3163],[5796],{"type":3153,"value":5797},"src\u002Fruntime\u002Fserver\u002Flib\u002Foauth\u002F",{"type":3153,"value":3386},{"type":3148,"tag":5537,"props":5800,"children":5802},{"id":5801},"example",[5803],{"type":3153,"value":5804},"Example",{"type":3148,"tag":3155,"props":5806,"children":5807},{},[5808,5810],{"type":3153,"value":5809},"Example: ",{"type":3148,"tag":3293,"props":5811,"children":5813},{"className":5812},[],[5814],{"type":3153,"value":5815},"~\u002Fserver\u002Froutes\u002Fauth\u002Fgithub.get.ts",{"type":3148,"tag":3421,"props":5817,"children":5819},{"className":4109,"code":5818,"language":4111,"meta":3021,"style":3021},"export default defineOAuthGitHubEventHandler({\n  config: {\n    emailRequired: true\n  },\n  async onSuccess(event, { user, tokens }) {\n    await setUserSession(event, {\n      user: {\n        githubId: user.id\n      }\n    })\n    return sendRedirect(event, '\u002F')\n  },\n  \u002F\u002F Optional, will return a json error and 401 status code by default\n  onError(event, error) {\n    console.error('GitHub OAuth error:', error)\n    return sendRedirect(event, '\u002F')\n  },\n})\n",[5820],{"type":3148,"tag":3293,"props":5821,"children":5822},{"__ignoreMap":3021},[5823,5847,5863,5881,5888,5939,5967,5983,6008,6015,6027,6069,6076,6084,6118,6164,6203,6210],{"type":3148,"tag":3431,"props":5824,"children":5825},{"class":3433,"line":3107},[5826,5830,5834,5839,5843],{"type":3148,"tag":3431,"props":5827,"children":5828},{"style":4693},[5829],{"type":3153,"value":5227},{"type":3148,"tag":3431,"props":5831,"children":5832},{"style":4693},[5833],{"type":3153,"value":5342},{"type":3148,"tag":3431,"props":5835,"children":5836},{"style":3667},[5837],{"type":3153,"value":5838}," defineOAuthGitHubEventHandler",{"type":3148,"tag":3431,"props":5840,"children":5841},{"style":3505},[5842],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":5844,"children":5845},{"style":3510},[5846],{"type":3153,"value":5357},{"type":3148,"tag":3431,"props":5848,"children":5849},{"class":3433,"line":3073},[5850,5855,5859],{"type":3148,"tag":3431,"props":5851,"children":5852},{"style":3576},[5853],{"type":3153,"value":5854},"  config",{"type":3148,"tag":3431,"props":5856,"children":5857},{"style":3510},[5858],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":5860,"children":5861},{"style":3510},[5862],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":5864,"children":5865},{"class":3433,"line":3057},[5866,5871,5875],{"type":3148,"tag":3431,"props":5867,"children":5868},{"style":3576},[5869],{"type":3153,"value":5870},"    emailRequired",{"type":3148,"tag":3431,"props":5872,"children":5873},{"style":3510},[5874],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":5876,"children":5878},{"style":5877},"--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC",[5879],{"type":3153,"value":5880}," true\n",{"type":3148,"tag":3431,"props":5882,"children":5883},{"class":3433,"line":3694},[5884],{"type":3148,"tag":3431,"props":5885,"children":5886},{"style":3510},[5887],{"type":3153,"value":4771},{"type":3148,"tag":3431,"props":5889,"children":5890},{"class":3433,"line":3703},[5891,5896,5901,5905,5910,5914,5918,5922,5926,5931,5935],{"type":3148,"tag":3431,"props":5892,"children":5893},{"style":3582},[5894],{"type":3153,"value":5895},"  async",{"type":3148,"tag":3431,"props":5897,"children":5898},{"style":3576},[5899],{"type":3153,"value":5900}," onSuccess",{"type":3148,"tag":3431,"props":5902,"children":5903},{"style":3510},[5904],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":5906,"children":5907},{"style":4525},[5908],{"type":3153,"value":5909},"event",{"type":3148,"tag":3431,"props":5911,"children":5912},{"style":3510},[5913],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":5915,"children":5916},{"style":3510},[5917],{"type":3153,"value":3603},{"type":3148,"tag":3431,"props":5919,"children":5920},{"style":4525},[5921],{"type":3153,"value":3618},{"type":3148,"tag":3431,"props":5923,"children":5924},{"style":3510},[5925],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":5927,"children":5928},{"style":4525},[5929],{"type":3153,"value":5930}," tokens",{"type":3148,"tag":3431,"props":5932,"children":5933},{"style":3510},[5934],{"type":3153,"value":4591},{"type":3148,"tag":3431,"props":5936,"children":5937},{"style":3510},[5938],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":5940,"children":5941},{"class":3433,"line":3720},[5942,5947,5951,5955,5959,5963],{"type":3148,"tag":3431,"props":5943,"children":5944},{"style":4693},[5945],{"type":3153,"value":5946},"    await",{"type":3148,"tag":3431,"props":5948,"children":5949},{"style":3667},[5950],{"type":3153,"value":4701},{"type":3148,"tag":3431,"props":5952,"children":5953},{"style":3576},[5954],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":5956,"children":5957},{"style":3505},[5958],{"type":3153,"value":5909},{"type":3148,"tag":3431,"props":5960,"children":5961},{"style":3510},[5962],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":5964,"children":5965},{"style":3510},[5966],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":5968,"children":5969},{"class":3433,"line":3053},[5970,5975,5979],{"type":3148,"tag":3431,"props":5971,"children":5972},{"style":3576},[5973],{"type":3153,"value":5974},"      user",{"type":3148,"tag":3431,"props":5976,"children":5977},{"style":3510},[5978],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":5980,"children":5981},{"style":3510},[5982],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":5984,"children":5985},{"class":3433,"line":3049},[5986,5991,5995,5999,6003],{"type":3148,"tag":3431,"props":5987,"children":5988},{"style":3576},[5989],{"type":3153,"value":5990},"        githubId",{"type":3148,"tag":3431,"props":5992,"children":5993},{"style":3510},[5994],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":5996,"children":5997},{"style":3505},[5998],{"type":3153,"value":3618},{"type":3148,"tag":3431,"props":6000,"children":6001},{"style":3510},[6002],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":6004,"children":6005},{"style":3505},[6006],{"type":3153,"value":6007},"id\n",{"type":3148,"tag":3431,"props":6009,"children":6010},{"class":3433,"line":3045},[6011],{"type":3148,"tag":3431,"props":6012,"children":6013},{"style":3510},[6014],{"type":3153,"value":5475},{"type":3148,"tag":3431,"props":6016,"children":6017},{"class":3433,"line":3882},[6018,6023],{"type":3148,"tag":3431,"props":6019,"children":6020},{"style":3510},[6021],{"type":3153,"value":6022},"    }",{"type":3148,"tag":3431,"props":6024,"children":6025},{"style":3576},[6026],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":6028,"children":6029},{"class":3433,"line":3136},[6030,6035,6040,6044,6048,6052,6056,6061,6065],{"type":3148,"tag":3431,"props":6031,"children":6032},{"style":4693},[6033],{"type":3153,"value":6034},"    return",{"type":3148,"tag":3431,"props":6036,"children":6037},{"style":3667},[6038],{"type":3153,"value":6039}," sendRedirect",{"type":3148,"tag":3431,"props":6041,"children":6042},{"style":3576},[6043],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":6045,"children":6046},{"style":3505},[6047],{"type":3153,"value":5909},{"type":3148,"tag":3431,"props":6049,"children":6050},{"style":3510},[6051],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":6053,"children":6054},{"style":3510},[6055],{"type":3153,"value":4754},{"type":3148,"tag":3431,"props":6057,"children":6058},{"style":3443},[6059],{"type":3153,"value":6060},"\u002F",{"type":3148,"tag":3431,"props":6062,"children":6063},{"style":3510},[6064],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":6066,"children":6067},{"style":3576},[6068],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":6070,"children":6071},{"class":3433,"line":3919},[6072],{"type":3148,"tag":3431,"props":6073,"children":6074},{"style":3510},[6075],{"type":3153,"value":4771},{"type":3148,"tag":3431,"props":6077,"children":6078},{"class":3433,"line":3952},[6079],{"type":3148,"tag":3431,"props":6080,"children":6081},{"style":3496},[6082],{"type":3153,"value":6083},"  \u002F\u002F Optional, will return a json error and 401 status code by default\n",{"type":3148,"tag":3431,"props":6085,"children":6086},{"class":3433,"line":4007},[6087,6092,6096,6100,6104,6109,6114],{"type":3148,"tag":3431,"props":6088,"children":6089},{"style":3576},[6090],{"type":3153,"value":6091},"  onError",{"type":3148,"tag":3431,"props":6093,"children":6094},{"style":3510},[6095],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":6097,"children":6098},{"style":4525},[6099],{"type":3153,"value":5909},{"type":3148,"tag":3431,"props":6101,"children":6102},{"style":3510},[6103],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":6105,"children":6106},{"style":4525},[6107],{"type":3153,"value":6108}," error",{"type":3148,"tag":3431,"props":6110,"children":6111},{"style":3510},[6112],{"type":3153,"value":6113},")",{"type":3148,"tag":3431,"props":6115,"children":6116},{"style":3510},[6117],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":6119,"children":6120},{"class":3433,"line":4016},[6121,6126,6130,6135,6139,6143,6148,6152,6156,6160],{"type":3148,"tag":3431,"props":6122,"children":6123},{"style":3505},[6124],{"type":3153,"value":6125},"    console",{"type":3148,"tag":3431,"props":6127,"children":6128},{"style":3510},[6129],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":6131,"children":6132},{"style":3667},[6133],{"type":3153,"value":6134},"error",{"type":3148,"tag":3431,"props":6136,"children":6137},{"style":3576},[6138],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":6140,"children":6141},{"style":3510},[6142],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":6144,"children":6145},{"style":3443},[6146],{"type":3153,"value":6147},"GitHub OAuth error:",{"type":3148,"tag":3431,"props":6149,"children":6150},{"style":3510},[6151],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":6153,"children":6154},{"style":3510},[6155],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":6157,"children":6158},{"style":3505},[6159],{"type":3153,"value":6108},{"type":3148,"tag":3431,"props":6161,"children":6162},{"style":3576},[6163],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":6165,"children":6166},{"class":3433,"line":3041},[6167,6171,6175,6179,6183,6187,6191,6195,6199],{"type":3148,"tag":3431,"props":6168,"children":6169},{"style":4693},[6170],{"type":3153,"value":6034},{"type":3148,"tag":3431,"props":6172,"children":6173},{"style":3667},[6174],{"type":3153,"value":6039},{"type":3148,"tag":3431,"props":6176,"children":6177},{"style":3576},[6178],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":6180,"children":6181},{"style":3505},[6182],{"type":3153,"value":5909},{"type":3148,"tag":3431,"props":6184,"children":6185},{"style":3510},[6186],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":6188,"children":6189},{"style":3510},[6190],{"type":3153,"value":4754},{"type":3148,"tag":3431,"props":6192,"children":6193},{"style":3443},[6194],{"type":3153,"value":6060},{"type":3148,"tag":3431,"props":6196,"children":6197},{"style":3510},[6198],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":6200,"children":6201},{"style":3576},[6202],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":6204,"children":6205},{"class":3433,"line":4084},[6206],{"type":3148,"tag":3431,"props":6207,"children":6208},{"style":3510},[6209],{"type":3153,"value":4771},{"type":3148,"tag":3431,"props":6211,"children":6212},{"class":3433,"line":4354},[6213,6217],{"type":3148,"tag":3431,"props":6214,"children":6215},{"style":3510},[6216],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":6218,"children":6219},{"style":3505},[6220],{"type":3153,"value":4873},{"type":3148,"tag":3155,"props":6222,"children":6223},{},[6224,6226,6232],{"type":3153,"value":6225},"Make sure to set the callback URL in your OAuth app settings as ",{"type":3148,"tag":3293,"props":6227,"children":6229},{"className":6228},[],[6230],{"type":3153,"value":6231},"\u003Cyour-domain>\u002Fauth\u002Fgithub",{"type":3153,"value":3386},{"type":3148,"tag":3155,"props":6234,"children":6235},{},[6236,6238,6244],{"type":3153,"value":6237},"If the redirect URL mismatch in production, this means that the module cannot guess the right redirect URL. You can set the ",{"type":3148,"tag":3293,"props":6239,"children":6241},{"className":6240},[],[6242],{"type":3153,"value":6243},"NUXT_OAUTH_\u003CPROVIDER>_REDIRECT_URL",{"type":3153,"value":6245}," env variable to overwrite the default one.",{"type":3148,"tag":3551,"props":6247,"children":6249},{"id":6248},"password-hashing",[6250],{"type":3153,"value":3275},{"type":3148,"tag":3155,"props":6252,"children":6253},{},[6254,6256,6262,6264,6270,6272,6279],{"type":3153,"value":6255},"Nuxt Auth Utils provides password hashing utilities like ",{"type":3148,"tag":3293,"props":6257,"children":6259},{"className":6258},[],[6260],{"type":3153,"value":6261},"hashPassword",{"type":3153,"value":6263}," and ",{"type":3148,"tag":3293,"props":6265,"children":6267},{"className":6266},[],[6268],{"type":3153,"value":6269},"verifyPassword",{"type":3153,"value":6271}," to hash and verify passwords by using ",{"type":3148,"tag":3159,"props":6273,"children":6276},{"href":6274,"rel":6275},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FScrypt",[3163],[6277],{"type":3153,"value":6278},"scrypt",{"type":3153,"value":6280}," as it is supported in many JS runtime.",{"type":3148,"tag":3421,"props":6282,"children":6284},{"className":4109,"code":6283,"language":4111,"meta":3021,"style":3021},"const hashedPassword = await hashPassword('user_password')\n\nif (await verifyPassword(hashedPassword, 'user_password')) {\n  \u002F\u002F Password is valid\n}\n",[6285],{"type":3148,"tag":3293,"props":6286,"children":6287},{"__ignoreMap":3021},[6288,6334,6341,6392,6400],{"type":3148,"tag":3431,"props":6289,"children":6290},{"class":3433,"line":3107},[6291,6295,6300,6304,6308,6313,6317,6321,6326,6330],{"type":3148,"tag":3431,"props":6292,"children":6293},{"style":3582},[6294],{"type":3153,"value":3598},{"type":3148,"tag":3431,"props":6296,"children":6297},{"style":3505},[6298],{"type":3153,"value":6299}," hashedPassword ",{"type":3148,"tag":3431,"props":6301,"children":6302},{"style":3510},[6303],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":6305,"children":6306},{"style":4693},[6307],{"type":3153,"value":4949},{"type":3148,"tag":3431,"props":6309,"children":6310},{"style":3667},[6311],{"type":3153,"value":6312}," hashPassword",{"type":3148,"tag":3431,"props":6314,"children":6315},{"style":3505},[6316],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":6318,"children":6319},{"style":3510},[6320],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":6322,"children":6323},{"style":3443},[6324],{"type":3153,"value":6325},"user_password",{"type":3148,"tag":3431,"props":6327,"children":6328},{"style":3510},[6329],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":6331,"children":6332},{"style":3505},[6333],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":6335,"children":6336},{"class":3433,"line":3073},[6337],{"type":3148,"tag":3431,"props":6338,"children":6339},{"emptyLinePlaceholder":1200},[6340],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":6342,"children":6343},{"class":3433,"line":3057},[6344,6349,6353,6357,6362,6367,6371,6375,6379,6383,6388],{"type":3148,"tag":3431,"props":6345,"children":6346},{"style":4693},[6347],{"type":3153,"value":6348},"if",{"type":3148,"tag":3431,"props":6350,"children":6351},{"style":3505},[6352],{"type":3153,"value":4522},{"type":3148,"tag":3431,"props":6354,"children":6355},{"style":4693},[6356],{"type":3153,"value":4696},{"type":3148,"tag":3431,"props":6358,"children":6359},{"style":3667},[6360],{"type":3153,"value":6361}," verifyPassword",{"type":3148,"tag":3431,"props":6363,"children":6364},{"style":3505},[6365],{"type":3153,"value":6366},"(hashedPassword",{"type":3148,"tag":3431,"props":6368,"children":6369},{"style":3510},[6370],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":6372,"children":6373},{"style":3510},[6374],{"type":3153,"value":4754},{"type":3148,"tag":3431,"props":6376,"children":6377},{"style":3443},[6378],{"type":3153,"value":6325},{"type":3148,"tag":3431,"props":6380,"children":6381},{"style":3510},[6382],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":6384,"children":6385},{"style":3505},[6386],{"type":3153,"value":6387},")) ",{"type":3148,"tag":3431,"props":6389,"children":6390},{"style":3510},[6391],{"type":3153,"value":5357},{"type":3148,"tag":3431,"props":6393,"children":6394},{"class":3433,"line":3694},[6395],{"type":3148,"tag":3431,"props":6396,"children":6397},{"style":3496},[6398],{"type":3153,"value":6399},"  \u002F\u002F Password is valid\n",{"type":3148,"tag":3431,"props":6401,"children":6402},{"class":3433,"line":3703},[6403],{"type":3148,"tag":3431,"props":6404,"children":6405},{"style":3510},[6406],{"type":3153,"value":4609},{"type":3148,"tag":3155,"props":6408,"children":6409},{},[6410,6412,6418],{"type":3153,"value":6411},"It also provides a ",{"type":3148,"tag":3293,"props":6413,"children":6415},{"className":6414},[],[6416],{"type":3153,"value":6417},"passwordNeedsRehash",{"type":3153,"value":6419}," function to check if a password needs to be rehashed. This is useful when the hash settings are changed, such as as increasing the scrypt cost parameters.",{"type":3148,"tag":3421,"props":6421,"children":6423},{"className":4109,"code":6422,"language":4111,"meta":3021,"style":3021},"const needsRehash = passwordNeedsRehash(hashedPassword)\n\nif (needsRehash) {\n  \u002F\u002F Password needs to be rehashed\n  hashedPassword = await hashPassword('user_password')\n}\n",[6424],{"type":3148,"tag":3293,"props":6425,"children":6426},{"__ignoreMap":3021},[6427,6453,6460,6476,6484,6524],{"type":3148,"tag":3431,"props":6428,"children":6429},{"class":3433,"line":3107},[6430,6434,6439,6443,6448],{"type":3148,"tag":3431,"props":6431,"children":6432},{"style":3582},[6433],{"type":3153,"value":3598},{"type":3148,"tag":3431,"props":6435,"children":6436},{"style":3505},[6437],{"type":3153,"value":6438}," needsRehash ",{"type":3148,"tag":3431,"props":6440,"children":6441},{"style":3510},[6442],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":6444,"children":6445},{"style":3667},[6446],{"type":3153,"value":6447}," passwordNeedsRehash",{"type":3148,"tag":3431,"props":6449,"children":6450},{"style":3505},[6451],{"type":3153,"value":6452},"(hashedPassword)\n",{"type":3148,"tag":3431,"props":6454,"children":6455},{"class":3433,"line":3073},[6456],{"type":3148,"tag":3431,"props":6457,"children":6458},{"emptyLinePlaceholder":1200},[6459],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":6461,"children":6462},{"class":3433,"line":3057},[6463,6467,6472],{"type":3148,"tag":3431,"props":6464,"children":6465},{"style":4693},[6466],{"type":3153,"value":6348},{"type":3148,"tag":3431,"props":6468,"children":6469},{"style":3505},[6470],{"type":3153,"value":6471}," (needsRehash) ",{"type":3148,"tag":3431,"props":6473,"children":6474},{"style":3510},[6475],{"type":3153,"value":5357},{"type":3148,"tag":3431,"props":6477,"children":6478},{"class":3433,"line":3694},[6479],{"type":3148,"tag":3431,"props":6480,"children":6481},{"style":3496},[6482],{"type":3153,"value":6483},"  \u002F\u002F Password needs to be rehashed\n",{"type":3148,"tag":3431,"props":6485,"children":6486},{"class":3433,"line":3703},[6487,6492,6496,6500,6504,6508,6512,6516,6520],{"type":3148,"tag":3431,"props":6488,"children":6489},{"style":3505},[6490],{"type":3153,"value":6491},"  hashedPassword",{"type":3148,"tag":3431,"props":6493,"children":6494},{"style":3510},[6495],{"type":3153,"value":3664},{"type":3148,"tag":3431,"props":6497,"children":6498},{"style":4693},[6499],{"type":3153,"value":4949},{"type":3148,"tag":3431,"props":6501,"children":6502},{"style":3667},[6503],{"type":3153,"value":6312},{"type":3148,"tag":3431,"props":6505,"children":6506},{"style":3576},[6507],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":6509,"children":6510},{"style":3510},[6511],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":6513,"children":6514},{"style":3443},[6515],{"type":3153,"value":6325},{"type":3148,"tag":3431,"props":6517,"children":6518},{"style":3510},[6519],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":6521,"children":6522},{"style":3576},[6523],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":6525,"children":6526},{"class":3433,"line":3720},[6527],{"type":3148,"tag":3431,"props":6528,"children":6529},{"style":3510},[6530],{"type":3153,"value":4609},{"type":3148,"tag":3155,"props":6532,"children":6533},{},[6534,6536,6541],{"type":3153,"value":6535},"You can configure the scrypt options in your ",{"type":3148,"tag":3293,"props":6537,"children":6539},{"className":6538},[],[6540],{"type":3153,"value":233},{"type":3153,"value":4170},{"type":3148,"tag":3421,"props":6543,"children":6545},{"className":4109,"code":6544,"language":4111,"meta":3021,"style":3021},"export default defineNuxtConfig({\n  modules: ['nuxt-auth-utils'],\n  auth: {\n    hash: {\n      scrypt: {\n        \u002F\u002F See https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fhash\u002Fblob\u002F94637029cd526783ac0a763ec581306d98db2036\u002Fsrc\u002Ftypes.ts#L144\n      }\n    }\n  }\n})\n",[6546],{"type":3148,"tag":3293,"props":6547,"children":6548},{"__ignoreMap":3021},[6549,6572,6610,6626,6642,6658,6666,6673,6680,6687],{"type":3148,"tag":3431,"props":6550,"children":6551},{"class":3433,"line":3107},[6552,6556,6560,6564,6568],{"type":3148,"tag":3431,"props":6553,"children":6554},{"style":4693},[6555],{"type":3153,"value":5227},{"type":3148,"tag":3431,"props":6557,"children":6558},{"style":4693},[6559],{"type":3153,"value":5342},{"type":3148,"tag":3431,"props":6561,"children":6562},{"style":3667},[6563],{"type":3153,"value":5347},{"type":3148,"tag":3431,"props":6565,"children":6566},{"style":3505},[6567],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":6569,"children":6570},{"style":3510},[6571],{"type":3153,"value":5357},{"type":3148,"tag":3431,"props":6573,"children":6574},{"class":3433,"line":3073},[6575,6580,6584,6589,6593,6597,6601,6606],{"type":3148,"tag":3431,"props":6576,"children":6577},{"style":3576},[6578],{"type":3153,"value":6579},"  modules",{"type":3148,"tag":3431,"props":6581,"children":6582},{"style":3510},[6583],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":6585,"children":6586},{"style":3505},[6587],{"type":3153,"value":6588}," [",{"type":3148,"tag":3431,"props":6590,"children":6591},{"style":3510},[6592],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":6594,"children":6595},{"style":3443},[6596],{"type":3153,"value":3020},{"type":3148,"tag":3431,"props":6598,"children":6599},{"style":3510},[6600],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":6602,"children":6603},{"style":3505},[6604],{"type":3153,"value":6605},"]",{"type":3148,"tag":3431,"props":6607,"children":6608},{"style":3510},[6609],{"type":3153,"value":5443},{"type":3148,"tag":3431,"props":6611,"children":6612},{"class":3433,"line":3057},[6613,6618,6622],{"type":3148,"tag":3431,"props":6614,"children":6615},{"style":3576},[6616],{"type":3153,"value":6617},"  auth",{"type":3148,"tag":3431,"props":6619,"children":6620},{"style":3510},[6621],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":6623,"children":6624},{"style":3510},[6625],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":6627,"children":6628},{"class":3433,"line":3694},[6629,6634,6638],{"type":3148,"tag":3431,"props":6630,"children":6631},{"style":3576},[6632],{"type":3153,"value":6633},"    hash",{"type":3148,"tag":3431,"props":6635,"children":6636},{"style":3510},[6637],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":6639,"children":6640},{"style":3510},[6641],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":6643,"children":6644},{"class":3433,"line":3703},[6645,6650,6654],{"type":3148,"tag":3431,"props":6646,"children":6647},{"style":3576},[6648],{"type":3153,"value":6649},"      scrypt",{"type":3148,"tag":3431,"props":6651,"children":6652},{"style":3510},[6653],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":6655,"children":6656},{"style":3510},[6657],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":6659,"children":6660},{"class":3433,"line":3720},[6661],{"type":3148,"tag":3431,"props":6662,"children":6663},{"style":3496},[6664],{"type":3153,"value":6665},"        \u002F\u002F See https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fhash\u002Fblob\u002F94637029cd526783ac0a763ec581306d98db2036\u002Fsrc\u002Ftypes.ts#L144\n",{"type":3148,"tag":3431,"props":6667,"children":6668},{"class":3433,"line":3053},[6669],{"type":3148,"tag":3431,"props":6670,"children":6671},{"style":3510},[6672],{"type":3153,"value":5475},{"type":3148,"tag":3431,"props":6674,"children":6675},{"class":3433,"line":3049},[6676],{"type":3148,"tag":3431,"props":6677,"children":6678},{"style":3510},[6679],{"type":3153,"value":5483},{"type":3148,"tag":3431,"props":6681,"children":6682},{"class":3433,"line":3045},[6683],{"type":3148,"tag":3431,"props":6684,"children":6685},{"style":3510},[6686],{"type":3153,"value":5131},{"type":3148,"tag":3431,"props":6688,"children":6689},{"class":3433,"line":3882},[6690,6694],{"type":3148,"tag":3431,"props":6691,"children":6692},{"style":3510},[6693],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":6695,"children":6696},{"style":3505},[6697],{"type":3153,"value":4873},{"type":3148,"tag":3551,"props":6699,"children":6701},{"id":6700},"at-protocol",[6702],{"type":3153,"value":6703},"AT Protocol",{"type":3148,"tag":3155,"props":6705,"children":6706},{},[6707],{"type":3153,"value":6708},"Social networks that rely on AT Protocol (e.g., Bluesky) slightly differ from a regular OAuth flow.",{"type":3148,"tag":3155,"props":6710,"children":6711},{},[6712],{"type":3153,"value":6713},"To enable OAuth with AT Protocol, you need to:",{"type":3148,"tag":3405,"props":6715,"children":6716},{},[6717],{"type":3148,"tag":3209,"props":6718,"children":6719},{},[6720],{"type":3153,"value":6721},"Install the peer dependencies:",{"type":3148,"tag":3421,"props":6723,"children":6725},{"className":3423,"code":6724,"language":3425,"meta":3021,"style":3021},"npx nypm i @atproto\u002Foauth-client-node @atproto\u002Fapi\n",[6726],{"type":3148,"tag":3293,"props":6727,"children":6728},{"__ignoreMap":3021},[6729],{"type":3148,"tag":3431,"props":6730,"children":6731},{"class":3433,"line":3107},[6732,6736,6741,6746,6751],{"type":3148,"tag":3431,"props":6733,"children":6734},{"style":3437},[6735],{"type":3153,"value":3440},{"type":3148,"tag":3431,"props":6737,"children":6738},{"style":3443},[6739],{"type":3153,"value":6740}," nypm",{"type":3148,"tag":3431,"props":6742,"children":6743},{"style":3443},[6744],{"type":3153,"value":6745}," i",{"type":3148,"tag":3431,"props":6747,"children":6748},{"style":3443},[6749],{"type":3153,"value":6750}," @atproto\u002Foauth-client-node",{"type":3148,"tag":3431,"props":6752,"children":6753},{"style":3443},[6754],{"type":3153,"value":6755}," @atproto\u002Fapi\n",{"type":3148,"tag":3405,"props":6757,"children":6758},{"start":3073},[6759],{"type":3148,"tag":3209,"props":6760,"children":6761},{},[6762,6764],{"type":3153,"value":6763},"Enable it in your ",{"type":3148,"tag":3293,"props":6765,"children":6767},{"className":6766},[],[6768],{"type":3153,"value":233},{"type":3148,"tag":3421,"props":6770,"children":6772},{"className":4109,"code":6771,"language":4111,"meta":3021,"style":3021},"export default defineNuxtConfig({\n  auth: {\n    atproto: true\n  }\n})\n",[6773],{"type":3148,"tag":3293,"props":6774,"children":6775},{"__ignoreMap":3021},[6776,6799,6814,6830,6837],{"type":3148,"tag":3431,"props":6777,"children":6778},{"class":3433,"line":3107},[6779,6783,6787,6791,6795],{"type":3148,"tag":3431,"props":6780,"children":6781},{"style":4693},[6782],{"type":3153,"value":5227},{"type":3148,"tag":3431,"props":6784,"children":6785},{"style":4693},[6786],{"type":3153,"value":5342},{"type":3148,"tag":3431,"props":6788,"children":6789},{"style":3667},[6790],{"type":3153,"value":5347},{"type":3148,"tag":3431,"props":6792,"children":6793},{"style":3505},[6794],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":6796,"children":6797},{"style":3510},[6798],{"type":3153,"value":5357},{"type":3148,"tag":3431,"props":6800,"children":6801},{"class":3433,"line":3073},[6802,6806,6810],{"type":3148,"tag":3431,"props":6803,"children":6804},{"style":3576},[6805],{"type":3153,"value":6617},{"type":3148,"tag":3431,"props":6807,"children":6808},{"style":3510},[6809],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":6811,"children":6812},{"style":3510},[6813],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":6815,"children":6816},{"class":3433,"line":3057},[6817,6822,6826],{"type":3148,"tag":3431,"props":6818,"children":6819},{"style":3576},[6820],{"type":3153,"value":6821},"    atproto",{"type":3148,"tag":3431,"props":6823,"children":6824},{"style":3510},[6825],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":6827,"children":6828},{"style":5877},[6829],{"type":3153,"value":5880},{"type":3148,"tag":3431,"props":6831,"children":6832},{"class":3433,"line":3694},[6833],{"type":3148,"tag":3431,"props":6834,"children":6835},{"style":3510},[6836],{"type":3153,"value":5131},{"type":3148,"tag":3431,"props":6838,"children":6839},{"class":3433,"line":3703},[6840,6844],{"type":3148,"tag":3431,"props":6841,"children":6842},{"style":3510},[6843],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":6845,"children":6846},{"style":3505},[6847],{"type":3153,"value":4873},{"type":3148,"tag":3551,"props":6849,"children":6851},{"id":6850},"webauthn-passkey",[6852],{"type":3153,"value":3284},{"type":3148,"tag":3155,"props":6854,"children":6855},{},[6856],{"type":3153,"value":6857},"WebAuthn (Web Authentication) is a web standard that enhances security by replacing passwords with passkeys using public key cryptography. Users can authenticate with biometric data (like fingerprints or facial recognition) or physical devices (like USB keys), reducing the risk of phishing and password breaches. This approach offers a more secure and user-friendly authentication method, supported by major browsers and platforms.",{"type":3148,"tag":3155,"props":6859,"children":6860},{},[6861],{"type":3153,"value":6862},"To enable WebAuthn you need to:",{"type":3148,"tag":3405,"props":6864,"children":6865},{},[6866],{"type":3148,"tag":3209,"props":6867,"children":6868},{},[6869],{"type":3153,"value":6721},{"type":3148,"tag":3421,"props":6871,"children":6873},{"className":3423,"code":6872,"language":3425,"meta":3021,"style":3021},"npx nypm i @simplewebauthn\u002Fserver@11 @simplewebauthn\u002Fbrowser@11\n",[6874],{"type":3148,"tag":3293,"props":6875,"children":6876},{"__ignoreMap":3021},[6877],{"type":3148,"tag":3431,"props":6878,"children":6879},{"class":3433,"line":3107},[6880,6884,6888,6892,6897],{"type":3148,"tag":3431,"props":6881,"children":6882},{"style":3437},[6883],{"type":3153,"value":3440},{"type":3148,"tag":3431,"props":6885,"children":6886},{"style":3443},[6887],{"type":3153,"value":6740},{"type":3148,"tag":3431,"props":6889,"children":6890},{"style":3443},[6891],{"type":3153,"value":6745},{"type":3148,"tag":3431,"props":6893,"children":6894},{"style":3443},[6895],{"type":3153,"value":6896}," @simplewebauthn\u002Fserver@11",{"type":3148,"tag":3431,"props":6898,"children":6899},{"style":3443},[6900],{"type":3153,"value":6901}," @simplewebauthn\u002Fbrowser@11\n",{"type":3148,"tag":3405,"props":6903,"children":6904},{"start":3073},[6905],{"type":3148,"tag":3209,"props":6906,"children":6907},{},[6908,6909],{"type":3153,"value":6763},{"type":3148,"tag":3293,"props":6910,"children":6912},{"className":6911},[],[6913],{"type":3153,"value":233},{"type":3148,"tag":3421,"props":6915,"children":6917},{"className":4109,"code":6916,"language":4111,"meta":3021,"style":3021},"export default defineNuxtConfig({\n  auth: {\n    webAuthn: true\n  }\n})\n",[6918],{"type":3148,"tag":3293,"props":6919,"children":6920},{"__ignoreMap":3021},[6921,6944,6959,6975,6982],{"type":3148,"tag":3431,"props":6922,"children":6923},{"class":3433,"line":3107},[6924,6928,6932,6936,6940],{"type":3148,"tag":3431,"props":6925,"children":6926},{"style":4693},[6927],{"type":3153,"value":5227},{"type":3148,"tag":3431,"props":6929,"children":6930},{"style":4693},[6931],{"type":3153,"value":5342},{"type":3148,"tag":3431,"props":6933,"children":6934},{"style":3667},[6935],{"type":3153,"value":5347},{"type":3148,"tag":3431,"props":6937,"children":6938},{"style":3505},[6939],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":6941,"children":6942},{"style":3510},[6943],{"type":3153,"value":5357},{"type":3148,"tag":3431,"props":6945,"children":6946},{"class":3433,"line":3073},[6947,6951,6955],{"type":3148,"tag":3431,"props":6948,"children":6949},{"style":3576},[6950],{"type":3153,"value":6617},{"type":3148,"tag":3431,"props":6952,"children":6953},{"style":3510},[6954],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":6956,"children":6957},{"style":3510},[6958],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":6960,"children":6961},{"class":3433,"line":3057},[6962,6967,6971],{"type":3148,"tag":3431,"props":6963,"children":6964},{"style":3576},[6965],{"type":3153,"value":6966},"    webAuthn",{"type":3148,"tag":3431,"props":6968,"children":6969},{"style":3510},[6970],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":6972,"children":6973},{"style":5877},[6974],{"type":3153,"value":5880},{"type":3148,"tag":3431,"props":6976,"children":6977},{"class":3433,"line":3694},[6978],{"type":3148,"tag":3431,"props":6979,"children":6980},{"style":3510},[6981],{"type":3153,"value":5131},{"type":3148,"tag":3431,"props":6983,"children":6984},{"class":3433,"line":3703},[6985,6989],{"type":3148,"tag":3431,"props":6986,"children":6987},{"style":3510},[6988],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":6990,"children":6991},{"style":3505},[6992],{"type":3153,"value":4873},{"type":3148,"tag":5537,"props":6994,"children":6996},{"id":6995},"example-1",[6997],{"type":3153,"value":5804},{"type":3148,"tag":3155,"props":6999,"children":7000},{},[7001],{"type":3153,"value":7002},"In this example we will implement the very basic steps to register and authenticate a credential.",{"type":3148,"tag":3155,"props":7004,"children":7005},{},[7006,7008,7015],{"type":3153,"value":7007},"The full code can be found in the ",{"type":3148,"tag":3159,"props":7009,"children":7012},{"href":7010,"rel":7011},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn",[3163],[7013],{"type":3153,"value":7014},"playground",{"type":3153,"value":7016},". The example uses a SQLite database with the following minimal tables:",{"type":3148,"tag":3421,"props":7018,"children":7022},{"className":7019,"code":7020,"language":7021,"meta":3021,"style":3021},"language-sql shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","CREATE TABLE users (\n  id INTEGER PRIMARY KEY AUTOINCREMENT,\n  email TEXT NOT NULL\n);\n\nCREATE TABLE IF NOT EXISTS credentials (\n  userId INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE ON UPDATE CASCADE,\n  id TEXT UNIQUE NOT NULL,\n  publicKey TEXT NOT NULL,\n  counter INTEGER NOT NULL,\n  backedUp INTEGER NOT NULL,\n  transports TEXT NOT NULL,\n  PRIMARY KEY (\"userId\", \"id\")\n);\n","sql",[7023],{"type":3148,"tag":3293,"props":7024,"children":7025},{"__ignoreMap":3021},[7026,7050,7073,7091,7099,7106,7137,7178,7202,7222,7243,7263,7283,7330],{"type":3148,"tag":3431,"props":7027,"children":7028},{"class":3433,"line":3107},[7029,7035,7040,7045],{"type":3148,"tag":3431,"props":7030,"children":7032},{"style":7031},"--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C",[7033],{"type":3153,"value":7034},"CREATE",{"type":3148,"tag":3431,"props":7036,"children":7037},{"style":7031},[7038],{"type":3153,"value":7039}," TABLE",{"type":3148,"tag":3431,"props":7041,"children":7042},{"style":3667},[7043],{"type":3153,"value":7044}," users",{"type":3148,"tag":3431,"props":7046,"children":7047},{"style":3505},[7048],{"type":3153,"value":7049}," (\n",{"type":3148,"tag":3431,"props":7051,"children":7052},{"class":3433,"line":3073},[7053,7058,7063,7068],{"type":3148,"tag":3431,"props":7054,"children":7055},{"style":3505},[7056],{"type":3153,"value":7057},"  id ",{"type":3148,"tag":3431,"props":7059,"children":7060},{"style":3582},[7061],{"type":3153,"value":7062},"INTEGER",{"type":3148,"tag":3431,"props":7064,"children":7065},{"style":3582},[7066],{"type":3153,"value":7067}," PRIMARY KEY",{"type":3148,"tag":3431,"props":7069,"children":7070},{"style":3505},[7071],{"type":3153,"value":7072}," AUTOINCREMENT,\n",{"type":3148,"tag":3431,"props":7074,"children":7075},{"class":3433,"line":3057},[7076,7081,7086],{"type":3148,"tag":3431,"props":7077,"children":7078},{"style":3505},[7079],{"type":3153,"value":7080},"  email ",{"type":3148,"tag":3431,"props":7082,"children":7083},{"style":3582},[7084],{"type":3153,"value":7085},"TEXT",{"type":3148,"tag":3431,"props":7087,"children":7088},{"style":7031},[7089],{"type":3153,"value":7090}," NOT NULL\n",{"type":3148,"tag":3431,"props":7092,"children":7093},{"class":3433,"line":3694},[7094],{"type":3148,"tag":3431,"props":7095,"children":7096},{"style":3505},[7097],{"type":3153,"value":7098},");\n",{"type":3148,"tag":3431,"props":7100,"children":7101},{"class":3433,"line":3703},[7102],{"type":3148,"tag":3431,"props":7103,"children":7104},{"emptyLinePlaceholder":1200},[7105],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":7107,"children":7108},{"class":3433,"line":3720},[7109,7113,7117,7122,7127,7132],{"type":3148,"tag":3431,"props":7110,"children":7111},{"style":7031},[7112],{"type":3153,"value":7034},{"type":3148,"tag":3431,"props":7114,"children":7115},{"style":7031},[7116],{"type":3153,"value":7039},{"type":3148,"tag":3431,"props":7118,"children":7119},{"style":3667},[7120],{"type":3153,"value":7121}," IF",{"type":3148,"tag":3431,"props":7123,"children":7124},{"style":7031},[7125],{"type":3153,"value":7126}," NOT",{"type":3148,"tag":3431,"props":7128,"children":7129},{"style":7031},[7130],{"type":3153,"value":7131}," EXISTS",{"type":3148,"tag":3431,"props":7133,"children":7134},{"style":3505},[7135],{"type":3153,"value":7136}," credentials (\n",{"type":3148,"tag":3431,"props":7138,"children":7139},{"class":3433,"line":3053},[7140,7145,7149,7154,7159,7164,7169,7174],{"type":3148,"tag":3431,"props":7141,"children":7142},{"style":3505},[7143],{"type":3153,"value":7144},"  userId ",{"type":3148,"tag":3431,"props":7146,"children":7147},{"style":3582},[7148],{"type":3153,"value":7062},{"type":3148,"tag":3431,"props":7150,"children":7151},{"style":7031},[7152],{"type":3153,"value":7153}," NOT NULL",{"type":3148,"tag":3431,"props":7155,"children":7156},{"style":3582},[7157],{"type":3153,"value":7158}," REFERENCES",{"type":3148,"tag":3431,"props":7160,"children":7161},{"style":3505},[7162],{"type":3153,"value":7163}," users(id) ",{"type":3148,"tag":3431,"props":7165,"children":7166},{"style":3582},[7167],{"type":3153,"value":7168},"ON DELETE CASCADE",{"type":3148,"tag":3431,"props":7170,"children":7171},{"style":3582},[7172],{"type":3153,"value":7173}," ON UPDATE CASCADE",{"type":3148,"tag":3431,"props":7175,"children":7176},{"style":3505},[7177],{"type":3153,"value":5443},{"type":3148,"tag":3431,"props":7179,"children":7180},{"class":3433,"line":3049},[7181,7185,7189,7194,7198],{"type":3148,"tag":3431,"props":7182,"children":7183},{"style":3505},[7184],{"type":3153,"value":7057},{"type":3148,"tag":3431,"props":7186,"children":7187},{"style":3582},[7188],{"type":3153,"value":7085},{"type":3148,"tag":3431,"props":7190,"children":7191},{"style":7031},[7192],{"type":3153,"value":7193}," UNIQUE",{"type":3148,"tag":3431,"props":7195,"children":7196},{"style":7031},[7197],{"type":3153,"value":7153},{"type":3148,"tag":3431,"props":7199,"children":7200},{"style":3505},[7201],{"type":3153,"value":5443},{"type":3148,"tag":3431,"props":7203,"children":7204},{"class":3433,"line":3045},[7205,7210,7214,7218],{"type":3148,"tag":3431,"props":7206,"children":7207},{"style":3505},[7208],{"type":3153,"value":7209},"  publicKey ",{"type":3148,"tag":3431,"props":7211,"children":7212},{"style":3582},[7213],{"type":3153,"value":7085},{"type":3148,"tag":3431,"props":7215,"children":7216},{"style":7031},[7217],{"type":3153,"value":7153},{"type":3148,"tag":3431,"props":7219,"children":7220},{"style":3505},[7221],{"type":3153,"value":5443},{"type":3148,"tag":3431,"props":7223,"children":7224},{"class":3433,"line":3882},[7225,7230,7235,7239],{"type":3148,"tag":3431,"props":7226,"children":7227},{"style":7031},[7228],{"type":3153,"value":7229},"  counter",{"type":3148,"tag":3431,"props":7231,"children":7232},{"style":3582},[7233],{"type":3153,"value":7234}," INTEGER",{"type":3148,"tag":3431,"props":7236,"children":7237},{"style":7031},[7238],{"type":3153,"value":7153},{"type":3148,"tag":3431,"props":7240,"children":7241},{"style":3505},[7242],{"type":3153,"value":5443},{"type":3148,"tag":3431,"props":7244,"children":7245},{"class":3433,"line":3136},[7246,7251,7255,7259],{"type":3148,"tag":3431,"props":7247,"children":7248},{"style":3505},[7249],{"type":3153,"value":7250},"  backedUp ",{"type":3148,"tag":3431,"props":7252,"children":7253},{"style":3582},[7254],{"type":3153,"value":7062},{"type":3148,"tag":3431,"props":7256,"children":7257},{"style":7031},[7258],{"type":3153,"value":7153},{"type":3148,"tag":3431,"props":7260,"children":7261},{"style":3505},[7262],{"type":3153,"value":5443},{"type":3148,"tag":3431,"props":7264,"children":7265},{"class":3433,"line":3919},[7266,7271,7275,7279],{"type":3148,"tag":3431,"props":7267,"children":7268},{"style":3505},[7269],{"type":3153,"value":7270},"  transports ",{"type":3148,"tag":3431,"props":7272,"children":7273},{"style":3582},[7274],{"type":3153,"value":7085},{"type":3148,"tag":3431,"props":7276,"children":7277},{"style":7031},[7278],{"type":3153,"value":7153},{"type":3148,"tag":3431,"props":7280,"children":7281},{"style":3505},[7282],{"type":3153,"value":5443},{"type":3148,"tag":3431,"props":7284,"children":7285},{"class":3433,"line":3952},[7286,7291,7295,7299,7304,7308,7313,7317,7322,7326],{"type":3148,"tag":3431,"props":7287,"children":7288},{"style":3582},[7289],{"type":3153,"value":7290},"  PRIMARY KEY",{"type":3148,"tag":3431,"props":7292,"children":7293},{"style":3505},[7294],{"type":3153,"value":4522},{"type":3148,"tag":3431,"props":7296,"children":7297},{"style":3510},[7298],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":7300,"children":7301},{"style":3443},[7302],{"type":3153,"value":7303},"userId",{"type":3148,"tag":3431,"props":7305,"children":7306},{"style":3510},[7307],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":7309,"children":7310},{"style":3505},[7311],{"type":3153,"value":7312},", ",{"type":3148,"tag":3431,"props":7314,"children":7315},{"style":3510},[7316],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":7318,"children":7319},{"style":3443},[7320],{"type":3153,"value":7321},"id",{"type":3148,"tag":3431,"props":7323,"children":7324},{"style":3510},[7325],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":7327,"children":7328},{"style":3505},[7329],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":7331,"children":7332},{"class":3433,"line":4007},[7333],{"type":3148,"tag":3431,"props":7334,"children":7335},{"style":3505},[7336],{"type":3153,"value":7098},{"type":3148,"tag":3205,"props":7338,"children":7339},{},[7340,7353],{"type":3148,"tag":3209,"props":7341,"children":7342},{},[7343,7345,7351],{"type":3153,"value":7344},"For the ",{"type":3148,"tag":3293,"props":7346,"children":7348},{"className":7347},[],[7349],{"type":3153,"value":7350},"users",{"type":3153,"value":7352}," table it is important to have a unique identifier such as a username or email (here we use email). When creating a new credential, this identifier is required and stored with the passkey on the user's device, password manager, or authenticator.",{"type":3148,"tag":3209,"props":7354,"children":7355},{},[7356,7357,7363,7365],{"type":3153,"value":5301},{"type":3148,"tag":3293,"props":7358,"children":7360},{"className":7359},[],[7361],{"type":3153,"value":7362},"credentials",{"type":3153,"value":7364}," table stores:\n",{"type":3148,"tag":3205,"props":7366,"children":7367},{},[7368,7386,7398,7408,7437,7458],{"type":3148,"tag":3209,"props":7369,"children":7370},{},[7371,7372,7377,7379,7384],{"type":3153,"value":5301},{"type":3148,"tag":3293,"props":7373,"children":7375},{"className":7374},[],[7376],{"type":3153,"value":7303},{"type":3153,"value":7378}," from the ",{"type":3148,"tag":3293,"props":7380,"children":7382},{"className":7381},[],[7383],{"type":3153,"value":7350},{"type":3153,"value":7385}," table.",{"type":3148,"tag":3209,"props":7387,"children":7388},{},[7389,7391,7396],{"type":3153,"value":7390},"The credential ",{"type":3148,"tag":3293,"props":7392,"children":7394},{"className":7393},[],[7395],{"type":3153,"value":7321},{"type":3153,"value":7397}," (as unique index)",{"type":3148,"tag":3209,"props":7399,"children":7400},{},[7401,7402],{"type":3153,"value":7390},{"type":3148,"tag":3293,"props":7403,"children":7405},{"className":7404},[],[7406],{"type":3153,"value":7407},"publicKey",{"type":3148,"tag":3209,"props":7409,"children":7410},{},[7411,7413,7419,7421,7426,7428,7435],{"type":3153,"value":7412},"A ",{"type":3148,"tag":3293,"props":7414,"children":7416},{"className":7415},[],[7417],{"type":3153,"value":7418},"counter",{"type":3153,"value":7420},". Each time a credential is used, the counter is incremented. We can use this value to perform extra security checks. More about ",{"type":3148,"tag":3293,"props":7422,"children":7424},{"className":7423},[],[7425],{"type":3153,"value":7418},{"type":3153,"value":7427}," can be read ",{"type":3148,"tag":3159,"props":7429,"children":7432},{"href":7430,"rel":7431},"https:\u002F\u002Fsimplewebauthn.dev\u002Fdocs\u002Fpackages\u002Fserver#3-post-registration-responsibilities",[3163],[7433],{"type":3153,"value":7434},"here",{"type":3153,"value":7436},". For this example, we won't be using the counter. But you should update the counter in your database with the new value.",{"type":3148,"tag":3209,"props":7438,"children":7439},{},[7440,7441,7447,7449,7456],{"type":3153,"value":7412},{"type":3148,"tag":3293,"props":7442,"children":7444},{"className":7443},[],[7445],{"type":3153,"value":7446},"backedUp",{"type":3153,"value":7448}," flag. Normally, credentials are stored on the generating device. When you use a password manager or authenticator, the credential is \"backed up\" because it can be used on multiple devices. See ",{"type":3148,"tag":3159,"props":7450,"children":7453},{"href":7451,"rel":7452},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fugaemxot",[3163],[7454],{"type":3153,"value":7455},"this section",{"type":3153,"value":7457}," for more details.",{"type":3148,"tag":3209,"props":7459,"children":7460},{},[7461,7462,7468,7470,7476],{"type":3153,"value":7390},{"type":3148,"tag":3293,"props":7463,"children":7465},{"className":7464},[],[7466],{"type":3153,"value":7467},"transports",{"type":3153,"value":7469},". It is an array of strings that indicate how the credential communicates with the client. It is used to show the correct UI for the user to utilize the credential. Again, see ",{"type":3148,"tag":3159,"props":7471,"children":7474},{"href":7472,"rel":7473},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fycxtiorp",[3163],[7475],{"type":3153,"value":7455},{"type":3153,"value":7457},{"type":3148,"tag":3155,"props":7478,"children":7479},{},[7480,7482,7489,7490,7497,7499,7506],{"type":3153,"value":7481},"The following code does not include the actual database queries, but shows the general steps to follow. The full example can be found in the playground: ",{"type":3148,"tag":3159,"props":7483,"children":7486},{"href":7484,"rel":7485},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fregister.post.ts",[3163],[7487],{"type":3153,"value":7488},"registration",{"type":3153,"value":7312},{"type":3148,"tag":3159,"props":7491,"children":7494},{"href":7492,"rel":7493},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts",[3163],[7495],{"type":3153,"value":7496},"authentication",{"type":3153,"value":7498}," and the ",{"type":3148,"tag":3159,"props":7500,"children":7503},{"href":7501,"rel":7502},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fplugins\u002Fdatabase.ts",[3163],[7504],{"type":3153,"value":7505},"database setup",{"type":3153,"value":3386},{"type":3148,"tag":3421,"props":7508,"children":7510},{"className":4109,"code":7509,"language":4111,"meta":3021,"style":3021},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fregister.post.ts\nimport { z } from 'zod'\nexport default defineWebAuthnRegisterEventHandler({\n  \u002F\u002F optional\n  async validateUser(userBody, event) {\n    \u002F\u002F bonus: check if the user is already authenticated to link a credential to his account\n    \u002F\u002F We first check if the user is already authenticated by getting the session\n    \u002F\u002F And verify that the email is the same as the one in session\n    const session = await getUserSession(event)\n    if (session.user?.email && session.user.email !== userBody.userName) {\n      throw createError({ statusCode: 400, message: 'Email not matching curent session' })\n    }\n\n    \u002F\u002F If he registers a new account with credentials\n    return z.object({\n      \u002F\u002F we want the userName to be a valid email\n      userName: z.string().email()\n    }).parse(userBody)\n  },\n  async onSuccess(event, { credential, user }) {\n    \u002F\u002F The credential creation has been successful\n    \u002F\u002F We need to create a user if it does not exist\n    const db = useDatabase()\n\n    \u002F\u002F Get the user from the database\n    let dbUser = await db.sql`...`\n    if (!dbUser) {\n      \u002F\u002F Store new user in database & its credentials\n      dbUser = await db.sql`...`\n    }\n\n    \u002F\u002F we now need to store the credential in our database and link it to the user\n    await db.sql`...`\n\n    \u002F\u002F Set the user session\n    await setUserSession(event, {\n      user: {\n        id: dbUser.id\n      },\n      loggedInAt: Date.now(),\n    })\n  },\n})\n",[7511],{"type":3148,"tag":3293,"props":7512,"children":7513},{"__ignoreMap":3021},[7514,7522,7562,7586,7594,7632,7640,7648,7656,7692,7781,7851,7858,7865,7873,7901,7909,7951,7983,7990,8038,8046,8054,8079,8086,8094,8141,8170,8178,8218,8225,8233,8242,8274,8282,8291,8319,8335,8360,8369,8403,8415,8423],{"type":3148,"tag":3431,"props":7515,"children":7516},{"class":3433,"line":3107},[7517],{"type":3148,"tag":3431,"props":7518,"children":7519},{"style":3496},[7520],{"type":3153,"value":7521},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fregister.post.ts\n",{"type":3148,"tag":3431,"props":7523,"children":7524},{"class":3433,"line":3073},[7525,7530,7534,7539,7544,7549,7553,7558],{"type":3148,"tag":3431,"props":7526,"children":7527},{"style":4693},[7528],{"type":3153,"value":7529},"import",{"type":3148,"tag":3431,"props":7531,"children":7532},{"style":3510},[7533],{"type":3153,"value":3603},{"type":3148,"tag":3431,"props":7535,"children":7536},{"style":3505},[7537],{"type":3153,"value":7538}," z",{"type":3148,"tag":3431,"props":7540,"children":7541},{"style":3510},[7542],{"type":3153,"value":7543}," }",{"type":3148,"tag":3431,"props":7545,"children":7546},{"style":4693},[7547],{"type":3153,"value":7548}," from",{"type":3148,"tag":3431,"props":7550,"children":7551},{"style":3510},[7552],{"type":3153,"value":4754},{"type":3148,"tag":3431,"props":7554,"children":7555},{"style":3443},[7556],{"type":3153,"value":7557},"zod",{"type":3148,"tag":3431,"props":7559,"children":7560},{"style":3510},[7561],{"type":3153,"value":4763},{"type":3148,"tag":3431,"props":7563,"children":7564},{"class":3433,"line":3057},[7565,7569,7573,7578,7582],{"type":3148,"tag":3431,"props":7566,"children":7567},{"style":4693},[7568],{"type":3153,"value":5227},{"type":3148,"tag":3431,"props":7570,"children":7571},{"style":4693},[7572],{"type":3153,"value":5342},{"type":3148,"tag":3431,"props":7574,"children":7575},{"style":3667},[7576],{"type":3153,"value":7577}," defineWebAuthnRegisterEventHandler",{"type":3148,"tag":3431,"props":7579,"children":7580},{"style":3505},[7581],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":7583,"children":7584},{"style":3510},[7585],{"type":3153,"value":5357},{"type":3148,"tag":3431,"props":7587,"children":7588},{"class":3433,"line":3694},[7589],{"type":3148,"tag":3431,"props":7590,"children":7591},{"style":3496},[7592],{"type":3153,"value":7593},"  \u002F\u002F optional\n",{"type":3148,"tag":3431,"props":7595,"children":7596},{"class":3433,"line":3703},[7597,7601,7606,7610,7615,7619,7624,7628],{"type":3148,"tag":3431,"props":7598,"children":7599},{"style":3582},[7600],{"type":3153,"value":5895},{"type":3148,"tag":3431,"props":7602,"children":7603},{"style":3576},[7604],{"type":3153,"value":7605}," validateUser",{"type":3148,"tag":3431,"props":7607,"children":7608},{"style":3510},[7609],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":7611,"children":7612},{"style":4525},[7613],{"type":3153,"value":7614},"userBody",{"type":3148,"tag":3431,"props":7616,"children":7617},{"style":3510},[7618],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":7620,"children":7621},{"style":4525},[7622],{"type":3153,"value":7623}," event",{"type":3148,"tag":3431,"props":7625,"children":7626},{"style":3510},[7627],{"type":3153,"value":6113},{"type":3148,"tag":3431,"props":7629,"children":7630},{"style":3510},[7631],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":7633,"children":7634},{"class":3433,"line":3720},[7635],{"type":3148,"tag":3431,"props":7636,"children":7637},{"style":3496},[7638],{"type":3153,"value":7639},"    \u002F\u002F bonus: check if the user is already authenticated to link a credential to his account\n",{"type":3148,"tag":3431,"props":7641,"children":7642},{"class":3433,"line":3053},[7643],{"type":3148,"tag":3431,"props":7644,"children":7645},{"style":3496},[7646],{"type":3153,"value":7647},"    \u002F\u002F We first check if the user is already authenticated by getting the session\n",{"type":3148,"tag":3431,"props":7649,"children":7650},{"class":3433,"line":3049},[7651],{"type":3148,"tag":3431,"props":7652,"children":7653},{"style":3496},[7654],{"type":3153,"value":7655},"    \u002F\u002F And verify that the email is the same as the one in session\n",{"type":3148,"tag":3431,"props":7657,"children":7658},{"class":3433,"line":3045},[7659,7664,7668,7672,7676,7680,7684,7688],{"type":3148,"tag":3431,"props":7660,"children":7661},{"style":3582},[7662],{"type":3153,"value":7663},"    const",{"type":3148,"tag":3431,"props":7665,"children":7666},{"style":3505},[7667],{"type":3153,"value":3627},{"type":3148,"tag":3431,"props":7669,"children":7670},{"style":3510},[7671],{"type":3153,"value":3664},{"type":3148,"tag":3431,"props":7673,"children":7674},{"style":4693},[7675],{"type":3153,"value":4949},{"type":3148,"tag":3431,"props":7677,"children":7678},{"style":3667},[7679],{"type":3153,"value":4954},{"type":3148,"tag":3431,"props":7681,"children":7682},{"style":3576},[7683],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":7685,"children":7686},{"style":3505},[7687],{"type":3153,"value":5909},{"type":3148,"tag":3431,"props":7689,"children":7690},{"style":3576},[7691],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":7693,"children":7694},{"class":3433,"line":3882},[7695,7700,7704,7709,7713,7718,7723,7728,7733,7737,7741,7745,7749,7753,7758,7763,7767,7772,7777],{"type":3148,"tag":3431,"props":7696,"children":7697},{"style":4693},[7698],{"type":3153,"value":7699},"    if",{"type":3148,"tag":3431,"props":7701,"children":7702},{"style":3576},[7703],{"type":3153,"value":4522},{"type":3148,"tag":3431,"props":7705,"children":7706},{"style":3505},[7707],{"type":3153,"value":7708},"session",{"type":3148,"tag":3431,"props":7710,"children":7711},{"style":3510},[7712],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":7714,"children":7715},{"style":3505},[7716],{"type":3153,"value":7717},"user",{"type":3148,"tag":3431,"props":7719,"children":7720},{"style":3510},[7721],{"type":3153,"value":7722},"?.",{"type":3148,"tag":3431,"props":7724,"children":7725},{"style":3505},[7726],{"type":3153,"value":7727},"email",{"type":3148,"tag":3431,"props":7729,"children":7730},{"style":3510},[7731],{"type":3153,"value":7732}," &&",{"type":3148,"tag":3431,"props":7734,"children":7735},{"style":3505},[7736],{"type":3153,"value":3627},{"type":3148,"tag":3431,"props":7738,"children":7739},{"style":3510},[7740],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":7742,"children":7743},{"style":3505},[7744],{"type":3153,"value":7717},{"type":3148,"tag":3431,"props":7746,"children":7747},{"style":3510},[7748],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":7750,"children":7751},{"style":3505},[7752],{"type":3153,"value":7727},{"type":3148,"tag":3431,"props":7754,"children":7755},{"style":3510},[7756],{"type":3153,"value":7757}," !==",{"type":3148,"tag":3431,"props":7759,"children":7760},{"style":3505},[7761],{"type":3153,"value":7762}," userBody",{"type":3148,"tag":3431,"props":7764,"children":7765},{"style":3510},[7766],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":7768,"children":7769},{"style":3505},[7770],{"type":3153,"value":7771},"userName",{"type":3148,"tag":3431,"props":7773,"children":7774},{"style":3576},[7775],{"type":3153,"value":7776},") ",{"type":3148,"tag":3431,"props":7778,"children":7779},{"style":3510},[7780],{"type":3153,"value":5357},{"type":3148,"tag":3431,"props":7782,"children":7783},{"class":3433,"line":3136},[7784,7789,7794,7798,7803,7808,7812,7817,7821,7826,7830,7834,7839,7843,7847],{"type":3148,"tag":3431,"props":7785,"children":7786},{"style":4693},[7787],{"type":3153,"value":7788},"      throw",{"type":3148,"tag":3431,"props":7790,"children":7791},{"style":3667},[7792],{"type":3153,"value":7793}," createError",{"type":3148,"tag":3431,"props":7795,"children":7796},{"style":3576},[7797],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":7799,"children":7800},{"style":3510},[7801],{"type":3153,"value":7802},"{",{"type":3148,"tag":3431,"props":7804,"children":7805},{"style":3576},[7806],{"type":3153,"value":7807}," statusCode",{"type":3148,"tag":3431,"props":7809,"children":7810},{"style":3510},[7811],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":7813,"children":7814},{"style":7031},[7815],{"type":3153,"value":7816}," 400",{"type":3148,"tag":3431,"props":7818,"children":7819},{"style":3510},[7820],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":7822,"children":7823},{"style":3576},[7824],{"type":3153,"value":7825}," message",{"type":3148,"tag":3431,"props":7827,"children":7828},{"style":3510},[7829],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":7831,"children":7832},{"style":3510},[7833],{"type":3153,"value":4754},{"type":3148,"tag":3431,"props":7835,"children":7836},{"style":3443},[7837],{"type":3153,"value":7838},"Email not matching curent session",{"type":3148,"tag":3431,"props":7840,"children":7841},{"style":3510},[7842],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":7844,"children":7845},{"style":3510},[7846],{"type":3153,"value":7543},{"type":3148,"tag":3431,"props":7848,"children":7849},{"style":3576},[7850],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":7852,"children":7853},{"class":3433,"line":3919},[7854],{"type":3148,"tag":3431,"props":7855,"children":7856},{"style":3510},[7857],{"type":3153,"value":5483},{"type":3148,"tag":3431,"props":7859,"children":7860},{"class":3433,"line":3952},[7861],{"type":3148,"tag":3431,"props":7862,"children":7863},{"emptyLinePlaceholder":1200},[7864],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":7866,"children":7867},{"class":3433,"line":4007},[7868],{"type":3148,"tag":3431,"props":7869,"children":7870},{"style":3496},[7871],{"type":3153,"value":7872},"    \u002F\u002F If he registers a new account with credentials\n",{"type":3148,"tag":3431,"props":7874,"children":7875},{"class":3433,"line":4016},[7876,7880,7884,7888,7893,7897],{"type":3148,"tag":3431,"props":7877,"children":7878},{"style":4693},[7879],{"type":3153,"value":6034},{"type":3148,"tag":3431,"props":7881,"children":7882},{"style":3505},[7883],{"type":3153,"value":7538},{"type":3148,"tag":3431,"props":7885,"children":7886},{"style":3510},[7887],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":7889,"children":7890},{"style":3667},[7891],{"type":3153,"value":7892},"object",{"type":3148,"tag":3431,"props":7894,"children":7895},{"style":3576},[7896],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":7898,"children":7899},{"style":3510},[7900],{"type":3153,"value":5357},{"type":3148,"tag":3431,"props":7902,"children":7903},{"class":3433,"line":3041},[7904],{"type":3148,"tag":3431,"props":7905,"children":7906},{"style":3496},[7907],{"type":3153,"value":7908},"      \u002F\u002F we want the userName to be a valid email\n",{"type":3148,"tag":3431,"props":7910,"children":7911},{"class":3433,"line":4084},[7912,7917,7921,7925,7929,7934,7939,7943,7947],{"type":3148,"tag":3431,"props":7913,"children":7914},{"style":3576},[7915],{"type":3153,"value":7916},"      userName",{"type":3148,"tag":3431,"props":7918,"children":7919},{"style":3510},[7920],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":7922,"children":7923},{"style":3505},[7924],{"type":3153,"value":7538},{"type":3148,"tag":3431,"props":7926,"children":7927},{"style":3510},[7928],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":7930,"children":7931},{"style":3667},[7932],{"type":3153,"value":7933},"string",{"type":3148,"tag":3431,"props":7935,"children":7936},{"style":3576},[7937],{"type":3153,"value":7938},"()",{"type":3148,"tag":3431,"props":7940,"children":7941},{"style":3510},[7942],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":7944,"children":7945},{"style":3667},[7946],{"type":3153,"value":7727},{"type":3148,"tag":3431,"props":7948,"children":7949},{"style":3576},[7950],{"type":3153,"value":3675},{"type":3148,"tag":3431,"props":7952,"children":7953},{"class":3433,"line":4354},[7954,7958,7962,7966,7971,7975,7979],{"type":3148,"tag":3431,"props":7955,"children":7956},{"style":3510},[7957],{"type":3153,"value":6022},{"type":3148,"tag":3431,"props":7959,"children":7960},{"style":3576},[7961],{"type":3153,"value":6113},{"type":3148,"tag":3431,"props":7963,"children":7964},{"style":3510},[7965],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":7967,"children":7968},{"style":3667},[7969],{"type":3153,"value":7970},"parse",{"type":3148,"tag":3431,"props":7972,"children":7973},{"style":3576},[7974],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":7976,"children":7977},{"style":3505},[7978],{"type":3153,"value":7614},{"type":3148,"tag":3431,"props":7980,"children":7981},{"style":3576},[7982],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":7984,"children":7985},{"class":3433,"line":4362},[7986],{"type":3148,"tag":3431,"props":7987,"children":7988},{"style":3510},[7989],{"type":3153,"value":4771},{"type":3148,"tag":3431,"props":7991,"children":7992},{"class":3433,"line":4371},[7993,7997,8001,8005,8009,8013,8017,8022,8026,8030,8034],{"type":3148,"tag":3431,"props":7994,"children":7995},{"style":3582},[7996],{"type":3153,"value":5895},{"type":3148,"tag":3431,"props":7998,"children":7999},{"style":3576},[8000],{"type":3153,"value":5900},{"type":3148,"tag":3431,"props":8002,"children":8003},{"style":3510},[8004],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":8006,"children":8007},{"style":4525},[8008],{"type":3153,"value":5909},{"type":3148,"tag":3431,"props":8010,"children":8011},{"style":3510},[8012],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":8014,"children":8015},{"style":3510},[8016],{"type":3153,"value":3603},{"type":3148,"tag":3431,"props":8018,"children":8019},{"style":4525},[8020],{"type":3153,"value":8021}," credential",{"type":3148,"tag":3431,"props":8023,"children":8024},{"style":3510},[8025],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":8027,"children":8028},{"style":4525},[8029],{"type":3153,"value":3618},{"type":3148,"tag":3431,"props":8031,"children":8032},{"style":3510},[8033],{"type":3153,"value":4591},{"type":3148,"tag":3431,"props":8035,"children":8036},{"style":3510},[8037],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":8039,"children":8040},{"class":3433,"line":4379},[8041],{"type":3148,"tag":3431,"props":8042,"children":8043},{"style":3496},[8044],{"type":3153,"value":8045},"    \u002F\u002F The credential creation has been successful\n",{"type":3148,"tag":3431,"props":8047,"children":8048},{"class":3433,"line":4420},[8049],{"type":3148,"tag":3431,"props":8050,"children":8051},{"style":3496},[8052],{"type":3153,"value":8053},"    \u002F\u002F We need to create a user if it does not exist\n",{"type":3148,"tag":3431,"props":8055,"children":8056},{"class":3433,"line":4428},[8057,8061,8066,8070,8075],{"type":3148,"tag":3431,"props":8058,"children":8059},{"style":3582},[8060],{"type":3153,"value":7663},{"type":3148,"tag":3431,"props":8062,"children":8063},{"style":3505},[8064],{"type":3153,"value":8065}," db",{"type":3148,"tag":3431,"props":8067,"children":8068},{"style":3510},[8069],{"type":3153,"value":3664},{"type":3148,"tag":3431,"props":8071,"children":8072},{"style":3667},[8073],{"type":3153,"value":8074}," useDatabase",{"type":3148,"tag":3431,"props":8076,"children":8077},{"style":3576},[8078],{"type":3153,"value":3675},{"type":3148,"tag":3431,"props":8080,"children":8081},{"class":3433,"line":4437},[8082],{"type":3148,"tag":3431,"props":8083,"children":8084},{"emptyLinePlaceholder":1200},[8085],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":8087,"children":8088},{"class":3433,"line":4445},[8089],{"type":3148,"tag":3431,"props":8090,"children":8091},{"style":3496},[8092],{"type":3153,"value":8093},"    \u002F\u002F Get the user from the database\n",{"type":3148,"tag":3431,"props":8095,"children":8096},{"class":3433,"line":4482},[8097,8102,8107,8111,8115,8119,8123,8127,8132,8136],{"type":3148,"tag":3431,"props":8098,"children":8099},{"style":3582},[8100],{"type":3153,"value":8101},"    let",{"type":3148,"tag":3431,"props":8103,"children":8104},{"style":3505},[8105],{"type":3153,"value":8106}," dbUser",{"type":3148,"tag":3431,"props":8108,"children":8109},{"style":3510},[8110],{"type":3153,"value":3664},{"type":3148,"tag":3431,"props":8112,"children":8113},{"style":4693},[8114],{"type":3153,"value":4949},{"type":3148,"tag":3431,"props":8116,"children":8117},{"style":3505},[8118],{"type":3153,"value":8065},{"type":3148,"tag":3431,"props":8120,"children":8121},{"style":3510},[8122],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":8124,"children":8125},{"style":3667},[8126],{"type":3153,"value":7021},{"type":3148,"tag":3431,"props":8128,"children":8129},{"style":3510},[8130],{"type":3153,"value":8131},"`",{"type":3148,"tag":3431,"props":8133,"children":8134},{"style":3443},[8135],{"type":3153,"value":5434},{"type":3148,"tag":3431,"props":8137,"children":8138},{"style":3510},[8139],{"type":3153,"value":8140},"`\n",{"type":3148,"tag":3431,"props":8142,"children":8143},{"class":3433,"line":4490},[8144,8148,8152,8157,8162,8166],{"type":3148,"tag":3431,"props":8145,"children":8146},{"style":4693},[8147],{"type":3153,"value":7699},{"type":3148,"tag":3431,"props":8149,"children":8150},{"style":3576},[8151],{"type":3153,"value":4522},{"type":3148,"tag":3431,"props":8153,"children":8154},{"style":3510},[8155],{"type":3153,"value":8156},"!",{"type":3148,"tag":3431,"props":8158,"children":8159},{"style":3505},[8160],{"type":3153,"value":8161},"dbUser",{"type":3148,"tag":3431,"props":8163,"children":8164},{"style":3576},[8165],{"type":3153,"value":7776},{"type":3148,"tag":3431,"props":8167,"children":8168},{"style":3510},[8169],{"type":3153,"value":5357},{"type":3148,"tag":3431,"props":8171,"children":8172},{"class":3433,"line":4499},[8173],{"type":3148,"tag":3431,"props":8174,"children":8175},{"style":3496},[8176],{"type":3153,"value":8177},"      \u002F\u002F Store new user in database & its credentials\n",{"type":3148,"tag":3431,"props":8179,"children":8180},{"class":3433,"line":4507},[8181,8186,8190,8194,8198,8202,8206,8210,8214],{"type":3148,"tag":3431,"props":8182,"children":8183},{"style":3505},[8184],{"type":3153,"value":8185},"      dbUser",{"type":3148,"tag":3431,"props":8187,"children":8188},{"style":3510},[8189],{"type":3153,"value":3664},{"type":3148,"tag":3431,"props":8191,"children":8192},{"style":4693},[8193],{"type":3153,"value":4949},{"type":3148,"tag":3431,"props":8195,"children":8196},{"style":3505},[8197],{"type":3153,"value":8065},{"type":3148,"tag":3431,"props":8199,"children":8200},{"style":3510},[8201],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":8203,"children":8204},{"style":3667},[8205],{"type":3153,"value":7021},{"type":3148,"tag":3431,"props":8207,"children":8208},{"style":3510},[8209],{"type":3153,"value":8131},{"type":3148,"tag":3431,"props":8211,"children":8212},{"style":3443},[8213],{"type":3153,"value":5434},{"type":3148,"tag":3431,"props":8215,"children":8216},{"style":3510},[8217],{"type":3153,"value":8140},{"type":3148,"tag":3431,"props":8219,"children":8220},{"class":3433,"line":4603},[8221],{"type":3148,"tag":3431,"props":8222,"children":8223},{"style":3510},[8224],{"type":3153,"value":5483},{"type":3148,"tag":3431,"props":8226,"children":8228},{"class":3433,"line":8227},31,[8229],{"type":3148,"tag":3431,"props":8230,"children":8231},{"emptyLinePlaceholder":1200},[8232],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":8234,"children":8236},{"class":3433,"line":8235},32,[8237],{"type":3148,"tag":3431,"props":8238,"children":8239},{"style":3496},[8240],{"type":3153,"value":8241},"    \u002F\u002F we now need to store the credential in our database and link it to the user\n",{"type":3148,"tag":3431,"props":8243,"children":8245},{"class":3433,"line":8244},33,[8246,8250,8254,8258,8262,8266,8270],{"type":3148,"tag":3431,"props":8247,"children":8248},{"style":4693},[8249],{"type":3153,"value":5946},{"type":3148,"tag":3431,"props":8251,"children":8252},{"style":3505},[8253],{"type":3153,"value":8065},{"type":3148,"tag":3431,"props":8255,"children":8256},{"style":3510},[8257],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":8259,"children":8260},{"style":3667},[8261],{"type":3153,"value":7021},{"type":3148,"tag":3431,"props":8263,"children":8264},{"style":3510},[8265],{"type":3153,"value":8131},{"type":3148,"tag":3431,"props":8267,"children":8268},{"style":3443},[8269],{"type":3153,"value":5434},{"type":3148,"tag":3431,"props":8271,"children":8272},{"style":3510},[8273],{"type":3153,"value":8140},{"type":3148,"tag":3431,"props":8275,"children":8277},{"class":3433,"line":8276},34,[8278],{"type":3148,"tag":3431,"props":8279,"children":8280},{"emptyLinePlaceholder":1200},[8281],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":8283,"children":8285},{"class":3433,"line":8284},35,[8286],{"type":3148,"tag":3431,"props":8287,"children":8288},{"style":3496},[8289],{"type":3153,"value":8290},"    \u002F\u002F Set the user session\n",{"type":3148,"tag":3431,"props":8292,"children":8294},{"class":3433,"line":8293},36,[8295,8299,8303,8307,8311,8315],{"type":3148,"tag":3431,"props":8296,"children":8297},{"style":4693},[8298],{"type":3153,"value":5946},{"type":3148,"tag":3431,"props":8300,"children":8301},{"style":3667},[8302],{"type":3153,"value":4701},{"type":3148,"tag":3431,"props":8304,"children":8305},{"style":3576},[8306],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":8308,"children":8309},{"style":3505},[8310],{"type":3153,"value":5909},{"type":3148,"tag":3431,"props":8312,"children":8313},{"style":3510},[8314],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":8316,"children":8317},{"style":3510},[8318],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":8320,"children":8322},{"class":3433,"line":8321},37,[8323,8327,8331],{"type":3148,"tag":3431,"props":8324,"children":8325},{"style":3576},[8326],{"type":3153,"value":5974},{"type":3148,"tag":3431,"props":8328,"children":8329},{"style":3510},[8330],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":8332,"children":8333},{"style":3510},[8334],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":8336,"children":8338},{"class":3433,"line":8337},38,[8339,8344,8348,8352,8356],{"type":3148,"tag":3431,"props":8340,"children":8341},{"style":3576},[8342],{"type":3153,"value":8343},"        id",{"type":3148,"tag":3431,"props":8345,"children":8346},{"style":3510},[8347],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":8349,"children":8350},{"style":3505},[8351],{"type":3153,"value":8106},{"type":3148,"tag":3431,"props":8353,"children":8354},{"style":3510},[8355],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":8357,"children":8358},{"style":3505},[8359],{"type":3153,"value":6007},{"type":3148,"tag":3431,"props":8361,"children":8363},{"class":3433,"line":8362},39,[8364],{"type":3148,"tag":3431,"props":8365,"children":8366},{"style":3510},[8367],{"type":3153,"value":8368},"      },\n",{"type":3148,"tag":3431,"props":8370,"children":8372},{"class":3433,"line":8371},40,[8373,8378,8382,8386,8390,8395,8399],{"type":3148,"tag":3431,"props":8374,"children":8375},{"style":3576},[8376],{"type":3153,"value":8377},"      loggedInAt",{"type":3148,"tag":3431,"props":8379,"children":8380},{"style":3510},[8381],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":8383,"children":8384},{"style":3505},[8385],{"type":3153,"value":4857},{"type":3148,"tag":3431,"props":8387,"children":8388},{"style":3510},[8389],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":8391,"children":8392},{"style":3667},[8393],{"type":3153,"value":8394},"now",{"type":3148,"tag":3431,"props":8396,"children":8397},{"style":3576},[8398],{"type":3153,"value":7938},{"type":3148,"tag":3431,"props":8400,"children":8401},{"style":3510},[8402],{"type":3153,"value":5443},{"type":3148,"tag":3431,"props":8404,"children":8406},{"class":3433,"line":8405},41,[8407,8411],{"type":3148,"tag":3431,"props":8408,"children":8409},{"style":3510},[8410],{"type":3153,"value":6022},{"type":3148,"tag":3431,"props":8412,"children":8413},{"style":3576},[8414],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":8416,"children":8418},{"class":3433,"line":8417},42,[8419],{"type":3148,"tag":3431,"props":8420,"children":8421},{"style":3510},[8422],{"type":3153,"value":4771},{"type":3148,"tag":3431,"props":8424,"children":8426},{"class":3433,"line":8425},43,[8427,8431],{"type":3148,"tag":3431,"props":8428,"children":8429},{"style":3510},[8430],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":8432,"children":8433},{"style":3505},[8434],{"type":3153,"value":4873},{"type":3148,"tag":4611,"props":8436,"children":8437},{},[8438],{"type":3148,"tag":3155,"props":8439,"children":8440},{},[8441,8446,8448,8455,8457,8463,8465],{"type":3148,"tag":3431,"props":8442,"children":8443},{},[8444],{"type":3153,"value":8445},"!TIP",{"type":3153,"value":8447},"\nIf you want to plug in and use the ",{"type":3148,"tag":3159,"props":8449,"children":8452},{"href":8450,"rel":8451},"https:\u002F\u002Fgithub.com\u002Fpasskeydeveloper\u002Fpasskey-authenticator-aaguids",[3163],[8453],{"type":3153,"value":8454},"Community sourced list of AAGUIDS",{"type":3153,"value":8456}," to decorate your display of added passkeys, you can access the the ID via ",{"type":3148,"tag":3293,"props":8458,"children":8460},{"className":8459},[],[8461],{"type":3153,"value":8462},"credential.aaguid",{"type":3153,"value":8464}," inside ",{"type":3148,"tag":3293,"props":8466,"children":8468},{"className":8467},[],[8469],{"type":3153,"value":5286},{"type":3148,"tag":3421,"props":8471,"children":8473},{"className":4109,"code":8472,"language":4111,"meta":3021,"style":3021},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts\nexport default defineWebAuthnAuthenticateEventHandler({\n  \u002F\u002F Optionally, we can prefetch the credentials if the user gives their userName during login\n  async allowCredentials(event, userName) {\n    const credentials = await useDatabase().sql`...`\n    \u002F\u002F If no credentials are found, the authentication cannot be completed\n    if (!credentials.length)\n      throw createError({ statusCode: 400, message: 'User not found' })\n\n    \u002F\u002F If user is found, only allow credentials that are registered\n    \u002F\u002F The browser will automatically try to use the credential that it knows about\n    \u002F\u002F Skipping the step for the user to select a credential for a better user experience\n    return credentials\n    \u002F\u002F example: [{ id: '...' }]\n  },\n  async getCredential(event, credentialId) {\n    \u002F\u002F Look for the credential in our database\n    const credential = await useDatabase().sql`...`\n\n    \u002F\u002F If the credential is not found, there is no account to log in to\n    if (!credential)\n      throw createError({ statusCode: 400, message: 'Credential not found' })\n\n    return credential\n  },\n  async onSuccess(event, { credential, authenticationInfo }) {\n    \u002F\u002F The credential authentication has been successful\n    \u002F\u002F We can look it up in our database and get the corresponding user\n    const db = useDatabase()\n    const user = await db.sql`...`\n\n    \u002F\u002F Update the counter in the database (authenticationInfo.newCounter)\n    await db.sql`...`\n\n    \u002F\u002F Set the user session\n    await setUserSession(event, {\n      user: {\n        id: user.id\n      },\n      loggedInAt: Date.now(),\n    })\n  },\n})\n",[8474],{"type":3148,"tag":3293,"props":8475,"children":8476},{"__ignoreMap":3021},[8477,8485,8509,8517,8554,8602,8610,8642,8706,8713,8721,8729,8737,8749,8757,8764,8801,8809,8856,8863,8871,8895,8959,8966,8978,8985,9033,9041,9049,9072,9115,9122,9130,9161,9168,9175,9202,9217,9240,9247,9278,9289,9296],{"type":3148,"tag":3431,"props":8478,"children":8479},{"class":3433,"line":3107},[8480],{"type":3148,"tag":3431,"props":8481,"children":8482},{"style":3496},[8483],{"type":3153,"value":8484},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts\n",{"type":3148,"tag":3431,"props":8486,"children":8487},{"class":3433,"line":3073},[8488,8492,8496,8501,8505],{"type":3148,"tag":3431,"props":8489,"children":8490},{"style":4693},[8491],{"type":3153,"value":5227},{"type":3148,"tag":3431,"props":8493,"children":8494},{"style":4693},[8495],{"type":3153,"value":5342},{"type":3148,"tag":3431,"props":8497,"children":8498},{"style":3667},[8499],{"type":3153,"value":8500}," defineWebAuthnAuthenticateEventHandler",{"type":3148,"tag":3431,"props":8502,"children":8503},{"style":3505},[8504],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":8506,"children":8507},{"style":3510},[8508],{"type":3153,"value":5357},{"type":3148,"tag":3431,"props":8510,"children":8511},{"class":3433,"line":3057},[8512],{"type":3148,"tag":3431,"props":8513,"children":8514},{"style":3496},[8515],{"type":3153,"value":8516},"  \u002F\u002F Optionally, we can prefetch the credentials if the user gives their userName during login\n",{"type":3148,"tag":3431,"props":8518,"children":8519},{"class":3433,"line":3694},[8520,8524,8529,8533,8537,8541,8546,8550],{"type":3148,"tag":3431,"props":8521,"children":8522},{"style":3582},[8523],{"type":3153,"value":5895},{"type":3148,"tag":3431,"props":8525,"children":8526},{"style":3576},[8527],{"type":3153,"value":8528}," allowCredentials",{"type":3148,"tag":3431,"props":8530,"children":8531},{"style":3510},[8532],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":8534,"children":8535},{"style":4525},[8536],{"type":3153,"value":5909},{"type":3148,"tag":3431,"props":8538,"children":8539},{"style":3510},[8540],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":8542,"children":8543},{"style":4525},[8544],{"type":3153,"value":8545}," userName",{"type":3148,"tag":3431,"props":8547,"children":8548},{"style":3510},[8549],{"type":3153,"value":6113},{"type":3148,"tag":3431,"props":8551,"children":8552},{"style":3510},[8553],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":8555,"children":8556},{"class":3433,"line":3703},[8557,8561,8566,8570,8574,8578,8582,8586,8590,8594,8598],{"type":3148,"tag":3431,"props":8558,"children":8559},{"style":3582},[8560],{"type":3153,"value":7663},{"type":3148,"tag":3431,"props":8562,"children":8563},{"style":3505},[8564],{"type":3153,"value":8565}," credentials",{"type":3148,"tag":3431,"props":8567,"children":8568},{"style":3510},[8569],{"type":3153,"value":3664},{"type":3148,"tag":3431,"props":8571,"children":8572},{"style":4693},[8573],{"type":3153,"value":4949},{"type":3148,"tag":3431,"props":8575,"children":8576},{"style":3667},[8577],{"type":3153,"value":8074},{"type":3148,"tag":3431,"props":8579,"children":8580},{"style":3576},[8581],{"type":3153,"value":7938},{"type":3148,"tag":3431,"props":8583,"children":8584},{"style":3510},[8585],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":8587,"children":8588},{"style":3667},[8589],{"type":3153,"value":7021},{"type":3148,"tag":3431,"props":8591,"children":8592},{"style":3510},[8593],{"type":3153,"value":8131},{"type":3148,"tag":3431,"props":8595,"children":8596},{"style":3443},[8597],{"type":3153,"value":5434},{"type":3148,"tag":3431,"props":8599,"children":8600},{"style":3510},[8601],{"type":3153,"value":8140},{"type":3148,"tag":3431,"props":8603,"children":8604},{"class":3433,"line":3720},[8605],{"type":3148,"tag":3431,"props":8606,"children":8607},{"style":3496},[8608],{"type":3153,"value":8609},"    \u002F\u002F If no credentials are found, the authentication cannot be completed\n",{"type":3148,"tag":3431,"props":8611,"children":8612},{"class":3433,"line":3053},[8613,8617,8621,8625,8629,8633,8638],{"type":3148,"tag":3431,"props":8614,"children":8615},{"style":4693},[8616],{"type":3153,"value":7699},{"type":3148,"tag":3431,"props":8618,"children":8619},{"style":3576},[8620],{"type":3153,"value":4522},{"type":3148,"tag":3431,"props":8622,"children":8623},{"style":3510},[8624],{"type":3153,"value":8156},{"type":3148,"tag":3431,"props":8626,"children":8627},{"style":3505},[8628],{"type":3153,"value":7362},{"type":3148,"tag":3431,"props":8630,"children":8631},{"style":3510},[8632],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":8634,"children":8635},{"style":3505},[8636],{"type":3153,"value":8637},"length",{"type":3148,"tag":3431,"props":8639,"children":8640},{"style":3576},[8641],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":8643,"children":8644},{"class":3433,"line":3049},[8645,8649,8653,8657,8661,8665,8669,8673,8677,8681,8685,8689,8694,8698,8702],{"type":3148,"tag":3431,"props":8646,"children":8647},{"style":4693},[8648],{"type":3153,"value":7788},{"type":3148,"tag":3431,"props":8650,"children":8651},{"style":3667},[8652],{"type":3153,"value":7793},{"type":3148,"tag":3431,"props":8654,"children":8655},{"style":3576},[8656],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":8658,"children":8659},{"style":3510},[8660],{"type":3153,"value":7802},{"type":3148,"tag":3431,"props":8662,"children":8663},{"style":3576},[8664],{"type":3153,"value":7807},{"type":3148,"tag":3431,"props":8666,"children":8667},{"style":3510},[8668],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":8670,"children":8671},{"style":7031},[8672],{"type":3153,"value":7816},{"type":3148,"tag":3431,"props":8674,"children":8675},{"style":3510},[8676],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":8678,"children":8679},{"style":3576},[8680],{"type":3153,"value":7825},{"type":3148,"tag":3431,"props":8682,"children":8683},{"style":3510},[8684],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":8686,"children":8687},{"style":3510},[8688],{"type":3153,"value":4754},{"type":3148,"tag":3431,"props":8690,"children":8691},{"style":3443},[8692],{"type":3153,"value":8693},"User not found",{"type":3148,"tag":3431,"props":8695,"children":8696},{"style":3510},[8697],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":8699,"children":8700},{"style":3510},[8701],{"type":3153,"value":7543},{"type":3148,"tag":3431,"props":8703,"children":8704},{"style":3576},[8705],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":8707,"children":8708},{"class":3433,"line":3045},[8709],{"type":3148,"tag":3431,"props":8710,"children":8711},{"emptyLinePlaceholder":1200},[8712],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":8714,"children":8715},{"class":3433,"line":3882},[8716],{"type":3148,"tag":3431,"props":8717,"children":8718},{"style":3496},[8719],{"type":3153,"value":8720},"    \u002F\u002F If user is found, only allow credentials that are registered\n",{"type":3148,"tag":3431,"props":8722,"children":8723},{"class":3433,"line":3136},[8724],{"type":3148,"tag":3431,"props":8725,"children":8726},{"style":3496},[8727],{"type":3153,"value":8728},"    \u002F\u002F The browser will automatically try to use the credential that it knows about\n",{"type":3148,"tag":3431,"props":8730,"children":8731},{"class":3433,"line":3919},[8732],{"type":3148,"tag":3431,"props":8733,"children":8734},{"style":3496},[8735],{"type":3153,"value":8736},"    \u002F\u002F Skipping the step for the user to select a credential for a better user experience\n",{"type":3148,"tag":3431,"props":8738,"children":8739},{"class":3433,"line":3952},[8740,8744],{"type":3148,"tag":3431,"props":8741,"children":8742},{"style":4693},[8743],{"type":3153,"value":6034},{"type":3148,"tag":3431,"props":8745,"children":8746},{"style":3505},[8747],{"type":3153,"value":8748}," credentials\n",{"type":3148,"tag":3431,"props":8750,"children":8751},{"class":3433,"line":4007},[8752],{"type":3148,"tag":3431,"props":8753,"children":8754},{"style":3496},[8755],{"type":3153,"value":8756},"    \u002F\u002F example: [{ id: '...' }]\n",{"type":3148,"tag":3431,"props":8758,"children":8759},{"class":3433,"line":4016},[8760],{"type":3148,"tag":3431,"props":8761,"children":8762},{"style":3510},[8763],{"type":3153,"value":4771},{"type":3148,"tag":3431,"props":8765,"children":8766},{"class":3433,"line":3041},[8767,8771,8776,8780,8784,8788,8793,8797],{"type":3148,"tag":3431,"props":8768,"children":8769},{"style":3582},[8770],{"type":3153,"value":5895},{"type":3148,"tag":3431,"props":8772,"children":8773},{"style":3576},[8774],{"type":3153,"value":8775}," getCredential",{"type":3148,"tag":3431,"props":8777,"children":8778},{"style":3510},[8779],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":8781,"children":8782},{"style":4525},[8783],{"type":3153,"value":5909},{"type":3148,"tag":3431,"props":8785,"children":8786},{"style":3510},[8787],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":8789,"children":8790},{"style":4525},[8791],{"type":3153,"value":8792}," credentialId",{"type":3148,"tag":3431,"props":8794,"children":8795},{"style":3510},[8796],{"type":3153,"value":6113},{"type":3148,"tag":3431,"props":8798,"children":8799},{"style":3510},[8800],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":8802,"children":8803},{"class":3433,"line":4084},[8804],{"type":3148,"tag":3431,"props":8805,"children":8806},{"style":3496},[8807],{"type":3153,"value":8808},"    \u002F\u002F Look for the credential in our database\n",{"type":3148,"tag":3431,"props":8810,"children":8811},{"class":3433,"line":4354},[8812,8816,8820,8824,8828,8832,8836,8840,8844,8848,8852],{"type":3148,"tag":3431,"props":8813,"children":8814},{"style":3582},[8815],{"type":3153,"value":7663},{"type":3148,"tag":3431,"props":8817,"children":8818},{"style":3505},[8819],{"type":3153,"value":8021},{"type":3148,"tag":3431,"props":8821,"children":8822},{"style":3510},[8823],{"type":3153,"value":3664},{"type":3148,"tag":3431,"props":8825,"children":8826},{"style":4693},[8827],{"type":3153,"value":4949},{"type":3148,"tag":3431,"props":8829,"children":8830},{"style":3667},[8831],{"type":3153,"value":8074},{"type":3148,"tag":3431,"props":8833,"children":8834},{"style":3576},[8835],{"type":3153,"value":7938},{"type":3148,"tag":3431,"props":8837,"children":8838},{"style":3510},[8839],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":8841,"children":8842},{"style":3667},[8843],{"type":3153,"value":7021},{"type":3148,"tag":3431,"props":8845,"children":8846},{"style":3510},[8847],{"type":3153,"value":8131},{"type":3148,"tag":3431,"props":8849,"children":8850},{"style":3443},[8851],{"type":3153,"value":5434},{"type":3148,"tag":3431,"props":8853,"children":8854},{"style":3510},[8855],{"type":3153,"value":8140},{"type":3148,"tag":3431,"props":8857,"children":8858},{"class":3433,"line":4362},[8859],{"type":3148,"tag":3431,"props":8860,"children":8861},{"emptyLinePlaceholder":1200},[8862],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":8864,"children":8865},{"class":3433,"line":4371},[8866],{"type":3148,"tag":3431,"props":8867,"children":8868},{"style":3496},[8869],{"type":3153,"value":8870},"    \u002F\u002F If the credential is not found, there is no account to log in to\n",{"type":3148,"tag":3431,"props":8872,"children":8873},{"class":3433,"line":4379},[8874,8878,8882,8886,8891],{"type":3148,"tag":3431,"props":8875,"children":8876},{"style":4693},[8877],{"type":3153,"value":7699},{"type":3148,"tag":3431,"props":8879,"children":8880},{"style":3576},[8881],{"type":3153,"value":4522},{"type":3148,"tag":3431,"props":8883,"children":8884},{"style":3510},[8885],{"type":3153,"value":8156},{"type":3148,"tag":3431,"props":8887,"children":8888},{"style":3505},[8889],{"type":3153,"value":8890},"credential",{"type":3148,"tag":3431,"props":8892,"children":8893},{"style":3576},[8894],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":8896,"children":8897},{"class":3433,"line":4420},[8898,8902,8906,8910,8914,8918,8922,8926,8930,8934,8938,8942,8947,8951,8955],{"type":3148,"tag":3431,"props":8899,"children":8900},{"style":4693},[8901],{"type":3153,"value":7788},{"type":3148,"tag":3431,"props":8903,"children":8904},{"style":3667},[8905],{"type":3153,"value":7793},{"type":3148,"tag":3431,"props":8907,"children":8908},{"style":3576},[8909],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":8911,"children":8912},{"style":3510},[8913],{"type":3153,"value":7802},{"type":3148,"tag":3431,"props":8915,"children":8916},{"style":3576},[8917],{"type":3153,"value":7807},{"type":3148,"tag":3431,"props":8919,"children":8920},{"style":3510},[8921],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":8923,"children":8924},{"style":7031},[8925],{"type":3153,"value":7816},{"type":3148,"tag":3431,"props":8927,"children":8928},{"style":3510},[8929],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":8931,"children":8932},{"style":3576},[8933],{"type":3153,"value":7825},{"type":3148,"tag":3431,"props":8935,"children":8936},{"style":3510},[8937],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":8939,"children":8940},{"style":3510},[8941],{"type":3153,"value":4754},{"type":3148,"tag":3431,"props":8943,"children":8944},{"style":3443},[8945],{"type":3153,"value":8946},"Credential not found",{"type":3148,"tag":3431,"props":8948,"children":8949},{"style":3510},[8950],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":8952,"children":8953},{"style":3510},[8954],{"type":3153,"value":7543},{"type":3148,"tag":3431,"props":8956,"children":8957},{"style":3576},[8958],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":8960,"children":8961},{"class":3433,"line":4428},[8962],{"type":3148,"tag":3431,"props":8963,"children":8964},{"emptyLinePlaceholder":1200},[8965],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":8967,"children":8968},{"class":3433,"line":4437},[8969,8973],{"type":3148,"tag":3431,"props":8970,"children":8971},{"style":4693},[8972],{"type":3153,"value":6034},{"type":3148,"tag":3431,"props":8974,"children":8975},{"style":3505},[8976],{"type":3153,"value":8977}," credential\n",{"type":3148,"tag":3431,"props":8979,"children":8980},{"class":3433,"line":4445},[8981],{"type":3148,"tag":3431,"props":8982,"children":8983},{"style":3510},[8984],{"type":3153,"value":4771},{"type":3148,"tag":3431,"props":8986,"children":8987},{"class":3433,"line":4482},[8988,8992,8996,9000,9004,9008,9012,9016,9020,9025,9029],{"type":3148,"tag":3431,"props":8989,"children":8990},{"style":3582},[8991],{"type":3153,"value":5895},{"type":3148,"tag":3431,"props":8993,"children":8994},{"style":3576},[8995],{"type":3153,"value":5900},{"type":3148,"tag":3431,"props":8997,"children":8998},{"style":3510},[8999],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":9001,"children":9002},{"style":4525},[9003],{"type":3153,"value":5909},{"type":3148,"tag":3431,"props":9005,"children":9006},{"style":3510},[9007],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":9009,"children":9010},{"style":3510},[9011],{"type":3153,"value":3603},{"type":3148,"tag":3431,"props":9013,"children":9014},{"style":4525},[9015],{"type":3153,"value":8021},{"type":3148,"tag":3431,"props":9017,"children":9018},{"style":3510},[9019],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":9021,"children":9022},{"style":4525},[9023],{"type":3153,"value":9024}," authenticationInfo",{"type":3148,"tag":3431,"props":9026,"children":9027},{"style":3510},[9028],{"type":3153,"value":4591},{"type":3148,"tag":3431,"props":9030,"children":9031},{"style":3510},[9032],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":9034,"children":9035},{"class":3433,"line":4490},[9036],{"type":3148,"tag":3431,"props":9037,"children":9038},{"style":3496},[9039],{"type":3153,"value":9040},"    \u002F\u002F The credential authentication has been successful\n",{"type":3148,"tag":3431,"props":9042,"children":9043},{"class":3433,"line":4499},[9044],{"type":3148,"tag":3431,"props":9045,"children":9046},{"style":3496},[9047],{"type":3153,"value":9048},"    \u002F\u002F We can look it up in our database and get the corresponding user\n",{"type":3148,"tag":3431,"props":9050,"children":9051},{"class":3433,"line":4507},[9052,9056,9060,9064,9068],{"type":3148,"tag":3431,"props":9053,"children":9054},{"style":3582},[9055],{"type":3153,"value":7663},{"type":3148,"tag":3431,"props":9057,"children":9058},{"style":3505},[9059],{"type":3153,"value":8065},{"type":3148,"tag":3431,"props":9061,"children":9062},{"style":3510},[9063],{"type":3153,"value":3664},{"type":3148,"tag":3431,"props":9065,"children":9066},{"style":3667},[9067],{"type":3153,"value":8074},{"type":3148,"tag":3431,"props":9069,"children":9070},{"style":3576},[9071],{"type":3153,"value":3675},{"type":3148,"tag":3431,"props":9073,"children":9074},{"class":3433,"line":4603},[9075,9079,9083,9087,9091,9095,9099,9103,9107,9111],{"type":3148,"tag":3431,"props":9076,"children":9077},{"style":3582},[9078],{"type":3153,"value":7663},{"type":3148,"tag":3431,"props":9080,"children":9081},{"style":3505},[9082],{"type":3153,"value":3618},{"type":3148,"tag":3431,"props":9084,"children":9085},{"style":3510},[9086],{"type":3153,"value":3664},{"type":3148,"tag":3431,"props":9088,"children":9089},{"style":4693},[9090],{"type":3153,"value":4949},{"type":3148,"tag":3431,"props":9092,"children":9093},{"style":3505},[9094],{"type":3153,"value":8065},{"type":3148,"tag":3431,"props":9096,"children":9097},{"style":3510},[9098],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":9100,"children":9101},{"style":3667},[9102],{"type":3153,"value":7021},{"type":3148,"tag":3431,"props":9104,"children":9105},{"style":3510},[9106],{"type":3153,"value":8131},{"type":3148,"tag":3431,"props":9108,"children":9109},{"style":3443},[9110],{"type":3153,"value":5434},{"type":3148,"tag":3431,"props":9112,"children":9113},{"style":3510},[9114],{"type":3153,"value":8140},{"type":3148,"tag":3431,"props":9116,"children":9117},{"class":3433,"line":8227},[9118],{"type":3148,"tag":3431,"props":9119,"children":9120},{"emptyLinePlaceholder":1200},[9121],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":9123,"children":9124},{"class":3433,"line":8235},[9125],{"type":3148,"tag":3431,"props":9126,"children":9127},{"style":3496},[9128],{"type":3153,"value":9129},"    \u002F\u002F Update the counter in the database (authenticationInfo.newCounter)\n",{"type":3148,"tag":3431,"props":9131,"children":9132},{"class":3433,"line":8244},[9133,9137,9141,9145,9149,9153,9157],{"type":3148,"tag":3431,"props":9134,"children":9135},{"style":4693},[9136],{"type":3153,"value":5946},{"type":3148,"tag":3431,"props":9138,"children":9139},{"style":3505},[9140],{"type":3153,"value":8065},{"type":3148,"tag":3431,"props":9142,"children":9143},{"style":3510},[9144],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":9146,"children":9147},{"style":3667},[9148],{"type":3153,"value":7021},{"type":3148,"tag":3431,"props":9150,"children":9151},{"style":3510},[9152],{"type":3153,"value":8131},{"type":3148,"tag":3431,"props":9154,"children":9155},{"style":3443},[9156],{"type":3153,"value":5434},{"type":3148,"tag":3431,"props":9158,"children":9159},{"style":3510},[9160],{"type":3153,"value":8140},{"type":3148,"tag":3431,"props":9162,"children":9163},{"class":3433,"line":8276},[9164],{"type":3148,"tag":3431,"props":9165,"children":9166},{"emptyLinePlaceholder":1200},[9167],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":9169,"children":9170},{"class":3433,"line":8284},[9171],{"type":3148,"tag":3431,"props":9172,"children":9173},{"style":3496},[9174],{"type":3153,"value":8290},{"type":3148,"tag":3431,"props":9176,"children":9177},{"class":3433,"line":8293},[9178,9182,9186,9190,9194,9198],{"type":3148,"tag":3431,"props":9179,"children":9180},{"style":4693},[9181],{"type":3153,"value":5946},{"type":3148,"tag":3431,"props":9183,"children":9184},{"style":3667},[9185],{"type":3153,"value":4701},{"type":3148,"tag":3431,"props":9187,"children":9188},{"style":3576},[9189],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":9191,"children":9192},{"style":3505},[9193],{"type":3153,"value":5909},{"type":3148,"tag":3431,"props":9195,"children":9196},{"style":3510},[9197],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":9199,"children":9200},{"style":3510},[9201],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":9203,"children":9204},{"class":3433,"line":8321},[9205,9209,9213],{"type":3148,"tag":3431,"props":9206,"children":9207},{"style":3576},[9208],{"type":3153,"value":5974},{"type":3148,"tag":3431,"props":9210,"children":9211},{"style":3510},[9212],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":9214,"children":9215},{"style":3510},[9216],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":9218,"children":9219},{"class":3433,"line":8337},[9220,9224,9228,9232,9236],{"type":3148,"tag":3431,"props":9221,"children":9222},{"style":3576},[9223],{"type":3153,"value":8343},{"type":3148,"tag":3431,"props":9225,"children":9226},{"style":3510},[9227],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":9229,"children":9230},{"style":3505},[9231],{"type":3153,"value":3618},{"type":3148,"tag":3431,"props":9233,"children":9234},{"style":3510},[9235],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":9237,"children":9238},{"style":3505},[9239],{"type":3153,"value":6007},{"type":3148,"tag":3431,"props":9241,"children":9242},{"class":3433,"line":8362},[9243],{"type":3148,"tag":3431,"props":9244,"children":9245},{"style":3510},[9246],{"type":3153,"value":8368},{"type":3148,"tag":3431,"props":9248,"children":9249},{"class":3433,"line":8371},[9250,9254,9258,9262,9266,9270,9274],{"type":3148,"tag":3431,"props":9251,"children":9252},{"style":3576},[9253],{"type":3153,"value":8377},{"type":3148,"tag":3431,"props":9255,"children":9256},{"style":3510},[9257],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":9259,"children":9260},{"style":3505},[9261],{"type":3153,"value":4857},{"type":3148,"tag":3431,"props":9263,"children":9264},{"style":3510},[9265],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":9267,"children":9268},{"style":3667},[9269],{"type":3153,"value":8394},{"type":3148,"tag":3431,"props":9271,"children":9272},{"style":3576},[9273],{"type":3153,"value":7938},{"type":3148,"tag":3431,"props":9275,"children":9276},{"style":3510},[9277],{"type":3153,"value":5443},{"type":3148,"tag":3431,"props":9279,"children":9280},{"class":3433,"line":8405},[9281,9285],{"type":3148,"tag":3431,"props":9282,"children":9283},{"style":3510},[9284],{"type":3153,"value":6022},{"type":3148,"tag":3431,"props":9286,"children":9287},{"style":3576},[9288],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":9290,"children":9291},{"class":3433,"line":8417},[9292],{"type":3148,"tag":3431,"props":9293,"children":9294},{"style":3510},[9295],{"type":3153,"value":4771},{"type":3148,"tag":3431,"props":9297,"children":9298},{"class":3433,"line":8425},[9299,9303],{"type":3148,"tag":3431,"props":9300,"children":9301},{"style":3510},[9302],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":9304,"children":9305},{"style":3505},[9306],{"type":3153,"value":4873},{"type":3148,"tag":4611,"props":9308,"children":9309},{},[9310],{"type":3148,"tag":3155,"props":9311,"children":9312},{},[9313,9317,9319,9324,9326,9332,9333,9339],{"type":3148,"tag":3431,"props":9314,"children":9315},{},[9316],{"type":3153,"value":4621},{"type":3153,"value":9318},"\nWebauthn uses challenges to prevent replay attacks. By default, this module does not make use if this feature. If you want to use challenges (",{"type":3148,"tag":4102,"props":9320,"children":9321},{},[9322],{"type":3153,"value":9323},"which is highly recommended",{"type":3153,"value":9325},"), the ",{"type":3148,"tag":3293,"props":9327,"children":9329},{"className":9328},[],[9330],{"type":3153,"value":9331},"storeChallenge",{"type":3153,"value":6263},{"type":3148,"tag":3293,"props":9334,"children":9336},{"className":9335},[],[9337],{"type":3153,"value":9338},"getChallenge",{"type":3153,"value":9340}," functions are provided. An attempt ID is created and sent with each authentication request. You can use this ID to store the challenge in a database or KV store as shown in the example below.",{"type":3148,"tag":4611,"props":9342,"children":9343},{},[9344],{"type":3148,"tag":3421,"props":9345,"children":9347},{"className":4109,"code":9346,"language":4111,"meta":3021,"style":3021},"export default defineWebAuthnAuthenticateEventHandler({\n  async storeChallenge(event, challenge, attemptId) {\n    \u002F\u002F Store the challenge in a KV store or DB\n    await useStorage().setItem(`attempt:${attemptId}`, challenge)\n  },\n  async getChallenge(event, attemptId) {\n    const challenge = await useStorage().getItem(`attempt:${attemptId}`)\n\n    \u002F\u002F Make sure to always remove the attempt because they are single use only!\n    await useStorage().removeItem(`attempt:${attemptId}`)\n\n    if (!challenge)\n      throw createError({ statusCode: 400, message: 'Challenge expired' })\n\n    return challenge\n  },\n  async onSuccess(event, { authenticator }) {\n    \u002F\u002F ...\n  },\n})\n",[9348],{"type":3148,"tag":3293,"props":9349,"children":9350},{"__ignoreMap":3021},[9351,9374,9420,9428,9493,9500,9536,9600,9607,9615,9667,9674,9698,9762,9769,9781,9788,9828,9836,9843],{"type":3148,"tag":3431,"props":9352,"children":9353},{"class":3433,"line":3107},[9354,9358,9362,9366,9370],{"type":3148,"tag":3431,"props":9355,"children":9356},{"style":4693},[9357],{"type":3153,"value":5227},{"type":3148,"tag":3431,"props":9359,"children":9360},{"style":4693},[9361],{"type":3153,"value":5342},{"type":3148,"tag":3431,"props":9363,"children":9364},{"style":3667},[9365],{"type":3153,"value":8500},{"type":3148,"tag":3431,"props":9367,"children":9368},{"style":3505},[9369],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":9371,"children":9372},{"style":3510},[9373],{"type":3153,"value":5357},{"type":3148,"tag":3431,"props":9375,"children":9376},{"class":3433,"line":3073},[9377,9381,9386,9390,9394,9398,9403,9407,9412,9416],{"type":3148,"tag":3431,"props":9378,"children":9379},{"style":3582},[9380],{"type":3153,"value":5895},{"type":3148,"tag":3431,"props":9382,"children":9383},{"style":3576},[9384],{"type":3153,"value":9385}," storeChallenge",{"type":3148,"tag":3431,"props":9387,"children":9388},{"style":3510},[9389],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":9391,"children":9392},{"style":4525},[9393],{"type":3153,"value":5909},{"type":3148,"tag":3431,"props":9395,"children":9396},{"style":3510},[9397],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":9399,"children":9400},{"style":4525},[9401],{"type":3153,"value":9402}," challenge",{"type":3148,"tag":3431,"props":9404,"children":9405},{"style":3510},[9406],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":9408,"children":9409},{"style":4525},[9410],{"type":3153,"value":9411}," attemptId",{"type":3148,"tag":3431,"props":9413,"children":9414},{"style":3510},[9415],{"type":3153,"value":6113},{"type":3148,"tag":3431,"props":9417,"children":9418},{"style":3510},[9419],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":9421,"children":9422},{"class":3433,"line":3057},[9423],{"type":3148,"tag":3431,"props":9424,"children":9425},{"style":3496},[9426],{"type":3153,"value":9427},"    \u002F\u002F Store the challenge in a KV store or DB\n",{"type":3148,"tag":3431,"props":9429,"children":9430},{"class":3433,"line":3694},[9431,9435,9440,9444,9448,9453,9457,9461,9466,9471,9476,9481,9485,9489],{"type":3148,"tag":3431,"props":9432,"children":9433},{"style":4693},[9434],{"type":3153,"value":5946},{"type":3148,"tag":3431,"props":9436,"children":9437},{"style":3667},[9438],{"type":3153,"value":9439}," useStorage",{"type":3148,"tag":3431,"props":9441,"children":9442},{"style":3576},[9443],{"type":3153,"value":7938},{"type":3148,"tag":3431,"props":9445,"children":9446},{"style":3510},[9447],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":9449,"children":9450},{"style":3667},[9451],{"type":3153,"value":9452},"setItem",{"type":3148,"tag":3431,"props":9454,"children":9455},{"style":3576},[9456],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":9458,"children":9459},{"style":3510},[9460],{"type":3153,"value":8131},{"type":3148,"tag":3431,"props":9462,"children":9463},{"style":3443},[9464],{"type":3153,"value":9465},"attempt:",{"type":3148,"tag":3431,"props":9467,"children":9468},{"style":3510},[9469],{"type":3153,"value":9470},"${",{"type":3148,"tag":3431,"props":9472,"children":9473},{"style":3505},[9474],{"type":3153,"value":9475},"attemptId",{"type":3148,"tag":3431,"props":9477,"children":9478},{"style":3510},[9479],{"type":3153,"value":9480},"}`",{"type":3148,"tag":3431,"props":9482,"children":9483},{"style":3510},[9484],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":9486,"children":9487},{"style":3505},[9488],{"type":3153,"value":9402},{"type":3148,"tag":3431,"props":9490,"children":9491},{"style":3576},[9492],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":9494,"children":9495},{"class":3433,"line":3703},[9496],{"type":3148,"tag":3431,"props":9497,"children":9498},{"style":3510},[9499],{"type":3153,"value":4771},{"type":3148,"tag":3431,"props":9501,"children":9502},{"class":3433,"line":3720},[9503,9507,9512,9516,9520,9524,9528,9532],{"type":3148,"tag":3431,"props":9504,"children":9505},{"style":3582},[9506],{"type":3153,"value":5895},{"type":3148,"tag":3431,"props":9508,"children":9509},{"style":3576},[9510],{"type":3153,"value":9511}," getChallenge",{"type":3148,"tag":3431,"props":9513,"children":9514},{"style":3510},[9515],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":9517,"children":9518},{"style":4525},[9519],{"type":3153,"value":5909},{"type":3148,"tag":3431,"props":9521,"children":9522},{"style":3510},[9523],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":9525,"children":9526},{"style":4525},[9527],{"type":3153,"value":9411},{"type":3148,"tag":3431,"props":9529,"children":9530},{"style":3510},[9531],{"type":3153,"value":6113},{"type":3148,"tag":3431,"props":9533,"children":9534},{"style":3510},[9535],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":9537,"children":9538},{"class":3433,"line":3053},[9539,9543,9547,9551,9555,9559,9563,9567,9572,9576,9580,9584,9588,9592,9596],{"type":3148,"tag":3431,"props":9540,"children":9541},{"style":3582},[9542],{"type":3153,"value":7663},{"type":3148,"tag":3431,"props":9544,"children":9545},{"style":3505},[9546],{"type":3153,"value":9402},{"type":3148,"tag":3431,"props":9548,"children":9549},{"style":3510},[9550],{"type":3153,"value":3664},{"type":3148,"tag":3431,"props":9552,"children":9553},{"style":4693},[9554],{"type":3153,"value":4949},{"type":3148,"tag":3431,"props":9556,"children":9557},{"style":3667},[9558],{"type":3153,"value":9439},{"type":3148,"tag":3431,"props":9560,"children":9561},{"style":3576},[9562],{"type":3153,"value":7938},{"type":3148,"tag":3431,"props":9564,"children":9565},{"style":3510},[9566],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":9568,"children":9569},{"style":3667},[9570],{"type":3153,"value":9571},"getItem",{"type":3148,"tag":3431,"props":9573,"children":9574},{"style":3576},[9575],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":9577,"children":9578},{"style":3510},[9579],{"type":3153,"value":8131},{"type":3148,"tag":3431,"props":9581,"children":9582},{"style":3443},[9583],{"type":3153,"value":9465},{"type":3148,"tag":3431,"props":9585,"children":9586},{"style":3510},[9587],{"type":3153,"value":9470},{"type":3148,"tag":3431,"props":9589,"children":9590},{"style":3505},[9591],{"type":3153,"value":9475},{"type":3148,"tag":3431,"props":9593,"children":9594},{"style":3510},[9595],{"type":3153,"value":9480},{"type":3148,"tag":3431,"props":9597,"children":9598},{"style":3576},[9599],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":9601,"children":9602},{"class":3433,"line":3049},[9603],{"type":3148,"tag":3431,"props":9604,"children":9605},{"emptyLinePlaceholder":1200},[9606],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":9608,"children":9609},{"class":3433,"line":3045},[9610],{"type":3148,"tag":3431,"props":9611,"children":9612},{"style":3496},[9613],{"type":3153,"value":9614},"    \u002F\u002F Make sure to always remove the attempt because they are single use only!\n",{"type":3148,"tag":3431,"props":9616,"children":9617},{"class":3433,"line":3882},[9618,9622,9626,9630,9634,9639,9643,9647,9651,9655,9659,9663],{"type":3148,"tag":3431,"props":9619,"children":9620},{"style":4693},[9621],{"type":3153,"value":5946},{"type":3148,"tag":3431,"props":9623,"children":9624},{"style":3667},[9625],{"type":3153,"value":9439},{"type":3148,"tag":3431,"props":9627,"children":9628},{"style":3576},[9629],{"type":3153,"value":7938},{"type":3148,"tag":3431,"props":9631,"children":9632},{"style":3510},[9633],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":9635,"children":9636},{"style":3667},[9637],{"type":3153,"value":9638},"removeItem",{"type":3148,"tag":3431,"props":9640,"children":9641},{"style":3576},[9642],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":9644,"children":9645},{"style":3510},[9646],{"type":3153,"value":8131},{"type":3148,"tag":3431,"props":9648,"children":9649},{"style":3443},[9650],{"type":3153,"value":9465},{"type":3148,"tag":3431,"props":9652,"children":9653},{"style":3510},[9654],{"type":3153,"value":9470},{"type":3148,"tag":3431,"props":9656,"children":9657},{"style":3505},[9658],{"type":3153,"value":9475},{"type":3148,"tag":3431,"props":9660,"children":9661},{"style":3510},[9662],{"type":3153,"value":9480},{"type":3148,"tag":3431,"props":9664,"children":9665},{"style":3576},[9666],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":9668,"children":9669},{"class":3433,"line":3136},[9670],{"type":3148,"tag":3431,"props":9671,"children":9672},{"emptyLinePlaceholder":1200},[9673],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":9675,"children":9676},{"class":3433,"line":3919},[9677,9681,9685,9689,9694],{"type":3148,"tag":3431,"props":9678,"children":9679},{"style":4693},[9680],{"type":3153,"value":7699},{"type":3148,"tag":3431,"props":9682,"children":9683},{"style":3576},[9684],{"type":3153,"value":4522},{"type":3148,"tag":3431,"props":9686,"children":9687},{"style":3510},[9688],{"type":3153,"value":8156},{"type":3148,"tag":3431,"props":9690,"children":9691},{"style":3505},[9692],{"type":3153,"value":9693},"challenge",{"type":3148,"tag":3431,"props":9695,"children":9696},{"style":3576},[9697],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":9699,"children":9700},{"class":3433,"line":3952},[9701,9705,9709,9713,9717,9721,9725,9729,9733,9737,9741,9745,9750,9754,9758],{"type":3148,"tag":3431,"props":9702,"children":9703},{"style":4693},[9704],{"type":3153,"value":7788},{"type":3148,"tag":3431,"props":9706,"children":9707},{"style":3667},[9708],{"type":3153,"value":7793},{"type":3148,"tag":3431,"props":9710,"children":9711},{"style":3576},[9712],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":9714,"children":9715},{"style":3510},[9716],{"type":3153,"value":7802},{"type":3148,"tag":3431,"props":9718,"children":9719},{"style":3576},[9720],{"type":3153,"value":7807},{"type":3148,"tag":3431,"props":9722,"children":9723},{"style":3510},[9724],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":9726,"children":9727},{"style":7031},[9728],{"type":3153,"value":7816},{"type":3148,"tag":3431,"props":9730,"children":9731},{"style":3510},[9732],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":9734,"children":9735},{"style":3576},[9736],{"type":3153,"value":7825},{"type":3148,"tag":3431,"props":9738,"children":9739},{"style":3510},[9740],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":9742,"children":9743},{"style":3510},[9744],{"type":3153,"value":4754},{"type":3148,"tag":3431,"props":9746,"children":9747},{"style":3443},[9748],{"type":3153,"value":9749},"Challenge expired",{"type":3148,"tag":3431,"props":9751,"children":9752},{"style":3510},[9753],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":9755,"children":9756},{"style":3510},[9757],{"type":3153,"value":7543},{"type":3148,"tag":3431,"props":9759,"children":9760},{"style":3576},[9761],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":9763,"children":9764},{"class":3433,"line":4007},[9765],{"type":3148,"tag":3431,"props":9766,"children":9767},{"emptyLinePlaceholder":1200},[9768],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":9770,"children":9771},{"class":3433,"line":4016},[9772,9776],{"type":3148,"tag":3431,"props":9773,"children":9774},{"style":4693},[9775],{"type":3153,"value":6034},{"type":3148,"tag":3431,"props":9777,"children":9778},{"style":3505},[9779],{"type":3153,"value":9780}," challenge\n",{"type":3148,"tag":3431,"props":9782,"children":9783},{"class":3433,"line":3041},[9784],{"type":3148,"tag":3431,"props":9785,"children":9786},{"style":3510},[9787],{"type":3153,"value":4771},{"type":3148,"tag":3431,"props":9789,"children":9790},{"class":3433,"line":4084},[9791,9795,9799,9803,9807,9811,9815,9820,9824],{"type":3148,"tag":3431,"props":9792,"children":9793},{"style":3582},[9794],{"type":3153,"value":5895},{"type":3148,"tag":3431,"props":9796,"children":9797},{"style":3576},[9798],{"type":3153,"value":5900},{"type":3148,"tag":3431,"props":9800,"children":9801},{"style":3510},[9802],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":9804,"children":9805},{"style":4525},[9806],{"type":3153,"value":5909},{"type":3148,"tag":3431,"props":9808,"children":9809},{"style":3510},[9810],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":9812,"children":9813},{"style":3510},[9814],{"type":3153,"value":3603},{"type":3148,"tag":3431,"props":9816,"children":9817},{"style":4525},[9818],{"type":3153,"value":9819}," authenticator",{"type":3148,"tag":3431,"props":9821,"children":9822},{"style":3510},[9823],{"type":3153,"value":4591},{"type":3148,"tag":3431,"props":9825,"children":9826},{"style":3510},[9827],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":9829,"children":9830},{"class":3433,"line":4354},[9831],{"type":3148,"tag":3431,"props":9832,"children":9833},{"style":3496},[9834],{"type":3153,"value":9835},"    \u002F\u002F ...\n",{"type":3148,"tag":3431,"props":9837,"children":9838},{"class":3433,"line":4362},[9839],{"type":3148,"tag":3431,"props":9840,"children":9841},{"style":3510},[9842],{"type":3153,"value":4771},{"type":3148,"tag":3431,"props":9844,"children":9845},{"class":3433,"line":4371},[9846,9850],{"type":3148,"tag":3431,"props":9847,"children":9848},{"style":3510},[9849],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":9851,"children":9852},{"style":3505},[9853],{"type":3153,"value":4873},{"type":3148,"tag":3155,"props":9855,"children":9856},{},[9857],{"type":3153,"value":9858},"On the frontend it is as simple as:",{"type":3148,"tag":3421,"props":9860,"children":9862},{"className":3559,"code":9861,"language":3561,"meta":3021,"style":3021},"\u003Cscript setup lang=\"ts\">\nconst { register, authenticate } = useWebAuthn({\n  registerEndpoint: '\u002Fapi\u002Fwebauthn\u002Fregister', \u002F\u002F Default\n  authenticateEndpoint: '\u002Fapi\u002Fwebauthn\u002Fauthenticate', \u002F\u002F Default\n})\nconst { fetch: fetchUserSession } = useUserSession()\n\nconst userName = ref('')\nasync function signUp() {\n  await register({ userName: userName.value })\n    .then(fetchUserSession) \u002F\u002F refetch the user session\n}\n\nasync function signIn() {\n  await authenticate(userName.value)\n    .then(fetchUserSession) \u002F\u002F refetch the user session\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cform @submit.prevent=\"signUp\">\n    \u003Cinput v-model=\"userName\" placeholder=\"Email or username\" \u002F>\n    \u003Cbutton type=\"submit\">Sign up\u003C\u002Fbutton>\n  \u003C\u002Fform>\n  \u003Cform @submit.prevent=\"signIn\">\n    \u003Cinput v-model=\"userName\" placeholder=\"Email or username\" \u002F>\n    \u003Cbutton type=\"submit\">Sign in\u003C\u002Fbutton>\n  \u003C\u002Fform>\n\u003C\u002Ftemplate>\n",[9863],{"type":3148,"tag":3293,"props":9864,"children":9865},{"__ignoreMap":3021},[9866,9906,9952,9986,10019,10030,10070,10077,10111,10137,10186,10217,10224,10231,10255,10287,10314,10321,10336,10343,10358,10396,10456,10510,10525,10561,10616,10668,10683],{"type":3148,"tag":3431,"props":9867,"children":9868},{"class":3433,"line":3107},[9869,9873,9877,9881,9886,9890,9894,9898,9902],{"type":3148,"tag":3431,"props":9870,"children":9871},{"style":3510},[9872],{"type":3153,"value":3573},{"type":3148,"tag":3431,"props":9874,"children":9875},{"style":3576},[9876],{"type":3153,"value":3579},{"type":3148,"tag":3431,"props":9878,"children":9879},{"style":3582},[9880],{"type":3153,"value":3585},{"type":3148,"tag":3431,"props":9882,"children":9883},{"style":3582},[9884],{"type":3153,"value":9885}," lang",{"type":3148,"tag":3431,"props":9887,"children":9888},{"style":3510},[9889],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":9891,"children":9892},{"style":3510},[9893],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":9895,"children":9896},{"style":3443},[9897],{"type":3153,"value":4111},{"type":3148,"tag":3431,"props":9899,"children":9900},{"style":3510},[9901],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":9903,"children":9904},{"style":3510},[9905],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":9907,"children":9908},{"class":3433,"line":3073},[9909,9913,9917,9922,9926,9931,9935,9939,9944,9948],{"type":3148,"tag":3431,"props":9910,"children":9911},{"style":3582},[9912],{"type":3153,"value":3598},{"type":3148,"tag":3431,"props":9914,"children":9915},{"style":3510},[9916],{"type":3153,"value":3603},{"type":3148,"tag":3431,"props":9918,"children":9919},{"style":3505},[9920],{"type":3153,"value":9921}," register",{"type":3148,"tag":3431,"props":9923,"children":9924},{"style":3510},[9925],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":9927,"children":9928},{"style":3505},[9929],{"type":3153,"value":9930}," authenticate ",{"type":3148,"tag":3431,"props":9932,"children":9933},{"style":3510},[9934],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":9936,"children":9937},{"style":3510},[9938],{"type":3153,"value":3664},{"type":3148,"tag":3431,"props":9940,"children":9941},{"style":3667},[9942],{"type":3153,"value":9943}," useWebAuthn",{"type":3148,"tag":3431,"props":9945,"children":9946},{"style":3505},[9947],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":9949,"children":9950},{"style":3510},[9951],{"type":3153,"value":5357},{"type":3148,"tag":3431,"props":9953,"children":9954},{"class":3433,"line":3057},[9955,9960,9964,9968,9973,9977,9981],{"type":3148,"tag":3431,"props":9956,"children":9957},{"style":3576},[9958],{"type":3153,"value":9959},"  registerEndpoint",{"type":3148,"tag":3431,"props":9961,"children":9962},{"style":3510},[9963],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":9965,"children":9966},{"style":3510},[9967],{"type":3153,"value":4754},{"type":3148,"tag":3431,"props":9969,"children":9970},{"style":3443},[9971],{"type":3153,"value":9972},"\u002Fapi\u002Fwebauthn\u002Fregister",{"type":3148,"tag":3431,"props":9974,"children":9975},{"style":3510},[9976],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":9978,"children":9979},{"style":3510},[9980],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":9982,"children":9983},{"style":3496},[9984],{"type":3153,"value":9985}," \u002F\u002F Default\n",{"type":3148,"tag":3431,"props":9987,"children":9988},{"class":3433,"line":3694},[9989,9994,9998,10002,10007,10011,10015],{"type":3148,"tag":3431,"props":9990,"children":9991},{"style":3576},[9992],{"type":3153,"value":9993},"  authenticateEndpoint",{"type":3148,"tag":3431,"props":9995,"children":9996},{"style":3510},[9997],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":9999,"children":10000},{"style":3510},[10001],{"type":3153,"value":4754},{"type":3148,"tag":3431,"props":10003,"children":10004},{"style":3443},[10005],{"type":3153,"value":10006},"\u002Fapi\u002Fwebauthn\u002Fauthenticate",{"type":3148,"tag":3431,"props":10008,"children":10009},{"style":3510},[10010],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":10012,"children":10013},{"style":3510},[10014],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":10016,"children":10017},{"style":3496},[10018],{"type":3153,"value":9985},{"type":3148,"tag":3431,"props":10020,"children":10021},{"class":3433,"line":3703},[10022,10026],{"type":3148,"tag":3431,"props":10023,"children":10024},{"style":3510},[10025],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":10027,"children":10028},{"style":3505},[10029],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":10031,"children":10032},{"class":3433,"line":3720},[10033,10037,10041,10045,10049,10054,10058,10062,10066],{"type":3148,"tag":3431,"props":10034,"children":10035},{"style":3582},[10036],{"type":3153,"value":3598},{"type":3148,"tag":3431,"props":10038,"children":10039},{"style":3510},[10040],{"type":3153,"value":3603},{"type":3148,"tag":3431,"props":10042,"children":10043},{"style":3576},[10044],{"type":3153,"value":3636},{"type":3148,"tag":3431,"props":10046,"children":10047},{"style":3510},[10048],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":10050,"children":10051},{"style":3505},[10052],{"type":3153,"value":10053}," fetchUserSession ",{"type":3148,"tag":3431,"props":10055,"children":10056},{"style":3510},[10057],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":10059,"children":10060},{"style":3510},[10061],{"type":3153,"value":3664},{"type":3148,"tag":3431,"props":10063,"children":10064},{"style":3667},[10065],{"type":3153,"value":3670},{"type":3148,"tag":3431,"props":10067,"children":10068},{"style":3505},[10069],{"type":3153,"value":3675},{"type":3148,"tag":3431,"props":10071,"children":10072},{"class":3433,"line":3053},[10073],{"type":3148,"tag":3431,"props":10074,"children":10075},{"emptyLinePlaceholder":1200},[10076],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":10078,"children":10079},{"class":3433,"line":3049},[10080,10084,10089,10093,10098,10102,10107],{"type":3148,"tag":3431,"props":10081,"children":10082},{"style":3582},[10083],{"type":3153,"value":3598},{"type":3148,"tag":3431,"props":10085,"children":10086},{"style":3505},[10087],{"type":3153,"value":10088}," userName ",{"type":3148,"tag":3431,"props":10090,"children":10091},{"style":3510},[10092],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":10094,"children":10095},{"style":3667},[10096],{"type":3153,"value":10097}," ref",{"type":3148,"tag":3431,"props":10099,"children":10100},{"style":3505},[10101],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":10103,"children":10104},{"style":3510},[10105],{"type":3153,"value":10106},"''",{"type":3148,"tag":3431,"props":10108,"children":10109},{"style":3505},[10110],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":10112,"children":10113},{"class":3433,"line":3045},[10114,10119,10124,10129,10133],{"type":3148,"tag":3431,"props":10115,"children":10116},{"style":3582},[10117],{"type":3153,"value":10118},"async",{"type":3148,"tag":3431,"props":10120,"children":10121},{"style":3582},[10122],{"type":3153,"value":10123}," function",{"type":3148,"tag":3431,"props":10125,"children":10126},{"style":3667},[10127],{"type":3153,"value":10128}," signUp",{"type":3148,"tag":3431,"props":10130,"children":10131},{"style":3510},[10132],{"type":3153,"value":7938},{"type":3148,"tag":3431,"props":10134,"children":10135},{"style":3510},[10136],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":10138,"children":10139},{"class":3433,"line":3882},[10140,10145,10149,10153,10157,10161,10165,10169,10173,10178,10182],{"type":3148,"tag":3431,"props":10141,"children":10142},{"style":4693},[10143],{"type":3153,"value":10144},"  await",{"type":3148,"tag":3431,"props":10146,"children":10147},{"style":3667},[10148],{"type":3153,"value":9921},{"type":3148,"tag":3431,"props":10150,"children":10151},{"style":3576},[10152],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":10154,"children":10155},{"style":3510},[10156],{"type":3153,"value":7802},{"type":3148,"tag":3431,"props":10158,"children":10159},{"style":3576},[10160],{"type":3153,"value":8545},{"type":3148,"tag":3431,"props":10162,"children":10163},{"style":3510},[10164],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":10166,"children":10167},{"style":3505},[10168],{"type":3153,"value":8545},{"type":3148,"tag":3431,"props":10170,"children":10171},{"style":3510},[10172],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":10174,"children":10175},{"style":3505},[10176],{"type":3153,"value":10177},"value",{"type":3148,"tag":3431,"props":10179,"children":10180},{"style":3510},[10181],{"type":3153,"value":7543},{"type":3148,"tag":3431,"props":10183,"children":10184},{"style":3576},[10185],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":10187,"children":10188},{"class":3433,"line":3136},[10189,10194,10199,10203,10208,10212],{"type":3148,"tag":3431,"props":10190,"children":10191},{"style":3510},[10192],{"type":3153,"value":10193},"    .",{"type":3148,"tag":3431,"props":10195,"children":10196},{"style":3667},[10197],{"type":3153,"value":10198},"then",{"type":3148,"tag":3431,"props":10200,"children":10201},{"style":3576},[10202],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":10204,"children":10205},{"style":3505},[10206],{"type":3153,"value":10207},"fetchUserSession",{"type":3148,"tag":3431,"props":10209,"children":10210},{"style":3576},[10211],{"type":3153,"value":7776},{"type":3148,"tag":3431,"props":10213,"children":10214},{"style":3496},[10215],{"type":3153,"value":10216},"\u002F\u002F refetch the user session\n",{"type":3148,"tag":3431,"props":10218,"children":10219},{"class":3433,"line":3919},[10220],{"type":3148,"tag":3431,"props":10221,"children":10222},{"style":3510},[10223],{"type":3153,"value":4609},{"type":3148,"tag":3431,"props":10225,"children":10226},{"class":3433,"line":3952},[10227],{"type":3148,"tag":3431,"props":10228,"children":10229},{"emptyLinePlaceholder":1200},[10230],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":10232,"children":10233},{"class":3433,"line":4007},[10234,10238,10242,10247,10251],{"type":3148,"tag":3431,"props":10235,"children":10236},{"style":3582},[10237],{"type":3153,"value":10118},{"type":3148,"tag":3431,"props":10239,"children":10240},{"style":3582},[10241],{"type":3153,"value":10123},{"type":3148,"tag":3431,"props":10243,"children":10244},{"style":3667},[10245],{"type":3153,"value":10246}," signIn",{"type":3148,"tag":3431,"props":10248,"children":10249},{"style":3510},[10250],{"type":3153,"value":7938},{"type":3148,"tag":3431,"props":10252,"children":10253},{"style":3510},[10254],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":10256,"children":10257},{"class":3433,"line":4016},[10258,10262,10267,10271,10275,10279,10283],{"type":3148,"tag":3431,"props":10259,"children":10260},{"style":4693},[10261],{"type":3153,"value":10144},{"type":3148,"tag":3431,"props":10263,"children":10264},{"style":3667},[10265],{"type":3153,"value":10266}," authenticate",{"type":3148,"tag":3431,"props":10268,"children":10269},{"style":3576},[10270],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":10272,"children":10273},{"style":3505},[10274],{"type":3153,"value":7771},{"type":3148,"tag":3431,"props":10276,"children":10277},{"style":3510},[10278],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":10280,"children":10281},{"style":3505},[10282],{"type":3153,"value":10177},{"type":3148,"tag":3431,"props":10284,"children":10285},{"style":3576},[10286],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":10288,"children":10289},{"class":3433,"line":3041},[10290,10294,10298,10302,10306,10310],{"type":3148,"tag":3431,"props":10291,"children":10292},{"style":3510},[10293],{"type":3153,"value":10193},{"type":3148,"tag":3431,"props":10295,"children":10296},{"style":3667},[10297],{"type":3153,"value":10198},{"type":3148,"tag":3431,"props":10299,"children":10300},{"style":3576},[10301],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":10303,"children":10304},{"style":3505},[10305],{"type":3153,"value":10207},{"type":3148,"tag":3431,"props":10307,"children":10308},{"style":3576},[10309],{"type":3153,"value":7776},{"type":3148,"tag":3431,"props":10311,"children":10312},{"style":3496},[10313],{"type":3153,"value":10216},{"type":3148,"tag":3431,"props":10315,"children":10316},{"class":3433,"line":4084},[10317],{"type":3148,"tag":3431,"props":10318,"children":10319},{"style":3510},[10320],{"type":3153,"value":4609},{"type":3148,"tag":3431,"props":10322,"children":10323},{"class":3433,"line":4354},[10324,10328,10332],{"type":3148,"tag":3431,"props":10325,"children":10326},{"style":3510},[10327],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":10329,"children":10330},{"style":3576},[10331],{"type":3153,"value":3579},{"type":3148,"tag":3431,"props":10333,"children":10334},{"style":3510},[10335],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":10337,"children":10338},{"class":3433,"line":4362},[10339],{"type":3148,"tag":3431,"props":10340,"children":10341},{"emptyLinePlaceholder":1200},[10342],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":10344,"children":10345},{"class":3433,"line":4371},[10346,10350,10354],{"type":3148,"tag":3431,"props":10347,"children":10348},{"style":3510},[10349],{"type":3153,"value":3573},{"type":3148,"tag":3431,"props":10351,"children":10352},{"style":3576},[10353],{"type":3153,"value":3713},{"type":3148,"tag":3431,"props":10355,"children":10356},{"style":3510},[10357],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":10359,"children":10360},{"class":3433,"line":4379},[10361,10365,10370,10375,10379,10383,10388,10392],{"type":3148,"tag":3431,"props":10362,"children":10363},{"style":3510},[10364],{"type":3153,"value":3726},{"type":3148,"tag":3431,"props":10366,"children":10367},{"style":3576},[10368],{"type":3153,"value":10369},"form",{"type":3148,"tag":3431,"props":10371,"children":10372},{"style":3582},[10373],{"type":3153,"value":10374}," @submit.prevent",{"type":3148,"tag":3431,"props":10376,"children":10377},{"style":3510},[10378],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":10380,"children":10381},{"style":3510},[10382],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":10384,"children":10385},{"style":3443},[10386],{"type":3153,"value":10387},"signUp",{"type":3148,"tag":3431,"props":10389,"children":10390},{"style":3510},[10391],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":10393,"children":10394},{"style":3510},[10395],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":10397,"children":10398},{"class":3433,"line":4420},[10399,10403,10408,10413,10417,10421,10425,10429,10434,10438,10442,10447,10451],{"type":3148,"tag":3431,"props":10400,"children":10401},{"style":3510},[10402],{"type":3153,"value":3766},{"type":3148,"tag":3431,"props":10404,"children":10405},{"style":3576},[10406],{"type":3153,"value":10407},"input",{"type":3148,"tag":3431,"props":10409,"children":10410},{"style":3582},[10411],{"type":3153,"value":10412}," v-model",{"type":3148,"tag":3431,"props":10414,"children":10415},{"style":3510},[10416],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":10418,"children":10419},{"style":3510},[10420],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":10422,"children":10423},{"style":3443},[10424],{"type":3153,"value":7771},{"type":3148,"tag":3431,"props":10426,"children":10427},{"style":3510},[10428],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":10430,"children":10431},{"style":3582},[10432],{"type":3153,"value":10433}," placeholder",{"type":3148,"tag":3431,"props":10435,"children":10436},{"style":3510},[10437],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":10439,"children":10440},{"style":3510},[10441],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":10443,"children":10444},{"style":3443},[10445],{"type":3153,"value":10446},"Email or username",{"type":3148,"tag":3431,"props":10448,"children":10449},{"style":3510},[10450],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":10452,"children":10453},{"style":3510},[10454],{"type":3153,"value":10455}," \u002F>\n",{"type":3148,"tag":3431,"props":10457,"children":10458},{"class":3433,"line":4428},[10459,10463,10467,10472,10476,10480,10485,10489,10493,10498,10502,10506],{"type":3148,"tag":3431,"props":10460,"children":10461},{"style":3510},[10462],{"type":3153,"value":3766},{"type":3148,"tag":3431,"props":10464,"children":10465},{"style":3576},[10466],{"type":3153,"value":3836},{"type":3148,"tag":3431,"props":10468,"children":10469},{"style":3582},[10470],{"type":3153,"value":10471}," type",{"type":3148,"tag":3431,"props":10473,"children":10474},{"style":3510},[10475],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":10477,"children":10478},{"style":3510},[10479],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":10481,"children":10482},{"style":3443},[10483],{"type":3153,"value":10484},"submit",{"type":3148,"tag":3431,"props":10486,"children":10487},{"style":3510},[10488],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":10490,"children":10491},{"style":3510},[10492],{"type":3153,"value":3775},{"type":3148,"tag":3431,"props":10494,"children":10495},{"style":3505},[10496],{"type":3153,"value":10497},"Sign up",{"type":3148,"tag":3431,"props":10499,"children":10500},{"style":3510},[10501],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":10503,"children":10504},{"style":3576},[10505],{"type":3153,"value":3836},{"type":3148,"tag":3431,"props":10507,"children":10508},{"style":3510},[10509],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":10511,"children":10512},{"class":3433,"line":4437},[10513,10517,10521],{"type":3148,"tag":3431,"props":10514,"children":10515},{"style":3510},[10516],{"type":3153,"value":3888},{"type":3148,"tag":3431,"props":10518,"children":10519},{"style":3576},[10520],{"type":3153,"value":10369},{"type":3148,"tag":3431,"props":10522,"children":10523},{"style":3510},[10524],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":10526,"children":10527},{"class":3433,"line":4445},[10528,10532,10536,10540,10544,10548,10553,10557],{"type":3148,"tag":3431,"props":10529,"children":10530},{"style":3510},[10531],{"type":3153,"value":3726},{"type":3148,"tag":3431,"props":10533,"children":10534},{"style":3576},[10535],{"type":3153,"value":10369},{"type":3148,"tag":3431,"props":10537,"children":10538},{"style":3582},[10539],{"type":3153,"value":10374},{"type":3148,"tag":3431,"props":10541,"children":10542},{"style":3510},[10543],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":10545,"children":10546},{"style":3510},[10547],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":10549,"children":10550},{"style":3443},[10551],{"type":3153,"value":10552},"signIn",{"type":3148,"tag":3431,"props":10554,"children":10555},{"style":3510},[10556],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":10558,"children":10559},{"style":3510},[10560],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":10562,"children":10563},{"class":3433,"line":4482},[10564,10568,10572,10576,10580,10584,10588,10592,10596,10600,10604,10608,10612],{"type":3148,"tag":3431,"props":10565,"children":10566},{"style":3510},[10567],{"type":3153,"value":3766},{"type":3148,"tag":3431,"props":10569,"children":10570},{"style":3576},[10571],{"type":3153,"value":10407},{"type":3148,"tag":3431,"props":10573,"children":10574},{"style":3582},[10575],{"type":3153,"value":10412},{"type":3148,"tag":3431,"props":10577,"children":10578},{"style":3510},[10579],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":10581,"children":10582},{"style":3510},[10583],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":10585,"children":10586},{"style":3443},[10587],{"type":3153,"value":7771},{"type":3148,"tag":3431,"props":10589,"children":10590},{"style":3510},[10591],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":10593,"children":10594},{"style":3582},[10595],{"type":3153,"value":10433},{"type":3148,"tag":3431,"props":10597,"children":10598},{"style":3510},[10599],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":10601,"children":10602},{"style":3510},[10603],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":10605,"children":10606},{"style":3443},[10607],{"type":3153,"value":10446},{"type":3148,"tag":3431,"props":10609,"children":10610},{"style":3510},[10611],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":10613,"children":10614},{"style":3510},[10615],{"type":3153,"value":10455},{"type":3148,"tag":3431,"props":10617,"children":10618},{"class":3433,"line":4490},[10619,10623,10627,10631,10635,10639,10643,10647,10651,10656,10660,10664],{"type":3148,"tag":3431,"props":10620,"children":10621},{"style":3510},[10622],{"type":3153,"value":3766},{"type":3148,"tag":3431,"props":10624,"children":10625},{"style":3576},[10626],{"type":3153,"value":3836},{"type":3148,"tag":3431,"props":10628,"children":10629},{"style":3582},[10630],{"type":3153,"value":10471},{"type":3148,"tag":3431,"props":10632,"children":10633},{"style":3510},[10634],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":10636,"children":10637},{"style":3510},[10638],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":10640,"children":10641},{"style":3443},[10642],{"type":3153,"value":10484},{"type":3148,"tag":3431,"props":10644,"children":10645},{"style":3510},[10646],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":10648,"children":10649},{"style":3510},[10650],{"type":3153,"value":3775},{"type":3148,"tag":3431,"props":10652,"children":10653},{"style":3505},[10654],{"type":3153,"value":10655},"Sign in",{"type":3148,"tag":3431,"props":10657,"children":10658},{"style":3510},[10659],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":10661,"children":10662},{"style":3576},[10663],{"type":3153,"value":3836},{"type":3148,"tag":3431,"props":10665,"children":10666},{"style":3510},[10667],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":10669,"children":10670},{"class":3433,"line":4499},[10671,10675,10679],{"type":3148,"tag":3431,"props":10672,"children":10673},{"style":3510},[10674],{"type":3153,"value":3888},{"type":3148,"tag":3431,"props":10676,"children":10677},{"style":3576},[10678],{"type":3153,"value":10369},{"type":3148,"tag":3431,"props":10680,"children":10681},{"style":3510},[10682],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":10684,"children":10685},{"class":3433,"line":4507},[10686,10690,10694],{"type":3148,"tag":3431,"props":10687,"children":10688},{"style":3510},[10689],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":10691,"children":10692},{"style":3576},[10693],{"type":3153,"value":3713},{"type":3148,"tag":3431,"props":10695,"children":10696},{"style":3510},[10697],{"type":3153,"value":3590},{"type":3148,"tag":3155,"props":10699,"children":10700},{},[10701,10703,10714],{"type":3153,"value":10702},"Take a look at the ",{"type":3148,"tag":3159,"props":10704,"children":10707},{"href":10705,"rel":10706},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fcomponents\u002FWebAuthnModal.vue",[3163],[10708],{"type":3148,"tag":3293,"props":10709,"children":10711},{"className":10710},[],[10712],{"type":3153,"value":10713},"WebAuthnModal.vue",{"type":3153,"value":10715}," for a full example.",{"type":3148,"tag":5537,"props":10717,"children":10719},{"id":10718},"demo",[10720],{"type":3153,"value":10721},"Demo",{"type":3148,"tag":3155,"props":10723,"children":10724},{},[10725,10727,10733,10735,10742,10743,10750],{"type":3153,"value":10726},"A full demo can be found on ",{"type":3148,"tag":3159,"props":10728,"children":10731},{"href":10729,"rel":10730},"https:\u002F\u002Ftodo-passkeys.nuxt.dev",[3163],[10732],{"type":3153,"value":10729},{"type":3153,"value":10734}," using ",{"type":3148,"tag":3159,"props":10736,"children":10739},{"href":10737,"rel":10738},"https:\u002F\u002Form.drizzle.team\u002F",[3163],[10740],{"type":3153,"value":10741},"Drizzle ORM",{"type":3153,"value":6263},{"type":3148,"tag":3159,"props":10744,"children":10747},{"href":10745,"rel":10746},"https:\u002F\u002Fhub.nuxt.com",[3163],[10748],{"type":3153,"value":10749},"NuxtHub",{"type":3153,"value":3386},{"type":3148,"tag":3155,"props":10752,"children":10753},{},[10754,10756,10761],{"type":3153,"value":10755},"The source code of the demo is available on ",{"type":3148,"tag":3159,"props":10757,"children":10759},{"href":3233,"rel":10758},[3163],[10760],{"type":3153,"value":3233},{"type":3153,"value":3386},{"type":3148,"tag":3551,"props":10763,"children":10765},{"id":10764},"extend-session",[10766],{"type":3153,"value":10767},"Extend Session",{"type":3148,"tag":3155,"props":10769,"children":10770},{},[10771],{"type":3153,"value":10772},"We leverage hooks to let you extend the session data with your own data or log when the user clears the session.",{"type":3148,"tag":3421,"props":10774,"children":10776},{"className":4109,"code":10775,"language":4111,"meta":3021,"style":3021},"\u002F\u002F server\u002Fplugins\u002Fsession.ts\nexport default defineNitroPlugin(() => {\n  \u002F\u002F Called when the session is fetched during SSR for the Vue composable (\u002Fapi\u002F_auth\u002Fsession)\n  \u002F\u002F Or when we call useUserSession().fetch()\n  sessionHooks.hook('fetch', async (session, event) => {\n    \u002F\u002F extend User Session by calling your database\n    \u002F\u002F or\n    \u002F\u002F throw createError({ ... }) if session is invalid for example\n  })\n\n  \u002F\u002F Called when we call useUserSession().clear() or clearUserSession(event)\n  sessionHooks.hook('clear', async (session, event) => {\n    \u002F\u002F Log that user logged out\n  })\n})\n",[10777],{"type":3148,"tag":3293,"props":10778,"children":10779},{"__ignoreMap":3021},[10780,10788,10820,10828,10836,10907,10915,10923,10931,10943,10950,10958,11025,11033,11044],{"type":3148,"tag":3431,"props":10781,"children":10782},{"class":3433,"line":3107},[10783],{"type":3148,"tag":3431,"props":10784,"children":10785},{"style":3496},[10786],{"type":3153,"value":10787},"\u002F\u002F server\u002Fplugins\u002Fsession.ts\n",{"type":3148,"tag":3431,"props":10789,"children":10790},{"class":3433,"line":3073},[10791,10795,10799,10804,10808,10812,10816],{"type":3148,"tag":3431,"props":10792,"children":10793},{"style":4693},[10794],{"type":3153,"value":5227},{"type":3148,"tag":3431,"props":10796,"children":10797},{"style":4693},[10798],{"type":3153,"value":5342},{"type":3148,"tag":3431,"props":10800,"children":10801},{"style":3667},[10802],{"type":3153,"value":10803}," defineNitroPlugin",{"type":3148,"tag":3431,"props":10805,"children":10806},{"style":3505},[10807],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":10809,"children":10810},{"style":3510},[10811],{"type":3153,"value":7938},{"type":3148,"tag":3431,"props":10813,"children":10814},{"style":3582},[10815],{"type":3153,"value":4399},{"type":3148,"tag":3431,"props":10817,"children":10818},{"style":3510},[10819],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":10821,"children":10822},{"class":3433,"line":3057},[10823],{"type":3148,"tag":3431,"props":10824,"children":10825},{"style":3496},[10826],{"type":3153,"value":10827},"  \u002F\u002F Called when the session is fetched during SSR for the Vue composable (\u002Fapi\u002F_auth\u002Fsession)\n",{"type":3148,"tag":3431,"props":10829,"children":10830},{"class":3433,"line":3694},[10831],{"type":3148,"tag":3431,"props":10832,"children":10833},{"style":3496},[10834],{"type":3153,"value":10835},"  \u002F\u002F Or when we call useUserSession().fetch()\n",{"type":3148,"tag":3431,"props":10837,"children":10838},{"class":3433,"line":3703},[10839,10844,10848,10853,10857,10861,10866,10870,10874,10879,10883,10887,10891,10895,10899,10903],{"type":3148,"tag":3431,"props":10840,"children":10841},{"style":3505},[10842],{"type":3153,"value":10843},"  sessionHooks",{"type":3148,"tag":3431,"props":10845,"children":10846},{"style":3510},[10847],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":10849,"children":10850},{"style":3667},[10851],{"type":3153,"value":10852},"hook",{"type":3148,"tag":3431,"props":10854,"children":10855},{"style":3576},[10856],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":10858,"children":10859},{"style":3510},[10860],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":10862,"children":10863},{"style":3443},[10864],{"type":3153,"value":10865},"fetch",{"type":3148,"tag":3431,"props":10867,"children":10868},{"style":3510},[10869],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":10871,"children":10872},{"style":3510},[10873],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":10875,"children":10876},{"style":3582},[10877],{"type":3153,"value":10878}," async",{"type":3148,"tag":3431,"props":10880,"children":10881},{"style":3510},[10882],{"type":3153,"value":4522},{"type":3148,"tag":3431,"props":10884,"children":10885},{"style":4525},[10886],{"type":3153,"value":7708},{"type":3148,"tag":3431,"props":10888,"children":10889},{"style":3510},[10890],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":10892,"children":10893},{"style":4525},[10894],{"type":3153,"value":7623},{"type":3148,"tag":3431,"props":10896,"children":10897},{"style":3510},[10898],{"type":3153,"value":6113},{"type":3148,"tag":3431,"props":10900,"children":10901},{"style":3582},[10902],{"type":3153,"value":4399},{"type":3148,"tag":3431,"props":10904,"children":10905},{"style":3510},[10906],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":10908,"children":10909},{"class":3433,"line":3720},[10910],{"type":3148,"tag":3431,"props":10911,"children":10912},{"style":3496},[10913],{"type":3153,"value":10914},"    \u002F\u002F extend User Session by calling your database\n",{"type":3148,"tag":3431,"props":10916,"children":10917},{"class":3433,"line":3053},[10918],{"type":3148,"tag":3431,"props":10919,"children":10920},{"style":3496},[10921],{"type":3153,"value":10922},"    \u002F\u002F or\n",{"type":3148,"tag":3431,"props":10924,"children":10925},{"class":3433,"line":3049},[10926],{"type":3148,"tag":3431,"props":10927,"children":10928},{"style":3496},[10929],{"type":3153,"value":10930},"    \u002F\u002F throw createError({ ... }) if session is invalid for example\n",{"type":3148,"tag":3431,"props":10932,"children":10933},{"class":3433,"line":3045},[10934,10939],{"type":3148,"tag":3431,"props":10935,"children":10936},{"style":3510},[10937],{"type":3153,"value":10938},"  }",{"type":3148,"tag":3431,"props":10940,"children":10941},{"style":3576},[10942],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":10944,"children":10945},{"class":3433,"line":3882},[10946],{"type":3148,"tag":3431,"props":10947,"children":10948},{"emptyLinePlaceholder":1200},[10949],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":10951,"children":10952},{"class":3433,"line":3136},[10953],{"type":3148,"tag":3431,"props":10954,"children":10955},{"style":3496},[10956],{"type":3153,"value":10957},"  \u002F\u002F Called when we call useUserSession().clear() or clearUserSession(event)\n",{"type":3148,"tag":3431,"props":10959,"children":10960},{"class":3433,"line":3919},[10961,10965,10969,10973,10977,10981,10985,10989,10993,10997,11001,11005,11009,11013,11017,11021],{"type":3148,"tag":3431,"props":10962,"children":10963},{"style":3505},[10964],{"type":3153,"value":10843},{"type":3148,"tag":3431,"props":10966,"children":10967},{"style":3510},[10968],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":10970,"children":10971},{"style":3667},[10972],{"type":3153,"value":10852},{"type":3148,"tag":3431,"props":10974,"children":10975},{"style":3576},[10976],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":10978,"children":10979},{"style":3510},[10980],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":10982,"children":10983},{"style":3443},[10984],{"type":3153,"value":3854},{"type":3148,"tag":3431,"props":10986,"children":10987},{"style":3510},[10988],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":10990,"children":10991},{"style":3510},[10992],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":10994,"children":10995},{"style":3582},[10996],{"type":3153,"value":10878},{"type":3148,"tag":3431,"props":10998,"children":10999},{"style":3510},[11000],{"type":3153,"value":4522},{"type":3148,"tag":3431,"props":11002,"children":11003},{"style":4525},[11004],{"type":3153,"value":7708},{"type":3148,"tag":3431,"props":11006,"children":11007},{"style":3510},[11008],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":11010,"children":11011},{"style":4525},[11012],{"type":3153,"value":7623},{"type":3148,"tag":3431,"props":11014,"children":11015},{"style":3510},[11016],{"type":3153,"value":6113},{"type":3148,"tag":3431,"props":11018,"children":11019},{"style":3582},[11020],{"type":3153,"value":4399},{"type":3148,"tag":3431,"props":11022,"children":11023},{"style":3510},[11024],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":11026,"children":11027},{"class":3433,"line":3952},[11028],{"type":3148,"tag":3431,"props":11029,"children":11030},{"style":3496},[11031],{"type":3153,"value":11032},"    \u002F\u002F Log that user logged out\n",{"type":3148,"tag":3431,"props":11034,"children":11035},{"class":3433,"line":4007},[11036,11040],{"type":3148,"tag":3431,"props":11037,"children":11038},{"style":3510},[11039],{"type":3153,"value":10938},{"type":3148,"tag":3431,"props":11041,"children":11042},{"style":3576},[11043],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":11045,"children":11046},{"class":3433,"line":4016},[11047,11051],{"type":3148,"tag":3431,"props":11048,"children":11049},{"style":3510},[11050],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":11052,"children":11053},{"style":3505},[11054],{"type":3153,"value":4873},{"type":3148,"tag":3239,"props":11056,"children":11058},{"id":11057},"server-side-rendering",[11059],{"type":3153,"value":11060},"Server-Side Rendering",{"type":3148,"tag":3155,"props":11062,"children":11063},{},[11064,11066,11072,11074],{"type":3153,"value":11065},"You can make authenticated requests both from the client and the server. However, you must use ",{"type":3148,"tag":3293,"props":11067,"children":11069},{"className":11068},[],[11070],{"type":3153,"value":11071},"useRequestFetch()",{"type":3153,"value":11073}," to make authenticated requests during SSR if you are not using ",{"type":3148,"tag":3293,"props":11075,"children":11077},{"className":11076},[],[11078],{"type":3153,"value":11079},"useFetch()",{"type":3148,"tag":3421,"props":11081,"children":11083},{"className":3559,"code":11082,"language":3561,"meta":3021,"style":3021},"\u003Cscript setup lang=\"ts\">\n\u002F\u002F When using useAsyncData\nconst { data } = await useAsyncData('team', () => useRequestFetch()('\u002Fapi\u002Fprotected-endpoint'))\n\n\u002F\u002F useFetch will automatically use useRequestFetch during SSR\nconst { data } = await useFetch('\u002Fapi\u002Fprotected-endpoint')\n\u003C\u002Fscript>\n",[11084],{"type":3148,"tag":3293,"props":11085,"children":11086},{"__ignoreMap":3021},[11087,11126,11134,11224,11231,11239,11291],{"type":3148,"tag":3431,"props":11088,"children":11089},{"class":3433,"line":3107},[11090,11094,11098,11102,11106,11110,11114,11118,11122],{"type":3148,"tag":3431,"props":11091,"children":11092},{"style":3510},[11093],{"type":3153,"value":3573},{"type":3148,"tag":3431,"props":11095,"children":11096},{"style":3576},[11097],{"type":3153,"value":3579},{"type":3148,"tag":3431,"props":11099,"children":11100},{"style":3582},[11101],{"type":3153,"value":3585},{"type":3148,"tag":3431,"props":11103,"children":11104},{"style":3582},[11105],{"type":3153,"value":9885},{"type":3148,"tag":3431,"props":11107,"children":11108},{"style":3510},[11109],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":11111,"children":11112},{"style":3510},[11113],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":11115,"children":11116},{"style":3443},[11117],{"type":3153,"value":4111},{"type":3148,"tag":3431,"props":11119,"children":11120},{"style":3510},[11121],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":11123,"children":11124},{"style":3510},[11125],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":11127,"children":11128},{"class":3433,"line":3073},[11129],{"type":3148,"tag":3431,"props":11130,"children":11131},{"style":3496},[11132],{"type":3153,"value":11133},"\u002F\u002F When using useAsyncData\n",{"type":3148,"tag":3431,"props":11135,"children":11136},{"class":3433,"line":3057},[11137,11141,11145,11150,11154,11158,11162,11167,11171,11175,11180,11184,11188,11192,11196,11201,11206,11210,11215,11219],{"type":3148,"tag":3431,"props":11138,"children":11139},{"style":3582},[11140],{"type":3153,"value":3598},{"type":3148,"tag":3431,"props":11142,"children":11143},{"style":3510},[11144],{"type":3153,"value":3603},{"type":3148,"tag":3431,"props":11146,"children":11147},{"style":3505},[11148],{"type":3153,"value":11149}," data ",{"type":3148,"tag":3431,"props":11151,"children":11152},{"style":3510},[11153],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":11155,"children":11156},{"style":3510},[11157],{"type":3153,"value":3664},{"type":3148,"tag":3431,"props":11159,"children":11160},{"style":4693},[11161],{"type":3153,"value":4949},{"type":3148,"tag":3431,"props":11163,"children":11164},{"style":3667},[11165],{"type":3153,"value":11166}," useAsyncData",{"type":3148,"tag":3431,"props":11168,"children":11169},{"style":3505},[11170],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":11172,"children":11173},{"style":3510},[11174],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":11176,"children":11177},{"style":3443},[11178],{"type":3153,"value":11179},"team",{"type":3148,"tag":3431,"props":11181,"children":11182},{"style":3510},[11183],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":11185,"children":11186},{"style":3510},[11187],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":11189,"children":11190},{"style":3510},[11191],{"type":3153,"value":4394},{"type":3148,"tag":3431,"props":11193,"children":11194},{"style":3582},[11195],{"type":3153,"value":4399},{"type":3148,"tag":3431,"props":11197,"children":11198},{"style":3667},[11199],{"type":3153,"value":11200}," useRequestFetch",{"type":3148,"tag":3431,"props":11202,"children":11203},{"style":3505},[11204],{"type":3153,"value":11205},"()(",{"type":3148,"tag":3431,"props":11207,"children":11208},{"style":3510},[11209],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":11211,"children":11212},{"style":3443},[11213],{"type":3153,"value":11214},"\u002Fapi\u002Fprotected-endpoint",{"type":3148,"tag":3431,"props":11216,"children":11217},{"style":3510},[11218],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":11220,"children":11221},{"style":3505},[11222],{"type":3153,"value":11223},"))\n",{"type":3148,"tag":3431,"props":11225,"children":11226},{"class":3433,"line":3694},[11227],{"type":3148,"tag":3431,"props":11228,"children":11229},{"emptyLinePlaceholder":1200},[11230],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":11232,"children":11233},{"class":3433,"line":3703},[11234],{"type":3148,"tag":3431,"props":11235,"children":11236},{"style":3496},[11237],{"type":3153,"value":11238},"\u002F\u002F useFetch will automatically use useRequestFetch during SSR\n",{"type":3148,"tag":3431,"props":11240,"children":11241},{"class":3433,"line":3720},[11242,11246,11250,11254,11258,11262,11266,11271,11275,11279,11283,11287],{"type":3148,"tag":3431,"props":11243,"children":11244},{"style":3582},[11245],{"type":3153,"value":3598},{"type":3148,"tag":3431,"props":11247,"children":11248},{"style":3510},[11249],{"type":3153,"value":3603},{"type":3148,"tag":3431,"props":11251,"children":11252},{"style":3505},[11253],{"type":3153,"value":11149},{"type":3148,"tag":3431,"props":11255,"children":11256},{"style":3510},[11257],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":11259,"children":11260},{"style":3510},[11261],{"type":3153,"value":3664},{"type":3148,"tag":3431,"props":11263,"children":11264},{"style":4693},[11265],{"type":3153,"value":4949},{"type":3148,"tag":3431,"props":11267,"children":11268},{"style":3667},[11269],{"type":3153,"value":11270}," useFetch",{"type":3148,"tag":3431,"props":11272,"children":11273},{"style":3505},[11274],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":11276,"children":11277},{"style":3510},[11278],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":11280,"children":11281},{"style":3443},[11282],{"type":3153,"value":11214},{"type":3148,"tag":3431,"props":11284,"children":11285},{"style":3510},[11286],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":11288,"children":11289},{"style":3505},[11290],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":11292,"children":11293},{"class":3433,"line":3053},[11294,11298,11302],{"type":3148,"tag":3431,"props":11295,"children":11296},{"style":3510},[11297],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":11299,"children":11300},{"style":3576},[11301],{"type":3153,"value":3579},{"type":3148,"tag":3431,"props":11303,"children":11304},{"style":3510},[11305],{"type":3153,"value":3590},{"type":3148,"tag":4611,"props":11307,"children":11308},{},[11309],{"type":3148,"tag":3155,"props":11310,"children":11311},{},[11312,11314,11321,11323,11328],{"type":3153,"value":11313},"There's ",{"type":3148,"tag":3159,"props":11315,"children":11318},{"href":11316,"rel":11317},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F24813",[3163],[11319],{"type":3153,"value":11320},"an open issue",{"type":3153,"value":11322}," to include credentials in ",{"type":3148,"tag":3293,"props":11324,"children":11326},{"className":11325},[],[11327],{"type":3153,"value":634},{"type":3153,"value":11329}," in Nuxt.",{"type":3148,"tag":3239,"props":11331,"children":11333},{"id":11332},"hybrid-rendering",[11334],{"type":3153,"value":3255},{"type":3148,"tag":3155,"props":11336,"children":11337},{},[11338,11340,11353],{"type":3153,"value":11339},"When using ",{"type":3148,"tag":3159,"props":11341,"children":11344},{"href":11342,"rel":11343},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fguide\u002Fconcepts\u002Frendering#hybrid-rendering",[3163],[11345,11347],{"type":3153,"value":11346},"Nuxt ",{"type":3148,"tag":3293,"props":11348,"children":11350},{"className":11349},[],[11351],{"type":3153,"value":11352},"routeRules",{"type":3153,"value":11354}," to prerender or cache your pages, Nuxt Auth Utils will not fetch the user session during prerendering but instead fetch it on the client-side (after hydration).",{"type":3148,"tag":3155,"props":11356,"children":11357},{},[11358],{"type":3153,"value":11359},"This is because the user session is stored in a secure cookie and cannot be accessed during prerendering.",{"type":3148,"tag":3155,"props":11361,"children":11362},{},[11363],{"type":3148,"tag":4102,"props":11364,"children":11365},{},[11366],{"type":3153,"value":11367},"This means that you should not rely on the user session during prerendering.",{"type":3148,"tag":3155,"props":11369,"children":11370},{},[11371,11373,11379,11381,11386],{"type":3153,"value":11372},"You may also choose to instruct Nuxt Auth Utils to fetch the user session only on the client side, with the ",{"type":3148,"tag":3293,"props":11374,"children":11376},{"className":11375},[],[11377],{"type":3153,"value":11378},"loadStrategy",{"type":3153,"value":11380}," option in your ",{"type":3148,"tag":3293,"props":11382,"children":11384},{"className":11383},[],[11385],{"type":3153,"value":233},{"type":3153,"value":4170},{"type":3148,"tag":3421,"props":11388,"children":11390},{"className":4109,"code":11389,"language":4111,"meta":3021,"style":3021},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'client-only'\n  }\n})\n",[11391],{"type":3148,"tag":3293,"props":11392,"children":11393},{"__ignoreMap":3021},[11394,11417,11432,11457,11464],{"type":3148,"tag":3431,"props":11395,"children":11396},{"class":3433,"line":3107},[11397,11401,11405,11409,11413],{"type":3148,"tag":3431,"props":11398,"children":11399},{"style":4693},[11400],{"type":3153,"value":5227},{"type":3148,"tag":3431,"props":11402,"children":11403},{"style":4693},[11404],{"type":3153,"value":5342},{"type":3148,"tag":3431,"props":11406,"children":11407},{"style":3667},[11408],{"type":3153,"value":5347},{"type":3148,"tag":3431,"props":11410,"children":11411},{"style":3505},[11412],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":11414,"children":11415},{"style":3510},[11416],{"type":3153,"value":5357},{"type":3148,"tag":3431,"props":11418,"children":11419},{"class":3433,"line":3073},[11420,11424,11428],{"type":3148,"tag":3431,"props":11421,"children":11422},{"style":3576},[11423],{"type":3153,"value":6617},{"type":3148,"tag":3431,"props":11425,"children":11426},{"style":3510},[11427],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":11429,"children":11430},{"style":3510},[11431],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":11433,"children":11434},{"class":3433,"line":3057},[11435,11440,11444,11448,11453],{"type":3148,"tag":3431,"props":11436,"children":11437},{"style":3576},[11438],{"type":3153,"value":11439},"    loadStrategy",{"type":3148,"tag":3431,"props":11441,"children":11442},{"style":3510},[11443],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":11445,"children":11446},{"style":3510},[11447],{"type":3153,"value":4754},{"type":3148,"tag":3431,"props":11449,"children":11450},{"style":3443},[11451],{"type":3153,"value":11452},"client-only",{"type":3148,"tag":3431,"props":11454,"children":11455},{"style":3510},[11456],{"type":3153,"value":4763},{"type":3148,"tag":3431,"props":11458,"children":11459},{"class":3433,"line":3694},[11460],{"type":3148,"tag":3431,"props":11461,"children":11462},{"style":3510},[11463],{"type":3153,"value":5131},{"type":3148,"tag":3431,"props":11465,"children":11466},{"class":3433,"line":3703},[11467,11471],{"type":3148,"tag":3431,"props":11468,"children":11469},{"style":3510},[11470],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":11472,"children":11473},{"style":3505},[11474],{"type":3153,"value":4873},{"type":3148,"tag":3155,"props":11476,"children":11477},{},[11478,11480,11485,11487,11492,11493,11499],{"type":3153,"value":11479},"When using the ",{"type":3148,"tag":3293,"props":11481,"children":11483},{"className":11482},[],[11484],{"type":3153,"value":11452},{"type":3153,"value":11486}," load strategy, the user session can still be manually fetched on the server side by calling ",{"type":3148,"tag":3293,"props":11488,"children":11490},{"className":11489},[],[11491],{"type":3153,"value":10865},{"type":3153,"value":7378},{"type":3148,"tag":3293,"props":11494,"children":11496},{"className":11495},[],[11497],{"type":3153,"value":11498},"useUserSession",{"type":3153,"value":11500}," composable.",{"type":3148,"tag":3551,"props":11502,"children":11504},{"id":11503},"disable-session-loading",[11505],{"type":3153,"value":11506},"Disable session loading",{"type":3148,"tag":3155,"props":11508,"children":11509},{},[11510,11512,11517,11518,11523],{"type":3153,"value":11511},"You may also choose to disable session loading entirely, with the ",{"type":3148,"tag":3293,"props":11513,"children":11515},{"className":11514},[],[11516],{"type":3153,"value":11378},{"type":3153,"value":11380},{"type":3148,"tag":3293,"props":11519,"children":11521},{"className":11520},[],[11522],{"type":3153,"value":233},{"type":3153,"value":4170},{"type":3148,"tag":3421,"props":11525,"children":11527},{"className":4109,"code":11526,"language":4111,"meta":3021,"style":3021},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'none'\n  }\n})\n",[11528],{"type":3148,"tag":3293,"props":11529,"children":11530},{"__ignoreMap":3021},[11531,11554,11569,11593,11600],{"type":3148,"tag":3431,"props":11532,"children":11533},{"class":3433,"line":3107},[11534,11538,11542,11546,11550],{"type":3148,"tag":3431,"props":11535,"children":11536},{"style":4693},[11537],{"type":3153,"value":5227},{"type":3148,"tag":3431,"props":11539,"children":11540},{"style":4693},[11541],{"type":3153,"value":5342},{"type":3148,"tag":3431,"props":11543,"children":11544},{"style":3667},[11545],{"type":3153,"value":5347},{"type":3148,"tag":3431,"props":11547,"children":11548},{"style":3505},[11549],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":11551,"children":11552},{"style":3510},[11553],{"type":3153,"value":5357},{"type":3148,"tag":3431,"props":11555,"children":11556},{"class":3433,"line":3073},[11557,11561,11565],{"type":3148,"tag":3431,"props":11558,"children":11559},{"style":3576},[11560],{"type":3153,"value":6617},{"type":3148,"tag":3431,"props":11562,"children":11563},{"style":3510},[11564],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":11566,"children":11567},{"style":3510},[11568],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":11570,"children":11571},{"class":3433,"line":3057},[11572,11576,11580,11584,11589],{"type":3148,"tag":3431,"props":11573,"children":11574},{"style":3576},[11575],{"type":3153,"value":11439},{"type":3148,"tag":3431,"props":11577,"children":11578},{"style":3510},[11579],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":11581,"children":11582},{"style":3510},[11583],{"type":3153,"value":4754},{"type":3148,"tag":3431,"props":11585,"children":11586},{"style":3443},[11587],{"type":3153,"value":11588},"none",{"type":3148,"tag":3431,"props":11590,"children":11591},{"style":3510},[11592],{"type":3153,"value":4763},{"type":3148,"tag":3431,"props":11594,"children":11595},{"class":3433,"line":3694},[11596],{"type":3148,"tag":3431,"props":11597,"children":11598},{"style":3510},[11599],{"type":3153,"value":5131},{"type":3148,"tag":3431,"props":11601,"children":11602},{"class":3433,"line":3703},[11603,11607],{"type":3148,"tag":3431,"props":11604,"children":11605},{"style":3510},[11606],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":11608,"children":11609},{"style":3505},[11610],{"type":3153,"value":4873},{"type":3148,"tag":3155,"props":11612,"children":11613},{},[11614,11615,11620,11622,11628],{"type":3153,"value":11479},{"type":3148,"tag":3293,"props":11616,"children":11618},{"className":11617},[],[11619],{"type":3153,"value":11588},{"type":3153,"value":11621}," load strategy, the user session can still be manually fetched by calling ",{"type":3148,"tag":3293,"props":11623,"children":11625},{"className":11624},[],[11626],{"type":3153,"value":11627},"useUserSession().fetch()",{"type":3153,"value":3386},{"type":3148,"tag":3551,"props":11630,"children":11632},{"id":11631},"authstate-component",[11633,11638],{"type":3148,"tag":3293,"props":11634,"children":11636},{"className":11635},[],[11637],{"type":3153,"value":3322},{"type":3153,"value":3324},{"type":3148,"tag":3155,"props":11640,"children":11641},{},[11642,11644,11649],{"type":3153,"value":11643},"You can use the ",{"type":3148,"tag":3293,"props":11645,"children":11647},{"className":11646},[],[11648],{"type":3153,"value":3322},{"type":3153,"value":11650}," component to safely display auth-related data in your components without worrying about the rendering mode.",{"type":3148,"tag":3155,"props":11652,"children":11653},{},[11654],{"type":3153,"value":11655},"One common use case if the Login button in the header:",{"type":3148,"tag":3421,"props":11657,"children":11659},{"className":3559,"code":11658,"language":3561,"meta":3021,"style":3021},"\u003Ctemplate>\n  \u003Cheader>\n    \u003CAuthState v-slot=\"{ loggedIn, clear }\">\n      \u003Cbutton v-if=\"loggedIn\" @click=\"clear\">Logout\u003C\u002Fbutton>\n      \u003CNuxtLink v-else to=\"\u002Flogin\">Login\u003C\u002FNuxtLink>\n    \u003C\u002FAuthState>\n  \u003C\u002Fheader>\n\u003C\u002Ftemplate>\n",[11660],{"type":3148,"tag":3293,"props":11661,"children":11662},{"__ignoreMap":3021},[11663,11678,11694,11732,11804,11863,11879,11894],{"type":3148,"tag":3431,"props":11664,"children":11665},{"class":3433,"line":3107},[11666,11670,11674],{"type":3148,"tag":3431,"props":11667,"children":11668},{"style":3510},[11669],{"type":3153,"value":3573},{"type":3148,"tag":3431,"props":11671,"children":11672},{"style":3576},[11673],{"type":3153,"value":3713},{"type":3148,"tag":3431,"props":11675,"children":11676},{"style":3510},[11677],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":11679,"children":11680},{"class":3433,"line":3073},[11681,11685,11690],{"type":3148,"tag":3431,"props":11682,"children":11683},{"style":3510},[11684],{"type":3153,"value":3726},{"type":3148,"tag":3431,"props":11686,"children":11687},{"style":3576},[11688],{"type":3153,"value":11689},"header",{"type":3148,"tag":3431,"props":11691,"children":11692},{"style":3510},[11693],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":11695,"children":11696},{"class":3433,"line":3057},[11697,11701,11706,11711,11715,11719,11724,11728],{"type":3148,"tag":3431,"props":11698,"children":11699},{"style":3510},[11700],{"type":3153,"value":3766},{"type":3148,"tag":3431,"props":11702,"children":11703},{"style":3576},[11704],{"type":3153,"value":11705},"AuthState",{"type":3148,"tag":3431,"props":11707,"children":11708},{"style":3582},[11709],{"type":3153,"value":11710}," v-slot",{"type":3148,"tag":3431,"props":11712,"children":11713},{"style":3510},[11714],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":11716,"children":11717},{"style":3510},[11718],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":11720,"children":11721},{"style":3443},[11722],{"type":3153,"value":11723},"{ loggedIn, clear }",{"type":3148,"tag":3431,"props":11725,"children":11726},{"style":3510},[11727],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":11729,"children":11730},{"style":3510},[11731],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":11733,"children":11734},{"class":3433,"line":3694},[11735,11740,11744,11748,11752,11756,11760,11764,11768,11772,11776,11780,11784,11788,11792,11796,11800],{"type":3148,"tag":3431,"props":11736,"children":11737},{"style":3510},[11738],{"type":3153,"value":11739},"      \u003C",{"type":3148,"tag":3431,"props":11741,"children":11742},{"style":3576},[11743],{"type":3153,"value":3836},{"type":3148,"tag":3431,"props":11745,"children":11746},{"style":3582},[11747],{"type":3153,"value":3736},{"type":3148,"tag":3431,"props":11749,"children":11750},{"style":3510},[11751],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":11753,"children":11754},{"style":3510},[11755],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":11757,"children":11758},{"style":3443},[11759],{"type":3153,"value":3750},{"type":3148,"tag":3431,"props":11761,"children":11762},{"style":3510},[11763],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":11765,"children":11766},{"style":3582},[11767],{"type":3153,"value":3841},{"type":3148,"tag":3431,"props":11769,"children":11770},{"style":3510},[11771],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":11773,"children":11774},{"style":3510},[11775],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":11777,"children":11778},{"style":3443},[11779],{"type":3153,"value":3854},{"type":3148,"tag":3431,"props":11781,"children":11782},{"style":3510},[11783],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":11785,"children":11786},{"style":3510},[11787],{"type":3153,"value":3775},{"type":3148,"tag":3431,"props":11789,"children":11790},{"style":3505},[11791],{"type":3153,"value":3867},{"type":3148,"tag":3431,"props":11793,"children":11794},{"style":3510},[11795],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":11797,"children":11798},{"style":3576},[11799],{"type":3153,"value":3836},{"type":3148,"tag":3431,"props":11801,"children":11802},{"style":3510},[11803],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":11805,"children":11806},{"class":3433,"line":3703},[11807,11811,11816,11820,11825,11829,11833,11838,11842,11846,11851,11855,11859],{"type":3148,"tag":3431,"props":11808,"children":11809},{"style":3510},[11810],{"type":3153,"value":11739},{"type":3148,"tag":3431,"props":11812,"children":11813},{"style":3576},[11814],{"type":3153,"value":11815},"NuxtLink",{"type":3148,"tag":3431,"props":11817,"children":11818},{"style":3582},[11819],{"type":3153,"value":3912},{"type":3148,"tag":3431,"props":11821,"children":11822},{"style":3582},[11823],{"type":3153,"value":11824}," to",{"type":3148,"tag":3431,"props":11826,"children":11827},{"style":3510},[11828],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":11830,"children":11831},{"style":3510},[11832],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":11834,"children":11835},{"style":3443},[11836],{"type":3153,"value":11837},"\u002Flogin",{"type":3148,"tag":3431,"props":11839,"children":11840},{"style":3510},[11841],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":11843,"children":11844},{"style":3510},[11845],{"type":3153,"value":3775},{"type":3148,"tag":3431,"props":11847,"children":11848},{"style":3505},[11849],{"type":3153,"value":11850},"Login",{"type":3148,"tag":3431,"props":11852,"children":11853},{"style":3510},[11854],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":11856,"children":11857},{"style":3576},[11858],{"type":3153,"value":11815},{"type":3148,"tag":3431,"props":11860,"children":11861},{"style":3510},[11862],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":11864,"children":11865},{"class":3433,"line":3720},[11866,11871,11875],{"type":3148,"tag":3431,"props":11867,"children":11868},{"style":3510},[11869],{"type":3153,"value":11870},"    \u003C\u002F",{"type":3148,"tag":3431,"props":11872,"children":11873},{"style":3576},[11874],{"type":3153,"value":11705},{"type":3148,"tag":3431,"props":11876,"children":11877},{"style":3510},[11878],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":11880,"children":11881},{"class":3433,"line":3053},[11882,11886,11890],{"type":3148,"tag":3431,"props":11883,"children":11884},{"style":3510},[11885],{"type":3153,"value":3888},{"type":3148,"tag":3431,"props":11887,"children":11888},{"style":3576},[11889],{"type":3153,"value":11689},{"type":3148,"tag":3431,"props":11891,"children":11892},{"style":3510},[11893],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":11895,"children":11896},{"class":3433,"line":3049},[11897,11901,11905],{"type":3148,"tag":3431,"props":11898,"children":11899},{"style":3510},[11900],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":11902,"children":11903},{"style":3576},[11904],{"type":3153,"value":3713},{"type":3148,"tag":3431,"props":11906,"children":11907},{"style":3510},[11908],{"type":3153,"value":3590},{"type":3148,"tag":3155,"props":11910,"children":11911},{},[11912,11914,11919],{"type":3153,"value":11913},"If the page is cached or prerendered or the load strategy set as ",{"type":3148,"tag":3293,"props":11915,"children":11917},{"className":11916},[],[11918],{"type":3153,"value":11452},{"type":3153,"value":11920},", nothing will be rendered until the user session is fetched on the client-side.",{"type":3148,"tag":3155,"props":11922,"children":11923},{},[11924,11925,11931],{"type":3153,"value":11643},{"type":3148,"tag":3293,"props":11926,"children":11928},{"className":11927},[],[11929],{"type":3153,"value":11930},"placeholder",{"type":3153,"value":11932}," slot to show a placeholder on server-side and while the user session is being fetched on client-side for the prerendered pages:",{"type":3148,"tag":3421,"props":11934,"children":11936},{"className":3559,"code":11935,"language":3561,"meta":3021,"style":3021},"\u003Ctemplate>\n  \u003Cheader>\n    \u003CAuthState>\n      \u003Ctemplate #default=\"{ loggedIn, clear }\">\n        \u003Cbutton v-if=\"loggedIn\" @click=\"clear\">Logout\u003C\u002Fbutton>\n        \u003CNuxtLink v-else to=\"\u002Flogin\">Login\u003C\u002FNuxtLink>\n      \u003C\u002Ftemplate>\n      \u003Ctemplate #placeholder>\n        \u003Cbutton disabled>Loading...\u003C\u002Fbutton>\n      \u003C\u002Ftemplate>\n    \u003C\u002FAuthState>\n  \u003C\u002Fheader>\n\u003C\u002Ftemplate>\n",[11937],{"type":3148,"tag":3293,"props":11938,"children":11939},{"__ignoreMap":3021},[11940,11955,11970,11985,12043,12115,12170,12186,12209,12246,12261,12276,12291],{"type":3148,"tag":3431,"props":11941,"children":11942},{"class":3433,"line":3107},[11943,11947,11951],{"type":3148,"tag":3431,"props":11944,"children":11945},{"style":3510},[11946],{"type":3153,"value":3573},{"type":3148,"tag":3431,"props":11948,"children":11949},{"style":3576},[11950],{"type":3153,"value":3713},{"type":3148,"tag":3431,"props":11952,"children":11953},{"style":3510},[11954],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":11956,"children":11957},{"class":3433,"line":3073},[11958,11962,11966],{"type":3148,"tag":3431,"props":11959,"children":11960},{"style":3510},[11961],{"type":3153,"value":3726},{"type":3148,"tag":3431,"props":11963,"children":11964},{"style":3576},[11965],{"type":3153,"value":11689},{"type":3148,"tag":3431,"props":11967,"children":11968},{"style":3510},[11969],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":11971,"children":11972},{"class":3433,"line":3057},[11973,11977,11981],{"type":3148,"tag":3431,"props":11974,"children":11975},{"style":3510},[11976],{"type":3153,"value":3766},{"type":3148,"tag":3431,"props":11978,"children":11979},{"style":3576},[11980],{"type":3153,"value":11705},{"type":3148,"tag":3431,"props":11982,"children":11983},{"style":3510},[11984],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":11986,"children":11987},{"class":3433,"line":3694},[11988,11992,11996,12001,12006,12010,12014,12018,12022,12026,12031,12035,12039],{"type":3148,"tag":3431,"props":11989,"children":11990},{"style":3510},[11991],{"type":3153,"value":11739},{"type":3148,"tag":3431,"props":11993,"children":11994},{"style":3576},[11995],{"type":3153,"value":3713},{"type":3148,"tag":3431,"props":11997,"children":11998},{"style":3510},[11999],{"type":3153,"value":12000}," #",{"type":3148,"tag":3431,"props":12002,"children":12003},{"style":3582},[12004],{"type":3153,"value":12005},"default",{"type":3148,"tag":3431,"props":12007,"children":12008},{"style":3510},[12009],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":12011,"children":12012},{"style":3510},[12013],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":12015,"children":12016},{"style":3510},[12017],{"type":3153,"value":7802},{"type":3148,"tag":3431,"props":12019,"children":12020},{"style":3505},[12021],{"type":3153,"value":3608},{"type":3148,"tag":3431,"props":12023,"children":12024},{"style":3510},[12025],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":12027,"children":12028},{"style":3505},[12029],{"type":3153,"value":12030}," clear ",{"type":3148,"tag":3431,"props":12032,"children":12033},{"style":3510},[12034],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":12036,"children":12037},{"style":3510},[12038],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":12040,"children":12041},{"style":3510},[12042],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":12044,"children":12045},{"class":3433,"line":3703},[12046,12051,12055,12059,12063,12067,12071,12075,12079,12083,12087,12091,12095,12099,12103,12107,12111],{"type":3148,"tag":3431,"props":12047,"children":12048},{"style":3510},[12049],{"type":3153,"value":12050},"        \u003C",{"type":3148,"tag":3431,"props":12052,"children":12053},{"style":3576},[12054],{"type":3153,"value":3836},{"type":3148,"tag":3431,"props":12056,"children":12057},{"style":3582},[12058],{"type":3153,"value":3736},{"type":3148,"tag":3431,"props":12060,"children":12061},{"style":3510},[12062],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":12064,"children":12065},{"style":3510},[12066],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":12068,"children":12069},{"style":3443},[12070],{"type":3153,"value":3750},{"type":3148,"tag":3431,"props":12072,"children":12073},{"style":3510},[12074],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":12076,"children":12077},{"style":3582},[12078],{"type":3153,"value":3841},{"type":3148,"tag":3431,"props":12080,"children":12081},{"style":3510},[12082],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":12084,"children":12085},{"style":3510},[12086],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":12088,"children":12089},{"style":3443},[12090],{"type":3153,"value":3854},{"type":3148,"tag":3431,"props":12092,"children":12093},{"style":3510},[12094],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":12096,"children":12097},{"style":3510},[12098],{"type":3153,"value":3775},{"type":3148,"tag":3431,"props":12100,"children":12101},{"style":3505},[12102],{"type":3153,"value":3867},{"type":3148,"tag":3431,"props":12104,"children":12105},{"style":3510},[12106],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":12108,"children":12109},{"style":3576},[12110],{"type":3153,"value":3836},{"type":3148,"tag":3431,"props":12112,"children":12113},{"style":3510},[12114],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":12116,"children":12117},{"class":3433,"line":3720},[12118,12122,12126,12130,12134,12138,12142,12146,12150,12154,12158,12162,12166],{"type":3148,"tag":3431,"props":12119,"children":12120},{"style":3510},[12121],{"type":3153,"value":12050},{"type":3148,"tag":3431,"props":12123,"children":12124},{"style":3576},[12125],{"type":3153,"value":11815},{"type":3148,"tag":3431,"props":12127,"children":12128},{"style":3582},[12129],{"type":3153,"value":3912},{"type":3148,"tag":3431,"props":12131,"children":12132},{"style":3582},[12133],{"type":3153,"value":11824},{"type":3148,"tag":3431,"props":12135,"children":12136},{"style":3510},[12137],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":12139,"children":12140},{"style":3510},[12141],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":12143,"children":12144},{"style":3443},[12145],{"type":3153,"value":11837},{"type":3148,"tag":3431,"props":12147,"children":12148},{"style":3510},[12149],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":12151,"children":12152},{"style":3510},[12153],{"type":3153,"value":3775},{"type":3148,"tag":3431,"props":12155,"children":12156},{"style":3505},[12157],{"type":3153,"value":11850},{"type":3148,"tag":3431,"props":12159,"children":12160},{"style":3510},[12161],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":12163,"children":12164},{"style":3576},[12165],{"type":3153,"value":11815},{"type":3148,"tag":3431,"props":12167,"children":12168},{"style":3510},[12169],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":12171,"children":12172},{"class":3433,"line":3053},[12173,12178,12182],{"type":3148,"tag":3431,"props":12174,"children":12175},{"style":3510},[12176],{"type":3153,"value":12177},"      \u003C\u002F",{"type":3148,"tag":3431,"props":12179,"children":12180},{"style":3576},[12181],{"type":3153,"value":3713},{"type":3148,"tag":3431,"props":12183,"children":12184},{"style":3510},[12185],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":12187,"children":12188},{"class":3433,"line":3049},[12189,12193,12197,12201,12205],{"type":3148,"tag":3431,"props":12190,"children":12191},{"style":3510},[12192],{"type":3153,"value":11739},{"type":3148,"tag":3431,"props":12194,"children":12195},{"style":3576},[12196],{"type":3153,"value":3713},{"type":3148,"tag":3431,"props":12198,"children":12199},{"style":3510},[12200],{"type":3153,"value":12000},{"type":3148,"tag":3431,"props":12202,"children":12203},{"style":3582},[12204],{"type":3153,"value":11930},{"type":3148,"tag":3431,"props":12206,"children":12207},{"style":3510},[12208],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":12210,"children":12211},{"class":3433,"line":3045},[12212,12216,12220,12225,12229,12234,12238,12242],{"type":3148,"tag":3431,"props":12213,"children":12214},{"style":3510},[12215],{"type":3153,"value":12050},{"type":3148,"tag":3431,"props":12217,"children":12218},{"style":3576},[12219],{"type":3153,"value":3836},{"type":3148,"tag":3431,"props":12221,"children":12222},{"style":3582},[12223],{"type":3153,"value":12224}," disabled",{"type":3148,"tag":3431,"props":12226,"children":12227},{"style":3510},[12228],{"type":3153,"value":3775},{"type":3148,"tag":3431,"props":12230,"children":12231},{"style":3505},[12232],{"type":3153,"value":12233},"Loading...",{"type":3148,"tag":3431,"props":12235,"children":12236},{"style":3510},[12237],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":12239,"children":12240},{"style":3576},[12241],{"type":3153,"value":3836},{"type":3148,"tag":3431,"props":12243,"children":12244},{"style":3510},[12245],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":12247,"children":12248},{"class":3433,"line":3882},[12249,12253,12257],{"type":3148,"tag":3431,"props":12250,"children":12251},{"style":3510},[12252],{"type":3153,"value":12177},{"type":3148,"tag":3431,"props":12254,"children":12255},{"style":3576},[12256],{"type":3153,"value":3713},{"type":3148,"tag":3431,"props":12258,"children":12259},{"style":3510},[12260],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":12262,"children":12263},{"class":3433,"line":3136},[12264,12268,12272],{"type":3148,"tag":3431,"props":12265,"children":12266},{"style":3510},[12267],{"type":3153,"value":11870},{"type":3148,"tag":3431,"props":12269,"children":12270},{"style":3576},[12271],{"type":3153,"value":11705},{"type":3148,"tag":3431,"props":12273,"children":12274},{"style":3510},[12275],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":12277,"children":12278},{"class":3433,"line":3919},[12279,12283,12287],{"type":3148,"tag":3431,"props":12280,"children":12281},{"style":3510},[12282],{"type":3153,"value":3888},{"type":3148,"tag":3431,"props":12284,"children":12285},{"style":3576},[12286],{"type":3153,"value":11689},{"type":3148,"tag":3431,"props":12288,"children":12289},{"style":3510},[12290],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":12292,"children":12293},{"class":3433,"line":3952},[12294,12298,12302],{"type":3148,"tag":3431,"props":12295,"children":12296},{"style":3510},[12297],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":12299,"children":12300},{"style":3576},[12301],{"type":3153,"value":3713},{"type":3148,"tag":3431,"props":12303,"children":12304},{"style":3510},[12305],{"type":3153,"value":3590},{"type":3148,"tag":3155,"props":12307,"children":12308},{},[12309,12311,12316,12318,12324,12326,12332],{"type":3153,"value":12310},"If you are caching your routes with ",{"type":3148,"tag":3293,"props":12312,"children":12314},{"className":12313},[],[12315],{"type":3153,"value":11352},{"type":3153,"value":12317},", please make sure to use ",{"type":3148,"tag":3159,"props":12319,"children":12322},{"href":12320,"rel":12321},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fnitro",[3163],[12323],{"type":3153,"value":837},{"type":3153,"value":12325}," >= ",{"type":3148,"tag":3293,"props":12327,"children":12329},{"className":12328},[],[12330],{"type":3153,"value":12331},"2.9.7",{"type":3153,"value":12333}," to support the client-side fetching of the user session.",{"type":3148,"tag":3239,"props":12335,"children":12337},{"id":12336},"websocket-support",[12338],{"type":3153,"value":12339},"WebSocket Support",{"type":3148,"tag":3155,"props":12341,"children":12342},{},[12343,12345,12352],{"type":3153,"value":12344},"Nuxt Auth Utils is compatible with ",{"type":3148,"tag":3159,"props":12346,"children":12349},{"href":12347,"rel":12348},"https:\u002F\u002Fnitro.build\u002Fguide\u002Fwebsocket",[3163],[12350],{"type":3153,"value":12351},"Nitro WebSockets",{"type":3153,"value":3386},{"type":3148,"tag":3155,"props":12354,"children":12355},{},[12356,12358,12364,12365,12370],{"type":3153,"value":12357},"Make sure to enable the ",{"type":3148,"tag":3293,"props":12359,"children":12361},{"className":12360},[],[12362],{"type":3153,"value":12363},"experimental.websocket",{"type":3153,"value":11380},{"type":3148,"tag":3293,"props":12366,"children":12368},{"className":12367},[],[12369],{"type":3153,"value":233},{"type":3153,"value":4170},{"type":3148,"tag":3421,"props":12372,"children":12374},{"className":4109,"code":12373,"language":4111,"meta":3021,"style":3021},"export default defineNuxtConfig({\n  nitro: {\n    experimental: {\n      websocket: true\n    }\n  }\n})\n",[12375],{"type":3148,"tag":3293,"props":12376,"children":12377},{"__ignoreMap":3021},[12378,12401,12417,12433,12449,12456,12463],{"type":3148,"tag":3431,"props":12379,"children":12380},{"class":3433,"line":3107},[12381,12385,12389,12393,12397],{"type":3148,"tag":3431,"props":12382,"children":12383},{"style":4693},[12384],{"type":3153,"value":5227},{"type":3148,"tag":3431,"props":12386,"children":12387},{"style":4693},[12388],{"type":3153,"value":5342},{"type":3148,"tag":3431,"props":12390,"children":12391},{"style":3667},[12392],{"type":3153,"value":5347},{"type":3148,"tag":3431,"props":12394,"children":12395},{"style":3505},[12396],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":12398,"children":12399},{"style":3510},[12400],{"type":3153,"value":5357},{"type":3148,"tag":3431,"props":12402,"children":12403},{"class":3433,"line":3073},[12404,12409,12413],{"type":3148,"tag":3431,"props":12405,"children":12406},{"style":3576},[12407],{"type":3153,"value":12408},"  nitro",{"type":3148,"tag":3431,"props":12410,"children":12411},{"style":3510},[12412],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":12414,"children":12415},{"style":3510},[12416],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":12418,"children":12419},{"class":3433,"line":3057},[12420,12425,12429],{"type":3148,"tag":3431,"props":12421,"children":12422},{"style":3576},[12423],{"type":3153,"value":12424},"    experimental",{"type":3148,"tag":3431,"props":12426,"children":12427},{"style":3510},[12428],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":12430,"children":12431},{"style":3510},[12432],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":12434,"children":12435},{"class":3433,"line":3694},[12436,12441,12445],{"type":3148,"tag":3431,"props":12437,"children":12438},{"style":3576},[12439],{"type":3153,"value":12440},"      websocket",{"type":3148,"tag":3431,"props":12442,"children":12443},{"style":3510},[12444],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":12446,"children":12447},{"style":5877},[12448],{"type":3153,"value":5880},{"type":3148,"tag":3431,"props":12450,"children":12451},{"class":3433,"line":3703},[12452],{"type":3148,"tag":3431,"props":12453,"children":12454},{"style":3510},[12455],{"type":3153,"value":5483},{"type":3148,"tag":3431,"props":12457,"children":12458},{"class":3433,"line":3720},[12459],{"type":3148,"tag":3431,"props":12460,"children":12461},{"style":3510},[12462],{"type":3153,"value":5131},{"type":3148,"tag":3431,"props":12464,"children":12465},{"class":3433,"line":3053},[12466,12470],{"type":3148,"tag":3431,"props":12467,"children":12468},{"style":3510},[12469],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":12471,"children":12472},{"style":3505},[12473],{"type":3153,"value":4873},{"type":3148,"tag":3155,"props":12475,"children":12476},{},[12477,12478,12484,12486,12492],{"type":3153,"value":11643},{"type":3148,"tag":3293,"props":12479,"children":12481},{"className":12480},[],[12482],{"type":3153,"value":12483},"requireUserSession",{"type":3153,"value":12485}," function in the ",{"type":3148,"tag":3293,"props":12487,"children":12489},{"className":12488},[],[12490],{"type":3153,"value":12491},"upgrade",{"type":3153,"value":12493}," function to check if the user is authenticated before upgrading the WebSocket connection.",{"type":3148,"tag":3421,"props":12495,"children":12497},{"className":4109,"code":12496,"language":4111,"meta":3021,"style":3021},"\u002F\u002F server\u002Froutes\u002Fws.ts\nexport default defineWebSocketHandler({\n  async upgrade(request) {\n    \u002F\u002F Make sure the user is authenticated before upgrading the WebSocket connection\n    await requireUserSession(request)\n  },\n  async open(peer) {\n    const { user } = await requireUserSession(peer)\n\n    peer.send(`Hello, ${user.name}!`)\n  },\n  message(peer, message) {\n    peer.send(`Echo: ${message}`)\n  },\n})\n",[12498],{"type":3148,"tag":3293,"props":12499,"children":12500},{"__ignoreMap":3021},[12501,12509,12533,12562,12570,12593,12600,12629,12672,12679,12742,12749,12781,12826,12833],{"type":3148,"tag":3431,"props":12502,"children":12503},{"class":3433,"line":3107},[12504],{"type":3148,"tag":3431,"props":12505,"children":12506},{"style":3496},[12507],{"type":3153,"value":12508},"\u002F\u002F server\u002Froutes\u002Fws.ts\n",{"type":3148,"tag":3431,"props":12510,"children":12511},{"class":3433,"line":3073},[12512,12516,12520,12525,12529],{"type":3148,"tag":3431,"props":12513,"children":12514},{"style":4693},[12515],{"type":3153,"value":5227},{"type":3148,"tag":3431,"props":12517,"children":12518},{"style":4693},[12519],{"type":3153,"value":5342},{"type":3148,"tag":3431,"props":12521,"children":12522},{"style":3667},[12523],{"type":3153,"value":12524}," defineWebSocketHandler",{"type":3148,"tag":3431,"props":12526,"children":12527},{"style":3505},[12528],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":12530,"children":12531},{"style":3510},[12532],{"type":3153,"value":5357},{"type":3148,"tag":3431,"props":12534,"children":12535},{"class":3433,"line":3057},[12536,12540,12545,12549,12554,12558],{"type":3148,"tag":3431,"props":12537,"children":12538},{"style":3582},[12539],{"type":3153,"value":5895},{"type":3148,"tag":3431,"props":12541,"children":12542},{"style":3576},[12543],{"type":3153,"value":12544}," upgrade",{"type":3148,"tag":3431,"props":12546,"children":12547},{"style":3510},[12548],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":12550,"children":12551},{"style":4525},[12552],{"type":3153,"value":12553},"request",{"type":3148,"tag":3431,"props":12555,"children":12556},{"style":3510},[12557],{"type":3153,"value":6113},{"type":3148,"tag":3431,"props":12559,"children":12560},{"style":3510},[12561],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":12563,"children":12564},{"class":3433,"line":3694},[12565],{"type":3148,"tag":3431,"props":12566,"children":12567},{"style":3496},[12568],{"type":3153,"value":12569},"    \u002F\u002F Make sure the user is authenticated before upgrading the WebSocket connection\n",{"type":3148,"tag":3431,"props":12571,"children":12572},{"class":3433,"line":3703},[12573,12577,12581,12585,12589],{"type":3148,"tag":3431,"props":12574,"children":12575},{"style":4693},[12576],{"type":3153,"value":5946},{"type":3148,"tag":3431,"props":12578,"children":12579},{"style":3667},[12580],{"type":3153,"value":5029},{"type":3148,"tag":3431,"props":12582,"children":12583},{"style":3576},[12584],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":12586,"children":12587},{"style":3505},[12588],{"type":3153,"value":12553},{"type":3148,"tag":3431,"props":12590,"children":12591},{"style":3576},[12592],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":12594,"children":12595},{"class":3433,"line":3720},[12596],{"type":3148,"tag":3431,"props":12597,"children":12598},{"style":3510},[12599],{"type":3153,"value":4771},{"type":3148,"tag":3431,"props":12601,"children":12602},{"class":3433,"line":3053},[12603,12607,12612,12616,12621,12625],{"type":3148,"tag":3431,"props":12604,"children":12605},{"style":3582},[12606],{"type":3153,"value":5895},{"type":3148,"tag":3431,"props":12608,"children":12609},{"style":3576},[12610],{"type":3153,"value":12611}," open",{"type":3148,"tag":3431,"props":12613,"children":12614},{"style":3510},[12615],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":12617,"children":12618},{"style":4525},[12619],{"type":3153,"value":12620},"peer",{"type":3148,"tag":3431,"props":12622,"children":12623},{"style":3510},[12624],{"type":3153,"value":6113},{"type":3148,"tag":3431,"props":12626,"children":12627},{"style":3510},[12628],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":12630,"children":12631},{"class":3433,"line":3049},[12632,12636,12640,12644,12648,12652,12656,12660,12664,12668],{"type":3148,"tag":3431,"props":12633,"children":12634},{"style":3582},[12635],{"type":3153,"value":7663},{"type":3148,"tag":3431,"props":12637,"children":12638},{"style":3510},[12639],{"type":3153,"value":3603},{"type":3148,"tag":3431,"props":12641,"children":12642},{"style":3505},[12643],{"type":3153,"value":3618},{"type":3148,"tag":3431,"props":12645,"children":12646},{"style":3510},[12647],{"type":3153,"value":7543},{"type":3148,"tag":3431,"props":12649,"children":12650},{"style":3510},[12651],{"type":3153,"value":3664},{"type":3148,"tag":3431,"props":12653,"children":12654},{"style":4693},[12655],{"type":3153,"value":4949},{"type":3148,"tag":3431,"props":12657,"children":12658},{"style":3667},[12659],{"type":3153,"value":5029},{"type":3148,"tag":3431,"props":12661,"children":12662},{"style":3576},[12663],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":12665,"children":12666},{"style":3505},[12667],{"type":3153,"value":12620},{"type":3148,"tag":3431,"props":12669,"children":12670},{"style":3576},[12671],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":12673,"children":12674},{"class":3433,"line":3045},[12675],{"type":3148,"tag":3431,"props":12676,"children":12677},{"emptyLinePlaceholder":1200},[12678],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":12680,"children":12681},{"class":3433,"line":3882},[12682,12687,12691,12696,12700,12704,12709,12713,12717,12721,12726,12730,12734,12738],{"type":3148,"tag":3431,"props":12683,"children":12684},{"style":3505},[12685],{"type":3153,"value":12686},"    peer",{"type":3148,"tag":3431,"props":12688,"children":12689},{"style":3510},[12690],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":12692,"children":12693},{"style":3667},[12694],{"type":3153,"value":12695},"send",{"type":3148,"tag":3431,"props":12697,"children":12698},{"style":3576},[12699],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":12701,"children":12702},{"style":3510},[12703],{"type":3153,"value":8131},{"type":3148,"tag":3431,"props":12705,"children":12706},{"style":3443},[12707],{"type":3153,"value":12708},"Hello, ",{"type":3148,"tag":3431,"props":12710,"children":12711},{"style":3510},[12712],{"type":3153,"value":9470},{"type":3148,"tag":3431,"props":12714,"children":12715},{"style":3505},[12716],{"type":3153,"value":7717},{"type":3148,"tag":3431,"props":12718,"children":12719},{"style":3510},[12720],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":12722,"children":12723},{"style":3505},[12724],{"type":3153,"value":12725},"name",{"type":3148,"tag":3431,"props":12727,"children":12728},{"style":3510},[12729],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":12731,"children":12732},{"style":3443},[12733],{"type":3153,"value":8156},{"type":3148,"tag":3431,"props":12735,"children":12736},{"style":3510},[12737],{"type":3153,"value":8131},{"type":3148,"tag":3431,"props":12739,"children":12740},{"style":3576},[12741],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":12743,"children":12744},{"class":3433,"line":3136},[12745],{"type":3148,"tag":3431,"props":12746,"children":12747},{"style":3510},[12748],{"type":3153,"value":4771},{"type":3148,"tag":3431,"props":12750,"children":12751},{"class":3433,"line":3919},[12752,12757,12761,12765,12769,12773,12777],{"type":3148,"tag":3431,"props":12753,"children":12754},{"style":3576},[12755],{"type":3153,"value":12756},"  message",{"type":3148,"tag":3431,"props":12758,"children":12759},{"style":3510},[12760],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":12762,"children":12763},{"style":4525},[12764],{"type":3153,"value":12620},{"type":3148,"tag":3431,"props":12766,"children":12767},{"style":3510},[12768],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":12770,"children":12771},{"style":4525},[12772],{"type":3153,"value":7825},{"type":3148,"tag":3431,"props":12774,"children":12775},{"style":3510},[12776],{"type":3153,"value":6113},{"type":3148,"tag":3431,"props":12778,"children":12779},{"style":3510},[12780],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":12782,"children":12783},{"class":3433,"line":3952},[12784,12788,12792,12796,12800,12804,12809,12813,12818,12822],{"type":3148,"tag":3431,"props":12785,"children":12786},{"style":3505},[12787],{"type":3153,"value":12686},{"type":3148,"tag":3431,"props":12789,"children":12790},{"style":3510},[12791],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":12793,"children":12794},{"style":3667},[12795],{"type":3153,"value":12695},{"type":3148,"tag":3431,"props":12797,"children":12798},{"style":3576},[12799],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":12801,"children":12802},{"style":3510},[12803],{"type":3153,"value":8131},{"type":3148,"tag":3431,"props":12805,"children":12806},{"style":3443},[12807],{"type":3153,"value":12808},"Echo: ",{"type":3148,"tag":3431,"props":12810,"children":12811},{"style":3510},[12812],{"type":3153,"value":9470},{"type":3148,"tag":3431,"props":12814,"children":12815},{"style":3505},[12816],{"type":3153,"value":12817},"message",{"type":3148,"tag":3431,"props":12819,"children":12820},{"style":3510},[12821],{"type":3153,"value":9480},{"type":3148,"tag":3431,"props":12823,"children":12824},{"style":3576},[12825],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":12827,"children":12828},{"class":3433,"line":4007},[12829],{"type":3148,"tag":3431,"props":12830,"children":12831},{"style":3510},[12832],{"type":3153,"value":4771},{"type":3148,"tag":3431,"props":12834,"children":12835},{"class":3433,"line":4016},[12836,12840],{"type":3148,"tag":3431,"props":12837,"children":12838},{"style":3510},[12839],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":12841,"children":12842},{"style":3505},[12843],{"type":3153,"value":4873},{"type":3148,"tag":3155,"props":12845,"children":12846},{},[12847,12849,12856],{"type":3153,"value":12848},"Then, in your application, you can use the ",{"type":3148,"tag":3159,"props":12850,"children":12853},{"href":12851,"rel":12852},"https:\u002F\u002Fvueuse.org\u002Fcore\u002FuseWebSocket\u002F",[3163],[12854],{"type":3153,"value":12855},"useWebSocket",{"type":3153,"value":12857}," composable to connect to the WebSocket:",{"type":3148,"tag":3421,"props":12859,"children":12861},{"className":3559,"code":12860,"language":3561,"meta":3021,"style":3021},"\u003Cscript setup>\nconst { status, data, send, open, close } = useWebSocket('\u002Fws', { immediate: false })\n\n\u002F\u002F Only open the websocket after the page is hydrated (client-only)\nonMounted(open)\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv>\n    \u003Cp>Status: {{ status }}\u003C\u002Fp>\n    \u003Cp>Data: {{ data }}\u003C\u002Fp>\n    \u003Cp>\n      \u003Cbutton @click=\"open\">Open\u003C\u002Fbutton>\n      \u003Cbutton @click=\"close(1000, 'Closing')\">Close\u003C\u002Fbutton>\n      \u003Cbutton @click=\"send('hello')\">Send hello\u003C\u002Fbutton>\n    \u003C\u002Fp>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n",[12862],{"type":3148,"tag":3293,"props":12863,"children":12864},{"__ignoreMap":3021},[12865,12884,12995,13002,13010,13023,13038,13045,13060,13075,13107,13139,13154,13207,13260,13313,13328,13343],{"type":3148,"tag":3431,"props":12866,"children":12867},{"class":3433,"line":3107},[12868,12872,12876,12880],{"type":3148,"tag":3431,"props":12869,"children":12870},{"style":3510},[12871],{"type":3153,"value":3573},{"type":3148,"tag":3431,"props":12873,"children":12874},{"style":3576},[12875],{"type":3153,"value":3579},{"type":3148,"tag":3431,"props":12877,"children":12878},{"style":3582},[12879],{"type":3153,"value":3585},{"type":3148,"tag":3431,"props":12881,"children":12882},{"style":3510},[12883],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":12885,"children":12886},{"class":3433,"line":3073},[12887,12891,12895,12900,12904,12909,12913,12918,12922,12926,12930,12935,12939,12943,12948,12952,12956,12961,12965,12969,12973,12978,12982,12987,12991],{"type":3148,"tag":3431,"props":12888,"children":12889},{"style":3582},[12890],{"type":3153,"value":3598},{"type":3148,"tag":3431,"props":12892,"children":12893},{"style":3510},[12894],{"type":3153,"value":3603},{"type":3148,"tag":3431,"props":12896,"children":12897},{"style":3505},[12898],{"type":3153,"value":12899}," status",{"type":3148,"tag":3431,"props":12901,"children":12902},{"style":3510},[12903],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":12905,"children":12906},{"style":3505},[12907],{"type":3153,"value":12908}," data",{"type":3148,"tag":3431,"props":12910,"children":12911},{"style":3510},[12912],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":12914,"children":12915},{"style":3505},[12916],{"type":3153,"value":12917}," send",{"type":3148,"tag":3431,"props":12919,"children":12920},{"style":3510},[12921],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":12923,"children":12924},{"style":3505},[12925],{"type":3153,"value":12611},{"type":3148,"tag":3431,"props":12927,"children":12928},{"style":3510},[12929],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":12931,"children":12932},{"style":3505},[12933],{"type":3153,"value":12934}," close ",{"type":3148,"tag":3431,"props":12936,"children":12937},{"style":3510},[12938],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":12940,"children":12941},{"style":3510},[12942],{"type":3153,"value":3664},{"type":3148,"tag":3431,"props":12944,"children":12945},{"style":3667},[12946],{"type":3153,"value":12947}," useWebSocket",{"type":3148,"tag":3431,"props":12949,"children":12950},{"style":3505},[12951],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":12953,"children":12954},{"style":3510},[12955],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":12957,"children":12958},{"style":3443},[12959],{"type":3153,"value":12960},"\u002Fws",{"type":3148,"tag":3431,"props":12962,"children":12963},{"style":3510},[12964],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":12966,"children":12967},{"style":3510},[12968],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":12970,"children":12971},{"style":3510},[12972],{"type":3153,"value":3603},{"type":3148,"tag":3431,"props":12974,"children":12975},{"style":3576},[12976],{"type":3153,"value":12977}," immediate",{"type":3148,"tag":3431,"props":12979,"children":12980},{"style":3510},[12981],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":12983,"children":12984},{"style":5877},[12985],{"type":3153,"value":12986}," false",{"type":3148,"tag":3431,"props":12988,"children":12989},{"style":3510},[12990],{"type":3153,"value":7543},{"type":3148,"tag":3431,"props":12992,"children":12993},{"style":3505},[12994],{"type":3153,"value":4873},{"type":3148,"tag":3431,"props":12996,"children":12997},{"class":3433,"line":3057},[12998],{"type":3148,"tag":3431,"props":12999,"children":13000},{"emptyLinePlaceholder":1200},[13001],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":13003,"children":13004},{"class":3433,"line":3694},[13005],{"type":3148,"tag":3431,"props":13006,"children":13007},{"style":3496},[13008],{"type":3153,"value":13009},"\u002F\u002F Only open the websocket after the page is hydrated (client-only)\n",{"type":3148,"tag":3431,"props":13011,"children":13012},{"class":3433,"line":3703},[13013,13018],{"type":3148,"tag":3431,"props":13014,"children":13015},{"style":3667},[13016],{"type":3153,"value":13017},"onMounted",{"type":3148,"tag":3431,"props":13019,"children":13020},{"style":3505},[13021],{"type":3153,"value":13022},"(open)\n",{"type":3148,"tag":3431,"props":13024,"children":13025},{"class":3433,"line":3720},[13026,13030,13034],{"type":3148,"tag":3431,"props":13027,"children":13028},{"style":3510},[13029],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":13031,"children":13032},{"style":3576},[13033],{"type":3153,"value":3579},{"type":3148,"tag":3431,"props":13035,"children":13036},{"style":3510},[13037],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":13039,"children":13040},{"class":3433,"line":3053},[13041],{"type":3148,"tag":3431,"props":13042,"children":13043},{"emptyLinePlaceholder":1200},[13044],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":13046,"children":13047},{"class":3433,"line":3049},[13048,13052,13056],{"type":3148,"tag":3431,"props":13049,"children":13050},{"style":3510},[13051],{"type":3153,"value":3573},{"type":3148,"tag":3431,"props":13053,"children":13054},{"style":3576},[13055],{"type":3153,"value":3713},{"type":3148,"tag":3431,"props":13057,"children":13058},{"style":3510},[13059],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":13061,"children":13062},{"class":3433,"line":3045},[13063,13067,13071],{"type":3148,"tag":3431,"props":13064,"children":13065},{"style":3510},[13066],{"type":3153,"value":3726},{"type":3148,"tag":3431,"props":13068,"children":13069},{"style":3576},[13070],{"type":3153,"value":3731},{"type":3148,"tag":3431,"props":13072,"children":13073},{"style":3510},[13074],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":13076,"children":13077},{"class":3433,"line":3882},[13078,13082,13086,13090,13095,13099,13103],{"type":3148,"tag":3431,"props":13079,"children":13080},{"style":3510},[13081],{"type":3153,"value":3766},{"type":3148,"tag":3431,"props":13083,"children":13084},{"style":3576},[13085],{"type":3153,"value":3155},{"type":3148,"tag":3431,"props":13087,"children":13088},{"style":3510},[13089],{"type":3153,"value":3775},{"type":3148,"tag":3431,"props":13091,"children":13092},{"style":3505},[13093],{"type":3153,"value":13094},"Status: {{ status }}",{"type":3148,"tag":3431,"props":13096,"children":13097},{"style":3510},[13098],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":13100,"children":13101},{"style":3576},[13102],{"type":3153,"value":3155},{"type":3148,"tag":3431,"props":13104,"children":13105},{"style":3510},[13106],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":13108,"children":13109},{"class":3433,"line":3136},[13110,13114,13118,13122,13127,13131,13135],{"type":3148,"tag":3431,"props":13111,"children":13112},{"style":3510},[13113],{"type":3153,"value":3766},{"type":3148,"tag":3431,"props":13115,"children":13116},{"style":3576},[13117],{"type":3153,"value":3155},{"type":3148,"tag":3431,"props":13119,"children":13120},{"style":3510},[13121],{"type":3153,"value":3775},{"type":3148,"tag":3431,"props":13123,"children":13124},{"style":3505},[13125],{"type":3153,"value":13126},"Data: {{ data }}",{"type":3148,"tag":3431,"props":13128,"children":13129},{"style":3510},[13130],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":13132,"children":13133},{"style":3576},[13134],{"type":3153,"value":3155},{"type":3148,"tag":3431,"props":13136,"children":13137},{"style":3510},[13138],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":13140,"children":13141},{"class":3433,"line":3919},[13142,13146,13150],{"type":3148,"tag":3431,"props":13143,"children":13144},{"style":3510},[13145],{"type":3153,"value":3766},{"type":3148,"tag":3431,"props":13147,"children":13148},{"style":3576},[13149],{"type":3153,"value":3155},{"type":3148,"tag":3431,"props":13151,"children":13152},{"style":3510},[13153],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":13155,"children":13156},{"class":3433,"line":3952},[13157,13161,13165,13169,13173,13177,13182,13186,13190,13195,13199,13203],{"type":3148,"tag":3431,"props":13158,"children":13159},{"style":3510},[13160],{"type":3153,"value":11739},{"type":3148,"tag":3431,"props":13162,"children":13163},{"style":3576},[13164],{"type":3153,"value":3836},{"type":3148,"tag":3431,"props":13166,"children":13167},{"style":3582},[13168],{"type":3153,"value":3841},{"type":3148,"tag":3431,"props":13170,"children":13171},{"style":3510},[13172],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":13174,"children":13175},{"style":3510},[13176],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":13178,"children":13179},{"style":3443},[13180],{"type":3153,"value":13181},"open",{"type":3148,"tag":3431,"props":13183,"children":13184},{"style":3510},[13185],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":13187,"children":13188},{"style":3510},[13189],{"type":3153,"value":3775},{"type":3148,"tag":3431,"props":13191,"children":13192},{"style":3505},[13193],{"type":3153,"value":13194},"Open",{"type":3148,"tag":3431,"props":13196,"children":13197},{"style":3510},[13198],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":13200,"children":13201},{"style":3576},[13202],{"type":3153,"value":3836},{"type":3148,"tag":3431,"props":13204,"children":13205},{"style":3510},[13206],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":13208,"children":13209},{"class":3433,"line":4007},[13210,13214,13218,13222,13226,13230,13235,13239,13243,13248,13252,13256],{"type":3148,"tag":3431,"props":13211,"children":13212},{"style":3510},[13213],{"type":3153,"value":11739},{"type":3148,"tag":3431,"props":13215,"children":13216},{"style":3576},[13217],{"type":3153,"value":3836},{"type":3148,"tag":3431,"props":13219,"children":13220},{"style":3582},[13221],{"type":3153,"value":3841},{"type":3148,"tag":3431,"props":13223,"children":13224},{"style":3510},[13225],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":13227,"children":13228},{"style":3510},[13229],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":13231,"children":13232},{"style":3443},[13233],{"type":3153,"value":13234},"close(1000, 'Closing')",{"type":3148,"tag":3431,"props":13236,"children":13237},{"style":3510},[13238],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":13240,"children":13241},{"style":3510},[13242],{"type":3153,"value":3775},{"type":3148,"tag":3431,"props":13244,"children":13245},{"style":3505},[13246],{"type":3153,"value":13247},"Close",{"type":3148,"tag":3431,"props":13249,"children":13250},{"style":3510},[13251],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":13253,"children":13254},{"style":3576},[13255],{"type":3153,"value":3836},{"type":3148,"tag":3431,"props":13257,"children":13258},{"style":3510},[13259],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":13261,"children":13262},{"class":3433,"line":4016},[13263,13267,13271,13275,13279,13283,13288,13292,13296,13301,13305,13309],{"type":3148,"tag":3431,"props":13264,"children":13265},{"style":3510},[13266],{"type":3153,"value":11739},{"type":3148,"tag":3431,"props":13268,"children":13269},{"style":3576},[13270],{"type":3153,"value":3836},{"type":3148,"tag":3431,"props":13272,"children":13273},{"style":3582},[13274],{"type":3153,"value":3841},{"type":3148,"tag":3431,"props":13276,"children":13277},{"style":3510},[13278],{"type":3153,"value":3513},{"type":3148,"tag":3431,"props":13280,"children":13281},{"style":3510},[13282],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":13284,"children":13285},{"style":3443},[13286],{"type":3153,"value":13287},"send('hello')",{"type":3148,"tag":3431,"props":13289,"children":13290},{"style":3510},[13291],{"type":3153,"value":3745},{"type":3148,"tag":3431,"props":13293,"children":13294},{"style":3510},[13295],{"type":3153,"value":3775},{"type":3148,"tag":3431,"props":13297,"children":13298},{"style":3505},[13299],{"type":3153,"value":13300},"Send hello",{"type":3148,"tag":3431,"props":13302,"children":13303},{"style":3510},[13304],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":13306,"children":13307},{"style":3576},[13308],{"type":3153,"value":3836},{"type":3148,"tag":3431,"props":13310,"children":13311},{"style":3510},[13312],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":13314,"children":13315},{"class":3433,"line":3041},[13316,13320,13324],{"type":3148,"tag":3431,"props":13317,"children":13318},{"style":3510},[13319],{"type":3153,"value":11870},{"type":3148,"tag":3431,"props":13321,"children":13322},{"style":3576},[13323],{"type":3153,"value":3155},{"type":3148,"tag":3431,"props":13325,"children":13326},{"style":3510},[13327],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":13329,"children":13330},{"class":3433,"line":4084},[13331,13335,13339],{"type":3148,"tag":3431,"props":13332,"children":13333},{"style":3510},[13334],{"type":3153,"value":3888},{"type":3148,"tag":3431,"props":13336,"children":13337},{"style":3576},[13338],{"type":3153,"value":3731},{"type":3148,"tag":3431,"props":13340,"children":13341},{"style":3510},[13342],{"type":3153,"value":3590},{"type":3148,"tag":3431,"props":13344,"children":13345},{"class":3433,"line":4354},[13346,13350,13354],{"type":3148,"tag":3431,"props":13347,"children":13348},{"style":3510},[13349],{"type":3153,"value":3683},{"type":3148,"tag":3431,"props":13351,"children":13352},{"style":3576},[13353],{"type":3153,"value":3713},{"type":3148,"tag":3431,"props":13355,"children":13356},{"style":3510},[13357],{"type":3153,"value":3590},{"type":3148,"tag":3239,"props":13359,"children":13361},{"id":13360},"configuration",[13362],{"type":3153,"value":29},{"type":3148,"tag":3155,"props":13364,"children":13365},{},[13366,13368,13374,13376,13389],{"type":3153,"value":13367},"We leverage ",{"type":3148,"tag":3293,"props":13369,"children":13371},{"className":13370},[],[13372],{"type":3153,"value":13373},"runtimeConfig.session",{"type":3153,"value":13375}," to give the defaults option to ",{"type":3148,"tag":3159,"props":13377,"children":13380},{"href":13378,"rel":13379},"https:\u002F\u002Fh3.unjs.io\u002Fexamples\u002Fhandle-session",[3163],[13381,13383],{"type":3153,"value":13382},"h3 ",{"type":3148,"tag":3293,"props":13384,"children":13386},{"className":13385},[],[13387],{"type":3153,"value":13388},"useSession",{"type":3153,"value":3386},{"type":3148,"tag":3155,"props":13391,"children":13392},{},[13393,13395,13400],{"type":3153,"value":13394},"You can overwrite the options in your ",{"type":3148,"tag":3293,"props":13396,"children":13398},{"className":13397},[],[13399],{"type":3153,"value":233},{"type":3153,"value":4170},{"type":3148,"tag":3421,"props":13402,"children":13404},{"className":4109,"code":13403,"language":4111,"meta":3021,"style":3021},"export default defineNuxtConfig({\n  modules: ['nuxt-auth-utils'],\n  runtimeConfig: {\n    session: {\n      maxAge: 60 * 60 * 24 * 7 \u002F\u002F 1 week\n    }\n  }\n})\n",[13405],{"type":3148,"tag":3293,"props":13406,"children":13407},{"__ignoreMap":3021},[13408,13431,13466,13481,13497,13546,13553,13560],{"type":3148,"tag":3431,"props":13409,"children":13410},{"class":3433,"line":3107},[13411,13415,13419,13423,13427],{"type":3148,"tag":3431,"props":13412,"children":13413},{"style":4693},[13414],{"type":3153,"value":5227},{"type":3148,"tag":3431,"props":13416,"children":13417},{"style":4693},[13418],{"type":3153,"value":5342},{"type":3148,"tag":3431,"props":13420,"children":13421},{"style":3667},[13422],{"type":3153,"value":5347},{"type":3148,"tag":3431,"props":13424,"children":13425},{"style":3505},[13426],{"type":3153,"value":5352},{"type":3148,"tag":3431,"props":13428,"children":13429},{"style":3510},[13430],{"type":3153,"value":5357},{"type":3148,"tag":3431,"props":13432,"children":13433},{"class":3433,"line":3073},[13434,13438,13442,13446,13450,13454,13458,13462],{"type":3148,"tag":3431,"props":13435,"children":13436},{"style":3576},[13437],{"type":3153,"value":6579},{"type":3148,"tag":3431,"props":13439,"children":13440},{"style":3510},[13441],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":13443,"children":13444},{"style":3505},[13445],{"type":3153,"value":6588},{"type":3148,"tag":3431,"props":13447,"children":13448},{"style":3510},[13449],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":13451,"children":13452},{"style":3443},[13453],{"type":3153,"value":3020},{"type":3148,"tag":3431,"props":13455,"children":13456},{"style":3510},[13457],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":13459,"children":13460},{"style":3505},[13461],{"type":3153,"value":6605},{"type":3148,"tag":3431,"props":13463,"children":13464},{"style":3510},[13465],{"type":3153,"value":5443},{"type":3148,"tag":3431,"props":13467,"children":13468},{"class":3433,"line":3057},[13469,13473,13477],{"type":3148,"tag":3431,"props":13470,"children":13471},{"style":3576},[13472],{"type":3153,"value":5365},{"type":3148,"tag":3431,"props":13474,"children":13475},{"style":3510},[13476],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":13478,"children":13479},{"style":3510},[13480],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":13482,"children":13483},{"class":3433,"line":3694},[13484,13489,13493],{"type":3148,"tag":3431,"props":13485,"children":13486},{"style":3576},[13487],{"type":3153,"value":13488},"    session",{"type":3148,"tag":3431,"props":13490,"children":13491},{"style":3510},[13492],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":13494,"children":13495},{"style":3510},[13496],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":13498,"children":13499},{"class":3433,"line":3703},[13500,13505,13509,13514,13519,13523,13527,13532,13536,13541],{"type":3148,"tag":3431,"props":13501,"children":13502},{"style":3576},[13503],{"type":3153,"value":13504},"      maxAge",{"type":3148,"tag":3431,"props":13506,"children":13507},{"style":3510},[13508],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":13510,"children":13511},{"style":7031},[13512],{"type":3153,"value":13513}," 60",{"type":3148,"tag":3431,"props":13515,"children":13516},{"style":3510},[13517],{"type":3153,"value":13518}," *",{"type":3148,"tag":3431,"props":13520,"children":13521},{"style":7031},[13522],{"type":3153,"value":13513},{"type":3148,"tag":3431,"props":13524,"children":13525},{"style":3510},[13526],{"type":3153,"value":13518},{"type":3148,"tag":3431,"props":13528,"children":13529},{"style":7031},[13530],{"type":3153,"value":13531}," 24",{"type":3148,"tag":3431,"props":13533,"children":13534},{"style":3510},[13535],{"type":3153,"value":13518},{"type":3148,"tag":3431,"props":13537,"children":13538},{"style":7031},[13539],{"type":3153,"value":13540}," 7",{"type":3148,"tag":3431,"props":13542,"children":13543},{"style":3496},[13544],{"type":3153,"value":13545}," \u002F\u002F 1 week\n",{"type":3148,"tag":3431,"props":13547,"children":13548},{"class":3433,"line":3720},[13549],{"type":3148,"tag":3431,"props":13550,"children":13551},{"style":3510},[13552],{"type":3153,"value":5483},{"type":3148,"tag":3431,"props":13554,"children":13555},{"class":3433,"line":3053},[13556],{"type":3148,"tag":3431,"props":13557,"children":13558},{"style":3510},[13559],{"type":3153,"value":5131},{"type":3148,"tag":3431,"props":13561,"children":13562},{"class":3433,"line":3049},[13563,13567],{"type":3148,"tag":3431,"props":13564,"children":13565},{"style":3510},[13566],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":13568,"children":13569},{"style":3505},[13570],{"type":3153,"value":4873},{"type":3148,"tag":3155,"props":13572,"children":13573},{},[13574],{"type":3153,"value":13575},"Our defaults are:",{"type":3148,"tag":3421,"props":13577,"children":13579},{"className":4109,"code":13578,"language":4111,"meta":3021,"style":3021},"{\n  name: 'nuxt-session',\n  password: process.env.NUXT_SESSION_PASSWORD || '',\n  cookie: {\n    sameSite: 'lax'\n  }\n}\n",[13580],{"type":3148,"tag":3293,"props":13581,"children":13582},{"__ignoreMap":3021},[13583,13590,13619,13667,13683,13708,13715],{"type":3148,"tag":3431,"props":13584,"children":13585},{"class":3433,"line":3107},[13586],{"type":3148,"tag":3431,"props":13587,"children":13588},{"style":3510},[13589],{"type":3153,"value":5357},{"type":3148,"tag":3431,"props":13591,"children":13592},{"class":3433,"line":3073},[13593,13598,13602,13606,13611,13615],{"type":3148,"tag":3431,"props":13594,"children":13595},{"style":3437},[13596],{"type":3153,"value":13597},"  name",{"type":3148,"tag":3431,"props":13599,"children":13600},{"style":3510},[13601],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":13603,"children":13604},{"style":3510},[13605],{"type":3153,"value":4754},{"type":3148,"tag":3431,"props":13607,"children":13608},{"style":3443},[13609],{"type":3153,"value":13610},"nuxt-session",{"type":3148,"tag":3431,"props":13612,"children":13613},{"style":3510},[13614],{"type":3153,"value":5094},{"type":3148,"tag":3431,"props":13616,"children":13617},{"style":3510},[13618],{"type":3153,"value":5443},{"type":3148,"tag":3431,"props":13620,"children":13621},{"class":3433,"line":3057},[13622,13627,13631,13636,13640,13645,13649,13653,13658,13663],{"type":3148,"tag":3431,"props":13623,"children":13624},{"style":3437},[13625],{"type":3153,"value":13626},"  password",{"type":3148,"tag":3431,"props":13628,"children":13629},{"style":3510},[13630],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":13632,"children":13633},{"style":3505},[13634],{"type":3153,"value":13635}," process",{"type":3148,"tag":3431,"props":13637,"children":13638},{"style":3510},[13639],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":13641,"children":13642},{"style":3505},[13643],{"type":3153,"value":13644},"env",{"type":3148,"tag":3431,"props":13646,"children":13647},{"style":3510},[13648],{"type":3153,"value":3386},{"type":3148,"tag":3431,"props":13650,"children":13651},{"style":3505},[13652],{"type":3153,"value":3475},{"type":3148,"tag":3431,"props":13654,"children":13655},{"style":3510},[13656],{"type":3153,"value":13657}," ||",{"type":3148,"tag":3431,"props":13659,"children":13660},{"style":3510},[13661],{"type":3153,"value":13662}," ''",{"type":3148,"tag":3431,"props":13664,"children":13665},{"style":3510},[13666],{"type":3153,"value":5443},{"type":3148,"tag":3431,"props":13668,"children":13669},{"class":3433,"line":3694},[13670,13675,13679],{"type":3148,"tag":3431,"props":13671,"children":13672},{"style":3437},[13673],{"type":3153,"value":13674},"  cookie",{"type":3148,"tag":3431,"props":13676,"children":13677},{"style":3510},[13678],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":13680,"children":13681},{"style":3510},[13682],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":13684,"children":13685},{"class":3433,"line":3703},[13686,13691,13695,13699,13704],{"type":3148,"tag":3431,"props":13687,"children":13688},{"style":3437},[13689],{"type":3153,"value":13690},"    sameSite",{"type":3148,"tag":3431,"props":13692,"children":13693},{"style":3510},[13694],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":13696,"children":13697},{"style":3510},[13698],{"type":3153,"value":4754},{"type":3148,"tag":3431,"props":13700,"children":13701},{"style":3443},[13702],{"type":3153,"value":13703},"lax",{"type":3148,"tag":3431,"props":13705,"children":13706},{"style":3510},[13707],{"type":3153,"value":4763},{"type":3148,"tag":3431,"props":13709,"children":13710},{"class":3433,"line":3720},[13711],{"type":3148,"tag":3431,"props":13712,"children":13713},{"style":3510},[13714],{"type":3153,"value":5131},{"type":3148,"tag":3431,"props":13716,"children":13717},{"class":3433,"line":3053},[13718],{"type":3148,"tag":3431,"props":13719,"children":13720},{"style":3510},[13721],{"type":3153,"value":4609},{"type":3148,"tag":3155,"props":13723,"children":13724},{},[13725,13727,13733,13734,13740],{"type":3153,"value":13726},"You can also overwrite the session config by passing it as 3rd argument of the ",{"type":3148,"tag":3293,"props":13728,"children":13730},{"className":13729},[],[13731],{"type":3153,"value":13732},"setUserSession",{"type":3153,"value":6263},{"type":3148,"tag":3293,"props":13735,"children":13737},{"className":13736},[],[13738],{"type":3153,"value":13739},"replaceUserSession",{"type":3153,"value":13741}," functions:",{"type":3148,"tag":3421,"props":13743,"children":13745},{"className":4109,"code":13744,"language":4111,"meta":3021,"style":3021},"await setUserSession(event, { ... } , {\n  maxAge: 60 * 60 * 24 * 7 \u002F\u002F 1 week\n})\n",[13746],{"type":3148,"tag":3293,"props":13747,"children":13748},{"__ignoreMap":3021},[13749,13790,13834],{"type":3148,"tag":3431,"props":13750,"children":13751},{"class":3433,"line":3107},[13752,13756,13760,13764,13768,13772,13777,13781,13786],{"type":3148,"tag":3431,"props":13753,"children":13754},{"style":4693},[13755],{"type":3153,"value":4696},{"type":3148,"tag":3431,"props":13757,"children":13758},{"style":3667},[13759],{"type":3153,"value":4701},{"type":3148,"tag":3431,"props":13761,"children":13762},{"style":3505},[13763],{"type":3153,"value":4706},{"type":3148,"tag":3431,"props":13765,"children":13766},{"style":3510},[13767],{"type":3153,"value":3613},{"type":3148,"tag":3431,"props":13769,"children":13770},{"style":3510},[13771],{"type":3153,"value":3603},{"type":3148,"tag":3431,"props":13773,"children":13774},{"style":3510},[13775],{"type":3153,"value":13776}," ...",{"type":3148,"tag":3431,"props":13778,"children":13779},{"style":3510},[13780],{"type":3153,"value":7543},{"type":3148,"tag":3431,"props":13782,"children":13783},{"style":3510},[13784],{"type":3153,"value":13785}," ,",{"type":3148,"tag":3431,"props":13787,"children":13788},{"style":3510},[13789],{"type":3153,"value":4133},{"type":3148,"tag":3431,"props":13791,"children":13792},{"class":3433,"line":3073},[13793,13798,13802,13806,13810,13814,13818,13822,13826,13830],{"type":3148,"tag":3431,"props":13794,"children":13795},{"style":3576},[13796],{"type":3153,"value":13797},"  maxAge",{"type":3148,"tag":3431,"props":13799,"children":13800},{"style":3510},[13801],{"type":3153,"value":4170},{"type":3148,"tag":3431,"props":13803,"children":13804},{"style":7031},[13805],{"type":3153,"value":13513},{"type":3148,"tag":3431,"props":13807,"children":13808},{"style":3510},[13809],{"type":3153,"value":13518},{"type":3148,"tag":3431,"props":13811,"children":13812},{"style":7031},[13813],{"type":3153,"value":13513},{"type":3148,"tag":3431,"props":13815,"children":13816},{"style":3510},[13817],{"type":3153,"value":13518},{"type":3148,"tag":3431,"props":13819,"children":13820},{"style":7031},[13821],{"type":3153,"value":13531},{"type":3148,"tag":3431,"props":13823,"children":13824},{"style":3510},[13825],{"type":3153,"value":13518},{"type":3148,"tag":3431,"props":13827,"children":13828},{"style":7031},[13829],{"type":3153,"value":13540},{"type":3148,"tag":3431,"props":13831,"children":13832},{"style":3496},[13833],{"type":3153,"value":13545},{"type":3148,"tag":3431,"props":13835,"children":13836},{"class":3433,"line":3057},[13837,13841],{"type":3148,"tag":3431,"props":13838,"children":13839},{"style":3510},[13840],{"type":3153,"value":3659},{"type":3148,"tag":3431,"props":13842,"children":13843},{"style":3505},[13844],{"type":3153,"value":4873},{"type":3148,"tag":3155,"props":13846,"children":13847},{},[13848,13850,13861],{"type":3153,"value":13849},"Checkout the ",{"type":3148,"tag":3159,"props":13851,"children":13854},{"href":13852,"rel":13853},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fh3\u002Fblob\u002Fc04c458810e34eb15c1647e1369e7d7ef19f567d\u002Fsrc\u002Futils\u002Fsession.ts#L20",[3163],[13855],{"type":3148,"tag":3293,"props":13856,"children":13858},{"className":13857},[],[13859],{"type":3153,"value":13860},"SessionConfig",{"type":3153,"value":13862}," for all options.",{"type":3148,"tag":3239,"props":13864,"children":13866},{"id":13865},"more",[13867],{"type":3153,"value":13868},"More",{"type":3148,"tag":3205,"props":13870,"children":13871},{},[13872],{"type":3148,"tag":3209,"props":13873,"children":13874},{},[13875,13882,13884],{"type":3148,"tag":3159,"props":13876,"children":13879},{"href":13877,"rel":13878},"https:\u002F\u002Fgithub.com\u002Fbarbapapazes\u002Fnuxt-authorization",[3163],[13880],{"type":3153,"value":13881},"nuxt-authorization",{"type":3153,"value":13883},": Authorization module for managing permissions inside a Nuxt app, compatible with ",{"type":3148,"tag":3293,"props":13885,"children":13887},{"className":13886},[],[13888],{"type":3153,"value":3020},{"type":3148,"tag":3239,"props":13890,"children":13892},{"id":13891},"development",[13893],{"type":3153,"value":13894},"Development",{"type":3148,"tag":3421,"props":13896,"children":13898},{"className":3423,"code":13897,"language":3425,"meta":3021,"style":3021},"# Install dependencies\npnpm install\n\n# Generate type stubs\npnpm run dev:prepare\n\n# Develop with the playground\npnpm run dev\n\n# Build the playground\npnpm run dev:build\n\n# Run ESLint\npnpm run lint\n\n# Run Vitest\npnpm run test\npnpm run test:watch\n\n# Release new version\npnpm run release\n",[13899],{"type":3148,"tag":3293,"props":13900,"children":13901},{"__ignoreMap":3021},[13902,13910,13923,13930,13938,13955,13962,13970,13986,13993,14001,14017,14024,14032,14048,14055,14063,14079,14095,14102,14110],{"type":3148,"tag":3431,"props":13903,"children":13904},{"class":3433,"line":3107},[13905],{"type":3148,"tag":3431,"props":13906,"children":13907},{"style":3496},[13908],{"type":3153,"value":13909},"# Install dependencies\n",{"type":3148,"tag":3431,"props":13911,"children":13912},{"class":3433,"line":3073},[13913,13918],{"type":3148,"tag":3431,"props":13914,"children":13915},{"style":3437},[13916],{"type":3153,"value":13917},"pnpm",{"type":3148,"tag":3431,"props":13919,"children":13920},{"style":3443},[13921],{"type":3153,"value":13922}," install\n",{"type":3148,"tag":3431,"props":13924,"children":13925},{"class":3433,"line":3057},[13926],{"type":3148,"tag":3431,"props":13927,"children":13928},{"emptyLinePlaceholder":1200},[13929],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":13931,"children":13932},{"class":3433,"line":3694},[13933],{"type":3148,"tag":3431,"props":13934,"children":13935},{"style":3496},[13936],{"type":3153,"value":13937},"# Generate type stubs\n",{"type":3148,"tag":3431,"props":13939,"children":13940},{"class":3433,"line":3703},[13941,13945,13950],{"type":3148,"tag":3431,"props":13942,"children":13943},{"style":3437},[13944],{"type":3153,"value":13917},{"type":3148,"tag":3431,"props":13946,"children":13947},{"style":3443},[13948],{"type":3153,"value":13949}," run",{"type":3148,"tag":3431,"props":13951,"children":13952},{"style":3443},[13953],{"type":3153,"value":13954}," dev:prepare\n",{"type":3148,"tag":3431,"props":13956,"children":13957},{"class":3433,"line":3720},[13958],{"type":3148,"tag":3431,"props":13959,"children":13960},{"emptyLinePlaceholder":1200},[13961],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":13963,"children":13964},{"class":3433,"line":3053},[13965],{"type":3148,"tag":3431,"props":13966,"children":13967},{"style":3496},[13968],{"type":3153,"value":13969},"# Develop with the playground\n",{"type":3148,"tag":3431,"props":13971,"children":13972},{"class":3433,"line":3049},[13973,13977,13981],{"type":3148,"tag":3431,"props":13974,"children":13975},{"style":3437},[13976],{"type":3153,"value":13917},{"type":3148,"tag":3431,"props":13978,"children":13979},{"style":3443},[13980],{"type":3153,"value":13949},{"type":3148,"tag":3431,"props":13982,"children":13983},{"style":3443},[13984],{"type":3153,"value":13985}," dev\n",{"type":3148,"tag":3431,"props":13987,"children":13988},{"class":3433,"line":3045},[13989],{"type":3148,"tag":3431,"props":13990,"children":13991},{"emptyLinePlaceholder":1200},[13992],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":13994,"children":13995},{"class":3433,"line":3882},[13996],{"type":3148,"tag":3431,"props":13997,"children":13998},{"style":3496},[13999],{"type":3153,"value":14000},"# Build the playground\n",{"type":3148,"tag":3431,"props":14002,"children":14003},{"class":3433,"line":3136},[14004,14008,14012],{"type":3148,"tag":3431,"props":14005,"children":14006},{"style":3437},[14007],{"type":3153,"value":13917},{"type":3148,"tag":3431,"props":14009,"children":14010},{"style":3443},[14011],{"type":3153,"value":13949},{"type":3148,"tag":3431,"props":14013,"children":14014},{"style":3443},[14015],{"type":3153,"value":14016}," dev:build\n",{"type":3148,"tag":3431,"props":14018,"children":14019},{"class":3433,"line":3919},[14020],{"type":3148,"tag":3431,"props":14021,"children":14022},{"emptyLinePlaceholder":1200},[14023],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":14025,"children":14026},{"class":3433,"line":3952},[14027],{"type":3148,"tag":3431,"props":14028,"children":14029},{"style":3496},[14030],{"type":3153,"value":14031},"# Run ESLint\n",{"type":3148,"tag":3431,"props":14033,"children":14034},{"class":3433,"line":4007},[14035,14039,14043],{"type":3148,"tag":3431,"props":14036,"children":14037},{"style":3437},[14038],{"type":3153,"value":13917},{"type":3148,"tag":3431,"props":14040,"children":14041},{"style":3443},[14042],{"type":3153,"value":13949},{"type":3148,"tag":3431,"props":14044,"children":14045},{"style":3443},[14046],{"type":3153,"value":14047}," lint\n",{"type":3148,"tag":3431,"props":14049,"children":14050},{"class":3433,"line":4016},[14051],{"type":3148,"tag":3431,"props":14052,"children":14053},{"emptyLinePlaceholder":1200},[14054],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":14056,"children":14057},{"class":3433,"line":3041},[14058],{"type":3148,"tag":3431,"props":14059,"children":14060},{"style":3496},[14061],{"type":3153,"value":14062},"# Run Vitest\n",{"type":3148,"tag":3431,"props":14064,"children":14065},{"class":3433,"line":4084},[14066,14070,14074],{"type":3148,"tag":3431,"props":14067,"children":14068},{"style":3437},[14069],{"type":3153,"value":13917},{"type":3148,"tag":3431,"props":14071,"children":14072},{"style":3443},[14073],{"type":3153,"value":13949},{"type":3148,"tag":3431,"props":14075,"children":14076},{"style":3443},[14077],{"type":3153,"value":14078}," test\n",{"type":3148,"tag":3431,"props":14080,"children":14081},{"class":3433,"line":4354},[14082,14086,14090],{"type":3148,"tag":3431,"props":14083,"children":14084},{"style":3437},[14085],{"type":3153,"value":13917},{"type":3148,"tag":3431,"props":14087,"children":14088},{"style":3443},[14089],{"type":3153,"value":13949},{"type":3148,"tag":3431,"props":14091,"children":14092},{"style":3443},[14093],{"type":3153,"value":14094}," test:watch\n",{"type":3148,"tag":3431,"props":14096,"children":14097},{"class":3433,"line":4362},[14098],{"type":3148,"tag":3431,"props":14099,"children":14100},{"emptyLinePlaceholder":1200},[14101],{"type":3153,"value":3700},{"type":3148,"tag":3431,"props":14103,"children":14104},{"class":3433,"line":4371},[14105],{"type":3148,"tag":3431,"props":14106,"children":14107},{"style":3496},[14108],{"type":3153,"value":14109},"# Release new version\n",{"type":3148,"tag":3431,"props":14111,"children":14112},{"class":3433,"line":4379},[14113,14117,14121],{"type":3148,"tag":3431,"props":14114,"children":14115},{"style":3437},[14116],{"type":3153,"value":13917},{"type":3148,"tag":3431,"props":14118,"children":14119},{"style":3443},[14120],{"type":3153,"value":13949},{"type":3148,"tag":3431,"props":14122,"children":14123},{"style":3443},[14124],{"type":3153,"value":14125}," release\n",{"type":3148,"tag":14127,"props":14128,"children":14129},"style",{},[14130],{"type":3153,"value":14131},"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":3021,"searchDepth":3073,"depth":3073,"links":14133},[14134,14135,14136,14137,14140,14148,14149,14154,14155,14156,14157],{"id":3241,"depth":3073,"text":399},{"id":3359,"depth":3073,"text":3362},{"id":3400,"depth":3073,"text":3403},{"id":3541,"depth":3073,"text":3544,"children":14138},[14139],{"id":3553,"depth":3057,"text":3556},{"id":4634,"depth":3073,"text":4637,"children":14141},[14142,14143,14144,14145,14146,14147],{"id":4653,"depth":3057,"text":4656},{"id":5247,"depth":3057,"text":5250},{"id":6248,"depth":3057,"text":3275},{"id":6700,"depth":3057,"text":6703},{"id":6850,"depth":3057,"text":3284},{"id":10764,"depth":3057,"text":10767},{"id":11057,"depth":3073,"text":11060},{"id":11332,"depth":3073,"text":3255,"children":14150},[14151,14152],{"id":11503,"depth":3057,"text":11506},{"id":11631,"depth":3057,"text":14153},"\u003CAuthState> component",{"id":12336,"depth":3073,"text":12339},{"id":13360,"depth":3073,"text":29},{"id":13865,"depth":3073,"text":13868},{"id":13891,"depth":3073,"text":13894}]