[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fGCo9l1hMtNdUiA6QzdUX5X3kLqaWcC5t2kdz4LrvCvc":3,"module-auth-utils":3007,"versions":14149},[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],{"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},"Going Full Static","\u002Fblog\u002Fgoing-full-static","blog\u002F5.going-full-static",{"title":2992,"path":2993,"stem":2994},"Introducing Smart Prefetching","\u002Fblog\u002Fintroducing-smart-prefetching","blog\u002F6.introducing-smart-prefetching",{"title":2996,"path":2997,"stem":2998},"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":3000,"path":3001,"stem":3002},"Nuxt 2 Static Improvements","\u002Fblog\u002Fnuxt-static-improvements","blog\u002F8.nuxt-static-improvements",{"title":3004,"path":3005,"stem":3006},"Nuxt 2: From Terminal to Browser","\u002Fblog\u002Fnuxtjs-from-terminal-to-browser","blog\u002F9.nuxtjs-from-terminal-to-browser",{"name":3008,"description":3009,"repo":3010,"npm":3011,"icon":3012,"github":3013,"website":3013,"learn_more":3012,"category":3014,"type":3015,"maintainers":3016,"compatibility":3021,"generatedAt":3024,"contributors":3025,"stats":3123,"readme":3132},"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",[3017],{"name":3018,"github":3019,"twitter":3019,"bluesky":3020},"Sébastien Chopin","atinux","atinux.com",{"nuxt":3022,"requires":3023},">=3.0.0",{},"2026-07-24T19:15:07.811Z",[3026,3029,3033,3037,3041,3045,3049,3052,3055,3058,3061,3065,3068,3071,3074,3077,3080,3083,3086,3089,3092,3095,3099,3102,3105,3108,3111,3114,3117,3120],{"id":3027,"username":3019,"contributions":3028},904724,197,{"id":3030,"username":3031,"contributions":3032},28706372,"danielroe",16,{"id":3034,"username":3035,"contributions":3036},50090595,"ahmedrangel",9,{"id":3038,"username":3039,"contributions":3040},12988935,"Gerbuuun",8,{"id":3042,"username":3043,"contributions":3044},45267552,"Barbapapazes",7,{"id":3046,"username":3047,"contributions":3048},13056429,"sandros94",3,{"id":3050,"username":3051,"contributions":3048},16264115,"Yizack",{"id":3053,"username":3054,"contributions":3048},967369,"acidjazz",{"id":3056,"username":3057,"contributions":3048},15887916,"blumgart",{"id":3059,"username":3060,"contributions":3048},67746033,"justserdar",{"id":3062,"username":3063,"contributions":3064},10636392,"brianacdev",2,{"id":3066,"username":3067,"contributions":3064},67898185,"larsrickert",{"id":3069,"username":3070,"contributions":3064},40021217,"kingyue737",{"id":3072,"username":3073,"contributions":3064},59120414,"cth-latest",{"id":3075,"username":3076,"contributions":3064},19751938,"noook",{"id":3078,"username":3079,"contributions":3064},1409645,"mariosant",{"id":3081,"username":3082,"contributions":3064},24661232,"Jorgagu",{"id":3084,"username":3085,"contributions":3064},5326365,"harlan-zw",{"id":3087,"username":3088,"contributions":3064},61092270,"stranavad",{"id":3090,"username":3091,"contributions":3064},1592441,"mendrinos",{"id":3093,"username":3094,"contributions":3064},376963,"bisand",{"id":3096,"username":3097,"contributions":3098},18315316,"Syrex-o",1,{"id":3100,"username":3101,"contributions":3098},3109921,"silvio-e",{"id":3103,"username":3104,"contributions":3098},18753964,"sifferhans",{"id":3106,"username":3107,"contributions":3098},17186421,"samulefevre",{"id":3109,"username":3110,"contributions":3098},15785987,"samydoesit",{"id":3112,"username":3113,"contributions":3098},31662219,"rudokemper",{"id":3115,"username":3116,"contributions":3098},29805551,"RobertHaba",{"id":3118,"username":3119,"contributions":3098},1231105,"SteinRobert",{"id":3121,"username":3122,"contributions":3098},5472296,"robert-hoffmann",{"version":3124,"downloads":3125,"stars":3126,"watchers":3127,"forks":3128,"defaultBranch":3129,"publishedAt":3130,"createdAt":3131},"0.5.29",341796,1585,11,186,"main",1771335673386,1699356484873,{"data":3133,"body":3135,"toc":14123},{"title":3134,"description":3012},"Nuxt Auth Utils",{"type":3136,"children":3137},"root",[3138,3145,3191,3195,3229,3235,3334,3348,3354,3366,3378,3389,3395,3411,3453,3475,3510,3522,3530,3536,3541,3548,4089,4098,4601,4623,4629,4642,4648,5025,5045,5224,5236,5242,5247,5267,5288,5315,5493,5498,5519,5527,5534,5777,5790,5796,5807,6212,6224,6237,6242,6272,6398,6411,6522,6533,6689,6695,6700,6705,6713,6747,6760,6839,6844,6849,6854,6861,6893,6905,6984,6989,6994,7008,7328,7468,7498,8426,8461,9298,9332,9845,9850,10689,10707,10713,10742,10753,10759,10764,11046,11052,11071,11297,11321,11326,11346,11351,11359,11378,11466,11492,11498,11515,11602,11620,11630,11642,11647,11900,11912,11924,12297,12325,12331,12344,12362,12465,12485,12835,12849,13349,13354,13381,13392,13562,13567,13713,13733,13836,13854,13860,13880,13886,14117],{"type":3139,"tag":3140,"props":3141,"children":3142},"element","h1",{"id":3011},[3143],{"type":3144,"value":3134},"text",{"type":3139,"tag":3146,"props":3147,"children":3148},"p",{},[3149,3162,3172,3181],{"type":3139,"tag":3150,"props":3151,"children":3155},"a",{"href":3152,"rel":3153},"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fnuxt-auth-utils",[3154],"nofollow",[3156],{"type":3139,"tag":3157,"props":3158,"children":3161},"img",{"alt":3159,"src":3160},"npm version","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fnuxt-auth-utils\u002Flatest.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3139,"tag":3150,"props":3163,"children":3166},{"href":3164,"rel":3165},"https:\u002F\u002Fnpm.chart.dev\u002Fnuxt-auth-utils",[3154],[3167],{"type":3139,"tag":3157,"props":3168,"children":3171},{"alt":3169,"src":3170},"npm downloads","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3139,"tag":3150,"props":3173,"children":3175},{"href":3152,"rel":3174},[3154],[3176],{"type":3139,"tag":3157,"props":3177,"children":3180},{"alt":3178,"src":3179},"License","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3139,"tag":3150,"props":3182,"children":3185},{"href":3183,"rel":3184},"https:\u002F\u002Fnuxt.com",[3154],[3186],{"type":3139,"tag":3157,"props":3187,"children":3190},{"alt":3188,"src":3189},"Nuxt","https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNuxt-020420?logo=nuxt.js",[],{"type":3139,"tag":3146,"props":3192,"children":3193},{},[3194],{"type":3144,"value":3009},{"type":3139,"tag":3196,"props":3197,"children":3198},"ul",{},[3199,3209,3219],{"type":3139,"tag":3200,"props":3201,"children":3202},"li",{},[3203],{"type":3139,"tag":3150,"props":3204,"children":3206},{"href":3205},"\u002FCHANGELOG.md",[3207],{"type":3144,"value":3208},"Release Notes",{"type":3139,"tag":3200,"props":3210,"children":3211},{},[3212],{"type":3139,"tag":3150,"props":3213,"children":3216},{"href":3214,"rel":3215},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fatidone",[3154],[3217],{"type":3144,"value":3218},"Demo with OAuth",{"type":3139,"tag":3200,"props":3220,"children":3221},{},[3222],{"type":3139,"tag":3150,"props":3223,"children":3226},{"href":3224,"rel":3225},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Ftodo-passkeys",[3154],[3227],{"type":3144,"value":3228},"Demo with Passkeys",{"type":3139,"tag":3230,"props":3231,"children":3233},"h2",{"id":3232},"features",[3234],{"type":3144,"value":399},{"type":3139,"tag":3196,"props":3236,"children":3237},{},[3238,3249,3258,3267,3276,3292,3301,3316,3325],{"type":3139,"tag":3200,"props":3239,"children":3240},{},[3241,3247],{"type":3139,"tag":3150,"props":3242,"children":3244},{"href":3243},"#hybrid-rendering",[3245],{"type":3144,"value":3246},"Hybrid Rendering",{"type":3144,"value":3248}," support (SSR \u002F CSR \u002F SWR \u002F Prerendering)",{"type":3139,"tag":3200,"props":3250,"children":3251},{},[3252],{"type":3139,"tag":3150,"props":3253,"children":3255},{"href":3254},"#supported-oauth-providers",[3256],{"type":3144,"value":3257},"40+ OAuth Providers",{"type":3139,"tag":3200,"props":3259,"children":3260},{},[3261],{"type":3139,"tag":3150,"props":3262,"children":3264},{"href":3263},"#password-hashing",[3265],{"type":3144,"value":3266},"Password Hashing",{"type":3139,"tag":3200,"props":3268,"children":3269},{},[3270],{"type":3139,"tag":3150,"props":3271,"children":3273},{"href":3272},"#webauthn-passkey",[3274],{"type":3144,"value":3275},"WebAuthn (passkey)",{"type":3139,"tag":3200,"props":3277,"children":3278},{},[3279],{"type":3139,"tag":3150,"props":3280,"children":3282},{"href":3281},"#vue-composable",[3283,3290],{"type":3139,"tag":3284,"props":3285,"children":3287},"code",{"className":3286},[],[3288],{"type":3144,"value":3289},"useUserSession()",{"type":3144,"value":3291}," Vue composable",{"type":3139,"tag":3200,"props":3293,"children":3294},{},[3295],{"type":3139,"tag":3150,"props":3296,"children":3298},{"href":3297},"#server-utils",[3299],{"type":3144,"value":3300},"Tree-shakable server utils",{"type":3139,"tag":3200,"props":3302,"children":3303},{},[3304],{"type":3139,"tag":3150,"props":3305,"children":3307},{"href":3306},"#authstate-component",[3308,3314],{"type":3139,"tag":3284,"props":3309,"children":3311},{"className":3310},[],[3312],{"type":3144,"value":3313},"\u003CAuthState>",{"type":3144,"value":3315}," component",{"type":3139,"tag":3200,"props":3317,"children":3318},{},[3319],{"type":3139,"tag":3150,"props":3320,"children":3322},{"href":3321},"#extend-session",[3323],{"type":3144,"value":3324},"Extendable with hooks",{"type":3139,"tag":3200,"props":3326,"children":3327},{},[3328],{"type":3139,"tag":3150,"props":3329,"children":3331},{"href":3330},"#websocket-support",[3332],{"type":3144,"value":3333},"WebSocket support",{"type":3139,"tag":3146,"props":3335,"children":3336},{},[3337,3339,3346],{"type":3144,"value":3338},"It has few dependencies (only from ",{"type":3139,"tag":3150,"props":3340,"children":3343},{"href":3341,"rel":3342},"https:\u002F\u002Fgithub.com\u002Funjs",[3154],[3344],{"type":3144,"value":3345},"UnJS",{"type":3144,"value":3347},"), run on multiple JS environments (Node, Deno, Workers) and is fully typed with TypeScript.",{"type":3139,"tag":3230,"props":3349,"children":3351},{"id":3350},"requirements",[3352],{"type":3144,"value":3353},"Requirements",{"type":3139,"tag":3146,"props":3355,"children":3356},{},[3357,3359,3364],{"type":3144,"value":3358},"This module only works with a Nuxt server running as it uses server API routes (",{"type":3139,"tag":3284,"props":3360,"children":3362},{"className":3361},[],[3363],{"type":3144,"value":765},{"type":3144,"value":3365},").",{"type":3139,"tag":3146,"props":3367,"children":3368},{},[3369,3371,3376],{"type":3144,"value":3370},"This means that you cannot use this module with ",{"type":3139,"tag":3284,"props":3372,"children":3374},{"className":3373},[],[3375],{"type":3144,"value":785},{"type":3144,"value":3377},".",{"type":3139,"tag":3146,"props":3379,"children":3380},{},[3381,3383,3387],{"type":3144,"value":3382},"You can anyway use ",{"type":3139,"tag":3150,"props":3384,"children":3385},{"href":3243},[3386],{"type":3144,"value":3246},{"type":3144,"value":3388}," to pre-render pages of your application or disable server-side rendering completely.",{"type":3139,"tag":3230,"props":3390,"children":3392},{"id":3391},"quick-setup",[3393],{"type":3144,"value":3394},"Quick Setup",{"type":3139,"tag":3396,"props":3397,"children":3398},"ol",{},[3399],{"type":3139,"tag":3200,"props":3400,"children":3401},{},[3402,3404,3409],{"type":3144,"value":3403},"Add ",{"type":3139,"tag":3284,"props":3405,"children":3407},{"className":3406},[],[3408],{"type":3144,"value":3011},{"type":3144,"value":3410}," in your Nuxt project",{"type":3139,"tag":3412,"props":3413,"children":3417},"pre",{"className":3414,"code":3415,"language":3416,"meta":3012,"style":3012},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","npx nuxi@latest module add auth-utils\n","bash",[3418],{"type":3139,"tag":3284,"props":3419,"children":3420},{"__ignoreMap":3012},[3421],{"type":3139,"tag":3422,"props":3423,"children":3425},"span",{"class":3424,"line":3098},"line",[3426,3432,3438,3443,3448],{"type":3139,"tag":3422,"props":3427,"children":3429},{"style":3428},"--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B",[3430],{"type":3144,"value":3431},"npx",{"type":3139,"tag":3422,"props":3433,"children":3435},{"style":3434},"--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D",[3436],{"type":3144,"value":3437}," nuxi@latest",{"type":3139,"tag":3422,"props":3439,"children":3440},{"style":3434},[3441],{"type":3144,"value":3442}," module",{"type":3139,"tag":3422,"props":3444,"children":3445},{"style":3434},[3446],{"type":3144,"value":3447}," add",{"type":3139,"tag":3422,"props":3449,"children":3450},{"style":3434},[3451],{"type":3144,"value":3452}," auth-utils\n",{"type":3139,"tag":3396,"props":3454,"children":3455},{"start":3064},[3456],{"type":3139,"tag":3200,"props":3457,"children":3458},{},[3459,3461,3467,3469,3474],{"type":3144,"value":3460},"Add a ",{"type":3139,"tag":3284,"props":3462,"children":3464},{"className":3463},[],[3465],{"type":3144,"value":3466},"NUXT_SESSION_PASSWORD",{"type":3144,"value":3468}," env variable with at least 32 characters in the ",{"type":3139,"tag":3284,"props":3470,"children":3472},{"className":3471},[],[3473],{"type":3144,"value":200},{"type":3144,"value":3377},{"type":3139,"tag":3412,"props":3476,"children":3478},{"className":3414,"code":3477,"language":3416,"meta":3012,"style":3012},"# .env\nNUXT_SESSION_PASSWORD=password-with-at-least-32-characters\n",[3479],{"type":3139,"tag":3284,"props":3480,"children":3481},{"__ignoreMap":3012},[3482,3491],{"type":3139,"tag":3422,"props":3483,"children":3484},{"class":3424,"line":3098},[3485],{"type":3139,"tag":3422,"props":3486,"children":3488},{"style":3487},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[3489],{"type":3144,"value":3490},"# .env\n",{"type":3139,"tag":3422,"props":3492,"children":3493},{"class":3424,"line":3064},[3494,3499,3505],{"type":3139,"tag":3422,"props":3495,"children":3497},{"style":3496},"--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8",[3498],{"type":3144,"value":3466},{"type":3139,"tag":3422,"props":3500,"children":3502},{"style":3501},"--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF",[3503],{"type":3144,"value":3504},"=",{"type":3139,"tag":3422,"props":3506,"children":3507},{"style":3434},[3508],{"type":3144,"value":3509},"password-with-at-least-32-characters\n",{"type":3139,"tag":3146,"props":3511,"children":3512},{},[3513,3515,3520],{"type":3144,"value":3514},"Nuxt Auth Utils generates one for you when running Nuxt in development the first time if no ",{"type":3139,"tag":3284,"props":3516,"children":3518},{"className":3517},[],[3519],{"type":3144,"value":3466},{"type":3144,"value":3521}," is set.",{"type":3139,"tag":3396,"props":3523,"children":3524},{"start":3048},[3525],{"type":3139,"tag":3200,"props":3526,"children":3527},{},[3528],{"type":3144,"value":3529},"That's it! You can now add authentication to your Nuxt app ✨",{"type":3139,"tag":3230,"props":3531,"children":3533},{"id":3532},"vue-composable",[3534],{"type":3144,"value":3535},"Vue Composable",{"type":3139,"tag":3146,"props":3537,"children":3538},{},[3539],{"type":3144,"value":3540},"Nuxt Auth Utils automatically adds some plugins to fetch the current user session to let you access it from your Vue components.",{"type":3139,"tag":3542,"props":3543,"children":3545},"h3",{"id":3544},"user-session",[3546],{"type":3144,"value":3547},"User Session",{"type":3139,"tag":3412,"props":3549,"children":3553},{"className":3550,"code":3551,"language":3552,"meta":3012,"style":3012},"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",[3554],{"type":3139,"tag":3284,"props":3555,"children":3556},{"__ignoreMap":3012},[3557,3582,3667,3683,3692,3709,3750,3784,3816,3871,3888,3908,3941,3996,4005,4058,4073],{"type":3139,"tag":3422,"props":3558,"children":3559},{"class":3424,"line":3098},[3560,3565,3571,3577],{"type":3139,"tag":3422,"props":3561,"children":3562},{"style":3501},[3563],{"type":3144,"value":3564},"\u003C",{"type":3139,"tag":3422,"props":3566,"children":3568},{"style":3567},"--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178",[3569],{"type":3144,"value":3570},"script",{"type":3139,"tag":3422,"props":3572,"children":3574},{"style":3573},"--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA",[3575],{"type":3144,"value":3576}," setup",{"type":3139,"tag":3422,"props":3578,"children":3579},{"style":3501},[3580],{"type":3144,"value":3581},">\n",{"type":3139,"tag":3422,"props":3583,"children":3584},{"class":3424,"line":3064},[3585,3590,3595,3600,3605,3610,3614,3619,3623,3628,3632,3637,3641,3646,3651,3656,3662],{"type":3139,"tag":3422,"props":3586,"children":3587},{"style":3573},[3588],{"type":3144,"value":3589},"const",{"type":3139,"tag":3422,"props":3591,"children":3592},{"style":3501},[3593],{"type":3144,"value":3594}," {",{"type":3139,"tag":3422,"props":3596,"children":3597},{"style":3496},[3598],{"type":3144,"value":3599}," loggedIn",{"type":3139,"tag":3422,"props":3601,"children":3602},{"style":3501},[3603],{"type":3144,"value":3604},",",{"type":3139,"tag":3422,"props":3606,"children":3607},{"style":3496},[3608],{"type":3144,"value":3609}," user",{"type":3139,"tag":3422,"props":3611,"children":3612},{"style":3501},[3613],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":3615,"children":3616},{"style":3496},[3617],{"type":3144,"value":3618}," session",{"type":3139,"tag":3422,"props":3620,"children":3621},{"style":3501},[3622],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":3624,"children":3625},{"style":3496},[3626],{"type":3144,"value":3627}," fetch",{"type":3139,"tag":3422,"props":3629,"children":3630},{"style":3501},[3631],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":3633,"children":3634},{"style":3496},[3635],{"type":3144,"value":3636}," clear",{"type":3139,"tag":3422,"props":3638,"children":3639},{"style":3501},[3640],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":3642,"children":3643},{"style":3496},[3644],{"type":3144,"value":3645}," openInPopup ",{"type":3139,"tag":3422,"props":3647,"children":3648},{"style":3501},[3649],{"type":3144,"value":3650},"}",{"type":3139,"tag":3422,"props":3652,"children":3653},{"style":3501},[3654],{"type":3144,"value":3655}," =",{"type":3139,"tag":3422,"props":3657,"children":3659},{"style":3658},"--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF",[3660],{"type":3144,"value":3661}," useUserSession",{"type":3139,"tag":3422,"props":3663,"children":3664},{"style":3496},[3665],{"type":3144,"value":3666},"()\n",{"type":3139,"tag":3422,"props":3668,"children":3669},{"class":3424,"line":3048},[3670,3675,3679],{"type":3139,"tag":3422,"props":3671,"children":3672},{"style":3501},[3673],{"type":3144,"value":3674},"\u003C\u002F",{"type":3139,"tag":3422,"props":3676,"children":3677},{"style":3567},[3678],{"type":3144,"value":3570},{"type":3139,"tag":3422,"props":3680,"children":3681},{"style":3501},[3682],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":3684,"children":3686},{"class":3424,"line":3685},4,[3687],{"type":3139,"tag":3422,"props":3688,"children":3689},{"emptyLinePlaceholder":1200},[3690],{"type":3144,"value":3691},"\n",{"type":3139,"tag":3422,"props":3693,"children":3695},{"class":3424,"line":3694},5,[3696,3700,3705],{"type":3139,"tag":3422,"props":3697,"children":3698},{"style":3501},[3699],{"type":3144,"value":3564},{"type":3139,"tag":3422,"props":3701,"children":3702},{"style":3567},[3703],{"type":3144,"value":3704},"template",{"type":3139,"tag":3422,"props":3706,"children":3707},{"style":3501},[3708],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":3710,"children":3712},{"class":3424,"line":3711},6,[3713,3718,3723,3728,3732,3737,3742,3746],{"type":3139,"tag":3422,"props":3714,"children":3715},{"style":3501},[3716],{"type":3144,"value":3717},"  \u003C",{"type":3139,"tag":3422,"props":3719,"children":3720},{"style":3567},[3721],{"type":3144,"value":3722},"div",{"type":3139,"tag":3422,"props":3724,"children":3725},{"style":3573},[3726],{"type":3144,"value":3727}," v-if",{"type":3139,"tag":3422,"props":3729,"children":3730},{"style":3501},[3731],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":3733,"children":3734},{"style":3501},[3735],{"type":3144,"value":3736},"\"",{"type":3139,"tag":3422,"props":3738,"children":3739},{"style":3434},[3740],{"type":3144,"value":3741},"loggedIn",{"type":3139,"tag":3422,"props":3743,"children":3744},{"style":3501},[3745],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":3747,"children":3748},{"style":3501},[3749],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":3751,"children":3752},{"class":3424,"line":3044},[3753,3758,3762,3767,3772,3776,3780],{"type":3139,"tag":3422,"props":3754,"children":3755},{"style":3501},[3756],{"type":3144,"value":3757},"    \u003C",{"type":3139,"tag":3422,"props":3759,"children":3760},{"style":3567},[3761],{"type":3144,"value":3140},{"type":3139,"tag":3422,"props":3763,"children":3764},{"style":3501},[3765],{"type":3144,"value":3766},">",{"type":3139,"tag":3422,"props":3768,"children":3769},{"style":3496},[3770],{"type":3144,"value":3771},"Welcome {{ user.login }}!",{"type":3139,"tag":3422,"props":3773,"children":3774},{"style":3501},[3775],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":3777,"children":3778},{"style":3567},[3779],{"type":3144,"value":3140},{"type":3139,"tag":3422,"props":3781,"children":3782},{"style":3501},[3783],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":3785,"children":3786},{"class":3424,"line":3040},[3787,3791,3795,3799,3804,3808,3812],{"type":3139,"tag":3422,"props":3788,"children":3789},{"style":3501},[3790],{"type":3144,"value":3757},{"type":3139,"tag":3422,"props":3792,"children":3793},{"style":3567},[3794],{"type":3144,"value":3146},{"type":3139,"tag":3422,"props":3796,"children":3797},{"style":3501},[3798],{"type":3144,"value":3766},{"type":3139,"tag":3422,"props":3800,"children":3801},{"style":3496},[3802],{"type":3144,"value":3803},"Logged in since {{ session.loggedInAt }}",{"type":3139,"tag":3422,"props":3805,"children":3806},{"style":3501},[3807],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":3809,"children":3810},{"style":3567},[3811],{"type":3144,"value":3146},{"type":3139,"tag":3422,"props":3813,"children":3814},{"style":3501},[3815],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":3817,"children":3818},{"class":3424,"line":3036},[3819,3823,3828,3833,3837,3841,3846,3850,3854,3859,3863,3867],{"type":3139,"tag":3422,"props":3820,"children":3821},{"style":3501},[3822],{"type":3144,"value":3757},{"type":3139,"tag":3422,"props":3824,"children":3825},{"style":3567},[3826],{"type":3144,"value":3827},"button",{"type":3139,"tag":3422,"props":3829,"children":3830},{"style":3573},[3831],{"type":3144,"value":3832}," @click",{"type":3139,"tag":3422,"props":3834,"children":3835},{"style":3501},[3836],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":3838,"children":3839},{"style":3501},[3840],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":3842,"children":3843},{"style":3434},[3844],{"type":3144,"value":3845},"clear",{"type":3139,"tag":3422,"props":3847,"children":3848},{"style":3501},[3849],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":3851,"children":3852},{"style":3501},[3853],{"type":3144,"value":3766},{"type":3139,"tag":3422,"props":3855,"children":3856},{"style":3496},[3857],{"type":3144,"value":3858},"Logout",{"type":3139,"tag":3422,"props":3860,"children":3861},{"style":3501},[3862],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":3864,"children":3865},{"style":3567},[3866],{"type":3144,"value":3827},{"type":3139,"tag":3422,"props":3868,"children":3869},{"style":3501},[3870],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":3872,"children":3874},{"class":3424,"line":3873},10,[3875,3880,3884],{"type":3139,"tag":3422,"props":3876,"children":3877},{"style":3501},[3878],{"type":3144,"value":3879},"  \u003C\u002F",{"type":3139,"tag":3422,"props":3881,"children":3882},{"style":3567},[3883],{"type":3144,"value":3722},{"type":3139,"tag":3422,"props":3885,"children":3886},{"style":3501},[3887],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":3889,"children":3890},{"class":3424,"line":3127},[3891,3895,3899,3904],{"type":3139,"tag":3422,"props":3892,"children":3893},{"style":3501},[3894],{"type":3144,"value":3717},{"type":3139,"tag":3422,"props":3896,"children":3897},{"style":3567},[3898],{"type":3144,"value":3722},{"type":3139,"tag":3422,"props":3900,"children":3901},{"style":3573},[3902],{"type":3144,"value":3903}," v-else",{"type":3139,"tag":3422,"props":3905,"children":3906},{"style":3501},[3907],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":3909,"children":3911},{"class":3424,"line":3910},12,[3912,3916,3920,3924,3929,3933,3937],{"type":3139,"tag":3422,"props":3913,"children":3914},{"style":3501},[3915],{"type":3144,"value":3757},{"type":3139,"tag":3422,"props":3917,"children":3918},{"style":3567},[3919],{"type":3144,"value":3140},{"type":3139,"tag":3422,"props":3921,"children":3922},{"style":3501},[3923],{"type":3144,"value":3766},{"type":3139,"tag":3422,"props":3925,"children":3926},{"style":3496},[3927],{"type":3144,"value":3928},"Not logged in",{"type":3139,"tag":3422,"props":3930,"children":3931},{"style":3501},[3932],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":3934,"children":3935},{"style":3567},[3936],{"type":3144,"value":3140},{"type":3139,"tag":3422,"props":3938,"children":3939},{"style":3501},[3940],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":3942,"children":3944},{"class":3424,"line":3943},13,[3945,3949,3953,3958,3962,3966,3971,3975,3979,3984,3988,3992],{"type":3139,"tag":3422,"props":3946,"children":3947},{"style":3501},[3948],{"type":3144,"value":3757},{"type":3139,"tag":3422,"props":3950,"children":3951},{"style":3567},[3952],{"type":3144,"value":3150},{"type":3139,"tag":3422,"props":3954,"children":3955},{"style":3573},[3956],{"type":3144,"value":3957}," href",{"type":3139,"tag":3422,"props":3959,"children":3960},{"style":3501},[3961],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":3963,"children":3964},{"style":3501},[3965],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":3967,"children":3968},{"style":3434},[3969],{"type":3144,"value":3970},"\u002Fauth\u002Fgithub",{"type":3139,"tag":3422,"props":3972,"children":3973},{"style":3501},[3974],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":3976,"children":3977},{"style":3501},[3978],{"type":3144,"value":3766},{"type":3139,"tag":3422,"props":3980,"children":3981},{"style":3496},[3982],{"type":3144,"value":3983},"Login with GitHub",{"type":3139,"tag":3422,"props":3985,"children":3986},{"style":3501},[3987],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":3989,"children":3990},{"style":3567},[3991],{"type":3144,"value":3150},{"type":3139,"tag":3422,"props":3993,"children":3994},{"style":3501},[3995],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":3997,"children":3999},{"class":3424,"line":3998},14,[4000],{"type":3139,"tag":3422,"props":4001,"children":4002},{"style":3487},[4003],{"type":3144,"value":4004},"    \u003C!-- or open the OAuth route in a popup -->\n",{"type":3139,"tag":3422,"props":4006,"children":4008},{"class":3424,"line":4007},15,[4009,4013,4017,4021,4025,4029,4034,4038,4042,4046,4050,4054],{"type":3139,"tag":3422,"props":4010,"children":4011},{"style":3501},[4012],{"type":3144,"value":3757},{"type":3139,"tag":3422,"props":4014,"children":4015},{"style":3567},[4016],{"type":3144,"value":3827},{"type":3139,"tag":3422,"props":4018,"children":4019},{"style":3573},[4020],{"type":3144,"value":3832},{"type":3139,"tag":3422,"props":4022,"children":4023},{"style":3501},[4024],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":4026,"children":4027},{"style":3501},[4028],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":4030,"children":4031},{"style":3434},[4032],{"type":3144,"value":4033},"openInPopup('\u002Fauth\u002Fgithub')",{"type":3139,"tag":3422,"props":4035,"children":4036},{"style":3501},[4037],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":4039,"children":4040},{"style":3501},[4041],{"type":3144,"value":3766},{"type":3139,"tag":3422,"props":4043,"children":4044},{"style":3496},[4045],{"type":3144,"value":3983},{"type":3139,"tag":3422,"props":4047,"children":4048},{"style":3501},[4049],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":4051,"children":4052},{"style":3567},[4053],{"type":3144,"value":3827},{"type":3139,"tag":3422,"props":4055,"children":4056},{"style":3501},[4057],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":4059,"children":4060},{"class":3424,"line":3032},[4061,4065,4069],{"type":3139,"tag":3422,"props":4062,"children":4063},{"style":3501},[4064],{"type":3144,"value":3879},{"type":3139,"tag":3422,"props":4066,"children":4067},{"style":3567},[4068],{"type":3144,"value":3722},{"type":3139,"tag":3422,"props":4070,"children":4071},{"style":3501},[4072],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":4074,"children":4076},{"class":3424,"line":4075},17,[4077,4081,4085],{"type":3139,"tag":3422,"props":4078,"children":4079},{"style":3501},[4080],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":4082,"children":4083},{"style":3567},[4084],{"type":3144,"value":3704},{"type":3139,"tag":3422,"props":4086,"children":4087},{"style":3501},[4088],{"type":3144,"value":3581},{"type":3139,"tag":3146,"props":4090,"children":4091},{},[4092],{"type":3139,"tag":4093,"props":4094,"children":4095},"strong",{},[4096],{"type":3144,"value":4097},"TypeScript Signature:",{"type":3139,"tag":3412,"props":4099,"children":4103},{"className":4100,"code":4101,"language":4102,"meta":3012,"style":3012},"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",[4104],{"type":3139,"tag":3284,"props":4105,"children":4106},{"__ignoreMap":3012},[4107,4125,4133,4141,4149,4180,4187,4195,4202,4230,4237,4245,4252,4291,4298,4306,4313,4343,4351,4360,4368,4409,4417,4426,4434,4471,4479,4488,4496,4592],{"type":3139,"tag":3422,"props":4108,"children":4109},{"class":3424,"line":3098},[4110,4115,4120],{"type":3139,"tag":3422,"props":4111,"children":4112},{"style":3573},[4113],{"type":3144,"value":4114},"interface",{"type":3139,"tag":3422,"props":4116,"children":4117},{"style":3428},[4118],{"type":3144,"value":4119}," UserSessionComposable",{"type":3139,"tag":3422,"props":4121,"children":4122},{"style":3501},[4123],{"type":3144,"value":4124}," {\n",{"type":3139,"tag":3422,"props":4126,"children":4127},{"class":3424,"line":3064},[4128],{"type":3139,"tag":3422,"props":4129,"children":4130},{"style":3487},[4131],{"type":3144,"value":4132},"  \u002F**\n",{"type":3139,"tag":3422,"props":4134,"children":4135},{"class":3424,"line":3048},[4136],{"type":3139,"tag":3422,"props":4137,"children":4138},{"style":3487},[4139],{"type":3144,"value":4140},"   * Computed indicating if the auth session is ready\n",{"type":3139,"tag":3422,"props":4142,"children":4143},{"class":3424,"line":3685},[4144],{"type":3139,"tag":3422,"props":4145,"children":4146},{"style":3487},[4147],{"type":3144,"value":4148},"   *\u002F\n",{"type":3139,"tag":3422,"props":4150,"children":4151},{"class":3424,"line":3694},[4152,4157,4162,4167,4171,4176],{"type":3139,"tag":3422,"props":4153,"children":4154},{"style":3567},[4155],{"type":3144,"value":4156},"  ready",{"type":3139,"tag":3422,"props":4158,"children":4159},{"style":3501},[4160],{"type":3144,"value":4161},":",{"type":3139,"tag":3422,"props":4163,"children":4164},{"style":3428},[4165],{"type":3144,"value":4166}," ComputedRef",{"type":3139,"tag":3422,"props":4168,"children":4169},{"style":3501},[4170],{"type":3144,"value":3564},{"type":3139,"tag":3422,"props":4172,"children":4173},{"style":3428},[4174],{"type":3144,"value":4175},"boolean",{"type":3139,"tag":3422,"props":4177,"children":4178},{"style":3501},[4179],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":4181,"children":4182},{"class":3424,"line":3711},[4183],{"type":3139,"tag":3422,"props":4184,"children":4185},{"style":3487},[4186],{"type":3144,"value":4132},{"type":3139,"tag":3422,"props":4188,"children":4189},{"class":3424,"line":3044},[4190],{"type":3139,"tag":3422,"props":4191,"children":4192},{"style":3487},[4193],{"type":3144,"value":4194},"   * Computed indicating if the user is logged in.\n",{"type":3139,"tag":3422,"props":4196,"children":4197},{"class":3424,"line":3040},[4198],{"type":3139,"tag":3422,"props":4199,"children":4200},{"style":3487},[4201],{"type":3144,"value":4148},{"type":3139,"tag":3422,"props":4203,"children":4204},{"class":3424,"line":3036},[4205,4210,4214,4218,4222,4226],{"type":3139,"tag":3422,"props":4206,"children":4207},{"style":3567},[4208],{"type":3144,"value":4209},"  loggedIn",{"type":3139,"tag":3422,"props":4211,"children":4212},{"style":3501},[4213],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":4215,"children":4216},{"style":3428},[4217],{"type":3144,"value":4166},{"type":3139,"tag":3422,"props":4219,"children":4220},{"style":3501},[4221],{"type":3144,"value":3564},{"type":3139,"tag":3422,"props":4223,"children":4224},{"style":3428},[4225],{"type":3144,"value":4175},{"type":3139,"tag":3422,"props":4227,"children":4228},{"style":3501},[4229],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":4231,"children":4232},{"class":3424,"line":3873},[4233],{"type":3139,"tag":3422,"props":4234,"children":4235},{"style":3487},[4236],{"type":3144,"value":4132},{"type":3139,"tag":3422,"props":4238,"children":4239},{"class":3424,"line":3127},[4240],{"type":3139,"tag":3422,"props":4241,"children":4242},{"style":3487},[4243],{"type":3144,"value":4244},"   * The user object if logged in, null otherwise.\n",{"type":3139,"tag":3422,"props":4246,"children":4247},{"class":3424,"line":3910},[4248],{"type":3139,"tag":3422,"props":4249,"children":4250},{"style":3487},[4251],{"type":3144,"value":4148},{"type":3139,"tag":3422,"props":4253,"children":4254},{"class":3424,"line":3943},[4255,4260,4264,4268,4272,4277,4282,4287],{"type":3139,"tag":3422,"props":4256,"children":4257},{"style":3567},[4258],{"type":3144,"value":4259},"  user",{"type":3139,"tag":3422,"props":4261,"children":4262},{"style":3501},[4263],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":4265,"children":4266},{"style":3428},[4267],{"type":3144,"value":4166},{"type":3139,"tag":3422,"props":4269,"children":4270},{"style":3501},[4271],{"type":3144,"value":3564},{"type":3139,"tag":3422,"props":4273,"children":4274},{"style":3428},[4275],{"type":3144,"value":4276},"User",{"type":3139,"tag":3422,"props":4278,"children":4279},{"style":3501},[4280],{"type":3144,"value":4281}," |",{"type":3139,"tag":3422,"props":4283,"children":4284},{"style":3428},[4285],{"type":3144,"value":4286}," null",{"type":3139,"tag":3422,"props":4288,"children":4289},{"style":3501},[4290],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":4292,"children":4293},{"class":3424,"line":3998},[4294],{"type":3139,"tag":3422,"props":4295,"children":4296},{"style":3487},[4297],{"type":3144,"value":4132},{"type":3139,"tag":3422,"props":4299,"children":4300},{"class":3424,"line":4007},[4301],{"type":3139,"tag":3422,"props":4302,"children":4303},{"style":3487},[4304],{"type":3144,"value":4305},"   * The session object.\n",{"type":3139,"tag":3422,"props":4307,"children":4308},{"class":3424,"line":3032},[4309],{"type":3139,"tag":3422,"props":4310,"children":4311},{"style":3487},[4312],{"type":3144,"value":4148},{"type":3139,"tag":3422,"props":4314,"children":4315},{"class":3424,"line":4075},[4316,4321,4325,4330,4334,4339],{"type":3139,"tag":3422,"props":4317,"children":4318},{"style":3567},[4319],{"type":3144,"value":4320},"  session",{"type":3139,"tag":3422,"props":4322,"children":4323},{"style":3501},[4324],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":4326,"children":4327},{"style":3428},[4328],{"type":3144,"value":4329}," Ref",{"type":3139,"tag":3422,"props":4331,"children":4332},{"style":3501},[4333],{"type":3144,"value":3564},{"type":3139,"tag":3422,"props":4335,"children":4336},{"style":3428},[4337],{"type":3144,"value":4338},"UserSession",{"type":3139,"tag":3422,"props":4340,"children":4341},{"style":3501},[4342],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":4344,"children":4346},{"class":3424,"line":4345},18,[4347],{"type":3139,"tag":3422,"props":4348,"children":4349},{"style":3487},[4350],{"type":3144,"value":4132},{"type":3139,"tag":3422,"props":4352,"children":4354},{"class":3424,"line":4353},19,[4355],{"type":3139,"tag":3422,"props":4356,"children":4357},{"style":3487},[4358],{"type":3144,"value":4359},"   * Fetch the user session from the server.\n",{"type":3139,"tag":3422,"props":4361,"children":4363},{"class":3424,"line":4362},20,[4364],{"type":3139,"tag":3422,"props":4365,"children":4366},{"style":3487},[4367],{"type":3144,"value":4148},{"type":3139,"tag":3422,"props":4369,"children":4371},{"class":3424,"line":4370},21,[4372,4377,4381,4386,4391,4396,4400,4405],{"type":3139,"tag":3422,"props":4373,"children":4374},{"style":3567},[4375],{"type":3144,"value":4376},"  fetch",{"type":3139,"tag":3422,"props":4378,"children":4379},{"style":3501},[4380],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":4382,"children":4383},{"style":3501},[4384],{"type":3144,"value":4385}," ()",{"type":3139,"tag":3422,"props":4387,"children":4388},{"style":3573},[4389],{"type":3144,"value":4390}," =>",{"type":3139,"tag":3422,"props":4392,"children":4393},{"style":3428},[4394],{"type":3144,"value":4395}," Promise",{"type":3139,"tag":3422,"props":4397,"children":4398},{"style":3501},[4399],{"type":3144,"value":3564},{"type":3139,"tag":3422,"props":4401,"children":4402},{"style":3428},[4403],{"type":3144,"value":4404},"void",{"type":3139,"tag":3422,"props":4406,"children":4407},{"style":3501},[4408],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":4410,"children":4412},{"class":3424,"line":4411},22,[4413],{"type":3139,"tag":3422,"props":4414,"children":4415},{"style":3487},[4416],{"type":3144,"value":4132},{"type":3139,"tag":3422,"props":4418,"children":4420},{"class":3424,"line":4419},23,[4421],{"type":3139,"tag":3422,"props":4422,"children":4423},{"style":3487},[4424],{"type":3144,"value":4425},"   * Clear the user session and remove the session cookie.\n",{"type":3139,"tag":3422,"props":4427,"children":4429},{"class":3424,"line":4428},24,[4430],{"type":3139,"tag":3422,"props":4431,"children":4432},{"style":3487},[4433],{"type":3144,"value":4148},{"type":3139,"tag":3422,"props":4435,"children":4437},{"class":3424,"line":4436},25,[4438,4443,4447,4451,4455,4459,4463,4467],{"type":3139,"tag":3422,"props":4439,"children":4440},{"style":3567},[4441],{"type":3144,"value":4442},"  clear",{"type":3139,"tag":3422,"props":4444,"children":4445},{"style":3501},[4446],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":4448,"children":4449},{"style":3501},[4450],{"type":3144,"value":4385},{"type":3139,"tag":3422,"props":4452,"children":4453},{"style":3573},[4454],{"type":3144,"value":4390},{"type":3139,"tag":3422,"props":4456,"children":4457},{"style":3428},[4458],{"type":3144,"value":4395},{"type":3139,"tag":3422,"props":4460,"children":4461},{"style":3501},[4462],{"type":3144,"value":3564},{"type":3139,"tag":3422,"props":4464,"children":4465},{"style":3428},[4466],{"type":3144,"value":4404},{"type":3139,"tag":3422,"props":4468,"children":4469},{"style":3501},[4470],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":4472,"children":4474},{"class":3424,"line":4473},26,[4475],{"type":3139,"tag":3422,"props":4476,"children":4477},{"style":3487},[4478],{"type":3144,"value":4132},{"type":3139,"tag":3422,"props":4480,"children":4482},{"class":3424,"line":4481},27,[4483],{"type":3139,"tag":3422,"props":4484,"children":4485},{"style":3487},[4486],{"type":3144,"value":4487},"   * Open the OAuth route in a popup that auto-closes when successful.\n",{"type":3139,"tag":3422,"props":4489,"children":4491},{"class":3424,"line":4490},28,[4492],{"type":3139,"tag":3422,"props":4493,"children":4494},{"style":3487},[4495],{"type":3144,"value":4148},{"type":3139,"tag":3422,"props":4497,"children":4499},{"class":3424,"line":4498},29,[4500,4505,4509,4514,4520,4524,4529,4533,4538,4543,4547,4552,4556,4561,4565,4570,4574,4578,4583,4587],{"type":3139,"tag":3422,"props":4501,"children":4502},{"style":3567},[4503],{"type":3144,"value":4504},"  openInPopup",{"type":3139,"tag":3422,"props":4506,"children":4507},{"style":3501},[4508],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":4510,"children":4511},{"style":3501},[4512],{"type":3144,"value":4513}," (",{"type":3139,"tag":3422,"props":4515,"children":4517},{"style":4516},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[4518],{"type":3144,"value":4519},"route",{"type":3139,"tag":3422,"props":4521,"children":4522},{"style":3501},[4523],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":4525,"children":4526},{"style":3428},[4527],{"type":3144,"value":4528}," string",{"type":3139,"tag":3422,"props":4530,"children":4531},{"style":3501},[4532],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":4534,"children":4535},{"style":4516},[4536],{"type":3144,"value":4537}," size",{"type":3139,"tag":3422,"props":4539,"children":4540},{"style":3501},[4541],{"type":3144,"value":4542},"?:",{"type":3139,"tag":3422,"props":4544,"children":4545},{"style":3501},[4546],{"type":3144,"value":3594},{"type":3139,"tag":3422,"props":4548,"children":4549},{"style":3567},[4550],{"type":3144,"value":4551}," width",{"type":3139,"tag":3422,"props":4553,"children":4554},{"style":3501},[4555],{"type":3144,"value":4542},{"type":3139,"tag":3422,"props":4557,"children":4558},{"style":3428},[4559],{"type":3144,"value":4560}," number",{"type":3139,"tag":3422,"props":4562,"children":4563},{"style":3501},[4564],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":4566,"children":4567},{"style":3567},[4568],{"type":3144,"value":4569}," height",{"type":3139,"tag":3422,"props":4571,"children":4572},{"style":3501},[4573],{"type":3144,"value":4542},{"type":3139,"tag":3422,"props":4575,"children":4576},{"style":3428},[4577],{"type":3144,"value":4560},{"type":3139,"tag":3422,"props":4579,"children":4580},{"style":3501},[4581],{"type":3144,"value":4582}," })",{"type":3139,"tag":3422,"props":4584,"children":4585},{"style":3573},[4586],{"type":3144,"value":4390},{"type":3139,"tag":3422,"props":4588,"children":4589},{"style":3428},[4590],{"type":3144,"value":4591}," void\n",{"type":3139,"tag":3422,"props":4593,"children":4595},{"class":3424,"line":4594},30,[4596],{"type":3139,"tag":3422,"props":4597,"children":4598},{"style":3501},[4599],{"type":3144,"value":4600},"}\n",{"type":3139,"tag":4602,"props":4603,"children":4604},"blockquote",{},[4605],{"type":3139,"tag":3146,"props":4606,"children":4607},{},[4608,4613,4615,4621],{"type":3139,"tag":3422,"props":4609,"children":4610},{},[4611],{"type":3144,"value":4612},"!IMPORTANT",{"type":3144,"value":4614},"\nNuxt Auth Utils uses the ",{"type":3139,"tag":3284,"props":4616,"children":4618},{"className":4617},[],[4619],{"type":3144,"value":4620},"\u002Fapi\u002F_auth\u002Fsession",{"type":3144,"value":4622}," route for session management. Ensure your API route middleware doesn't interfere with this path.",{"type":3139,"tag":3230,"props":4624,"children":4626},{"id":4625},"server-utils",[4627],{"type":3144,"value":4628},"Server Utils",{"type":3139,"tag":3146,"props":4630,"children":4631},{},[4632,4634,4640],{"type":3144,"value":4633},"The following helpers are auto-imported in your ",{"type":3139,"tag":3284,"props":4635,"children":4637},{"className":4636},[],[4638],{"type":3144,"value":4639},"server\u002F",{"type":3144,"value":4641}," directory.",{"type":3139,"tag":3542,"props":4643,"children":4645},{"id":4644},"session-management",[4646],{"type":3144,"value":4647},"Session Management",{"type":3139,"tag":3412,"props":4649,"children":4651},{"className":4100,"code":4650,"language":4102,"meta":3012,"style":3012},"\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",[4652],{"type":3139,"tag":3284,"props":4653,"children":4654},{"__ignoreMap":3012},[4655,4663,4671,4679,4706,4714,4729,4755,4763,4771,4787,4812,4819,4827,4853,4865,4872,4880,4905,4912,4920,4951,4958,4966,4982,4989,4997],{"type":3139,"tag":3422,"props":4656,"children":4657},{"class":3424,"line":3098},[4658],{"type":3139,"tag":3422,"props":4659,"children":4660},{"style":3487},[4661],{"type":3144,"value":4662},"\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":3139,"tag":3422,"props":4664,"children":4665},{"class":3424,"line":3064},[4666],{"type":3139,"tag":3422,"props":4667,"children":4668},{"style":3487},[4669],{"type":3144,"value":4670},"\u002F\u002F Only store the data that allow you to recognize a user, but do not store sensitive data\n",{"type":3139,"tag":3422,"props":4672,"children":4673},{"class":3424,"line":3048},[4674],{"type":3139,"tag":3422,"props":4675,"children":4676},{"style":3487},[4677],{"type":3144,"value":4678},"\u002F\u002F Merges new data with existing data using unjs\u002Fdefu library\n",{"type":3139,"tag":3422,"props":4680,"children":4681},{"class":3424,"line":3685},[4682,4688,4693,4698,4702],{"type":3139,"tag":3422,"props":4683,"children":4685},{"style":4684},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[4686],{"type":3144,"value":4687},"await",{"type":3139,"tag":3422,"props":4689,"children":4690},{"style":3658},[4691],{"type":3144,"value":4692}," setUserSession",{"type":3139,"tag":3422,"props":4694,"children":4695},{"style":3496},[4696],{"type":3144,"value":4697},"(event",{"type":3139,"tag":3422,"props":4699,"children":4700},{"style":3501},[4701],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":4703,"children":4704},{"style":3501},[4705],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":4707,"children":4708},{"class":3424,"line":3694},[4709],{"type":3139,"tag":3422,"props":4710,"children":4711},{"style":3487},[4712],{"type":3144,"value":4713},"  \u002F\u002F User data\n",{"type":3139,"tag":3422,"props":4715,"children":4716},{"class":3424,"line":3711},[4717,4721,4725],{"type":3139,"tag":3422,"props":4718,"children":4719},{"style":3567},[4720],{"type":3144,"value":4259},{"type":3139,"tag":3422,"props":4722,"children":4723},{"style":3501},[4724],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":4726,"children":4727},{"style":3501},[4728],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":4730,"children":4731},{"class":3424,"line":3044},[4732,4737,4741,4746,4750],{"type":3139,"tag":3422,"props":4733,"children":4734},{"style":3567},[4735],{"type":3144,"value":4736},"    login",{"type":3139,"tag":3422,"props":4738,"children":4739},{"style":3501},[4740],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":4742,"children":4743},{"style":3501},[4744],{"type":3144,"value":4745}," '",{"type":3139,"tag":3422,"props":4747,"children":4748},{"style":3434},[4749],{"type":3144,"value":3019},{"type":3139,"tag":3422,"props":4751,"children":4752},{"style":3501},[4753],{"type":3144,"value":4754},"'\n",{"type":3139,"tag":3422,"props":4756,"children":4757},{"class":3424,"line":3040},[4758],{"type":3139,"tag":3422,"props":4759,"children":4760},{"style":3501},[4761],{"type":3144,"value":4762},"  },\n",{"type":3139,"tag":3422,"props":4764,"children":4765},{"class":3424,"line":3036},[4766],{"type":3139,"tag":3422,"props":4767,"children":4768},{"style":3487},[4769],{"type":3144,"value":4770},"  \u002F\u002F Private data accessible only on server\u002F routes\n",{"type":3139,"tag":3422,"props":4772,"children":4773},{"class":3424,"line":3873},[4774,4779,4783],{"type":3139,"tag":3422,"props":4775,"children":4776},{"style":3567},[4777],{"type":3144,"value":4778},"  secure",{"type":3139,"tag":3422,"props":4780,"children":4781},{"style":3501},[4782],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":4784,"children":4785},{"style":3501},[4786],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":4788,"children":4789},{"class":3424,"line":3127},[4790,4795,4799,4803,4808],{"type":3139,"tag":3422,"props":4791,"children":4792},{"style":3567},[4793],{"type":3144,"value":4794},"    apiToken",{"type":3139,"tag":3422,"props":4796,"children":4797},{"style":3501},[4798],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":4800,"children":4801},{"style":3501},[4802],{"type":3144,"value":4745},{"type":3139,"tag":3422,"props":4804,"children":4805},{"style":3434},[4806],{"type":3144,"value":4807},"1234567890",{"type":3139,"tag":3422,"props":4809,"children":4810},{"style":3501},[4811],{"type":3144,"value":4754},{"type":3139,"tag":3422,"props":4813,"children":4814},{"class":3424,"line":3910},[4815],{"type":3139,"tag":3422,"props":4816,"children":4817},{"style":3501},[4818],{"type":3144,"value":4762},{"type":3139,"tag":3422,"props":4820,"children":4821},{"class":3424,"line":3943},[4822],{"type":3139,"tag":3422,"props":4823,"children":4824},{"style":3487},[4825],{"type":3144,"value":4826},"  \u002F\u002F Any extra fields for the session data\n",{"type":3139,"tag":3422,"props":4828,"children":4829},{"class":3424,"line":3998},[4830,4835,4839,4844,4849],{"type":3139,"tag":3422,"props":4831,"children":4832},{"style":3567},[4833],{"type":3144,"value":4834},"  loggedInAt",{"type":3139,"tag":3422,"props":4836,"children":4837},{"style":3501},[4838],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":4840,"children":4841},{"style":3501},[4842],{"type":3144,"value":4843}," new",{"type":3139,"tag":3422,"props":4845,"children":4846},{"style":3658},[4847],{"type":3144,"value":4848}," Date",{"type":3139,"tag":3422,"props":4850,"children":4851},{"style":3496},[4852],{"type":3144,"value":3666},{"type":3139,"tag":3422,"props":4854,"children":4855},{"class":3424,"line":4007},[4856,4860],{"type":3139,"tag":3422,"props":4857,"children":4858},{"style":3501},[4859],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":4861,"children":4862},{"style":3496},[4863],{"type":3144,"value":4864},")\n",{"type":3139,"tag":3422,"props":4866,"children":4867},{"class":3424,"line":3032},[4868],{"type":3139,"tag":3422,"props":4869,"children":4870},{"emptyLinePlaceholder":1200},[4871],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":4873,"children":4874},{"class":3424,"line":4075},[4875],{"type":3139,"tag":3422,"props":4876,"children":4877},{"style":3487},[4878],{"type":3144,"value":4879},"\u002F\u002F Replace a user session. Same behaviour as setUserSession, except it does not merge data with existing data\n",{"type":3139,"tag":3422,"props":4881,"children":4882},{"class":3424,"line":4345},[4883,4887,4892,4896,4900],{"type":3139,"tag":3422,"props":4884,"children":4885},{"style":4684},[4886],{"type":3144,"value":4687},{"type":3139,"tag":3422,"props":4888,"children":4889},{"style":3658},[4890],{"type":3144,"value":4891}," replaceUserSession",{"type":3139,"tag":3422,"props":4893,"children":4894},{"style":3496},[4895],{"type":3144,"value":4697},{"type":3139,"tag":3422,"props":4897,"children":4898},{"style":3501},[4899],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":4901,"children":4902},{"style":3496},[4903],{"type":3144,"value":4904}," data)\n",{"type":3139,"tag":3422,"props":4906,"children":4907},{"class":3424,"line":4353},[4908],{"type":3139,"tag":3422,"props":4909,"children":4910},{"emptyLinePlaceholder":1200},[4911],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":4913,"children":4914},{"class":3424,"line":4362},[4915],{"type":3139,"tag":3422,"props":4916,"children":4917},{"style":3487},[4918],{"type":3144,"value":4919},"\u002F\u002F Get the current user session\n",{"type":3139,"tag":3422,"props":4921,"children":4922},{"class":3424,"line":4370},[4923,4927,4932,4936,4941,4946],{"type":3139,"tag":3422,"props":4924,"children":4925},{"style":3573},[4926],{"type":3144,"value":3589},{"type":3139,"tag":3422,"props":4928,"children":4929},{"style":3496},[4930],{"type":3144,"value":4931}," session ",{"type":3139,"tag":3422,"props":4933,"children":4934},{"style":3501},[4935],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":4937,"children":4938},{"style":4684},[4939],{"type":3144,"value":4940}," await",{"type":3139,"tag":3422,"props":4942,"children":4943},{"style":3658},[4944],{"type":3144,"value":4945}," getUserSession",{"type":3139,"tag":3422,"props":4947,"children":4948},{"style":3496},[4949],{"type":3144,"value":4950},"(event)\n",{"type":3139,"tag":3422,"props":4952,"children":4953},{"class":3424,"line":4411},[4954],{"type":3139,"tag":3422,"props":4955,"children":4956},{"emptyLinePlaceholder":1200},[4957],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":4959,"children":4960},{"class":3424,"line":4419},[4961],{"type":3139,"tag":3422,"props":4962,"children":4963},{"style":3487},[4964],{"type":3144,"value":4965},"\u002F\u002F Clear the current user session\n",{"type":3139,"tag":3422,"props":4967,"children":4968},{"class":3424,"line":4428},[4969,4973,4978],{"type":3139,"tag":3422,"props":4970,"children":4971},{"style":4684},[4972],{"type":3144,"value":4687},{"type":3139,"tag":3422,"props":4974,"children":4975},{"style":3658},[4976],{"type":3144,"value":4977}," clearUserSession",{"type":3139,"tag":3422,"props":4979,"children":4980},{"style":3496},[4981],{"type":3144,"value":4950},{"type":3139,"tag":3422,"props":4983,"children":4984},{"class":3424,"line":4436},[4985],{"type":3139,"tag":3422,"props":4986,"children":4987},{"emptyLinePlaceholder":1200},[4988],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":4990,"children":4991},{"class":3424,"line":4473},[4992],{"type":3139,"tag":3422,"props":4993,"children":4994},{"style":3487},[4995],{"type":3144,"value":4996},"\u002F\u002F Require a user session (send back 401 if no `user` key in session)\n",{"type":3139,"tag":3422,"props":4998,"children":4999},{"class":3424,"line":4481},[5000,5004,5008,5012,5016,5021],{"type":3139,"tag":3422,"props":5001,"children":5002},{"style":3573},[5003],{"type":3144,"value":3589},{"type":3139,"tag":3422,"props":5005,"children":5006},{"style":3496},[5007],{"type":3144,"value":4931},{"type":3139,"tag":3422,"props":5009,"children":5010},{"style":3501},[5011],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":5013,"children":5014},{"style":4684},[5015],{"type":3144,"value":4940},{"type":3139,"tag":3422,"props":5017,"children":5018},{"style":3658},[5019],{"type":3144,"value":5020}," requireUserSession",{"type":3139,"tag":3422,"props":5022,"children":5023},{"style":3496},[5024],{"type":3144,"value":4950},{"type":3139,"tag":3146,"props":5026,"children":5027},{},[5028,5030,5036,5038,5043],{"type":3144,"value":5029},"You can define the type for your user session by creating a type declaration file (for example, ",{"type":3139,"tag":3284,"props":5031,"children":5033},{"className":5032},[],[5034],{"type":3144,"value":5035},"auth.d.ts",{"type":3144,"value":5037},") in your project to augment the ",{"type":3139,"tag":3284,"props":5039,"children":5041},{"className":5040},[],[5042],{"type":3144,"value":4338},{"type":3144,"value":5044}," type:",{"type":3139,"tag":3412,"props":5046,"children":5048},{"className":4100,"code":5047,"language":4102,"meta":3012,"style":3012},"\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",[5049],{"type":3139,"tag":3284,"props":5050,"children":5051},{"__ignoreMap":3012},[5052,5060,5090,5107,5115,5123,5130,5146,5153,5160,5167,5183,5190,5197,5204,5211],{"type":3139,"tag":3422,"props":5053,"children":5054},{"class":3424,"line":3098},[5055],{"type":3139,"tag":3422,"props":5056,"children":5057},{"style":3487},[5058],{"type":3144,"value":5059},"\u002F\u002F shared\u002Ftypes\u002Fauth.d.ts\n",{"type":3139,"tag":3422,"props":5061,"children":5062},{"class":3424,"line":3064},[5063,5068,5072,5076,5081,5086],{"type":3139,"tag":3422,"props":5064,"children":5065},{"style":3573},[5066],{"type":3144,"value":5067},"declare",{"type":3139,"tag":3422,"props":5069,"children":5070},{"style":3573},[5071],{"type":3144,"value":3442},{"type":3139,"tag":3422,"props":5073,"children":5074},{"style":3501},[5075],{"type":3144,"value":4745},{"type":3139,"tag":3422,"props":5077,"children":5078},{"style":3434},[5079],{"type":3144,"value":5080},"#auth-utils",{"type":3139,"tag":3422,"props":5082,"children":5083},{"style":3501},[5084],{"type":3144,"value":5085},"'",{"type":3139,"tag":3422,"props":5087,"children":5088},{"style":3501},[5089],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":5091,"children":5092},{"class":3424,"line":3048},[5093,5098,5103],{"type":3139,"tag":3422,"props":5094,"children":5095},{"style":3573},[5096],{"type":3144,"value":5097},"  interface",{"type":3139,"tag":3422,"props":5099,"children":5100},{"style":3428},[5101],{"type":3144,"value":5102}," User",{"type":3139,"tag":3422,"props":5104,"children":5105},{"style":3501},[5106],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":5108,"children":5109},{"class":3424,"line":3685},[5110],{"type":3139,"tag":3422,"props":5111,"children":5112},{"style":3487},[5113],{"type":3144,"value":5114},"    \u002F\u002F Add your own fields\n",{"type":3139,"tag":3422,"props":5116,"children":5117},{"class":3424,"line":3694},[5118],{"type":3139,"tag":3422,"props":5119,"children":5120},{"style":3501},[5121],{"type":3144,"value":5122},"  }\n",{"type":3139,"tag":3422,"props":5124,"children":5125},{"class":3424,"line":3711},[5126],{"type":3139,"tag":3422,"props":5127,"children":5128},{"emptyLinePlaceholder":1200},[5129],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":5131,"children":5132},{"class":3424,"line":3044},[5133,5137,5142],{"type":3139,"tag":3422,"props":5134,"children":5135},{"style":3573},[5136],{"type":3144,"value":5097},{"type":3139,"tag":3422,"props":5138,"children":5139},{"style":3428},[5140],{"type":3144,"value":5141}," UserSession",{"type":3139,"tag":3422,"props":5143,"children":5144},{"style":3501},[5145],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":5147,"children":5148},{"class":3424,"line":3040},[5149],{"type":3139,"tag":3422,"props":5150,"children":5151},{"style":3487},[5152],{"type":3144,"value":5114},{"type":3139,"tag":3422,"props":5154,"children":5155},{"class":3424,"line":3036},[5156],{"type":3139,"tag":3422,"props":5157,"children":5158},{"style":3501},[5159],{"type":3144,"value":5122},{"type":3139,"tag":3422,"props":5161,"children":5162},{"class":3424,"line":3873},[5163],{"type":3139,"tag":3422,"props":5164,"children":5165},{"emptyLinePlaceholder":1200},[5166],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":5168,"children":5169},{"class":3424,"line":3127},[5170,5174,5179],{"type":3139,"tag":3422,"props":5171,"children":5172},{"style":3573},[5173],{"type":3144,"value":5097},{"type":3139,"tag":3422,"props":5175,"children":5176},{"style":3428},[5177],{"type":3144,"value":5178}," SecureSessionData",{"type":3139,"tag":3422,"props":5180,"children":5181},{"style":3501},[5182],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":5184,"children":5185},{"class":3424,"line":3910},[5186],{"type":3139,"tag":3422,"props":5187,"children":5188},{"style":3487},[5189],{"type":3144,"value":5114},{"type":3139,"tag":3422,"props":5191,"children":5192},{"class":3424,"line":3943},[5193],{"type":3139,"tag":3422,"props":5194,"children":5195},{"style":3501},[5196],{"type":3144,"value":5122},{"type":3139,"tag":3422,"props":5198,"children":5199},{"class":3424,"line":3998},[5200],{"type":3139,"tag":3422,"props":5201,"children":5202},{"style":3501},[5203],{"type":3144,"value":4600},{"type":3139,"tag":3422,"props":5205,"children":5206},{"class":3424,"line":4007},[5207],{"type":3139,"tag":3422,"props":5208,"children":5209},{"emptyLinePlaceholder":1200},[5210],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":5212,"children":5213},{"class":3424,"line":3032},[5214,5219],{"type":3139,"tag":3422,"props":5215,"children":5216},{"style":4684},[5217],{"type":3144,"value":5218},"export",{"type":3139,"tag":3422,"props":5220,"children":5221},{"style":3501},[5222],{"type":3144,"value":5223}," {}\n",{"type":3139,"tag":4602,"props":5225,"children":5226},{},[5227],{"type":3139,"tag":3146,"props":5228,"children":5229},{},[5230,5234],{"type":3139,"tag":3422,"props":5231,"children":5232},{},[5233],{"type":3144,"value":4612},{"type":3144,"value":5235},"\nSince we encrypt and store session data in cookies, we're constrained by the 4096-byte cookie size limit. Store only essential information.",{"type":3139,"tag":3542,"props":5237,"children":5239},{"id":5238},"oauth-event-handlers",[5240],{"type":3144,"value":5241},"OAuth Event Handlers",{"type":3139,"tag":3146,"props":5243,"children":5244},{},[5245],{"type":3144,"value":5246},"All handlers can be auto-imported and used in your server routes or API routes.",{"type":3139,"tag":3146,"props":5248,"children":5249},{},[5250,5252,5258,5260,5266],{"type":3144,"value":5251},"The pattern is ",{"type":3139,"tag":3284,"props":5253,"children":5255},{"className":5254},[],[5256],{"type":3144,"value":5257},"defineOAuth\u003CProvider>EventHandler({ onSuccess, config?, onError? })",{"type":3144,"value":5259},", example: ",{"type":3139,"tag":3284,"props":5261,"children":5263},{"className":5262},[],[5264],{"type":3144,"value":5265},"defineOAuthGitHubEventHandler",{"type":3144,"value":3377},{"type":3139,"tag":3146,"props":5268,"children":5269},{},[5270,5272,5278,5280,5286],{"type":3144,"value":5271},"The helper returns an event handler that automatically redirects to the provider authorization page and then calls ",{"type":3139,"tag":3284,"props":5273,"children":5275},{"className":5274},[],[5276],{"type":3144,"value":5277},"onSuccess",{"type":3144,"value":5279}," or ",{"type":3139,"tag":3284,"props":5281,"children":5283},{"className":5282},[],[5284],{"type":3144,"value":5285},"onError",{"type":3144,"value":5287}," depending on the result.",{"type":3139,"tag":3146,"props":5289,"children":5290},{},[5291,5293,5299,5301,5307,5309,5314],{"type":3144,"value":5292},"The ",{"type":3139,"tag":3284,"props":5294,"children":5296},{"className":5295},[],[5297],{"type":3144,"value":5298},"config",{"type":3144,"value":5300}," can be defined directly from the ",{"type":3139,"tag":3284,"props":5302,"children":5304},{"className":5303},[],[5305],{"type":3144,"value":5306},"runtimeConfig",{"type":3144,"value":5308}," in your ",{"type":3139,"tag":3284,"props":5310,"children":5312},{"className":5311},[],[5313],{"type":3144,"value":233},{"type":3144,"value":4161},{"type":3139,"tag":3412,"props":5316,"children":5318},{"className":4100,"code":5317,"language":4102,"meta":3012,"style":3012},"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",[5319],{"type":3139,"tag":3284,"props":5320,"children":5321},{"__ignoreMap":3012},[5322,5349,5365,5381,5389,5405,5435,5459,5467,5475,5482],{"type":3139,"tag":3422,"props":5323,"children":5324},{"class":3424,"line":3098},[5325,5329,5334,5339,5344],{"type":3139,"tag":3422,"props":5326,"children":5327},{"style":4684},[5328],{"type":3144,"value":5218},{"type":3139,"tag":3422,"props":5330,"children":5331},{"style":4684},[5332],{"type":3144,"value":5333}," default",{"type":3139,"tag":3422,"props":5335,"children":5336},{"style":3658},[5337],{"type":3144,"value":5338}," defineNuxtConfig",{"type":3139,"tag":3422,"props":5340,"children":5341},{"style":3496},[5342],{"type":3144,"value":5343},"(",{"type":3139,"tag":3422,"props":5345,"children":5346},{"style":3501},[5347],{"type":3144,"value":5348},"{\n",{"type":3139,"tag":3422,"props":5350,"children":5351},{"class":3424,"line":3064},[5352,5357,5361],{"type":3139,"tag":3422,"props":5353,"children":5354},{"style":3567},[5355],{"type":3144,"value":5356},"  runtimeConfig",{"type":3139,"tag":3422,"props":5358,"children":5359},{"style":3501},[5360],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":5362,"children":5363},{"style":3501},[5364],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":5366,"children":5367},{"class":3424,"line":3048},[5368,5373,5377],{"type":3139,"tag":3422,"props":5369,"children":5370},{"style":3567},[5371],{"type":3144,"value":5372},"    oauth",{"type":3139,"tag":3422,"props":5374,"children":5375},{"style":3501},[5376],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":5378,"children":5379},{"style":3501},[5380],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":5382,"children":5383},{"class":3424,"line":3685},[5384],{"type":3139,"tag":3422,"props":5385,"children":5386},{"style":3487},[5387],{"type":3144,"value":5388},"      \u002F\u002F provider in lowercase (github, google, etc.)\n",{"type":3139,"tag":3422,"props":5390,"children":5391},{"class":3424,"line":3694},[5392,5397,5401],{"type":3139,"tag":3422,"props":5393,"children":5394},{"style":3496},[5395],{"type":3144,"value":5396},"      \u003Cprovider>",{"type":3139,"tag":3422,"props":5398,"children":5399},{"style":3501},[5400],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":5402,"children":5403},{"style":3501},[5404],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":5406,"children":5407},{"class":3424,"line":3711},[5408,5413,5417,5421,5426,5430],{"type":3139,"tag":3422,"props":5409,"children":5410},{"style":3567},[5411],{"type":3144,"value":5412},"        clientId",{"type":3139,"tag":3422,"props":5414,"children":5415},{"style":3501},[5416],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":5418,"children":5419},{"style":3501},[5420],{"type":3144,"value":4745},{"type":3139,"tag":3422,"props":5422,"children":5423},{"style":3434},[5424],{"type":3144,"value":5425},"...",{"type":3139,"tag":3422,"props":5427,"children":5428},{"style":3501},[5429],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":5431,"children":5432},{"style":3501},[5433],{"type":3144,"value":5434},",\n",{"type":3139,"tag":3422,"props":5436,"children":5437},{"class":3424,"line":3044},[5438,5443,5447,5451,5455],{"type":3139,"tag":3422,"props":5439,"children":5440},{"style":3567},[5441],{"type":3144,"value":5442},"        clientSecret",{"type":3139,"tag":3422,"props":5444,"children":5445},{"style":3501},[5446],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":5448,"children":5449},{"style":3501},[5450],{"type":3144,"value":4745},{"type":3139,"tag":3422,"props":5452,"children":5453},{"style":3434},[5454],{"type":3144,"value":5425},{"type":3139,"tag":3422,"props":5456,"children":5457},{"style":3501},[5458],{"type":3144,"value":4754},{"type":3139,"tag":3422,"props":5460,"children":5461},{"class":3424,"line":3040},[5462],{"type":3139,"tag":3422,"props":5463,"children":5464},{"style":3501},[5465],{"type":3144,"value":5466},"      }\n",{"type":3139,"tag":3422,"props":5468,"children":5469},{"class":3424,"line":3036},[5470],{"type":3139,"tag":3422,"props":5471,"children":5472},{"style":3501},[5473],{"type":3144,"value":5474},"    }\n",{"type":3139,"tag":3422,"props":5476,"children":5477},{"class":3424,"line":3873},[5478],{"type":3139,"tag":3422,"props":5479,"children":5480},{"style":3501},[5481],{"type":3144,"value":5122},{"type":3139,"tag":3422,"props":5483,"children":5484},{"class":3424,"line":3127},[5485,5489],{"type":3139,"tag":3422,"props":5486,"children":5487},{"style":3501},[5488],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":5490,"children":5491},{"style":3496},[5492],{"type":3144,"value":4864},{"type":3139,"tag":3146,"props":5494,"children":5495},{},[5496],{"type":3144,"value":5497},"It can also be set using environment variables:",{"type":3139,"tag":3196,"props":5499,"children":5500},{},[5501,5510],{"type":3139,"tag":3200,"props":5502,"children":5503},{},[5504],{"type":3139,"tag":3284,"props":5505,"children":5507},{"className":5506},[],[5508],{"type":3144,"value":5509},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_ID",{"type":3139,"tag":3200,"props":5511,"children":5512},{},[5513],{"type":3139,"tag":3284,"props":5514,"children":5516},{"className":5515},[],[5517],{"type":3144,"value":5518},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_SECRET",{"type":3139,"tag":4602,"props":5520,"children":5521},{},[5522],{"type":3139,"tag":3146,"props":5523,"children":5524},{},[5525],{"type":3144,"value":5526},"Provider is in uppercase (GITHUB, GOOGLE, etc.)",{"type":3139,"tag":5528,"props":5529,"children":5531},"h4",{"id":5530},"supported-oauth-providers",[5532],{"type":3144,"value":5533},"Supported OAuth Providers",{"type":3139,"tag":3196,"props":5535,"children":5536},{},[5537,5542,5547,5552,5557,5562,5567,5572,5577,5582,5587,5592,5597,5602,5607,5612,5617,5622,5627,5632,5637,5642,5647,5652,5657,5662,5667,5672,5677,5682,5687,5692,5697,5702,5707,5712,5717,5722,5727,5732,5737,5742,5747,5752,5757,5762,5767,5772],{"type":3139,"tag":3200,"props":5538,"children":5539},{},[5540],{"type":3144,"value":5541},"Apple",{"type":3139,"tag":3200,"props":5543,"children":5544},{},[5545],{"type":3144,"value":5546},"Atlassian",{"type":3139,"tag":3200,"props":5548,"children":5549},{},[5550],{"type":3144,"value":5551},"Auth0",{"type":3139,"tag":3200,"props":5553,"children":5554},{},[5555],{"type":3144,"value":5556},"Authentik",{"type":3139,"tag":3200,"props":5558,"children":5559},{},[5560],{"type":3144,"value":5561},"AWS Cognito",{"type":3139,"tag":3200,"props":5563,"children":5564},{},[5565],{"type":3144,"value":5566},"Azure B2C",{"type":3139,"tag":3200,"props":5568,"children":5569},{},[5570],{"type":3144,"value":5571},"Battle.net",{"type":3139,"tag":3200,"props":5573,"children":5574},{},[5575],{"type":3144,"value":5576},"Bluesky (AT Protocol)",{"type":3139,"tag":3200,"props":5578,"children":5579},{},[5580],{"type":3144,"value":5581},"Box.com",{"type":3139,"tag":3200,"props":5583,"children":5584},{},[5585],{"type":3144,"value":5586},"Discord",{"type":3139,"tag":3200,"props":5588,"children":5589},{},[5590],{"type":3144,"value":5591},"Dropbox",{"type":3139,"tag":3200,"props":5593,"children":5594},{},[5595],{"type":3144,"value":5596},"Facebook",{"type":3139,"tag":3200,"props":5598,"children":5599},{},[5600],{"type":3144,"value":5601},"GitHub",{"type":3139,"tag":3200,"props":5603,"children":5604},{},[5605],{"type":3144,"value":5606},"GitLab",{"type":3139,"tag":3200,"props":5608,"children":5609},{},[5610],{"type":3144,"value":5611},"Gitea",{"type":3139,"tag":3200,"props":5613,"children":5614},{},[5615],{"type":3144,"value":5616},"Google",{"type":3139,"tag":3200,"props":5618,"children":5619},{},[5620],{"type":3144,"value":5621},"Heroku",{"type":3139,"tag":3200,"props":5623,"children":5624},{},[5625],{"type":3144,"value":5626},"Hubspot",{"type":3139,"tag":3200,"props":5628,"children":5629},{},[5630],{"type":3144,"value":5631},"Instagram",{"type":3139,"tag":3200,"props":5633,"children":5634},{},[5635],{"type":3144,"value":5636},"Kick",{"type":3139,"tag":3200,"props":5638,"children":5639},{},[5640],{"type":3144,"value":5641},"Keycloak",{"type":3139,"tag":3200,"props":5643,"children":5644},{},[5645],{"type":3144,"value":5646},"Line",{"type":3139,"tag":3200,"props":5648,"children":5649},{},[5650],{"type":3144,"value":5651},"Linear",{"type":3139,"tag":3200,"props":5653,"children":5654},{},[5655],{"type":3144,"value":5656},"LinkedIn",{"type":3139,"tag":3200,"props":5658,"children":5659},{},[5660],{"type":3144,"value":5661},"LiveChat",{"type":3139,"tag":3200,"props":5663,"children":5664},{},[5665],{"type":3144,"value":5666},"Microsoft",{"type":3139,"tag":3200,"props":5668,"children":5669},{},[5670],{"type":3144,"value":5671},"OIDC \u002F OpenID Connect (Generic)",{"type":3139,"tag":3200,"props":5673,"children":5674},{},[5675],{"type":3144,"value":5676},"Okta",{"type":3139,"tag":3200,"props":5678,"children":5679},{},[5680],{"type":3144,"value":5681},"Ory",{"type":3139,"tag":3200,"props":5683,"children":5684},{},[5685],{"type":3144,"value":5686},"osu!",{"type":3139,"tag":3200,"props":5688,"children":5689},{},[5690],{"type":3144,"value":5691},"PayPal",{"type":3139,"tag":3200,"props":5693,"children":5694},{},[5695],{"type":3144,"value":5696},"Polar",{"type":3139,"tag":3200,"props":5698,"children":5699},{},[5700],{"type":3144,"value":5701},"Riot Games",{"type":3139,"tag":3200,"props":5703,"children":5704},{},[5705],{"type":3144,"value":5706},"Salesforce",{"type":3139,"tag":3200,"props":5708,"children":5709},{},[5710],{"type":3144,"value":5711},"Seznam",{"type":3139,"tag":3200,"props":5713,"children":5714},{},[5715],{"type":3144,"value":5716},"Shopify Customer",{"type":3139,"tag":3200,"props":5718,"children":5719},{},[5720],{"type":3144,"value":5721},"Slack",{"type":3139,"tag":3200,"props":5723,"children":5724},{},[5725],{"type":3144,"value":5726},"Spotify",{"type":3139,"tag":3200,"props":5728,"children":5729},{},[5730],{"type":3144,"value":5731},"Steam",{"type":3139,"tag":3200,"props":5733,"children":5734},{},[5735],{"type":3144,"value":5736},"Strava",{"type":3139,"tag":3200,"props":5738,"children":5739},{},[5740],{"type":3144,"value":5741},"TikTok",{"type":3139,"tag":3200,"props":5743,"children":5744},{},[5745],{"type":3144,"value":5746},"Twitch",{"type":3139,"tag":3200,"props":5748,"children":5749},{},[5750],{"type":3144,"value":5751},"VK",{"type":3139,"tag":3200,"props":5753,"children":5754},{},[5755],{"type":3144,"value":5756},"WorkOS",{"type":3139,"tag":3200,"props":5758,"children":5759},{},[5760],{"type":3144,"value":5761},"X (Twitter)",{"type":3139,"tag":3200,"props":5763,"children":5764},{},[5765],{"type":3144,"value":5766},"XSUAA",{"type":3139,"tag":3200,"props":5768,"children":5769},{},[5770],{"type":3144,"value":5771},"Yandex",{"type":3139,"tag":3200,"props":5773,"children":5774},{},[5775],{"type":3144,"value":5776},"Zitadel",{"type":3139,"tag":3146,"props":5778,"children":5779},{},[5780,5782,5789],{"type":3144,"value":5781},"You can add your favorite provider by creating a new file in ",{"type":3139,"tag":3150,"props":5783,"children":5786},{"href":5784,"rel":5785},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Ftree\u002Fmain\u002Fsrc\u002Fruntime\u002Fserver\u002Flib\u002Foauth",[3154],[5787],{"type":3144,"value":5788},"src\u002Fruntime\u002Fserver\u002Flib\u002Foauth\u002F",{"type":3144,"value":3377},{"type":3139,"tag":5528,"props":5791,"children":5793},{"id":5792},"example",[5794],{"type":3144,"value":5795},"Example",{"type":3139,"tag":3146,"props":5797,"children":5798},{},[5799,5801],{"type":3144,"value":5800},"Example: ",{"type":3139,"tag":3284,"props":5802,"children":5804},{"className":5803},[],[5805],{"type":3144,"value":5806},"~\u002Fserver\u002Froutes\u002Fauth\u002Fgithub.get.ts",{"type":3139,"tag":3412,"props":5808,"children":5810},{"className":4100,"code":5809,"language":4102,"meta":3012,"style":3012},"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",[5811],{"type":3139,"tag":3284,"props":5812,"children":5813},{"__ignoreMap":3012},[5814,5838,5854,5872,5879,5930,5958,5974,5999,6006,6018,6060,6067,6075,6109,6155,6194,6201],{"type":3139,"tag":3422,"props":5815,"children":5816},{"class":3424,"line":3098},[5817,5821,5825,5830,5834],{"type":3139,"tag":3422,"props":5818,"children":5819},{"style":4684},[5820],{"type":3144,"value":5218},{"type":3139,"tag":3422,"props":5822,"children":5823},{"style":4684},[5824],{"type":3144,"value":5333},{"type":3139,"tag":3422,"props":5826,"children":5827},{"style":3658},[5828],{"type":3144,"value":5829}," defineOAuthGitHubEventHandler",{"type":3139,"tag":3422,"props":5831,"children":5832},{"style":3496},[5833],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":5835,"children":5836},{"style":3501},[5837],{"type":3144,"value":5348},{"type":3139,"tag":3422,"props":5839,"children":5840},{"class":3424,"line":3064},[5841,5846,5850],{"type":3139,"tag":3422,"props":5842,"children":5843},{"style":3567},[5844],{"type":3144,"value":5845},"  config",{"type":3139,"tag":3422,"props":5847,"children":5848},{"style":3501},[5849],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":5851,"children":5852},{"style":3501},[5853],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":5855,"children":5856},{"class":3424,"line":3048},[5857,5862,5866],{"type":3139,"tag":3422,"props":5858,"children":5859},{"style":3567},[5860],{"type":3144,"value":5861},"    emailRequired",{"type":3139,"tag":3422,"props":5863,"children":5864},{"style":3501},[5865],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":5867,"children":5869},{"style":5868},"--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC",[5870],{"type":3144,"value":5871}," true\n",{"type":3139,"tag":3422,"props":5873,"children":5874},{"class":3424,"line":3685},[5875],{"type":3139,"tag":3422,"props":5876,"children":5877},{"style":3501},[5878],{"type":3144,"value":4762},{"type":3139,"tag":3422,"props":5880,"children":5881},{"class":3424,"line":3694},[5882,5887,5892,5896,5901,5905,5909,5913,5917,5922,5926],{"type":3139,"tag":3422,"props":5883,"children":5884},{"style":3573},[5885],{"type":3144,"value":5886},"  async",{"type":3139,"tag":3422,"props":5888,"children":5889},{"style":3567},[5890],{"type":3144,"value":5891}," onSuccess",{"type":3139,"tag":3422,"props":5893,"children":5894},{"style":3501},[5895],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":5897,"children":5898},{"style":4516},[5899],{"type":3144,"value":5900},"event",{"type":3139,"tag":3422,"props":5902,"children":5903},{"style":3501},[5904],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":5906,"children":5907},{"style":3501},[5908],{"type":3144,"value":3594},{"type":3139,"tag":3422,"props":5910,"children":5911},{"style":4516},[5912],{"type":3144,"value":3609},{"type":3139,"tag":3422,"props":5914,"children":5915},{"style":3501},[5916],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":5918,"children":5919},{"style":4516},[5920],{"type":3144,"value":5921}," tokens",{"type":3139,"tag":3422,"props":5923,"children":5924},{"style":3501},[5925],{"type":3144,"value":4582},{"type":3139,"tag":3422,"props":5927,"children":5928},{"style":3501},[5929],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":5931,"children":5932},{"class":3424,"line":3711},[5933,5938,5942,5946,5950,5954],{"type":3139,"tag":3422,"props":5934,"children":5935},{"style":4684},[5936],{"type":3144,"value":5937},"    await",{"type":3139,"tag":3422,"props":5939,"children":5940},{"style":3658},[5941],{"type":3144,"value":4692},{"type":3139,"tag":3422,"props":5943,"children":5944},{"style":3567},[5945],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":5947,"children":5948},{"style":3496},[5949],{"type":3144,"value":5900},{"type":3139,"tag":3422,"props":5951,"children":5952},{"style":3501},[5953],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":5955,"children":5956},{"style":3501},[5957],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":5959,"children":5960},{"class":3424,"line":3044},[5961,5966,5970],{"type":3139,"tag":3422,"props":5962,"children":5963},{"style":3567},[5964],{"type":3144,"value":5965},"      user",{"type":3139,"tag":3422,"props":5967,"children":5968},{"style":3501},[5969],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":5971,"children":5972},{"style":3501},[5973],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":5975,"children":5976},{"class":3424,"line":3040},[5977,5982,5986,5990,5994],{"type":3139,"tag":3422,"props":5978,"children":5979},{"style":3567},[5980],{"type":3144,"value":5981},"        githubId",{"type":3139,"tag":3422,"props":5983,"children":5984},{"style":3501},[5985],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":5987,"children":5988},{"style":3496},[5989],{"type":3144,"value":3609},{"type":3139,"tag":3422,"props":5991,"children":5992},{"style":3501},[5993],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":5995,"children":5996},{"style":3496},[5997],{"type":3144,"value":5998},"id\n",{"type":3139,"tag":3422,"props":6000,"children":6001},{"class":3424,"line":3036},[6002],{"type":3139,"tag":3422,"props":6003,"children":6004},{"style":3501},[6005],{"type":3144,"value":5466},{"type":3139,"tag":3422,"props":6007,"children":6008},{"class":3424,"line":3873},[6009,6014],{"type":3139,"tag":3422,"props":6010,"children":6011},{"style":3501},[6012],{"type":3144,"value":6013},"    }",{"type":3139,"tag":3422,"props":6015,"children":6016},{"style":3567},[6017],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":6019,"children":6020},{"class":3424,"line":3127},[6021,6026,6031,6035,6039,6043,6047,6052,6056],{"type":3139,"tag":3422,"props":6022,"children":6023},{"style":4684},[6024],{"type":3144,"value":6025},"    return",{"type":3139,"tag":3422,"props":6027,"children":6028},{"style":3658},[6029],{"type":3144,"value":6030}," sendRedirect",{"type":3139,"tag":3422,"props":6032,"children":6033},{"style":3567},[6034],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":6036,"children":6037},{"style":3496},[6038],{"type":3144,"value":5900},{"type":3139,"tag":3422,"props":6040,"children":6041},{"style":3501},[6042],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":6044,"children":6045},{"style":3501},[6046],{"type":3144,"value":4745},{"type":3139,"tag":3422,"props":6048,"children":6049},{"style":3434},[6050],{"type":3144,"value":6051},"\u002F",{"type":3139,"tag":3422,"props":6053,"children":6054},{"style":3501},[6055],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":6057,"children":6058},{"style":3567},[6059],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":6061,"children":6062},{"class":3424,"line":3910},[6063],{"type":3139,"tag":3422,"props":6064,"children":6065},{"style":3501},[6066],{"type":3144,"value":4762},{"type":3139,"tag":3422,"props":6068,"children":6069},{"class":3424,"line":3943},[6070],{"type":3139,"tag":3422,"props":6071,"children":6072},{"style":3487},[6073],{"type":3144,"value":6074},"  \u002F\u002F Optional, will return a json error and 401 status code by default\n",{"type":3139,"tag":3422,"props":6076,"children":6077},{"class":3424,"line":3998},[6078,6083,6087,6091,6095,6100,6105],{"type":3139,"tag":3422,"props":6079,"children":6080},{"style":3567},[6081],{"type":3144,"value":6082},"  onError",{"type":3139,"tag":3422,"props":6084,"children":6085},{"style":3501},[6086],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":6088,"children":6089},{"style":4516},[6090],{"type":3144,"value":5900},{"type":3139,"tag":3422,"props":6092,"children":6093},{"style":3501},[6094],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":6096,"children":6097},{"style":4516},[6098],{"type":3144,"value":6099}," error",{"type":3139,"tag":3422,"props":6101,"children":6102},{"style":3501},[6103],{"type":3144,"value":6104},")",{"type":3139,"tag":3422,"props":6106,"children":6107},{"style":3501},[6108],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":6110,"children":6111},{"class":3424,"line":4007},[6112,6117,6121,6126,6130,6134,6139,6143,6147,6151],{"type":3139,"tag":3422,"props":6113,"children":6114},{"style":3496},[6115],{"type":3144,"value":6116},"    console",{"type":3139,"tag":3422,"props":6118,"children":6119},{"style":3501},[6120],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":6122,"children":6123},{"style":3658},[6124],{"type":3144,"value":6125},"error",{"type":3139,"tag":3422,"props":6127,"children":6128},{"style":3567},[6129],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":6131,"children":6132},{"style":3501},[6133],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":6135,"children":6136},{"style":3434},[6137],{"type":3144,"value":6138},"GitHub OAuth error:",{"type":3139,"tag":3422,"props":6140,"children":6141},{"style":3501},[6142],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":6144,"children":6145},{"style":3501},[6146],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":6148,"children":6149},{"style":3496},[6150],{"type":3144,"value":6099},{"type":3139,"tag":3422,"props":6152,"children":6153},{"style":3567},[6154],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":6156,"children":6157},{"class":3424,"line":3032},[6158,6162,6166,6170,6174,6178,6182,6186,6190],{"type":3139,"tag":3422,"props":6159,"children":6160},{"style":4684},[6161],{"type":3144,"value":6025},{"type":3139,"tag":3422,"props":6163,"children":6164},{"style":3658},[6165],{"type":3144,"value":6030},{"type":3139,"tag":3422,"props":6167,"children":6168},{"style":3567},[6169],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":6171,"children":6172},{"style":3496},[6173],{"type":3144,"value":5900},{"type":3139,"tag":3422,"props":6175,"children":6176},{"style":3501},[6177],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":6179,"children":6180},{"style":3501},[6181],{"type":3144,"value":4745},{"type":3139,"tag":3422,"props":6183,"children":6184},{"style":3434},[6185],{"type":3144,"value":6051},{"type":3139,"tag":3422,"props":6187,"children":6188},{"style":3501},[6189],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":6191,"children":6192},{"style":3567},[6193],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":6195,"children":6196},{"class":3424,"line":4075},[6197],{"type":3139,"tag":3422,"props":6198,"children":6199},{"style":3501},[6200],{"type":3144,"value":4762},{"type":3139,"tag":3422,"props":6202,"children":6203},{"class":3424,"line":4345},[6204,6208],{"type":3139,"tag":3422,"props":6205,"children":6206},{"style":3501},[6207],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":6209,"children":6210},{"style":3496},[6211],{"type":3144,"value":4864},{"type":3139,"tag":3146,"props":6213,"children":6214},{},[6215,6217,6223],{"type":3144,"value":6216},"Make sure to set the callback URL in your OAuth app settings as ",{"type":3139,"tag":3284,"props":6218,"children":6220},{"className":6219},[],[6221],{"type":3144,"value":6222},"\u003Cyour-domain>\u002Fauth\u002Fgithub",{"type":3144,"value":3377},{"type":3139,"tag":3146,"props":6225,"children":6226},{},[6227,6229,6235],{"type":3144,"value":6228},"If the redirect URL mismatch in production, this means that the module cannot guess the right redirect URL. You can set the ",{"type":3139,"tag":3284,"props":6230,"children":6232},{"className":6231},[],[6233],{"type":3144,"value":6234},"NUXT_OAUTH_\u003CPROVIDER>_REDIRECT_URL",{"type":3144,"value":6236}," env variable to overwrite the default one.",{"type":3139,"tag":3542,"props":6238,"children":6240},{"id":6239},"password-hashing",[6241],{"type":3144,"value":3266},{"type":3139,"tag":3146,"props":6243,"children":6244},{},[6245,6247,6253,6255,6261,6263,6270],{"type":3144,"value":6246},"Nuxt Auth Utils provides password hashing utilities like ",{"type":3139,"tag":3284,"props":6248,"children":6250},{"className":6249},[],[6251],{"type":3144,"value":6252},"hashPassword",{"type":3144,"value":6254}," and ",{"type":3139,"tag":3284,"props":6256,"children":6258},{"className":6257},[],[6259],{"type":3144,"value":6260},"verifyPassword",{"type":3144,"value":6262}," to hash and verify passwords by using ",{"type":3139,"tag":3150,"props":6264,"children":6267},{"href":6265,"rel":6266},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FScrypt",[3154],[6268],{"type":3144,"value":6269},"scrypt",{"type":3144,"value":6271}," as it is supported in many JS runtime.",{"type":3139,"tag":3412,"props":6273,"children":6275},{"className":4100,"code":6274,"language":4102,"meta":3012,"style":3012},"const hashedPassword = await hashPassword('user_password')\n\nif (await verifyPassword(hashedPassword, 'user_password')) {\n  \u002F\u002F Password is valid\n}\n",[6276],{"type":3139,"tag":3284,"props":6277,"children":6278},{"__ignoreMap":3012},[6279,6325,6332,6383,6391],{"type":3139,"tag":3422,"props":6280,"children":6281},{"class":3424,"line":3098},[6282,6286,6291,6295,6299,6304,6308,6312,6317,6321],{"type":3139,"tag":3422,"props":6283,"children":6284},{"style":3573},[6285],{"type":3144,"value":3589},{"type":3139,"tag":3422,"props":6287,"children":6288},{"style":3496},[6289],{"type":3144,"value":6290}," hashedPassword ",{"type":3139,"tag":3422,"props":6292,"children":6293},{"style":3501},[6294],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":6296,"children":6297},{"style":4684},[6298],{"type":3144,"value":4940},{"type":3139,"tag":3422,"props":6300,"children":6301},{"style":3658},[6302],{"type":3144,"value":6303}," hashPassword",{"type":3139,"tag":3422,"props":6305,"children":6306},{"style":3496},[6307],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":6309,"children":6310},{"style":3501},[6311],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":6313,"children":6314},{"style":3434},[6315],{"type":3144,"value":6316},"user_password",{"type":3139,"tag":3422,"props":6318,"children":6319},{"style":3501},[6320],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":6322,"children":6323},{"style":3496},[6324],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":6326,"children":6327},{"class":3424,"line":3064},[6328],{"type":3139,"tag":3422,"props":6329,"children":6330},{"emptyLinePlaceholder":1200},[6331],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":6333,"children":6334},{"class":3424,"line":3048},[6335,6340,6344,6348,6353,6358,6362,6366,6370,6374,6379],{"type":3139,"tag":3422,"props":6336,"children":6337},{"style":4684},[6338],{"type":3144,"value":6339},"if",{"type":3139,"tag":3422,"props":6341,"children":6342},{"style":3496},[6343],{"type":3144,"value":4513},{"type":3139,"tag":3422,"props":6345,"children":6346},{"style":4684},[6347],{"type":3144,"value":4687},{"type":3139,"tag":3422,"props":6349,"children":6350},{"style":3658},[6351],{"type":3144,"value":6352}," verifyPassword",{"type":3139,"tag":3422,"props":6354,"children":6355},{"style":3496},[6356],{"type":3144,"value":6357},"(hashedPassword",{"type":3139,"tag":3422,"props":6359,"children":6360},{"style":3501},[6361],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":6363,"children":6364},{"style":3501},[6365],{"type":3144,"value":4745},{"type":3139,"tag":3422,"props":6367,"children":6368},{"style":3434},[6369],{"type":3144,"value":6316},{"type":3139,"tag":3422,"props":6371,"children":6372},{"style":3501},[6373],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":6375,"children":6376},{"style":3496},[6377],{"type":3144,"value":6378},")) ",{"type":3139,"tag":3422,"props":6380,"children":6381},{"style":3501},[6382],{"type":3144,"value":5348},{"type":3139,"tag":3422,"props":6384,"children":6385},{"class":3424,"line":3685},[6386],{"type":3139,"tag":3422,"props":6387,"children":6388},{"style":3487},[6389],{"type":3144,"value":6390},"  \u002F\u002F Password is valid\n",{"type":3139,"tag":3422,"props":6392,"children":6393},{"class":3424,"line":3694},[6394],{"type":3139,"tag":3422,"props":6395,"children":6396},{"style":3501},[6397],{"type":3144,"value":4600},{"type":3139,"tag":3146,"props":6399,"children":6400},{},[6401,6403,6409],{"type":3144,"value":6402},"It also provides a ",{"type":3139,"tag":3284,"props":6404,"children":6406},{"className":6405},[],[6407],{"type":3144,"value":6408},"passwordNeedsRehash",{"type":3144,"value":6410}," 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":3139,"tag":3412,"props":6412,"children":6414},{"className":4100,"code":6413,"language":4102,"meta":3012,"style":3012},"const needsRehash = passwordNeedsRehash(hashedPassword)\n\nif (needsRehash) {\n  \u002F\u002F Password needs to be rehashed\n  hashedPassword = await hashPassword('user_password')\n}\n",[6415],{"type":3139,"tag":3284,"props":6416,"children":6417},{"__ignoreMap":3012},[6418,6444,6451,6467,6475,6515],{"type":3139,"tag":3422,"props":6419,"children":6420},{"class":3424,"line":3098},[6421,6425,6430,6434,6439],{"type":3139,"tag":3422,"props":6422,"children":6423},{"style":3573},[6424],{"type":3144,"value":3589},{"type":3139,"tag":3422,"props":6426,"children":6427},{"style":3496},[6428],{"type":3144,"value":6429}," needsRehash ",{"type":3139,"tag":3422,"props":6431,"children":6432},{"style":3501},[6433],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":6435,"children":6436},{"style":3658},[6437],{"type":3144,"value":6438}," passwordNeedsRehash",{"type":3139,"tag":3422,"props":6440,"children":6441},{"style":3496},[6442],{"type":3144,"value":6443},"(hashedPassword)\n",{"type":3139,"tag":3422,"props":6445,"children":6446},{"class":3424,"line":3064},[6447],{"type":3139,"tag":3422,"props":6448,"children":6449},{"emptyLinePlaceholder":1200},[6450],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":6452,"children":6453},{"class":3424,"line":3048},[6454,6458,6463],{"type":3139,"tag":3422,"props":6455,"children":6456},{"style":4684},[6457],{"type":3144,"value":6339},{"type":3139,"tag":3422,"props":6459,"children":6460},{"style":3496},[6461],{"type":3144,"value":6462}," (needsRehash) ",{"type":3139,"tag":3422,"props":6464,"children":6465},{"style":3501},[6466],{"type":3144,"value":5348},{"type":3139,"tag":3422,"props":6468,"children":6469},{"class":3424,"line":3685},[6470],{"type":3139,"tag":3422,"props":6471,"children":6472},{"style":3487},[6473],{"type":3144,"value":6474},"  \u002F\u002F Password needs to be rehashed\n",{"type":3139,"tag":3422,"props":6476,"children":6477},{"class":3424,"line":3694},[6478,6483,6487,6491,6495,6499,6503,6507,6511],{"type":3139,"tag":3422,"props":6479,"children":6480},{"style":3496},[6481],{"type":3144,"value":6482},"  hashedPassword",{"type":3139,"tag":3422,"props":6484,"children":6485},{"style":3501},[6486],{"type":3144,"value":3655},{"type":3139,"tag":3422,"props":6488,"children":6489},{"style":4684},[6490],{"type":3144,"value":4940},{"type":3139,"tag":3422,"props":6492,"children":6493},{"style":3658},[6494],{"type":3144,"value":6303},{"type":3139,"tag":3422,"props":6496,"children":6497},{"style":3567},[6498],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":6500,"children":6501},{"style":3501},[6502],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":6504,"children":6505},{"style":3434},[6506],{"type":3144,"value":6316},{"type":3139,"tag":3422,"props":6508,"children":6509},{"style":3501},[6510],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":6512,"children":6513},{"style":3567},[6514],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":6516,"children":6517},{"class":3424,"line":3711},[6518],{"type":3139,"tag":3422,"props":6519,"children":6520},{"style":3501},[6521],{"type":3144,"value":4600},{"type":3139,"tag":3146,"props":6523,"children":6524},{},[6525,6527,6532],{"type":3144,"value":6526},"You can configure the scrypt options in your ",{"type":3139,"tag":3284,"props":6528,"children":6530},{"className":6529},[],[6531],{"type":3144,"value":233},{"type":3144,"value":4161},{"type":3139,"tag":3412,"props":6534,"children":6536},{"className":4100,"code":6535,"language":4102,"meta":3012,"style":3012},"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",[6537],{"type":3139,"tag":3284,"props":6538,"children":6539},{"__ignoreMap":3012},[6540,6563,6601,6617,6633,6649,6657,6664,6671,6678],{"type":3139,"tag":3422,"props":6541,"children":6542},{"class":3424,"line":3098},[6543,6547,6551,6555,6559],{"type":3139,"tag":3422,"props":6544,"children":6545},{"style":4684},[6546],{"type":3144,"value":5218},{"type":3139,"tag":3422,"props":6548,"children":6549},{"style":4684},[6550],{"type":3144,"value":5333},{"type":3139,"tag":3422,"props":6552,"children":6553},{"style":3658},[6554],{"type":3144,"value":5338},{"type":3139,"tag":3422,"props":6556,"children":6557},{"style":3496},[6558],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":6560,"children":6561},{"style":3501},[6562],{"type":3144,"value":5348},{"type":3139,"tag":3422,"props":6564,"children":6565},{"class":3424,"line":3064},[6566,6571,6575,6580,6584,6588,6592,6597],{"type":3139,"tag":3422,"props":6567,"children":6568},{"style":3567},[6569],{"type":3144,"value":6570},"  modules",{"type":3139,"tag":3422,"props":6572,"children":6573},{"style":3501},[6574],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":6576,"children":6577},{"style":3496},[6578],{"type":3144,"value":6579}," [",{"type":3139,"tag":3422,"props":6581,"children":6582},{"style":3501},[6583],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":6585,"children":6586},{"style":3434},[6587],{"type":3144,"value":3011},{"type":3139,"tag":3422,"props":6589,"children":6590},{"style":3501},[6591],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":6593,"children":6594},{"style":3496},[6595],{"type":3144,"value":6596},"]",{"type":3139,"tag":3422,"props":6598,"children":6599},{"style":3501},[6600],{"type":3144,"value":5434},{"type":3139,"tag":3422,"props":6602,"children":6603},{"class":3424,"line":3048},[6604,6609,6613],{"type":3139,"tag":3422,"props":6605,"children":6606},{"style":3567},[6607],{"type":3144,"value":6608},"  auth",{"type":3139,"tag":3422,"props":6610,"children":6611},{"style":3501},[6612],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":6614,"children":6615},{"style":3501},[6616],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":6618,"children":6619},{"class":3424,"line":3685},[6620,6625,6629],{"type":3139,"tag":3422,"props":6621,"children":6622},{"style":3567},[6623],{"type":3144,"value":6624},"    hash",{"type":3139,"tag":3422,"props":6626,"children":6627},{"style":3501},[6628],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":6630,"children":6631},{"style":3501},[6632],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":6634,"children":6635},{"class":3424,"line":3694},[6636,6641,6645],{"type":3139,"tag":3422,"props":6637,"children":6638},{"style":3567},[6639],{"type":3144,"value":6640},"      scrypt",{"type":3139,"tag":3422,"props":6642,"children":6643},{"style":3501},[6644],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":6646,"children":6647},{"style":3501},[6648],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":6650,"children":6651},{"class":3424,"line":3711},[6652],{"type":3139,"tag":3422,"props":6653,"children":6654},{"style":3487},[6655],{"type":3144,"value":6656},"        \u002F\u002F See https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fhash\u002Fblob\u002F94637029cd526783ac0a763ec581306d98db2036\u002Fsrc\u002Ftypes.ts#L144\n",{"type":3139,"tag":3422,"props":6658,"children":6659},{"class":3424,"line":3044},[6660],{"type":3139,"tag":3422,"props":6661,"children":6662},{"style":3501},[6663],{"type":3144,"value":5466},{"type":3139,"tag":3422,"props":6665,"children":6666},{"class":3424,"line":3040},[6667],{"type":3139,"tag":3422,"props":6668,"children":6669},{"style":3501},[6670],{"type":3144,"value":5474},{"type":3139,"tag":3422,"props":6672,"children":6673},{"class":3424,"line":3036},[6674],{"type":3139,"tag":3422,"props":6675,"children":6676},{"style":3501},[6677],{"type":3144,"value":5122},{"type":3139,"tag":3422,"props":6679,"children":6680},{"class":3424,"line":3873},[6681,6685],{"type":3139,"tag":3422,"props":6682,"children":6683},{"style":3501},[6684],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":6686,"children":6687},{"style":3496},[6688],{"type":3144,"value":4864},{"type":3139,"tag":3542,"props":6690,"children":6692},{"id":6691},"at-protocol",[6693],{"type":3144,"value":6694},"AT Protocol",{"type":3139,"tag":3146,"props":6696,"children":6697},{},[6698],{"type":3144,"value":6699},"Social networks that rely on AT Protocol (e.g., Bluesky) slightly differ from a regular OAuth flow.",{"type":3139,"tag":3146,"props":6701,"children":6702},{},[6703],{"type":3144,"value":6704},"To enable OAuth with AT Protocol, you need to:",{"type":3139,"tag":3396,"props":6706,"children":6707},{},[6708],{"type":3139,"tag":3200,"props":6709,"children":6710},{},[6711],{"type":3144,"value":6712},"Install the peer dependencies:",{"type":3139,"tag":3412,"props":6714,"children":6716},{"className":3414,"code":6715,"language":3416,"meta":3012,"style":3012},"npx nypm i @atproto\u002Foauth-client-node @atproto\u002Fapi\n",[6717],{"type":3139,"tag":3284,"props":6718,"children":6719},{"__ignoreMap":3012},[6720],{"type":3139,"tag":3422,"props":6721,"children":6722},{"class":3424,"line":3098},[6723,6727,6732,6737,6742],{"type":3139,"tag":3422,"props":6724,"children":6725},{"style":3428},[6726],{"type":3144,"value":3431},{"type":3139,"tag":3422,"props":6728,"children":6729},{"style":3434},[6730],{"type":3144,"value":6731}," nypm",{"type":3139,"tag":3422,"props":6733,"children":6734},{"style":3434},[6735],{"type":3144,"value":6736}," i",{"type":3139,"tag":3422,"props":6738,"children":6739},{"style":3434},[6740],{"type":3144,"value":6741}," @atproto\u002Foauth-client-node",{"type":3139,"tag":3422,"props":6743,"children":6744},{"style":3434},[6745],{"type":3144,"value":6746}," @atproto\u002Fapi\n",{"type":3139,"tag":3396,"props":6748,"children":6749},{"start":3064},[6750],{"type":3139,"tag":3200,"props":6751,"children":6752},{},[6753,6755],{"type":3144,"value":6754},"Enable it in your ",{"type":3139,"tag":3284,"props":6756,"children":6758},{"className":6757},[],[6759],{"type":3144,"value":233},{"type":3139,"tag":3412,"props":6761,"children":6763},{"className":4100,"code":6762,"language":4102,"meta":3012,"style":3012},"export default defineNuxtConfig({\n  auth: {\n    atproto: true\n  }\n})\n",[6764],{"type":3139,"tag":3284,"props":6765,"children":6766},{"__ignoreMap":3012},[6767,6790,6805,6821,6828],{"type":3139,"tag":3422,"props":6768,"children":6769},{"class":3424,"line":3098},[6770,6774,6778,6782,6786],{"type":3139,"tag":3422,"props":6771,"children":6772},{"style":4684},[6773],{"type":3144,"value":5218},{"type":3139,"tag":3422,"props":6775,"children":6776},{"style":4684},[6777],{"type":3144,"value":5333},{"type":3139,"tag":3422,"props":6779,"children":6780},{"style":3658},[6781],{"type":3144,"value":5338},{"type":3139,"tag":3422,"props":6783,"children":6784},{"style":3496},[6785],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":6787,"children":6788},{"style":3501},[6789],{"type":3144,"value":5348},{"type":3139,"tag":3422,"props":6791,"children":6792},{"class":3424,"line":3064},[6793,6797,6801],{"type":3139,"tag":3422,"props":6794,"children":6795},{"style":3567},[6796],{"type":3144,"value":6608},{"type":3139,"tag":3422,"props":6798,"children":6799},{"style":3501},[6800],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":6802,"children":6803},{"style":3501},[6804],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":6806,"children":6807},{"class":3424,"line":3048},[6808,6813,6817],{"type":3139,"tag":3422,"props":6809,"children":6810},{"style":3567},[6811],{"type":3144,"value":6812},"    atproto",{"type":3139,"tag":3422,"props":6814,"children":6815},{"style":3501},[6816],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":6818,"children":6819},{"style":5868},[6820],{"type":3144,"value":5871},{"type":3139,"tag":3422,"props":6822,"children":6823},{"class":3424,"line":3685},[6824],{"type":3139,"tag":3422,"props":6825,"children":6826},{"style":3501},[6827],{"type":3144,"value":5122},{"type":3139,"tag":3422,"props":6829,"children":6830},{"class":3424,"line":3694},[6831,6835],{"type":3139,"tag":3422,"props":6832,"children":6833},{"style":3501},[6834],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":6836,"children":6837},{"style":3496},[6838],{"type":3144,"value":4864},{"type":3139,"tag":3542,"props":6840,"children":6842},{"id":6841},"webauthn-passkey",[6843],{"type":3144,"value":3275},{"type":3139,"tag":3146,"props":6845,"children":6846},{},[6847],{"type":3144,"value":6848},"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":3139,"tag":3146,"props":6850,"children":6851},{},[6852],{"type":3144,"value":6853},"To enable WebAuthn you need to:",{"type":3139,"tag":3396,"props":6855,"children":6856},{},[6857],{"type":3139,"tag":3200,"props":6858,"children":6859},{},[6860],{"type":3144,"value":6712},{"type":3139,"tag":3412,"props":6862,"children":6864},{"className":3414,"code":6863,"language":3416,"meta":3012,"style":3012},"npx nypm i @simplewebauthn\u002Fserver@11 @simplewebauthn\u002Fbrowser@11\n",[6865],{"type":3139,"tag":3284,"props":6866,"children":6867},{"__ignoreMap":3012},[6868],{"type":3139,"tag":3422,"props":6869,"children":6870},{"class":3424,"line":3098},[6871,6875,6879,6883,6888],{"type":3139,"tag":3422,"props":6872,"children":6873},{"style":3428},[6874],{"type":3144,"value":3431},{"type":3139,"tag":3422,"props":6876,"children":6877},{"style":3434},[6878],{"type":3144,"value":6731},{"type":3139,"tag":3422,"props":6880,"children":6881},{"style":3434},[6882],{"type":3144,"value":6736},{"type":3139,"tag":3422,"props":6884,"children":6885},{"style":3434},[6886],{"type":3144,"value":6887}," @simplewebauthn\u002Fserver@11",{"type":3139,"tag":3422,"props":6889,"children":6890},{"style":3434},[6891],{"type":3144,"value":6892}," @simplewebauthn\u002Fbrowser@11\n",{"type":3139,"tag":3396,"props":6894,"children":6895},{"start":3064},[6896],{"type":3139,"tag":3200,"props":6897,"children":6898},{},[6899,6900],{"type":3144,"value":6754},{"type":3139,"tag":3284,"props":6901,"children":6903},{"className":6902},[],[6904],{"type":3144,"value":233},{"type":3139,"tag":3412,"props":6906,"children":6908},{"className":4100,"code":6907,"language":4102,"meta":3012,"style":3012},"export default defineNuxtConfig({\n  auth: {\n    webAuthn: true\n  }\n})\n",[6909],{"type":3139,"tag":3284,"props":6910,"children":6911},{"__ignoreMap":3012},[6912,6935,6950,6966,6973],{"type":3139,"tag":3422,"props":6913,"children":6914},{"class":3424,"line":3098},[6915,6919,6923,6927,6931],{"type":3139,"tag":3422,"props":6916,"children":6917},{"style":4684},[6918],{"type":3144,"value":5218},{"type":3139,"tag":3422,"props":6920,"children":6921},{"style":4684},[6922],{"type":3144,"value":5333},{"type":3139,"tag":3422,"props":6924,"children":6925},{"style":3658},[6926],{"type":3144,"value":5338},{"type":3139,"tag":3422,"props":6928,"children":6929},{"style":3496},[6930],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":6932,"children":6933},{"style":3501},[6934],{"type":3144,"value":5348},{"type":3139,"tag":3422,"props":6936,"children":6937},{"class":3424,"line":3064},[6938,6942,6946],{"type":3139,"tag":3422,"props":6939,"children":6940},{"style":3567},[6941],{"type":3144,"value":6608},{"type":3139,"tag":3422,"props":6943,"children":6944},{"style":3501},[6945],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":6947,"children":6948},{"style":3501},[6949],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":6951,"children":6952},{"class":3424,"line":3048},[6953,6958,6962],{"type":3139,"tag":3422,"props":6954,"children":6955},{"style":3567},[6956],{"type":3144,"value":6957},"    webAuthn",{"type":3139,"tag":3422,"props":6959,"children":6960},{"style":3501},[6961],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":6963,"children":6964},{"style":5868},[6965],{"type":3144,"value":5871},{"type":3139,"tag":3422,"props":6967,"children":6968},{"class":3424,"line":3685},[6969],{"type":3139,"tag":3422,"props":6970,"children":6971},{"style":3501},[6972],{"type":3144,"value":5122},{"type":3139,"tag":3422,"props":6974,"children":6975},{"class":3424,"line":3694},[6976,6980],{"type":3139,"tag":3422,"props":6977,"children":6978},{"style":3501},[6979],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":6981,"children":6982},{"style":3496},[6983],{"type":3144,"value":4864},{"type":3139,"tag":5528,"props":6985,"children":6987},{"id":6986},"example-1",[6988],{"type":3144,"value":5795},{"type":3139,"tag":3146,"props":6990,"children":6991},{},[6992],{"type":3144,"value":6993},"In this example we will implement the very basic steps to register and authenticate a credential.",{"type":3139,"tag":3146,"props":6995,"children":6996},{},[6997,6999,7006],{"type":3144,"value":6998},"The full code can be found in the ",{"type":3139,"tag":3150,"props":7000,"children":7003},{"href":7001,"rel":7002},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn",[3154],[7004],{"type":3144,"value":7005},"playground",{"type":3144,"value":7007},". The example uses a SQLite database with the following minimal tables:",{"type":3139,"tag":3412,"props":7009,"children":7013},{"className":7010,"code":7011,"language":7012,"meta":3012,"style":3012},"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",[7014],{"type":3139,"tag":3284,"props":7015,"children":7016},{"__ignoreMap":3012},[7017,7041,7064,7082,7090,7097,7128,7169,7193,7213,7234,7254,7274,7321],{"type":3139,"tag":3422,"props":7018,"children":7019},{"class":3424,"line":3098},[7020,7026,7031,7036],{"type":3139,"tag":3422,"props":7021,"children":7023},{"style":7022},"--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C",[7024],{"type":3144,"value":7025},"CREATE",{"type":3139,"tag":3422,"props":7027,"children":7028},{"style":7022},[7029],{"type":3144,"value":7030}," TABLE",{"type":3139,"tag":3422,"props":7032,"children":7033},{"style":3658},[7034],{"type":3144,"value":7035}," users",{"type":3139,"tag":3422,"props":7037,"children":7038},{"style":3496},[7039],{"type":3144,"value":7040}," (\n",{"type":3139,"tag":3422,"props":7042,"children":7043},{"class":3424,"line":3064},[7044,7049,7054,7059],{"type":3139,"tag":3422,"props":7045,"children":7046},{"style":3496},[7047],{"type":3144,"value":7048},"  id ",{"type":3139,"tag":3422,"props":7050,"children":7051},{"style":3573},[7052],{"type":3144,"value":7053},"INTEGER",{"type":3139,"tag":3422,"props":7055,"children":7056},{"style":3573},[7057],{"type":3144,"value":7058}," PRIMARY KEY",{"type":3139,"tag":3422,"props":7060,"children":7061},{"style":3496},[7062],{"type":3144,"value":7063}," AUTOINCREMENT,\n",{"type":3139,"tag":3422,"props":7065,"children":7066},{"class":3424,"line":3048},[7067,7072,7077],{"type":3139,"tag":3422,"props":7068,"children":7069},{"style":3496},[7070],{"type":3144,"value":7071},"  email ",{"type":3139,"tag":3422,"props":7073,"children":7074},{"style":3573},[7075],{"type":3144,"value":7076},"TEXT",{"type":3139,"tag":3422,"props":7078,"children":7079},{"style":7022},[7080],{"type":3144,"value":7081}," NOT NULL\n",{"type":3139,"tag":3422,"props":7083,"children":7084},{"class":3424,"line":3685},[7085],{"type":3139,"tag":3422,"props":7086,"children":7087},{"style":3496},[7088],{"type":3144,"value":7089},");\n",{"type":3139,"tag":3422,"props":7091,"children":7092},{"class":3424,"line":3694},[7093],{"type":3139,"tag":3422,"props":7094,"children":7095},{"emptyLinePlaceholder":1200},[7096],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":7098,"children":7099},{"class":3424,"line":3711},[7100,7104,7108,7113,7118,7123],{"type":3139,"tag":3422,"props":7101,"children":7102},{"style":7022},[7103],{"type":3144,"value":7025},{"type":3139,"tag":3422,"props":7105,"children":7106},{"style":7022},[7107],{"type":3144,"value":7030},{"type":3139,"tag":3422,"props":7109,"children":7110},{"style":3658},[7111],{"type":3144,"value":7112}," IF",{"type":3139,"tag":3422,"props":7114,"children":7115},{"style":7022},[7116],{"type":3144,"value":7117}," NOT",{"type":3139,"tag":3422,"props":7119,"children":7120},{"style":7022},[7121],{"type":3144,"value":7122}," EXISTS",{"type":3139,"tag":3422,"props":7124,"children":7125},{"style":3496},[7126],{"type":3144,"value":7127}," credentials (\n",{"type":3139,"tag":3422,"props":7129,"children":7130},{"class":3424,"line":3044},[7131,7136,7140,7145,7150,7155,7160,7165],{"type":3139,"tag":3422,"props":7132,"children":7133},{"style":3496},[7134],{"type":3144,"value":7135},"  userId ",{"type":3139,"tag":3422,"props":7137,"children":7138},{"style":3573},[7139],{"type":3144,"value":7053},{"type":3139,"tag":3422,"props":7141,"children":7142},{"style":7022},[7143],{"type":3144,"value":7144}," NOT NULL",{"type":3139,"tag":3422,"props":7146,"children":7147},{"style":3573},[7148],{"type":3144,"value":7149}," REFERENCES",{"type":3139,"tag":3422,"props":7151,"children":7152},{"style":3496},[7153],{"type":3144,"value":7154}," users(id) ",{"type":3139,"tag":3422,"props":7156,"children":7157},{"style":3573},[7158],{"type":3144,"value":7159},"ON DELETE CASCADE",{"type":3139,"tag":3422,"props":7161,"children":7162},{"style":3573},[7163],{"type":3144,"value":7164}," ON UPDATE CASCADE",{"type":3139,"tag":3422,"props":7166,"children":7167},{"style":3496},[7168],{"type":3144,"value":5434},{"type":3139,"tag":3422,"props":7170,"children":7171},{"class":3424,"line":3040},[7172,7176,7180,7185,7189],{"type":3139,"tag":3422,"props":7173,"children":7174},{"style":3496},[7175],{"type":3144,"value":7048},{"type":3139,"tag":3422,"props":7177,"children":7178},{"style":3573},[7179],{"type":3144,"value":7076},{"type":3139,"tag":3422,"props":7181,"children":7182},{"style":7022},[7183],{"type":3144,"value":7184}," UNIQUE",{"type":3139,"tag":3422,"props":7186,"children":7187},{"style":7022},[7188],{"type":3144,"value":7144},{"type":3139,"tag":3422,"props":7190,"children":7191},{"style":3496},[7192],{"type":3144,"value":5434},{"type":3139,"tag":3422,"props":7194,"children":7195},{"class":3424,"line":3036},[7196,7201,7205,7209],{"type":3139,"tag":3422,"props":7197,"children":7198},{"style":3496},[7199],{"type":3144,"value":7200},"  publicKey ",{"type":3139,"tag":3422,"props":7202,"children":7203},{"style":3573},[7204],{"type":3144,"value":7076},{"type":3139,"tag":3422,"props":7206,"children":7207},{"style":7022},[7208],{"type":3144,"value":7144},{"type":3139,"tag":3422,"props":7210,"children":7211},{"style":3496},[7212],{"type":3144,"value":5434},{"type":3139,"tag":3422,"props":7214,"children":7215},{"class":3424,"line":3873},[7216,7221,7226,7230],{"type":3139,"tag":3422,"props":7217,"children":7218},{"style":7022},[7219],{"type":3144,"value":7220},"  counter",{"type":3139,"tag":3422,"props":7222,"children":7223},{"style":3573},[7224],{"type":3144,"value":7225}," INTEGER",{"type":3139,"tag":3422,"props":7227,"children":7228},{"style":7022},[7229],{"type":3144,"value":7144},{"type":3139,"tag":3422,"props":7231,"children":7232},{"style":3496},[7233],{"type":3144,"value":5434},{"type":3139,"tag":3422,"props":7235,"children":7236},{"class":3424,"line":3127},[7237,7242,7246,7250],{"type":3139,"tag":3422,"props":7238,"children":7239},{"style":3496},[7240],{"type":3144,"value":7241},"  backedUp ",{"type":3139,"tag":3422,"props":7243,"children":7244},{"style":3573},[7245],{"type":3144,"value":7053},{"type":3139,"tag":3422,"props":7247,"children":7248},{"style":7022},[7249],{"type":3144,"value":7144},{"type":3139,"tag":3422,"props":7251,"children":7252},{"style":3496},[7253],{"type":3144,"value":5434},{"type":3139,"tag":3422,"props":7255,"children":7256},{"class":3424,"line":3910},[7257,7262,7266,7270],{"type":3139,"tag":3422,"props":7258,"children":7259},{"style":3496},[7260],{"type":3144,"value":7261},"  transports ",{"type":3139,"tag":3422,"props":7263,"children":7264},{"style":3573},[7265],{"type":3144,"value":7076},{"type":3139,"tag":3422,"props":7267,"children":7268},{"style":7022},[7269],{"type":3144,"value":7144},{"type":3139,"tag":3422,"props":7271,"children":7272},{"style":3496},[7273],{"type":3144,"value":5434},{"type":3139,"tag":3422,"props":7275,"children":7276},{"class":3424,"line":3943},[7277,7282,7286,7290,7295,7299,7304,7308,7313,7317],{"type":3139,"tag":3422,"props":7278,"children":7279},{"style":3573},[7280],{"type":3144,"value":7281},"  PRIMARY KEY",{"type":3139,"tag":3422,"props":7283,"children":7284},{"style":3496},[7285],{"type":3144,"value":4513},{"type":3139,"tag":3422,"props":7287,"children":7288},{"style":3501},[7289],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":7291,"children":7292},{"style":3434},[7293],{"type":3144,"value":7294},"userId",{"type":3139,"tag":3422,"props":7296,"children":7297},{"style":3501},[7298],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":7300,"children":7301},{"style":3496},[7302],{"type":3144,"value":7303},", ",{"type":3139,"tag":3422,"props":7305,"children":7306},{"style":3501},[7307],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":7309,"children":7310},{"style":3434},[7311],{"type":3144,"value":7312},"id",{"type":3139,"tag":3422,"props":7314,"children":7315},{"style":3501},[7316],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":7318,"children":7319},{"style":3496},[7320],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":7322,"children":7323},{"class":3424,"line":3998},[7324],{"type":3139,"tag":3422,"props":7325,"children":7326},{"style":3496},[7327],{"type":3144,"value":7089},{"type":3139,"tag":3196,"props":7329,"children":7330},{},[7331,7344],{"type":3139,"tag":3200,"props":7332,"children":7333},{},[7334,7336,7342],{"type":3144,"value":7335},"For the ",{"type":3139,"tag":3284,"props":7337,"children":7339},{"className":7338},[],[7340],{"type":3144,"value":7341},"users",{"type":3144,"value":7343}," 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":3139,"tag":3200,"props":7345,"children":7346},{},[7347,7348,7354,7356],{"type":3144,"value":5292},{"type":3139,"tag":3284,"props":7349,"children":7351},{"className":7350},[],[7352],{"type":3144,"value":7353},"credentials",{"type":3144,"value":7355}," table stores:\n",{"type":3139,"tag":3196,"props":7357,"children":7358},{},[7359,7377,7389,7399,7428,7449],{"type":3139,"tag":3200,"props":7360,"children":7361},{},[7362,7363,7368,7370,7375],{"type":3144,"value":5292},{"type":3139,"tag":3284,"props":7364,"children":7366},{"className":7365},[],[7367],{"type":3144,"value":7294},{"type":3144,"value":7369}," from the ",{"type":3139,"tag":3284,"props":7371,"children":7373},{"className":7372},[],[7374],{"type":3144,"value":7341},{"type":3144,"value":7376}," table.",{"type":3139,"tag":3200,"props":7378,"children":7379},{},[7380,7382,7387],{"type":3144,"value":7381},"The credential ",{"type":3139,"tag":3284,"props":7383,"children":7385},{"className":7384},[],[7386],{"type":3144,"value":7312},{"type":3144,"value":7388}," (as unique index)",{"type":3139,"tag":3200,"props":7390,"children":7391},{},[7392,7393],{"type":3144,"value":7381},{"type":3139,"tag":3284,"props":7394,"children":7396},{"className":7395},[],[7397],{"type":3144,"value":7398},"publicKey",{"type":3139,"tag":3200,"props":7400,"children":7401},{},[7402,7404,7410,7412,7417,7419,7426],{"type":3144,"value":7403},"A ",{"type":3139,"tag":3284,"props":7405,"children":7407},{"className":7406},[],[7408],{"type":3144,"value":7409},"counter",{"type":3144,"value":7411},". Each time a credential is used, the counter is incremented. We can use this value to perform extra security checks. More about ",{"type":3139,"tag":3284,"props":7413,"children":7415},{"className":7414},[],[7416],{"type":3144,"value":7409},{"type":3144,"value":7418}," can be read ",{"type":3139,"tag":3150,"props":7420,"children":7423},{"href":7421,"rel":7422},"https:\u002F\u002Fsimplewebauthn.dev\u002Fdocs\u002Fpackages\u002Fserver#3-post-registration-responsibilities",[3154],[7424],{"type":3144,"value":7425},"here",{"type":3144,"value":7427},". For this example, we won't be using the counter. But you should update the counter in your database with the new value.",{"type":3139,"tag":3200,"props":7429,"children":7430},{},[7431,7432,7438,7440,7447],{"type":3144,"value":7403},{"type":3139,"tag":3284,"props":7433,"children":7435},{"className":7434},[],[7436],{"type":3144,"value":7437},"backedUp",{"type":3144,"value":7439}," 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":3139,"tag":3150,"props":7441,"children":7444},{"href":7442,"rel":7443},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fugaemxot",[3154],[7445],{"type":3144,"value":7446},"this section",{"type":3144,"value":7448}," for more details.",{"type":3139,"tag":3200,"props":7450,"children":7451},{},[7452,7453,7459,7461,7467],{"type":3144,"value":7381},{"type":3139,"tag":3284,"props":7454,"children":7456},{"className":7455},[],[7457],{"type":3144,"value":7458},"transports",{"type":3144,"value":7460},". 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":3139,"tag":3150,"props":7462,"children":7465},{"href":7463,"rel":7464},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fycxtiorp",[3154],[7466],{"type":3144,"value":7446},{"type":3144,"value":7448},{"type":3139,"tag":3146,"props":7469,"children":7470},{},[7471,7473,7480,7481,7488,7490,7497],{"type":3144,"value":7472},"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":3139,"tag":3150,"props":7474,"children":7477},{"href":7475,"rel":7476},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fregister.post.ts",[3154],[7478],{"type":3144,"value":7479},"registration",{"type":3144,"value":7303},{"type":3139,"tag":3150,"props":7482,"children":7485},{"href":7483,"rel":7484},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts",[3154],[7486],{"type":3144,"value":7487},"authentication",{"type":3144,"value":7489}," and the ",{"type":3139,"tag":3150,"props":7491,"children":7494},{"href":7492,"rel":7493},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fplugins\u002Fdatabase.ts",[3154],[7495],{"type":3144,"value":7496},"database setup",{"type":3144,"value":3377},{"type":3139,"tag":3412,"props":7499,"children":7501},{"className":4100,"code":7500,"language":4102,"meta":3012,"style":3012},"\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",[7502],{"type":3139,"tag":3284,"props":7503,"children":7504},{"__ignoreMap":3012},[7505,7513,7553,7577,7585,7623,7631,7639,7647,7683,7772,7842,7849,7856,7864,7892,7900,7942,7974,7981,8029,8037,8045,8070,8077,8085,8132,8161,8169,8209,8216,8224,8233,8265,8273,8282,8310,8326,8351,8360,8394,8406,8414],{"type":3139,"tag":3422,"props":7506,"children":7507},{"class":3424,"line":3098},[7508],{"type":3139,"tag":3422,"props":7509,"children":7510},{"style":3487},[7511],{"type":3144,"value":7512},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fregister.post.ts\n",{"type":3139,"tag":3422,"props":7514,"children":7515},{"class":3424,"line":3064},[7516,7521,7525,7530,7535,7540,7544,7549],{"type":3139,"tag":3422,"props":7517,"children":7518},{"style":4684},[7519],{"type":3144,"value":7520},"import",{"type":3139,"tag":3422,"props":7522,"children":7523},{"style":3501},[7524],{"type":3144,"value":3594},{"type":3139,"tag":3422,"props":7526,"children":7527},{"style":3496},[7528],{"type":3144,"value":7529}," z",{"type":3139,"tag":3422,"props":7531,"children":7532},{"style":3501},[7533],{"type":3144,"value":7534}," }",{"type":3139,"tag":3422,"props":7536,"children":7537},{"style":4684},[7538],{"type":3144,"value":7539}," from",{"type":3139,"tag":3422,"props":7541,"children":7542},{"style":3501},[7543],{"type":3144,"value":4745},{"type":3139,"tag":3422,"props":7545,"children":7546},{"style":3434},[7547],{"type":3144,"value":7548},"zod",{"type":3139,"tag":3422,"props":7550,"children":7551},{"style":3501},[7552],{"type":3144,"value":4754},{"type":3139,"tag":3422,"props":7554,"children":7555},{"class":3424,"line":3048},[7556,7560,7564,7569,7573],{"type":3139,"tag":3422,"props":7557,"children":7558},{"style":4684},[7559],{"type":3144,"value":5218},{"type":3139,"tag":3422,"props":7561,"children":7562},{"style":4684},[7563],{"type":3144,"value":5333},{"type":3139,"tag":3422,"props":7565,"children":7566},{"style":3658},[7567],{"type":3144,"value":7568}," defineWebAuthnRegisterEventHandler",{"type":3139,"tag":3422,"props":7570,"children":7571},{"style":3496},[7572],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":7574,"children":7575},{"style":3501},[7576],{"type":3144,"value":5348},{"type":3139,"tag":3422,"props":7578,"children":7579},{"class":3424,"line":3685},[7580],{"type":3139,"tag":3422,"props":7581,"children":7582},{"style":3487},[7583],{"type":3144,"value":7584},"  \u002F\u002F optional\n",{"type":3139,"tag":3422,"props":7586,"children":7587},{"class":3424,"line":3694},[7588,7592,7597,7601,7606,7610,7615,7619],{"type":3139,"tag":3422,"props":7589,"children":7590},{"style":3573},[7591],{"type":3144,"value":5886},{"type":3139,"tag":3422,"props":7593,"children":7594},{"style":3567},[7595],{"type":3144,"value":7596}," validateUser",{"type":3139,"tag":3422,"props":7598,"children":7599},{"style":3501},[7600],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":7602,"children":7603},{"style":4516},[7604],{"type":3144,"value":7605},"userBody",{"type":3139,"tag":3422,"props":7607,"children":7608},{"style":3501},[7609],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":7611,"children":7612},{"style":4516},[7613],{"type":3144,"value":7614}," event",{"type":3139,"tag":3422,"props":7616,"children":7617},{"style":3501},[7618],{"type":3144,"value":6104},{"type":3139,"tag":3422,"props":7620,"children":7621},{"style":3501},[7622],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":7624,"children":7625},{"class":3424,"line":3711},[7626],{"type":3139,"tag":3422,"props":7627,"children":7628},{"style":3487},[7629],{"type":3144,"value":7630},"    \u002F\u002F bonus: check if the user is already authenticated to link a credential to his account\n",{"type":3139,"tag":3422,"props":7632,"children":7633},{"class":3424,"line":3044},[7634],{"type":3139,"tag":3422,"props":7635,"children":7636},{"style":3487},[7637],{"type":3144,"value":7638},"    \u002F\u002F We first check if the user is already authenticated by getting the session\n",{"type":3139,"tag":3422,"props":7640,"children":7641},{"class":3424,"line":3040},[7642],{"type":3139,"tag":3422,"props":7643,"children":7644},{"style":3487},[7645],{"type":3144,"value":7646},"    \u002F\u002F And verify that the email is the same as the one in session\n",{"type":3139,"tag":3422,"props":7648,"children":7649},{"class":3424,"line":3036},[7650,7655,7659,7663,7667,7671,7675,7679],{"type":3139,"tag":3422,"props":7651,"children":7652},{"style":3573},[7653],{"type":3144,"value":7654},"    const",{"type":3139,"tag":3422,"props":7656,"children":7657},{"style":3496},[7658],{"type":3144,"value":3618},{"type":3139,"tag":3422,"props":7660,"children":7661},{"style":3501},[7662],{"type":3144,"value":3655},{"type":3139,"tag":3422,"props":7664,"children":7665},{"style":4684},[7666],{"type":3144,"value":4940},{"type":3139,"tag":3422,"props":7668,"children":7669},{"style":3658},[7670],{"type":3144,"value":4945},{"type":3139,"tag":3422,"props":7672,"children":7673},{"style":3567},[7674],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":7676,"children":7677},{"style":3496},[7678],{"type":3144,"value":5900},{"type":3139,"tag":3422,"props":7680,"children":7681},{"style":3567},[7682],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":7684,"children":7685},{"class":3424,"line":3873},[7686,7691,7695,7700,7704,7709,7714,7719,7724,7728,7732,7736,7740,7744,7749,7754,7758,7763,7768],{"type":3139,"tag":3422,"props":7687,"children":7688},{"style":4684},[7689],{"type":3144,"value":7690},"    if",{"type":3139,"tag":3422,"props":7692,"children":7693},{"style":3567},[7694],{"type":3144,"value":4513},{"type":3139,"tag":3422,"props":7696,"children":7697},{"style":3496},[7698],{"type":3144,"value":7699},"session",{"type":3139,"tag":3422,"props":7701,"children":7702},{"style":3501},[7703],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":7705,"children":7706},{"style":3496},[7707],{"type":3144,"value":7708},"user",{"type":3139,"tag":3422,"props":7710,"children":7711},{"style":3501},[7712],{"type":3144,"value":7713},"?.",{"type":3139,"tag":3422,"props":7715,"children":7716},{"style":3496},[7717],{"type":3144,"value":7718},"email",{"type":3139,"tag":3422,"props":7720,"children":7721},{"style":3501},[7722],{"type":3144,"value":7723}," &&",{"type":3139,"tag":3422,"props":7725,"children":7726},{"style":3496},[7727],{"type":3144,"value":3618},{"type":3139,"tag":3422,"props":7729,"children":7730},{"style":3501},[7731],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":7733,"children":7734},{"style":3496},[7735],{"type":3144,"value":7708},{"type":3139,"tag":3422,"props":7737,"children":7738},{"style":3501},[7739],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":7741,"children":7742},{"style":3496},[7743],{"type":3144,"value":7718},{"type":3139,"tag":3422,"props":7745,"children":7746},{"style":3501},[7747],{"type":3144,"value":7748}," !==",{"type":3139,"tag":3422,"props":7750,"children":7751},{"style":3496},[7752],{"type":3144,"value":7753}," userBody",{"type":3139,"tag":3422,"props":7755,"children":7756},{"style":3501},[7757],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":7759,"children":7760},{"style":3496},[7761],{"type":3144,"value":7762},"userName",{"type":3139,"tag":3422,"props":7764,"children":7765},{"style":3567},[7766],{"type":3144,"value":7767},") ",{"type":3139,"tag":3422,"props":7769,"children":7770},{"style":3501},[7771],{"type":3144,"value":5348},{"type":3139,"tag":3422,"props":7773,"children":7774},{"class":3424,"line":3127},[7775,7780,7785,7789,7794,7799,7803,7808,7812,7817,7821,7825,7830,7834,7838],{"type":3139,"tag":3422,"props":7776,"children":7777},{"style":4684},[7778],{"type":3144,"value":7779},"      throw",{"type":3139,"tag":3422,"props":7781,"children":7782},{"style":3658},[7783],{"type":3144,"value":7784}," createError",{"type":3139,"tag":3422,"props":7786,"children":7787},{"style":3567},[7788],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":7790,"children":7791},{"style":3501},[7792],{"type":3144,"value":7793},"{",{"type":3139,"tag":3422,"props":7795,"children":7796},{"style":3567},[7797],{"type":3144,"value":7798}," statusCode",{"type":3139,"tag":3422,"props":7800,"children":7801},{"style":3501},[7802],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":7804,"children":7805},{"style":7022},[7806],{"type":3144,"value":7807}," 400",{"type":3139,"tag":3422,"props":7809,"children":7810},{"style":3501},[7811],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":7813,"children":7814},{"style":3567},[7815],{"type":3144,"value":7816}," message",{"type":3139,"tag":3422,"props":7818,"children":7819},{"style":3501},[7820],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":7822,"children":7823},{"style":3501},[7824],{"type":3144,"value":4745},{"type":3139,"tag":3422,"props":7826,"children":7827},{"style":3434},[7828],{"type":3144,"value":7829},"Email not matching curent session",{"type":3139,"tag":3422,"props":7831,"children":7832},{"style":3501},[7833],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":7835,"children":7836},{"style":3501},[7837],{"type":3144,"value":7534},{"type":3139,"tag":3422,"props":7839,"children":7840},{"style":3567},[7841],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":7843,"children":7844},{"class":3424,"line":3910},[7845],{"type":3139,"tag":3422,"props":7846,"children":7847},{"style":3501},[7848],{"type":3144,"value":5474},{"type":3139,"tag":3422,"props":7850,"children":7851},{"class":3424,"line":3943},[7852],{"type":3139,"tag":3422,"props":7853,"children":7854},{"emptyLinePlaceholder":1200},[7855],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":7857,"children":7858},{"class":3424,"line":3998},[7859],{"type":3139,"tag":3422,"props":7860,"children":7861},{"style":3487},[7862],{"type":3144,"value":7863},"    \u002F\u002F If he registers a new account with credentials\n",{"type":3139,"tag":3422,"props":7865,"children":7866},{"class":3424,"line":4007},[7867,7871,7875,7879,7884,7888],{"type":3139,"tag":3422,"props":7868,"children":7869},{"style":4684},[7870],{"type":3144,"value":6025},{"type":3139,"tag":3422,"props":7872,"children":7873},{"style":3496},[7874],{"type":3144,"value":7529},{"type":3139,"tag":3422,"props":7876,"children":7877},{"style":3501},[7878],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":7880,"children":7881},{"style":3658},[7882],{"type":3144,"value":7883},"object",{"type":3139,"tag":3422,"props":7885,"children":7886},{"style":3567},[7887],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":7889,"children":7890},{"style":3501},[7891],{"type":3144,"value":5348},{"type":3139,"tag":3422,"props":7893,"children":7894},{"class":3424,"line":3032},[7895],{"type":3139,"tag":3422,"props":7896,"children":7897},{"style":3487},[7898],{"type":3144,"value":7899},"      \u002F\u002F we want the userName to be a valid email\n",{"type":3139,"tag":3422,"props":7901,"children":7902},{"class":3424,"line":4075},[7903,7908,7912,7916,7920,7925,7930,7934,7938],{"type":3139,"tag":3422,"props":7904,"children":7905},{"style":3567},[7906],{"type":3144,"value":7907},"      userName",{"type":3139,"tag":3422,"props":7909,"children":7910},{"style":3501},[7911],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":7913,"children":7914},{"style":3496},[7915],{"type":3144,"value":7529},{"type":3139,"tag":3422,"props":7917,"children":7918},{"style":3501},[7919],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":7921,"children":7922},{"style":3658},[7923],{"type":3144,"value":7924},"string",{"type":3139,"tag":3422,"props":7926,"children":7927},{"style":3567},[7928],{"type":3144,"value":7929},"()",{"type":3139,"tag":3422,"props":7931,"children":7932},{"style":3501},[7933],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":7935,"children":7936},{"style":3658},[7937],{"type":3144,"value":7718},{"type":3139,"tag":3422,"props":7939,"children":7940},{"style":3567},[7941],{"type":3144,"value":3666},{"type":3139,"tag":3422,"props":7943,"children":7944},{"class":3424,"line":4345},[7945,7949,7953,7957,7962,7966,7970],{"type":3139,"tag":3422,"props":7946,"children":7947},{"style":3501},[7948],{"type":3144,"value":6013},{"type":3139,"tag":3422,"props":7950,"children":7951},{"style":3567},[7952],{"type":3144,"value":6104},{"type":3139,"tag":3422,"props":7954,"children":7955},{"style":3501},[7956],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":7958,"children":7959},{"style":3658},[7960],{"type":3144,"value":7961},"parse",{"type":3139,"tag":3422,"props":7963,"children":7964},{"style":3567},[7965],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":7967,"children":7968},{"style":3496},[7969],{"type":3144,"value":7605},{"type":3139,"tag":3422,"props":7971,"children":7972},{"style":3567},[7973],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":7975,"children":7976},{"class":3424,"line":4353},[7977],{"type":3139,"tag":3422,"props":7978,"children":7979},{"style":3501},[7980],{"type":3144,"value":4762},{"type":3139,"tag":3422,"props":7982,"children":7983},{"class":3424,"line":4362},[7984,7988,7992,7996,8000,8004,8008,8013,8017,8021,8025],{"type":3139,"tag":3422,"props":7985,"children":7986},{"style":3573},[7987],{"type":3144,"value":5886},{"type":3139,"tag":3422,"props":7989,"children":7990},{"style":3567},[7991],{"type":3144,"value":5891},{"type":3139,"tag":3422,"props":7993,"children":7994},{"style":3501},[7995],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":7997,"children":7998},{"style":4516},[7999],{"type":3144,"value":5900},{"type":3139,"tag":3422,"props":8001,"children":8002},{"style":3501},[8003],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":8005,"children":8006},{"style":3501},[8007],{"type":3144,"value":3594},{"type":3139,"tag":3422,"props":8009,"children":8010},{"style":4516},[8011],{"type":3144,"value":8012}," credential",{"type":3139,"tag":3422,"props":8014,"children":8015},{"style":3501},[8016],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":8018,"children":8019},{"style":4516},[8020],{"type":3144,"value":3609},{"type":3139,"tag":3422,"props":8022,"children":8023},{"style":3501},[8024],{"type":3144,"value":4582},{"type":3139,"tag":3422,"props":8026,"children":8027},{"style":3501},[8028],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":8030,"children":8031},{"class":3424,"line":4370},[8032],{"type":3139,"tag":3422,"props":8033,"children":8034},{"style":3487},[8035],{"type":3144,"value":8036},"    \u002F\u002F The credential creation has been successful\n",{"type":3139,"tag":3422,"props":8038,"children":8039},{"class":3424,"line":4411},[8040],{"type":3139,"tag":3422,"props":8041,"children":8042},{"style":3487},[8043],{"type":3144,"value":8044},"    \u002F\u002F We need to create a user if it does not exist\n",{"type":3139,"tag":3422,"props":8046,"children":8047},{"class":3424,"line":4419},[8048,8052,8057,8061,8066],{"type":3139,"tag":3422,"props":8049,"children":8050},{"style":3573},[8051],{"type":3144,"value":7654},{"type":3139,"tag":3422,"props":8053,"children":8054},{"style":3496},[8055],{"type":3144,"value":8056}," db",{"type":3139,"tag":3422,"props":8058,"children":8059},{"style":3501},[8060],{"type":3144,"value":3655},{"type":3139,"tag":3422,"props":8062,"children":8063},{"style":3658},[8064],{"type":3144,"value":8065}," useDatabase",{"type":3139,"tag":3422,"props":8067,"children":8068},{"style":3567},[8069],{"type":3144,"value":3666},{"type":3139,"tag":3422,"props":8071,"children":8072},{"class":3424,"line":4428},[8073],{"type":3139,"tag":3422,"props":8074,"children":8075},{"emptyLinePlaceholder":1200},[8076],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":8078,"children":8079},{"class":3424,"line":4436},[8080],{"type":3139,"tag":3422,"props":8081,"children":8082},{"style":3487},[8083],{"type":3144,"value":8084},"    \u002F\u002F Get the user from the database\n",{"type":3139,"tag":3422,"props":8086,"children":8087},{"class":3424,"line":4473},[8088,8093,8098,8102,8106,8110,8114,8118,8123,8127],{"type":3139,"tag":3422,"props":8089,"children":8090},{"style":3573},[8091],{"type":3144,"value":8092},"    let",{"type":3139,"tag":3422,"props":8094,"children":8095},{"style":3496},[8096],{"type":3144,"value":8097}," dbUser",{"type":3139,"tag":3422,"props":8099,"children":8100},{"style":3501},[8101],{"type":3144,"value":3655},{"type":3139,"tag":3422,"props":8103,"children":8104},{"style":4684},[8105],{"type":3144,"value":4940},{"type":3139,"tag":3422,"props":8107,"children":8108},{"style":3496},[8109],{"type":3144,"value":8056},{"type":3139,"tag":3422,"props":8111,"children":8112},{"style":3501},[8113],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":8115,"children":8116},{"style":3658},[8117],{"type":3144,"value":7012},{"type":3139,"tag":3422,"props":8119,"children":8120},{"style":3501},[8121],{"type":3144,"value":8122},"`",{"type":3139,"tag":3422,"props":8124,"children":8125},{"style":3434},[8126],{"type":3144,"value":5425},{"type":3139,"tag":3422,"props":8128,"children":8129},{"style":3501},[8130],{"type":3144,"value":8131},"`\n",{"type":3139,"tag":3422,"props":8133,"children":8134},{"class":3424,"line":4481},[8135,8139,8143,8148,8153,8157],{"type":3139,"tag":3422,"props":8136,"children":8137},{"style":4684},[8138],{"type":3144,"value":7690},{"type":3139,"tag":3422,"props":8140,"children":8141},{"style":3567},[8142],{"type":3144,"value":4513},{"type":3139,"tag":3422,"props":8144,"children":8145},{"style":3501},[8146],{"type":3144,"value":8147},"!",{"type":3139,"tag":3422,"props":8149,"children":8150},{"style":3496},[8151],{"type":3144,"value":8152},"dbUser",{"type":3139,"tag":3422,"props":8154,"children":8155},{"style":3567},[8156],{"type":3144,"value":7767},{"type":3139,"tag":3422,"props":8158,"children":8159},{"style":3501},[8160],{"type":3144,"value":5348},{"type":3139,"tag":3422,"props":8162,"children":8163},{"class":3424,"line":4490},[8164],{"type":3139,"tag":3422,"props":8165,"children":8166},{"style":3487},[8167],{"type":3144,"value":8168},"      \u002F\u002F Store new user in database & its credentials\n",{"type":3139,"tag":3422,"props":8170,"children":8171},{"class":3424,"line":4498},[8172,8177,8181,8185,8189,8193,8197,8201,8205],{"type":3139,"tag":3422,"props":8173,"children":8174},{"style":3496},[8175],{"type":3144,"value":8176},"      dbUser",{"type":3139,"tag":3422,"props":8178,"children":8179},{"style":3501},[8180],{"type":3144,"value":3655},{"type":3139,"tag":3422,"props":8182,"children":8183},{"style":4684},[8184],{"type":3144,"value":4940},{"type":3139,"tag":3422,"props":8186,"children":8187},{"style":3496},[8188],{"type":3144,"value":8056},{"type":3139,"tag":3422,"props":8190,"children":8191},{"style":3501},[8192],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":8194,"children":8195},{"style":3658},[8196],{"type":3144,"value":7012},{"type":3139,"tag":3422,"props":8198,"children":8199},{"style":3501},[8200],{"type":3144,"value":8122},{"type":3139,"tag":3422,"props":8202,"children":8203},{"style":3434},[8204],{"type":3144,"value":5425},{"type":3139,"tag":3422,"props":8206,"children":8207},{"style":3501},[8208],{"type":3144,"value":8131},{"type":3139,"tag":3422,"props":8210,"children":8211},{"class":3424,"line":4594},[8212],{"type":3139,"tag":3422,"props":8213,"children":8214},{"style":3501},[8215],{"type":3144,"value":5474},{"type":3139,"tag":3422,"props":8217,"children":8219},{"class":3424,"line":8218},31,[8220],{"type":3139,"tag":3422,"props":8221,"children":8222},{"emptyLinePlaceholder":1200},[8223],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":8225,"children":8227},{"class":3424,"line":8226},32,[8228],{"type":3139,"tag":3422,"props":8229,"children":8230},{"style":3487},[8231],{"type":3144,"value":8232},"    \u002F\u002F we now need to store the credential in our database and link it to the user\n",{"type":3139,"tag":3422,"props":8234,"children":8236},{"class":3424,"line":8235},33,[8237,8241,8245,8249,8253,8257,8261],{"type":3139,"tag":3422,"props":8238,"children":8239},{"style":4684},[8240],{"type":3144,"value":5937},{"type":3139,"tag":3422,"props":8242,"children":8243},{"style":3496},[8244],{"type":3144,"value":8056},{"type":3139,"tag":3422,"props":8246,"children":8247},{"style":3501},[8248],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":8250,"children":8251},{"style":3658},[8252],{"type":3144,"value":7012},{"type":3139,"tag":3422,"props":8254,"children":8255},{"style":3501},[8256],{"type":3144,"value":8122},{"type":3139,"tag":3422,"props":8258,"children":8259},{"style":3434},[8260],{"type":3144,"value":5425},{"type":3139,"tag":3422,"props":8262,"children":8263},{"style":3501},[8264],{"type":3144,"value":8131},{"type":3139,"tag":3422,"props":8266,"children":8268},{"class":3424,"line":8267},34,[8269],{"type":3139,"tag":3422,"props":8270,"children":8271},{"emptyLinePlaceholder":1200},[8272],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":8274,"children":8276},{"class":3424,"line":8275},35,[8277],{"type":3139,"tag":3422,"props":8278,"children":8279},{"style":3487},[8280],{"type":3144,"value":8281},"    \u002F\u002F Set the user session\n",{"type":3139,"tag":3422,"props":8283,"children":8285},{"class":3424,"line":8284},36,[8286,8290,8294,8298,8302,8306],{"type":3139,"tag":3422,"props":8287,"children":8288},{"style":4684},[8289],{"type":3144,"value":5937},{"type":3139,"tag":3422,"props":8291,"children":8292},{"style":3658},[8293],{"type":3144,"value":4692},{"type":3139,"tag":3422,"props":8295,"children":8296},{"style":3567},[8297],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":8299,"children":8300},{"style":3496},[8301],{"type":3144,"value":5900},{"type":3139,"tag":3422,"props":8303,"children":8304},{"style":3501},[8305],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":8307,"children":8308},{"style":3501},[8309],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":8311,"children":8313},{"class":3424,"line":8312},37,[8314,8318,8322],{"type":3139,"tag":3422,"props":8315,"children":8316},{"style":3567},[8317],{"type":3144,"value":5965},{"type":3139,"tag":3422,"props":8319,"children":8320},{"style":3501},[8321],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":8323,"children":8324},{"style":3501},[8325],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":8327,"children":8329},{"class":3424,"line":8328},38,[8330,8335,8339,8343,8347],{"type":3139,"tag":3422,"props":8331,"children":8332},{"style":3567},[8333],{"type":3144,"value":8334},"        id",{"type":3139,"tag":3422,"props":8336,"children":8337},{"style":3501},[8338],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":8340,"children":8341},{"style":3496},[8342],{"type":3144,"value":8097},{"type":3139,"tag":3422,"props":8344,"children":8345},{"style":3501},[8346],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":8348,"children":8349},{"style":3496},[8350],{"type":3144,"value":5998},{"type":3139,"tag":3422,"props":8352,"children":8354},{"class":3424,"line":8353},39,[8355],{"type":3139,"tag":3422,"props":8356,"children":8357},{"style":3501},[8358],{"type":3144,"value":8359},"      },\n",{"type":3139,"tag":3422,"props":8361,"children":8363},{"class":3424,"line":8362},40,[8364,8369,8373,8377,8381,8386,8390],{"type":3139,"tag":3422,"props":8365,"children":8366},{"style":3567},[8367],{"type":3144,"value":8368},"      loggedInAt",{"type":3139,"tag":3422,"props":8370,"children":8371},{"style":3501},[8372],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":8374,"children":8375},{"style":3496},[8376],{"type":3144,"value":4848},{"type":3139,"tag":3422,"props":8378,"children":8379},{"style":3501},[8380],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":8382,"children":8383},{"style":3658},[8384],{"type":3144,"value":8385},"now",{"type":3139,"tag":3422,"props":8387,"children":8388},{"style":3567},[8389],{"type":3144,"value":7929},{"type":3139,"tag":3422,"props":8391,"children":8392},{"style":3501},[8393],{"type":3144,"value":5434},{"type":3139,"tag":3422,"props":8395,"children":8397},{"class":3424,"line":8396},41,[8398,8402],{"type":3139,"tag":3422,"props":8399,"children":8400},{"style":3501},[8401],{"type":3144,"value":6013},{"type":3139,"tag":3422,"props":8403,"children":8404},{"style":3567},[8405],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":8407,"children":8409},{"class":3424,"line":8408},42,[8410],{"type":3139,"tag":3422,"props":8411,"children":8412},{"style":3501},[8413],{"type":3144,"value":4762},{"type":3139,"tag":3422,"props":8415,"children":8417},{"class":3424,"line":8416},43,[8418,8422],{"type":3139,"tag":3422,"props":8419,"children":8420},{"style":3501},[8421],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":8423,"children":8424},{"style":3496},[8425],{"type":3144,"value":4864},{"type":3139,"tag":4602,"props":8427,"children":8428},{},[8429],{"type":3139,"tag":3146,"props":8430,"children":8431},{},[8432,8437,8439,8446,8448,8454,8456],{"type":3139,"tag":3422,"props":8433,"children":8434},{},[8435],{"type":3144,"value":8436},"!TIP",{"type":3144,"value":8438},"\nIf you want to plug in and use the ",{"type":3139,"tag":3150,"props":8440,"children":8443},{"href":8441,"rel":8442},"https:\u002F\u002Fgithub.com\u002Fpasskeydeveloper\u002Fpasskey-authenticator-aaguids",[3154],[8444],{"type":3144,"value":8445},"Community sourced list of AAGUIDS",{"type":3144,"value":8447}," to decorate your display of added passkeys, you can access the the ID via ",{"type":3139,"tag":3284,"props":8449,"children":8451},{"className":8450},[],[8452],{"type":3144,"value":8453},"credential.aaguid",{"type":3144,"value":8455}," inside ",{"type":3139,"tag":3284,"props":8457,"children":8459},{"className":8458},[],[8460],{"type":3144,"value":5277},{"type":3139,"tag":3412,"props":8462,"children":8464},{"className":4100,"code":8463,"language":4102,"meta":3012,"style":3012},"\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",[8465],{"type":3139,"tag":3284,"props":8466,"children":8467},{"__ignoreMap":3012},[8468,8476,8500,8508,8545,8593,8601,8633,8697,8704,8712,8720,8728,8740,8748,8755,8792,8800,8847,8854,8862,8886,8950,8957,8969,8976,9024,9032,9040,9063,9106,9113,9121,9152,9159,9166,9193,9208,9231,9238,9269,9280,9287],{"type":3139,"tag":3422,"props":8469,"children":8470},{"class":3424,"line":3098},[8471],{"type":3139,"tag":3422,"props":8472,"children":8473},{"style":3487},[8474],{"type":3144,"value":8475},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts\n",{"type":3139,"tag":3422,"props":8477,"children":8478},{"class":3424,"line":3064},[8479,8483,8487,8492,8496],{"type":3139,"tag":3422,"props":8480,"children":8481},{"style":4684},[8482],{"type":3144,"value":5218},{"type":3139,"tag":3422,"props":8484,"children":8485},{"style":4684},[8486],{"type":3144,"value":5333},{"type":3139,"tag":3422,"props":8488,"children":8489},{"style":3658},[8490],{"type":3144,"value":8491}," defineWebAuthnAuthenticateEventHandler",{"type":3139,"tag":3422,"props":8493,"children":8494},{"style":3496},[8495],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":8497,"children":8498},{"style":3501},[8499],{"type":3144,"value":5348},{"type":3139,"tag":3422,"props":8501,"children":8502},{"class":3424,"line":3048},[8503],{"type":3139,"tag":3422,"props":8504,"children":8505},{"style":3487},[8506],{"type":3144,"value":8507},"  \u002F\u002F Optionally, we can prefetch the credentials if the user gives their userName during login\n",{"type":3139,"tag":3422,"props":8509,"children":8510},{"class":3424,"line":3685},[8511,8515,8520,8524,8528,8532,8537,8541],{"type":3139,"tag":3422,"props":8512,"children":8513},{"style":3573},[8514],{"type":3144,"value":5886},{"type":3139,"tag":3422,"props":8516,"children":8517},{"style":3567},[8518],{"type":3144,"value":8519}," allowCredentials",{"type":3139,"tag":3422,"props":8521,"children":8522},{"style":3501},[8523],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":8525,"children":8526},{"style":4516},[8527],{"type":3144,"value":5900},{"type":3139,"tag":3422,"props":8529,"children":8530},{"style":3501},[8531],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":8533,"children":8534},{"style":4516},[8535],{"type":3144,"value":8536}," userName",{"type":3139,"tag":3422,"props":8538,"children":8539},{"style":3501},[8540],{"type":3144,"value":6104},{"type":3139,"tag":3422,"props":8542,"children":8543},{"style":3501},[8544],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":8546,"children":8547},{"class":3424,"line":3694},[8548,8552,8557,8561,8565,8569,8573,8577,8581,8585,8589],{"type":3139,"tag":3422,"props":8549,"children":8550},{"style":3573},[8551],{"type":3144,"value":7654},{"type":3139,"tag":3422,"props":8553,"children":8554},{"style":3496},[8555],{"type":3144,"value":8556}," credentials",{"type":3139,"tag":3422,"props":8558,"children":8559},{"style":3501},[8560],{"type":3144,"value":3655},{"type":3139,"tag":3422,"props":8562,"children":8563},{"style":4684},[8564],{"type":3144,"value":4940},{"type":3139,"tag":3422,"props":8566,"children":8567},{"style":3658},[8568],{"type":3144,"value":8065},{"type":3139,"tag":3422,"props":8570,"children":8571},{"style":3567},[8572],{"type":3144,"value":7929},{"type":3139,"tag":3422,"props":8574,"children":8575},{"style":3501},[8576],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":8578,"children":8579},{"style":3658},[8580],{"type":3144,"value":7012},{"type":3139,"tag":3422,"props":8582,"children":8583},{"style":3501},[8584],{"type":3144,"value":8122},{"type":3139,"tag":3422,"props":8586,"children":8587},{"style":3434},[8588],{"type":3144,"value":5425},{"type":3139,"tag":3422,"props":8590,"children":8591},{"style":3501},[8592],{"type":3144,"value":8131},{"type":3139,"tag":3422,"props":8594,"children":8595},{"class":3424,"line":3711},[8596],{"type":3139,"tag":3422,"props":8597,"children":8598},{"style":3487},[8599],{"type":3144,"value":8600},"    \u002F\u002F If no credentials are found, the authentication cannot be completed\n",{"type":3139,"tag":3422,"props":8602,"children":8603},{"class":3424,"line":3044},[8604,8608,8612,8616,8620,8624,8629],{"type":3139,"tag":3422,"props":8605,"children":8606},{"style":4684},[8607],{"type":3144,"value":7690},{"type":3139,"tag":3422,"props":8609,"children":8610},{"style":3567},[8611],{"type":3144,"value":4513},{"type":3139,"tag":3422,"props":8613,"children":8614},{"style":3501},[8615],{"type":3144,"value":8147},{"type":3139,"tag":3422,"props":8617,"children":8618},{"style":3496},[8619],{"type":3144,"value":7353},{"type":3139,"tag":3422,"props":8621,"children":8622},{"style":3501},[8623],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":8625,"children":8626},{"style":3496},[8627],{"type":3144,"value":8628},"length",{"type":3139,"tag":3422,"props":8630,"children":8631},{"style":3567},[8632],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":8634,"children":8635},{"class":3424,"line":3040},[8636,8640,8644,8648,8652,8656,8660,8664,8668,8672,8676,8680,8685,8689,8693],{"type":3139,"tag":3422,"props":8637,"children":8638},{"style":4684},[8639],{"type":3144,"value":7779},{"type":3139,"tag":3422,"props":8641,"children":8642},{"style":3658},[8643],{"type":3144,"value":7784},{"type":3139,"tag":3422,"props":8645,"children":8646},{"style":3567},[8647],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":8649,"children":8650},{"style":3501},[8651],{"type":3144,"value":7793},{"type":3139,"tag":3422,"props":8653,"children":8654},{"style":3567},[8655],{"type":3144,"value":7798},{"type":3139,"tag":3422,"props":8657,"children":8658},{"style":3501},[8659],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":8661,"children":8662},{"style":7022},[8663],{"type":3144,"value":7807},{"type":3139,"tag":3422,"props":8665,"children":8666},{"style":3501},[8667],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":8669,"children":8670},{"style":3567},[8671],{"type":3144,"value":7816},{"type":3139,"tag":3422,"props":8673,"children":8674},{"style":3501},[8675],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":8677,"children":8678},{"style":3501},[8679],{"type":3144,"value":4745},{"type":3139,"tag":3422,"props":8681,"children":8682},{"style":3434},[8683],{"type":3144,"value":8684},"User not found",{"type":3139,"tag":3422,"props":8686,"children":8687},{"style":3501},[8688],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":8690,"children":8691},{"style":3501},[8692],{"type":3144,"value":7534},{"type":3139,"tag":3422,"props":8694,"children":8695},{"style":3567},[8696],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":8698,"children":8699},{"class":3424,"line":3036},[8700],{"type":3139,"tag":3422,"props":8701,"children":8702},{"emptyLinePlaceholder":1200},[8703],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":8705,"children":8706},{"class":3424,"line":3873},[8707],{"type":3139,"tag":3422,"props":8708,"children":8709},{"style":3487},[8710],{"type":3144,"value":8711},"    \u002F\u002F If user is found, only allow credentials that are registered\n",{"type":3139,"tag":3422,"props":8713,"children":8714},{"class":3424,"line":3127},[8715],{"type":3139,"tag":3422,"props":8716,"children":8717},{"style":3487},[8718],{"type":3144,"value":8719},"    \u002F\u002F The browser will automatically try to use the credential that it knows about\n",{"type":3139,"tag":3422,"props":8721,"children":8722},{"class":3424,"line":3910},[8723],{"type":3139,"tag":3422,"props":8724,"children":8725},{"style":3487},[8726],{"type":3144,"value":8727},"    \u002F\u002F Skipping the step for the user to select a credential for a better user experience\n",{"type":3139,"tag":3422,"props":8729,"children":8730},{"class":3424,"line":3943},[8731,8735],{"type":3139,"tag":3422,"props":8732,"children":8733},{"style":4684},[8734],{"type":3144,"value":6025},{"type":3139,"tag":3422,"props":8736,"children":8737},{"style":3496},[8738],{"type":3144,"value":8739}," credentials\n",{"type":3139,"tag":3422,"props":8741,"children":8742},{"class":3424,"line":3998},[8743],{"type":3139,"tag":3422,"props":8744,"children":8745},{"style":3487},[8746],{"type":3144,"value":8747},"    \u002F\u002F example: [{ id: '...' }]\n",{"type":3139,"tag":3422,"props":8749,"children":8750},{"class":3424,"line":4007},[8751],{"type":3139,"tag":3422,"props":8752,"children":8753},{"style":3501},[8754],{"type":3144,"value":4762},{"type":3139,"tag":3422,"props":8756,"children":8757},{"class":3424,"line":3032},[8758,8762,8767,8771,8775,8779,8784,8788],{"type":3139,"tag":3422,"props":8759,"children":8760},{"style":3573},[8761],{"type":3144,"value":5886},{"type":3139,"tag":3422,"props":8763,"children":8764},{"style":3567},[8765],{"type":3144,"value":8766}," getCredential",{"type":3139,"tag":3422,"props":8768,"children":8769},{"style":3501},[8770],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":8772,"children":8773},{"style":4516},[8774],{"type":3144,"value":5900},{"type":3139,"tag":3422,"props":8776,"children":8777},{"style":3501},[8778],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":8780,"children":8781},{"style":4516},[8782],{"type":3144,"value":8783}," credentialId",{"type":3139,"tag":3422,"props":8785,"children":8786},{"style":3501},[8787],{"type":3144,"value":6104},{"type":3139,"tag":3422,"props":8789,"children":8790},{"style":3501},[8791],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":8793,"children":8794},{"class":3424,"line":4075},[8795],{"type":3139,"tag":3422,"props":8796,"children":8797},{"style":3487},[8798],{"type":3144,"value":8799},"    \u002F\u002F Look for the credential in our database\n",{"type":3139,"tag":3422,"props":8801,"children":8802},{"class":3424,"line":4345},[8803,8807,8811,8815,8819,8823,8827,8831,8835,8839,8843],{"type":3139,"tag":3422,"props":8804,"children":8805},{"style":3573},[8806],{"type":3144,"value":7654},{"type":3139,"tag":3422,"props":8808,"children":8809},{"style":3496},[8810],{"type":3144,"value":8012},{"type":3139,"tag":3422,"props":8812,"children":8813},{"style":3501},[8814],{"type":3144,"value":3655},{"type":3139,"tag":3422,"props":8816,"children":8817},{"style":4684},[8818],{"type":3144,"value":4940},{"type":3139,"tag":3422,"props":8820,"children":8821},{"style":3658},[8822],{"type":3144,"value":8065},{"type":3139,"tag":3422,"props":8824,"children":8825},{"style":3567},[8826],{"type":3144,"value":7929},{"type":3139,"tag":3422,"props":8828,"children":8829},{"style":3501},[8830],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":8832,"children":8833},{"style":3658},[8834],{"type":3144,"value":7012},{"type":3139,"tag":3422,"props":8836,"children":8837},{"style":3501},[8838],{"type":3144,"value":8122},{"type":3139,"tag":3422,"props":8840,"children":8841},{"style":3434},[8842],{"type":3144,"value":5425},{"type":3139,"tag":3422,"props":8844,"children":8845},{"style":3501},[8846],{"type":3144,"value":8131},{"type":3139,"tag":3422,"props":8848,"children":8849},{"class":3424,"line":4353},[8850],{"type":3139,"tag":3422,"props":8851,"children":8852},{"emptyLinePlaceholder":1200},[8853],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":8855,"children":8856},{"class":3424,"line":4362},[8857],{"type":3139,"tag":3422,"props":8858,"children":8859},{"style":3487},[8860],{"type":3144,"value":8861},"    \u002F\u002F If the credential is not found, there is no account to log in to\n",{"type":3139,"tag":3422,"props":8863,"children":8864},{"class":3424,"line":4370},[8865,8869,8873,8877,8882],{"type":3139,"tag":3422,"props":8866,"children":8867},{"style":4684},[8868],{"type":3144,"value":7690},{"type":3139,"tag":3422,"props":8870,"children":8871},{"style":3567},[8872],{"type":3144,"value":4513},{"type":3139,"tag":3422,"props":8874,"children":8875},{"style":3501},[8876],{"type":3144,"value":8147},{"type":3139,"tag":3422,"props":8878,"children":8879},{"style":3496},[8880],{"type":3144,"value":8881},"credential",{"type":3139,"tag":3422,"props":8883,"children":8884},{"style":3567},[8885],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":8887,"children":8888},{"class":3424,"line":4411},[8889,8893,8897,8901,8905,8909,8913,8917,8921,8925,8929,8933,8938,8942,8946],{"type":3139,"tag":3422,"props":8890,"children":8891},{"style":4684},[8892],{"type":3144,"value":7779},{"type":3139,"tag":3422,"props":8894,"children":8895},{"style":3658},[8896],{"type":3144,"value":7784},{"type":3139,"tag":3422,"props":8898,"children":8899},{"style":3567},[8900],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":8902,"children":8903},{"style":3501},[8904],{"type":3144,"value":7793},{"type":3139,"tag":3422,"props":8906,"children":8907},{"style":3567},[8908],{"type":3144,"value":7798},{"type":3139,"tag":3422,"props":8910,"children":8911},{"style":3501},[8912],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":8914,"children":8915},{"style":7022},[8916],{"type":3144,"value":7807},{"type":3139,"tag":3422,"props":8918,"children":8919},{"style":3501},[8920],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":8922,"children":8923},{"style":3567},[8924],{"type":3144,"value":7816},{"type":3139,"tag":3422,"props":8926,"children":8927},{"style":3501},[8928],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":8930,"children":8931},{"style":3501},[8932],{"type":3144,"value":4745},{"type":3139,"tag":3422,"props":8934,"children":8935},{"style":3434},[8936],{"type":3144,"value":8937},"Credential not found",{"type":3139,"tag":3422,"props":8939,"children":8940},{"style":3501},[8941],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":8943,"children":8944},{"style":3501},[8945],{"type":3144,"value":7534},{"type":3139,"tag":3422,"props":8947,"children":8948},{"style":3567},[8949],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":8951,"children":8952},{"class":3424,"line":4419},[8953],{"type":3139,"tag":3422,"props":8954,"children":8955},{"emptyLinePlaceholder":1200},[8956],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":8958,"children":8959},{"class":3424,"line":4428},[8960,8964],{"type":3139,"tag":3422,"props":8961,"children":8962},{"style":4684},[8963],{"type":3144,"value":6025},{"type":3139,"tag":3422,"props":8965,"children":8966},{"style":3496},[8967],{"type":3144,"value":8968}," credential\n",{"type":3139,"tag":3422,"props":8970,"children":8971},{"class":3424,"line":4436},[8972],{"type":3139,"tag":3422,"props":8973,"children":8974},{"style":3501},[8975],{"type":3144,"value":4762},{"type":3139,"tag":3422,"props":8977,"children":8978},{"class":3424,"line":4473},[8979,8983,8987,8991,8995,8999,9003,9007,9011,9016,9020],{"type":3139,"tag":3422,"props":8980,"children":8981},{"style":3573},[8982],{"type":3144,"value":5886},{"type":3139,"tag":3422,"props":8984,"children":8985},{"style":3567},[8986],{"type":3144,"value":5891},{"type":3139,"tag":3422,"props":8988,"children":8989},{"style":3501},[8990],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":8992,"children":8993},{"style":4516},[8994],{"type":3144,"value":5900},{"type":3139,"tag":3422,"props":8996,"children":8997},{"style":3501},[8998],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":9000,"children":9001},{"style":3501},[9002],{"type":3144,"value":3594},{"type":3139,"tag":3422,"props":9004,"children":9005},{"style":4516},[9006],{"type":3144,"value":8012},{"type":3139,"tag":3422,"props":9008,"children":9009},{"style":3501},[9010],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":9012,"children":9013},{"style":4516},[9014],{"type":3144,"value":9015}," authenticationInfo",{"type":3139,"tag":3422,"props":9017,"children":9018},{"style":3501},[9019],{"type":3144,"value":4582},{"type":3139,"tag":3422,"props":9021,"children":9022},{"style":3501},[9023],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":9025,"children":9026},{"class":3424,"line":4481},[9027],{"type":3139,"tag":3422,"props":9028,"children":9029},{"style":3487},[9030],{"type":3144,"value":9031},"    \u002F\u002F The credential authentication has been successful\n",{"type":3139,"tag":3422,"props":9033,"children":9034},{"class":3424,"line":4490},[9035],{"type":3139,"tag":3422,"props":9036,"children":9037},{"style":3487},[9038],{"type":3144,"value":9039},"    \u002F\u002F We can look it up in our database and get the corresponding user\n",{"type":3139,"tag":3422,"props":9041,"children":9042},{"class":3424,"line":4498},[9043,9047,9051,9055,9059],{"type":3139,"tag":3422,"props":9044,"children":9045},{"style":3573},[9046],{"type":3144,"value":7654},{"type":3139,"tag":3422,"props":9048,"children":9049},{"style":3496},[9050],{"type":3144,"value":8056},{"type":3139,"tag":3422,"props":9052,"children":9053},{"style":3501},[9054],{"type":3144,"value":3655},{"type":3139,"tag":3422,"props":9056,"children":9057},{"style":3658},[9058],{"type":3144,"value":8065},{"type":3139,"tag":3422,"props":9060,"children":9061},{"style":3567},[9062],{"type":3144,"value":3666},{"type":3139,"tag":3422,"props":9064,"children":9065},{"class":3424,"line":4594},[9066,9070,9074,9078,9082,9086,9090,9094,9098,9102],{"type":3139,"tag":3422,"props":9067,"children":9068},{"style":3573},[9069],{"type":3144,"value":7654},{"type":3139,"tag":3422,"props":9071,"children":9072},{"style":3496},[9073],{"type":3144,"value":3609},{"type":3139,"tag":3422,"props":9075,"children":9076},{"style":3501},[9077],{"type":3144,"value":3655},{"type":3139,"tag":3422,"props":9079,"children":9080},{"style":4684},[9081],{"type":3144,"value":4940},{"type":3139,"tag":3422,"props":9083,"children":9084},{"style":3496},[9085],{"type":3144,"value":8056},{"type":3139,"tag":3422,"props":9087,"children":9088},{"style":3501},[9089],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":9091,"children":9092},{"style":3658},[9093],{"type":3144,"value":7012},{"type":3139,"tag":3422,"props":9095,"children":9096},{"style":3501},[9097],{"type":3144,"value":8122},{"type":3139,"tag":3422,"props":9099,"children":9100},{"style":3434},[9101],{"type":3144,"value":5425},{"type":3139,"tag":3422,"props":9103,"children":9104},{"style":3501},[9105],{"type":3144,"value":8131},{"type":3139,"tag":3422,"props":9107,"children":9108},{"class":3424,"line":8218},[9109],{"type":3139,"tag":3422,"props":9110,"children":9111},{"emptyLinePlaceholder":1200},[9112],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":9114,"children":9115},{"class":3424,"line":8226},[9116],{"type":3139,"tag":3422,"props":9117,"children":9118},{"style":3487},[9119],{"type":3144,"value":9120},"    \u002F\u002F Update the counter in the database (authenticationInfo.newCounter)\n",{"type":3139,"tag":3422,"props":9122,"children":9123},{"class":3424,"line":8235},[9124,9128,9132,9136,9140,9144,9148],{"type":3139,"tag":3422,"props":9125,"children":9126},{"style":4684},[9127],{"type":3144,"value":5937},{"type":3139,"tag":3422,"props":9129,"children":9130},{"style":3496},[9131],{"type":3144,"value":8056},{"type":3139,"tag":3422,"props":9133,"children":9134},{"style":3501},[9135],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":9137,"children":9138},{"style":3658},[9139],{"type":3144,"value":7012},{"type":3139,"tag":3422,"props":9141,"children":9142},{"style":3501},[9143],{"type":3144,"value":8122},{"type":3139,"tag":3422,"props":9145,"children":9146},{"style":3434},[9147],{"type":3144,"value":5425},{"type":3139,"tag":3422,"props":9149,"children":9150},{"style":3501},[9151],{"type":3144,"value":8131},{"type":3139,"tag":3422,"props":9153,"children":9154},{"class":3424,"line":8267},[9155],{"type":3139,"tag":3422,"props":9156,"children":9157},{"emptyLinePlaceholder":1200},[9158],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":9160,"children":9161},{"class":3424,"line":8275},[9162],{"type":3139,"tag":3422,"props":9163,"children":9164},{"style":3487},[9165],{"type":3144,"value":8281},{"type":3139,"tag":3422,"props":9167,"children":9168},{"class":3424,"line":8284},[9169,9173,9177,9181,9185,9189],{"type":3139,"tag":3422,"props":9170,"children":9171},{"style":4684},[9172],{"type":3144,"value":5937},{"type":3139,"tag":3422,"props":9174,"children":9175},{"style":3658},[9176],{"type":3144,"value":4692},{"type":3139,"tag":3422,"props":9178,"children":9179},{"style":3567},[9180],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":9182,"children":9183},{"style":3496},[9184],{"type":3144,"value":5900},{"type":3139,"tag":3422,"props":9186,"children":9187},{"style":3501},[9188],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":9190,"children":9191},{"style":3501},[9192],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":9194,"children":9195},{"class":3424,"line":8312},[9196,9200,9204],{"type":3139,"tag":3422,"props":9197,"children":9198},{"style":3567},[9199],{"type":3144,"value":5965},{"type":3139,"tag":3422,"props":9201,"children":9202},{"style":3501},[9203],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":9205,"children":9206},{"style":3501},[9207],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":9209,"children":9210},{"class":3424,"line":8328},[9211,9215,9219,9223,9227],{"type":3139,"tag":3422,"props":9212,"children":9213},{"style":3567},[9214],{"type":3144,"value":8334},{"type":3139,"tag":3422,"props":9216,"children":9217},{"style":3501},[9218],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":9220,"children":9221},{"style":3496},[9222],{"type":3144,"value":3609},{"type":3139,"tag":3422,"props":9224,"children":9225},{"style":3501},[9226],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":9228,"children":9229},{"style":3496},[9230],{"type":3144,"value":5998},{"type":3139,"tag":3422,"props":9232,"children":9233},{"class":3424,"line":8353},[9234],{"type":3139,"tag":3422,"props":9235,"children":9236},{"style":3501},[9237],{"type":3144,"value":8359},{"type":3139,"tag":3422,"props":9239,"children":9240},{"class":3424,"line":8362},[9241,9245,9249,9253,9257,9261,9265],{"type":3139,"tag":3422,"props":9242,"children":9243},{"style":3567},[9244],{"type":3144,"value":8368},{"type":3139,"tag":3422,"props":9246,"children":9247},{"style":3501},[9248],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":9250,"children":9251},{"style":3496},[9252],{"type":3144,"value":4848},{"type":3139,"tag":3422,"props":9254,"children":9255},{"style":3501},[9256],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":9258,"children":9259},{"style":3658},[9260],{"type":3144,"value":8385},{"type":3139,"tag":3422,"props":9262,"children":9263},{"style":3567},[9264],{"type":3144,"value":7929},{"type":3139,"tag":3422,"props":9266,"children":9267},{"style":3501},[9268],{"type":3144,"value":5434},{"type":3139,"tag":3422,"props":9270,"children":9271},{"class":3424,"line":8396},[9272,9276],{"type":3139,"tag":3422,"props":9273,"children":9274},{"style":3501},[9275],{"type":3144,"value":6013},{"type":3139,"tag":3422,"props":9277,"children":9278},{"style":3567},[9279],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":9281,"children":9282},{"class":3424,"line":8408},[9283],{"type":3139,"tag":3422,"props":9284,"children":9285},{"style":3501},[9286],{"type":3144,"value":4762},{"type":3139,"tag":3422,"props":9288,"children":9289},{"class":3424,"line":8416},[9290,9294],{"type":3139,"tag":3422,"props":9291,"children":9292},{"style":3501},[9293],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":9295,"children":9296},{"style":3496},[9297],{"type":3144,"value":4864},{"type":3139,"tag":4602,"props":9299,"children":9300},{},[9301],{"type":3139,"tag":3146,"props":9302,"children":9303},{},[9304,9308,9310,9315,9317,9323,9324,9330],{"type":3139,"tag":3422,"props":9305,"children":9306},{},[9307],{"type":3144,"value":4612},{"type":3144,"value":9309},"\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":3139,"tag":4093,"props":9311,"children":9312},{},[9313],{"type":3144,"value":9314},"which is highly recommended",{"type":3144,"value":9316},"), the ",{"type":3139,"tag":3284,"props":9318,"children":9320},{"className":9319},[],[9321],{"type":3144,"value":9322},"storeChallenge",{"type":3144,"value":6254},{"type":3139,"tag":3284,"props":9325,"children":9327},{"className":9326},[],[9328],{"type":3144,"value":9329},"getChallenge",{"type":3144,"value":9331}," 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":3139,"tag":4602,"props":9333,"children":9334},{},[9335],{"type":3139,"tag":3412,"props":9336,"children":9338},{"className":4100,"code":9337,"language":4102,"meta":3012,"style":3012},"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",[9339],{"type":3139,"tag":3284,"props":9340,"children":9341},{"__ignoreMap":3012},[9342,9365,9411,9419,9484,9491,9527,9591,9598,9606,9658,9665,9689,9753,9760,9772,9779,9819,9827,9834],{"type":3139,"tag":3422,"props":9343,"children":9344},{"class":3424,"line":3098},[9345,9349,9353,9357,9361],{"type":3139,"tag":3422,"props":9346,"children":9347},{"style":4684},[9348],{"type":3144,"value":5218},{"type":3139,"tag":3422,"props":9350,"children":9351},{"style":4684},[9352],{"type":3144,"value":5333},{"type":3139,"tag":3422,"props":9354,"children":9355},{"style":3658},[9356],{"type":3144,"value":8491},{"type":3139,"tag":3422,"props":9358,"children":9359},{"style":3496},[9360],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":9362,"children":9363},{"style":3501},[9364],{"type":3144,"value":5348},{"type":3139,"tag":3422,"props":9366,"children":9367},{"class":3424,"line":3064},[9368,9372,9377,9381,9385,9389,9394,9398,9403,9407],{"type":3139,"tag":3422,"props":9369,"children":9370},{"style":3573},[9371],{"type":3144,"value":5886},{"type":3139,"tag":3422,"props":9373,"children":9374},{"style":3567},[9375],{"type":3144,"value":9376}," storeChallenge",{"type":3139,"tag":3422,"props":9378,"children":9379},{"style":3501},[9380],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":9382,"children":9383},{"style":4516},[9384],{"type":3144,"value":5900},{"type":3139,"tag":3422,"props":9386,"children":9387},{"style":3501},[9388],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":9390,"children":9391},{"style":4516},[9392],{"type":3144,"value":9393}," challenge",{"type":3139,"tag":3422,"props":9395,"children":9396},{"style":3501},[9397],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":9399,"children":9400},{"style":4516},[9401],{"type":3144,"value":9402}," attemptId",{"type":3139,"tag":3422,"props":9404,"children":9405},{"style":3501},[9406],{"type":3144,"value":6104},{"type":3139,"tag":3422,"props":9408,"children":9409},{"style":3501},[9410],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":9412,"children":9413},{"class":3424,"line":3048},[9414],{"type":3139,"tag":3422,"props":9415,"children":9416},{"style":3487},[9417],{"type":3144,"value":9418},"    \u002F\u002F Store the challenge in a KV store or DB\n",{"type":3139,"tag":3422,"props":9420,"children":9421},{"class":3424,"line":3685},[9422,9426,9431,9435,9439,9444,9448,9452,9457,9462,9467,9472,9476,9480],{"type":3139,"tag":3422,"props":9423,"children":9424},{"style":4684},[9425],{"type":3144,"value":5937},{"type":3139,"tag":3422,"props":9427,"children":9428},{"style":3658},[9429],{"type":3144,"value":9430}," useStorage",{"type":3139,"tag":3422,"props":9432,"children":9433},{"style":3567},[9434],{"type":3144,"value":7929},{"type":3139,"tag":3422,"props":9436,"children":9437},{"style":3501},[9438],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":9440,"children":9441},{"style":3658},[9442],{"type":3144,"value":9443},"setItem",{"type":3139,"tag":3422,"props":9445,"children":9446},{"style":3567},[9447],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":9449,"children":9450},{"style":3501},[9451],{"type":3144,"value":8122},{"type":3139,"tag":3422,"props":9453,"children":9454},{"style":3434},[9455],{"type":3144,"value":9456},"attempt:",{"type":3139,"tag":3422,"props":9458,"children":9459},{"style":3501},[9460],{"type":3144,"value":9461},"${",{"type":3139,"tag":3422,"props":9463,"children":9464},{"style":3496},[9465],{"type":3144,"value":9466},"attemptId",{"type":3139,"tag":3422,"props":9468,"children":9469},{"style":3501},[9470],{"type":3144,"value":9471},"}`",{"type":3139,"tag":3422,"props":9473,"children":9474},{"style":3501},[9475],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":9477,"children":9478},{"style":3496},[9479],{"type":3144,"value":9393},{"type":3139,"tag":3422,"props":9481,"children":9482},{"style":3567},[9483],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":9485,"children":9486},{"class":3424,"line":3694},[9487],{"type":3139,"tag":3422,"props":9488,"children":9489},{"style":3501},[9490],{"type":3144,"value":4762},{"type":3139,"tag":3422,"props":9492,"children":9493},{"class":3424,"line":3711},[9494,9498,9503,9507,9511,9515,9519,9523],{"type":3139,"tag":3422,"props":9495,"children":9496},{"style":3573},[9497],{"type":3144,"value":5886},{"type":3139,"tag":3422,"props":9499,"children":9500},{"style":3567},[9501],{"type":3144,"value":9502}," getChallenge",{"type":3139,"tag":3422,"props":9504,"children":9505},{"style":3501},[9506],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":9508,"children":9509},{"style":4516},[9510],{"type":3144,"value":5900},{"type":3139,"tag":3422,"props":9512,"children":9513},{"style":3501},[9514],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":9516,"children":9517},{"style":4516},[9518],{"type":3144,"value":9402},{"type":3139,"tag":3422,"props":9520,"children":9521},{"style":3501},[9522],{"type":3144,"value":6104},{"type":3139,"tag":3422,"props":9524,"children":9525},{"style":3501},[9526],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":9528,"children":9529},{"class":3424,"line":3044},[9530,9534,9538,9542,9546,9550,9554,9558,9563,9567,9571,9575,9579,9583,9587],{"type":3139,"tag":3422,"props":9531,"children":9532},{"style":3573},[9533],{"type":3144,"value":7654},{"type":3139,"tag":3422,"props":9535,"children":9536},{"style":3496},[9537],{"type":3144,"value":9393},{"type":3139,"tag":3422,"props":9539,"children":9540},{"style":3501},[9541],{"type":3144,"value":3655},{"type":3139,"tag":3422,"props":9543,"children":9544},{"style":4684},[9545],{"type":3144,"value":4940},{"type":3139,"tag":3422,"props":9547,"children":9548},{"style":3658},[9549],{"type":3144,"value":9430},{"type":3139,"tag":3422,"props":9551,"children":9552},{"style":3567},[9553],{"type":3144,"value":7929},{"type":3139,"tag":3422,"props":9555,"children":9556},{"style":3501},[9557],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":9559,"children":9560},{"style":3658},[9561],{"type":3144,"value":9562},"getItem",{"type":3139,"tag":3422,"props":9564,"children":9565},{"style":3567},[9566],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":9568,"children":9569},{"style":3501},[9570],{"type":3144,"value":8122},{"type":3139,"tag":3422,"props":9572,"children":9573},{"style":3434},[9574],{"type":3144,"value":9456},{"type":3139,"tag":3422,"props":9576,"children":9577},{"style":3501},[9578],{"type":3144,"value":9461},{"type":3139,"tag":3422,"props":9580,"children":9581},{"style":3496},[9582],{"type":3144,"value":9466},{"type":3139,"tag":3422,"props":9584,"children":9585},{"style":3501},[9586],{"type":3144,"value":9471},{"type":3139,"tag":3422,"props":9588,"children":9589},{"style":3567},[9590],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":9592,"children":9593},{"class":3424,"line":3040},[9594],{"type":3139,"tag":3422,"props":9595,"children":9596},{"emptyLinePlaceholder":1200},[9597],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":9599,"children":9600},{"class":3424,"line":3036},[9601],{"type":3139,"tag":3422,"props":9602,"children":9603},{"style":3487},[9604],{"type":3144,"value":9605},"    \u002F\u002F Make sure to always remove the attempt because they are single use only!\n",{"type":3139,"tag":3422,"props":9607,"children":9608},{"class":3424,"line":3873},[9609,9613,9617,9621,9625,9630,9634,9638,9642,9646,9650,9654],{"type":3139,"tag":3422,"props":9610,"children":9611},{"style":4684},[9612],{"type":3144,"value":5937},{"type":3139,"tag":3422,"props":9614,"children":9615},{"style":3658},[9616],{"type":3144,"value":9430},{"type":3139,"tag":3422,"props":9618,"children":9619},{"style":3567},[9620],{"type":3144,"value":7929},{"type":3139,"tag":3422,"props":9622,"children":9623},{"style":3501},[9624],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":9626,"children":9627},{"style":3658},[9628],{"type":3144,"value":9629},"removeItem",{"type":3139,"tag":3422,"props":9631,"children":9632},{"style":3567},[9633],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":9635,"children":9636},{"style":3501},[9637],{"type":3144,"value":8122},{"type":3139,"tag":3422,"props":9639,"children":9640},{"style":3434},[9641],{"type":3144,"value":9456},{"type":3139,"tag":3422,"props":9643,"children":9644},{"style":3501},[9645],{"type":3144,"value":9461},{"type":3139,"tag":3422,"props":9647,"children":9648},{"style":3496},[9649],{"type":3144,"value":9466},{"type":3139,"tag":3422,"props":9651,"children":9652},{"style":3501},[9653],{"type":3144,"value":9471},{"type":3139,"tag":3422,"props":9655,"children":9656},{"style":3567},[9657],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":9659,"children":9660},{"class":3424,"line":3127},[9661],{"type":3139,"tag":3422,"props":9662,"children":9663},{"emptyLinePlaceholder":1200},[9664],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":9666,"children":9667},{"class":3424,"line":3910},[9668,9672,9676,9680,9685],{"type":3139,"tag":3422,"props":9669,"children":9670},{"style":4684},[9671],{"type":3144,"value":7690},{"type":3139,"tag":3422,"props":9673,"children":9674},{"style":3567},[9675],{"type":3144,"value":4513},{"type":3139,"tag":3422,"props":9677,"children":9678},{"style":3501},[9679],{"type":3144,"value":8147},{"type":3139,"tag":3422,"props":9681,"children":9682},{"style":3496},[9683],{"type":3144,"value":9684},"challenge",{"type":3139,"tag":3422,"props":9686,"children":9687},{"style":3567},[9688],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":9690,"children":9691},{"class":3424,"line":3943},[9692,9696,9700,9704,9708,9712,9716,9720,9724,9728,9732,9736,9741,9745,9749],{"type":3139,"tag":3422,"props":9693,"children":9694},{"style":4684},[9695],{"type":3144,"value":7779},{"type":3139,"tag":3422,"props":9697,"children":9698},{"style":3658},[9699],{"type":3144,"value":7784},{"type":3139,"tag":3422,"props":9701,"children":9702},{"style":3567},[9703],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":9705,"children":9706},{"style":3501},[9707],{"type":3144,"value":7793},{"type":3139,"tag":3422,"props":9709,"children":9710},{"style":3567},[9711],{"type":3144,"value":7798},{"type":3139,"tag":3422,"props":9713,"children":9714},{"style":3501},[9715],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":9717,"children":9718},{"style":7022},[9719],{"type":3144,"value":7807},{"type":3139,"tag":3422,"props":9721,"children":9722},{"style":3501},[9723],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":9725,"children":9726},{"style":3567},[9727],{"type":3144,"value":7816},{"type":3139,"tag":3422,"props":9729,"children":9730},{"style":3501},[9731],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":9733,"children":9734},{"style":3501},[9735],{"type":3144,"value":4745},{"type":3139,"tag":3422,"props":9737,"children":9738},{"style":3434},[9739],{"type":3144,"value":9740},"Challenge expired",{"type":3139,"tag":3422,"props":9742,"children":9743},{"style":3501},[9744],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":9746,"children":9747},{"style":3501},[9748],{"type":3144,"value":7534},{"type":3139,"tag":3422,"props":9750,"children":9751},{"style":3567},[9752],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":9754,"children":9755},{"class":3424,"line":3998},[9756],{"type":3139,"tag":3422,"props":9757,"children":9758},{"emptyLinePlaceholder":1200},[9759],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":9761,"children":9762},{"class":3424,"line":4007},[9763,9767],{"type":3139,"tag":3422,"props":9764,"children":9765},{"style":4684},[9766],{"type":3144,"value":6025},{"type":3139,"tag":3422,"props":9768,"children":9769},{"style":3496},[9770],{"type":3144,"value":9771}," challenge\n",{"type":3139,"tag":3422,"props":9773,"children":9774},{"class":3424,"line":3032},[9775],{"type":3139,"tag":3422,"props":9776,"children":9777},{"style":3501},[9778],{"type":3144,"value":4762},{"type":3139,"tag":3422,"props":9780,"children":9781},{"class":3424,"line":4075},[9782,9786,9790,9794,9798,9802,9806,9811,9815],{"type":3139,"tag":3422,"props":9783,"children":9784},{"style":3573},[9785],{"type":3144,"value":5886},{"type":3139,"tag":3422,"props":9787,"children":9788},{"style":3567},[9789],{"type":3144,"value":5891},{"type":3139,"tag":3422,"props":9791,"children":9792},{"style":3501},[9793],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":9795,"children":9796},{"style":4516},[9797],{"type":3144,"value":5900},{"type":3139,"tag":3422,"props":9799,"children":9800},{"style":3501},[9801],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":9803,"children":9804},{"style":3501},[9805],{"type":3144,"value":3594},{"type":3139,"tag":3422,"props":9807,"children":9808},{"style":4516},[9809],{"type":3144,"value":9810}," authenticator",{"type":3139,"tag":3422,"props":9812,"children":9813},{"style":3501},[9814],{"type":3144,"value":4582},{"type":3139,"tag":3422,"props":9816,"children":9817},{"style":3501},[9818],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":9820,"children":9821},{"class":3424,"line":4345},[9822],{"type":3139,"tag":3422,"props":9823,"children":9824},{"style":3487},[9825],{"type":3144,"value":9826},"    \u002F\u002F ...\n",{"type":3139,"tag":3422,"props":9828,"children":9829},{"class":3424,"line":4353},[9830],{"type":3139,"tag":3422,"props":9831,"children":9832},{"style":3501},[9833],{"type":3144,"value":4762},{"type":3139,"tag":3422,"props":9835,"children":9836},{"class":3424,"line":4362},[9837,9841],{"type":3139,"tag":3422,"props":9838,"children":9839},{"style":3501},[9840],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":9842,"children":9843},{"style":3496},[9844],{"type":3144,"value":4864},{"type":3139,"tag":3146,"props":9846,"children":9847},{},[9848],{"type":3144,"value":9849},"On the frontend it is as simple as:",{"type":3139,"tag":3412,"props":9851,"children":9853},{"className":3550,"code":9852,"language":3552,"meta":3012,"style":3012},"\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",[9854],{"type":3139,"tag":3284,"props":9855,"children":9856},{"__ignoreMap":3012},[9857,9897,9943,9977,10010,10021,10061,10068,10102,10128,10177,10208,10215,10222,10246,10278,10305,10312,10327,10334,10349,10387,10447,10501,10516,10552,10607,10659,10674],{"type":3139,"tag":3422,"props":9858,"children":9859},{"class":3424,"line":3098},[9860,9864,9868,9872,9877,9881,9885,9889,9893],{"type":3139,"tag":3422,"props":9861,"children":9862},{"style":3501},[9863],{"type":3144,"value":3564},{"type":3139,"tag":3422,"props":9865,"children":9866},{"style":3567},[9867],{"type":3144,"value":3570},{"type":3139,"tag":3422,"props":9869,"children":9870},{"style":3573},[9871],{"type":3144,"value":3576},{"type":3139,"tag":3422,"props":9873,"children":9874},{"style":3573},[9875],{"type":3144,"value":9876}," lang",{"type":3139,"tag":3422,"props":9878,"children":9879},{"style":3501},[9880],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":9882,"children":9883},{"style":3501},[9884],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":9886,"children":9887},{"style":3434},[9888],{"type":3144,"value":4102},{"type":3139,"tag":3422,"props":9890,"children":9891},{"style":3501},[9892],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":9894,"children":9895},{"style":3501},[9896],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":9898,"children":9899},{"class":3424,"line":3064},[9900,9904,9908,9913,9917,9922,9926,9930,9935,9939],{"type":3139,"tag":3422,"props":9901,"children":9902},{"style":3573},[9903],{"type":3144,"value":3589},{"type":3139,"tag":3422,"props":9905,"children":9906},{"style":3501},[9907],{"type":3144,"value":3594},{"type":3139,"tag":3422,"props":9909,"children":9910},{"style":3496},[9911],{"type":3144,"value":9912}," register",{"type":3139,"tag":3422,"props":9914,"children":9915},{"style":3501},[9916],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":9918,"children":9919},{"style":3496},[9920],{"type":3144,"value":9921}," authenticate ",{"type":3139,"tag":3422,"props":9923,"children":9924},{"style":3501},[9925],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":9927,"children":9928},{"style":3501},[9929],{"type":3144,"value":3655},{"type":3139,"tag":3422,"props":9931,"children":9932},{"style":3658},[9933],{"type":3144,"value":9934}," useWebAuthn",{"type":3139,"tag":3422,"props":9936,"children":9937},{"style":3496},[9938],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":9940,"children":9941},{"style":3501},[9942],{"type":3144,"value":5348},{"type":3139,"tag":3422,"props":9944,"children":9945},{"class":3424,"line":3048},[9946,9951,9955,9959,9964,9968,9972],{"type":3139,"tag":3422,"props":9947,"children":9948},{"style":3567},[9949],{"type":3144,"value":9950},"  registerEndpoint",{"type":3139,"tag":3422,"props":9952,"children":9953},{"style":3501},[9954],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":9956,"children":9957},{"style":3501},[9958],{"type":3144,"value":4745},{"type":3139,"tag":3422,"props":9960,"children":9961},{"style":3434},[9962],{"type":3144,"value":9963},"\u002Fapi\u002Fwebauthn\u002Fregister",{"type":3139,"tag":3422,"props":9965,"children":9966},{"style":3501},[9967],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":9969,"children":9970},{"style":3501},[9971],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":9973,"children":9974},{"style":3487},[9975],{"type":3144,"value":9976}," \u002F\u002F Default\n",{"type":3139,"tag":3422,"props":9978,"children":9979},{"class":3424,"line":3685},[9980,9985,9989,9993,9998,10002,10006],{"type":3139,"tag":3422,"props":9981,"children":9982},{"style":3567},[9983],{"type":3144,"value":9984},"  authenticateEndpoint",{"type":3139,"tag":3422,"props":9986,"children":9987},{"style":3501},[9988],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":9990,"children":9991},{"style":3501},[9992],{"type":3144,"value":4745},{"type":3139,"tag":3422,"props":9994,"children":9995},{"style":3434},[9996],{"type":3144,"value":9997},"\u002Fapi\u002Fwebauthn\u002Fauthenticate",{"type":3139,"tag":3422,"props":9999,"children":10000},{"style":3501},[10001],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":10003,"children":10004},{"style":3501},[10005],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":10007,"children":10008},{"style":3487},[10009],{"type":3144,"value":9976},{"type":3139,"tag":3422,"props":10011,"children":10012},{"class":3424,"line":3694},[10013,10017],{"type":3139,"tag":3422,"props":10014,"children":10015},{"style":3501},[10016],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":10018,"children":10019},{"style":3496},[10020],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":10022,"children":10023},{"class":3424,"line":3711},[10024,10028,10032,10036,10040,10045,10049,10053,10057],{"type":3139,"tag":3422,"props":10025,"children":10026},{"style":3573},[10027],{"type":3144,"value":3589},{"type":3139,"tag":3422,"props":10029,"children":10030},{"style":3501},[10031],{"type":3144,"value":3594},{"type":3139,"tag":3422,"props":10033,"children":10034},{"style":3567},[10035],{"type":3144,"value":3627},{"type":3139,"tag":3422,"props":10037,"children":10038},{"style":3501},[10039],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":10041,"children":10042},{"style":3496},[10043],{"type":3144,"value":10044}," fetchUserSession ",{"type":3139,"tag":3422,"props":10046,"children":10047},{"style":3501},[10048],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":10050,"children":10051},{"style":3501},[10052],{"type":3144,"value":3655},{"type":3139,"tag":3422,"props":10054,"children":10055},{"style":3658},[10056],{"type":3144,"value":3661},{"type":3139,"tag":3422,"props":10058,"children":10059},{"style":3496},[10060],{"type":3144,"value":3666},{"type":3139,"tag":3422,"props":10062,"children":10063},{"class":3424,"line":3044},[10064],{"type":3139,"tag":3422,"props":10065,"children":10066},{"emptyLinePlaceholder":1200},[10067],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":10069,"children":10070},{"class":3424,"line":3040},[10071,10075,10080,10084,10089,10093,10098],{"type":3139,"tag":3422,"props":10072,"children":10073},{"style":3573},[10074],{"type":3144,"value":3589},{"type":3139,"tag":3422,"props":10076,"children":10077},{"style":3496},[10078],{"type":3144,"value":10079}," userName ",{"type":3139,"tag":3422,"props":10081,"children":10082},{"style":3501},[10083],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":10085,"children":10086},{"style":3658},[10087],{"type":3144,"value":10088}," ref",{"type":3139,"tag":3422,"props":10090,"children":10091},{"style":3496},[10092],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":10094,"children":10095},{"style":3501},[10096],{"type":3144,"value":10097},"''",{"type":3139,"tag":3422,"props":10099,"children":10100},{"style":3496},[10101],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":10103,"children":10104},{"class":3424,"line":3036},[10105,10110,10115,10120,10124],{"type":3139,"tag":3422,"props":10106,"children":10107},{"style":3573},[10108],{"type":3144,"value":10109},"async",{"type":3139,"tag":3422,"props":10111,"children":10112},{"style":3573},[10113],{"type":3144,"value":10114}," function",{"type":3139,"tag":3422,"props":10116,"children":10117},{"style":3658},[10118],{"type":3144,"value":10119}," signUp",{"type":3139,"tag":3422,"props":10121,"children":10122},{"style":3501},[10123],{"type":3144,"value":7929},{"type":3139,"tag":3422,"props":10125,"children":10126},{"style":3501},[10127],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":10129,"children":10130},{"class":3424,"line":3873},[10131,10136,10140,10144,10148,10152,10156,10160,10164,10169,10173],{"type":3139,"tag":3422,"props":10132,"children":10133},{"style":4684},[10134],{"type":3144,"value":10135},"  await",{"type":3139,"tag":3422,"props":10137,"children":10138},{"style":3658},[10139],{"type":3144,"value":9912},{"type":3139,"tag":3422,"props":10141,"children":10142},{"style":3567},[10143],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":10145,"children":10146},{"style":3501},[10147],{"type":3144,"value":7793},{"type":3139,"tag":3422,"props":10149,"children":10150},{"style":3567},[10151],{"type":3144,"value":8536},{"type":3139,"tag":3422,"props":10153,"children":10154},{"style":3501},[10155],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":10157,"children":10158},{"style":3496},[10159],{"type":3144,"value":8536},{"type":3139,"tag":3422,"props":10161,"children":10162},{"style":3501},[10163],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":10165,"children":10166},{"style":3496},[10167],{"type":3144,"value":10168},"value",{"type":3139,"tag":3422,"props":10170,"children":10171},{"style":3501},[10172],{"type":3144,"value":7534},{"type":3139,"tag":3422,"props":10174,"children":10175},{"style":3567},[10176],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":10178,"children":10179},{"class":3424,"line":3127},[10180,10185,10190,10194,10199,10203],{"type":3139,"tag":3422,"props":10181,"children":10182},{"style":3501},[10183],{"type":3144,"value":10184},"    .",{"type":3139,"tag":3422,"props":10186,"children":10187},{"style":3658},[10188],{"type":3144,"value":10189},"then",{"type":3139,"tag":3422,"props":10191,"children":10192},{"style":3567},[10193],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":10195,"children":10196},{"style":3496},[10197],{"type":3144,"value":10198},"fetchUserSession",{"type":3139,"tag":3422,"props":10200,"children":10201},{"style":3567},[10202],{"type":3144,"value":7767},{"type":3139,"tag":3422,"props":10204,"children":10205},{"style":3487},[10206],{"type":3144,"value":10207},"\u002F\u002F refetch the user session\n",{"type":3139,"tag":3422,"props":10209,"children":10210},{"class":3424,"line":3910},[10211],{"type":3139,"tag":3422,"props":10212,"children":10213},{"style":3501},[10214],{"type":3144,"value":4600},{"type":3139,"tag":3422,"props":10216,"children":10217},{"class":3424,"line":3943},[10218],{"type":3139,"tag":3422,"props":10219,"children":10220},{"emptyLinePlaceholder":1200},[10221],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":10223,"children":10224},{"class":3424,"line":3998},[10225,10229,10233,10238,10242],{"type":3139,"tag":3422,"props":10226,"children":10227},{"style":3573},[10228],{"type":3144,"value":10109},{"type":3139,"tag":3422,"props":10230,"children":10231},{"style":3573},[10232],{"type":3144,"value":10114},{"type":3139,"tag":3422,"props":10234,"children":10235},{"style":3658},[10236],{"type":3144,"value":10237}," signIn",{"type":3139,"tag":3422,"props":10239,"children":10240},{"style":3501},[10241],{"type":3144,"value":7929},{"type":3139,"tag":3422,"props":10243,"children":10244},{"style":3501},[10245],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":10247,"children":10248},{"class":3424,"line":4007},[10249,10253,10258,10262,10266,10270,10274],{"type":3139,"tag":3422,"props":10250,"children":10251},{"style":4684},[10252],{"type":3144,"value":10135},{"type":3139,"tag":3422,"props":10254,"children":10255},{"style":3658},[10256],{"type":3144,"value":10257}," authenticate",{"type":3139,"tag":3422,"props":10259,"children":10260},{"style":3567},[10261],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":10263,"children":10264},{"style":3496},[10265],{"type":3144,"value":7762},{"type":3139,"tag":3422,"props":10267,"children":10268},{"style":3501},[10269],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":10271,"children":10272},{"style":3496},[10273],{"type":3144,"value":10168},{"type":3139,"tag":3422,"props":10275,"children":10276},{"style":3567},[10277],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":10279,"children":10280},{"class":3424,"line":3032},[10281,10285,10289,10293,10297,10301],{"type":3139,"tag":3422,"props":10282,"children":10283},{"style":3501},[10284],{"type":3144,"value":10184},{"type":3139,"tag":3422,"props":10286,"children":10287},{"style":3658},[10288],{"type":3144,"value":10189},{"type":3139,"tag":3422,"props":10290,"children":10291},{"style":3567},[10292],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":10294,"children":10295},{"style":3496},[10296],{"type":3144,"value":10198},{"type":3139,"tag":3422,"props":10298,"children":10299},{"style":3567},[10300],{"type":3144,"value":7767},{"type":3139,"tag":3422,"props":10302,"children":10303},{"style":3487},[10304],{"type":3144,"value":10207},{"type":3139,"tag":3422,"props":10306,"children":10307},{"class":3424,"line":4075},[10308],{"type":3139,"tag":3422,"props":10309,"children":10310},{"style":3501},[10311],{"type":3144,"value":4600},{"type":3139,"tag":3422,"props":10313,"children":10314},{"class":3424,"line":4345},[10315,10319,10323],{"type":3139,"tag":3422,"props":10316,"children":10317},{"style":3501},[10318],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":10320,"children":10321},{"style":3567},[10322],{"type":3144,"value":3570},{"type":3139,"tag":3422,"props":10324,"children":10325},{"style":3501},[10326],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":10328,"children":10329},{"class":3424,"line":4353},[10330],{"type":3139,"tag":3422,"props":10331,"children":10332},{"emptyLinePlaceholder":1200},[10333],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":10335,"children":10336},{"class":3424,"line":4362},[10337,10341,10345],{"type":3139,"tag":3422,"props":10338,"children":10339},{"style":3501},[10340],{"type":3144,"value":3564},{"type":3139,"tag":3422,"props":10342,"children":10343},{"style":3567},[10344],{"type":3144,"value":3704},{"type":3139,"tag":3422,"props":10346,"children":10347},{"style":3501},[10348],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":10350,"children":10351},{"class":3424,"line":4370},[10352,10356,10361,10366,10370,10374,10379,10383],{"type":3139,"tag":3422,"props":10353,"children":10354},{"style":3501},[10355],{"type":3144,"value":3717},{"type":3139,"tag":3422,"props":10357,"children":10358},{"style":3567},[10359],{"type":3144,"value":10360},"form",{"type":3139,"tag":3422,"props":10362,"children":10363},{"style":3573},[10364],{"type":3144,"value":10365}," @submit.prevent",{"type":3139,"tag":3422,"props":10367,"children":10368},{"style":3501},[10369],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":10371,"children":10372},{"style":3501},[10373],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":10375,"children":10376},{"style":3434},[10377],{"type":3144,"value":10378},"signUp",{"type":3139,"tag":3422,"props":10380,"children":10381},{"style":3501},[10382],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":10384,"children":10385},{"style":3501},[10386],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":10388,"children":10389},{"class":3424,"line":4411},[10390,10394,10399,10404,10408,10412,10416,10420,10425,10429,10433,10438,10442],{"type":3139,"tag":3422,"props":10391,"children":10392},{"style":3501},[10393],{"type":3144,"value":3757},{"type":3139,"tag":3422,"props":10395,"children":10396},{"style":3567},[10397],{"type":3144,"value":10398},"input",{"type":3139,"tag":3422,"props":10400,"children":10401},{"style":3573},[10402],{"type":3144,"value":10403}," v-model",{"type":3139,"tag":3422,"props":10405,"children":10406},{"style":3501},[10407],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":10409,"children":10410},{"style":3501},[10411],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":10413,"children":10414},{"style":3434},[10415],{"type":3144,"value":7762},{"type":3139,"tag":3422,"props":10417,"children":10418},{"style":3501},[10419],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":10421,"children":10422},{"style":3573},[10423],{"type":3144,"value":10424}," placeholder",{"type":3139,"tag":3422,"props":10426,"children":10427},{"style":3501},[10428],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":10430,"children":10431},{"style":3501},[10432],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":10434,"children":10435},{"style":3434},[10436],{"type":3144,"value":10437},"Email or username",{"type":3139,"tag":3422,"props":10439,"children":10440},{"style":3501},[10441],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":10443,"children":10444},{"style":3501},[10445],{"type":3144,"value":10446}," \u002F>\n",{"type":3139,"tag":3422,"props":10448,"children":10449},{"class":3424,"line":4419},[10450,10454,10458,10463,10467,10471,10476,10480,10484,10489,10493,10497],{"type":3139,"tag":3422,"props":10451,"children":10452},{"style":3501},[10453],{"type":3144,"value":3757},{"type":3139,"tag":3422,"props":10455,"children":10456},{"style":3567},[10457],{"type":3144,"value":3827},{"type":3139,"tag":3422,"props":10459,"children":10460},{"style":3573},[10461],{"type":3144,"value":10462}," type",{"type":3139,"tag":3422,"props":10464,"children":10465},{"style":3501},[10466],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":10468,"children":10469},{"style":3501},[10470],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":10472,"children":10473},{"style":3434},[10474],{"type":3144,"value":10475},"submit",{"type":3139,"tag":3422,"props":10477,"children":10478},{"style":3501},[10479],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":10481,"children":10482},{"style":3501},[10483],{"type":3144,"value":3766},{"type":3139,"tag":3422,"props":10485,"children":10486},{"style":3496},[10487],{"type":3144,"value":10488},"Sign up",{"type":3139,"tag":3422,"props":10490,"children":10491},{"style":3501},[10492],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":10494,"children":10495},{"style":3567},[10496],{"type":3144,"value":3827},{"type":3139,"tag":3422,"props":10498,"children":10499},{"style":3501},[10500],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":10502,"children":10503},{"class":3424,"line":4428},[10504,10508,10512],{"type":3139,"tag":3422,"props":10505,"children":10506},{"style":3501},[10507],{"type":3144,"value":3879},{"type":3139,"tag":3422,"props":10509,"children":10510},{"style":3567},[10511],{"type":3144,"value":10360},{"type":3139,"tag":3422,"props":10513,"children":10514},{"style":3501},[10515],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":10517,"children":10518},{"class":3424,"line":4436},[10519,10523,10527,10531,10535,10539,10544,10548],{"type":3139,"tag":3422,"props":10520,"children":10521},{"style":3501},[10522],{"type":3144,"value":3717},{"type":3139,"tag":3422,"props":10524,"children":10525},{"style":3567},[10526],{"type":3144,"value":10360},{"type":3139,"tag":3422,"props":10528,"children":10529},{"style":3573},[10530],{"type":3144,"value":10365},{"type":3139,"tag":3422,"props":10532,"children":10533},{"style":3501},[10534],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":10536,"children":10537},{"style":3501},[10538],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":10540,"children":10541},{"style":3434},[10542],{"type":3144,"value":10543},"signIn",{"type":3139,"tag":3422,"props":10545,"children":10546},{"style":3501},[10547],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":10549,"children":10550},{"style":3501},[10551],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":10553,"children":10554},{"class":3424,"line":4473},[10555,10559,10563,10567,10571,10575,10579,10583,10587,10591,10595,10599,10603],{"type":3139,"tag":3422,"props":10556,"children":10557},{"style":3501},[10558],{"type":3144,"value":3757},{"type":3139,"tag":3422,"props":10560,"children":10561},{"style":3567},[10562],{"type":3144,"value":10398},{"type":3139,"tag":3422,"props":10564,"children":10565},{"style":3573},[10566],{"type":3144,"value":10403},{"type":3139,"tag":3422,"props":10568,"children":10569},{"style":3501},[10570],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":10572,"children":10573},{"style":3501},[10574],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":10576,"children":10577},{"style":3434},[10578],{"type":3144,"value":7762},{"type":3139,"tag":3422,"props":10580,"children":10581},{"style":3501},[10582],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":10584,"children":10585},{"style":3573},[10586],{"type":3144,"value":10424},{"type":3139,"tag":3422,"props":10588,"children":10589},{"style":3501},[10590],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":10592,"children":10593},{"style":3501},[10594],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":10596,"children":10597},{"style":3434},[10598],{"type":3144,"value":10437},{"type":3139,"tag":3422,"props":10600,"children":10601},{"style":3501},[10602],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":10604,"children":10605},{"style":3501},[10606],{"type":3144,"value":10446},{"type":3139,"tag":3422,"props":10608,"children":10609},{"class":3424,"line":4481},[10610,10614,10618,10622,10626,10630,10634,10638,10642,10647,10651,10655],{"type":3139,"tag":3422,"props":10611,"children":10612},{"style":3501},[10613],{"type":3144,"value":3757},{"type":3139,"tag":3422,"props":10615,"children":10616},{"style":3567},[10617],{"type":3144,"value":3827},{"type":3139,"tag":3422,"props":10619,"children":10620},{"style":3573},[10621],{"type":3144,"value":10462},{"type":3139,"tag":3422,"props":10623,"children":10624},{"style":3501},[10625],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":10627,"children":10628},{"style":3501},[10629],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":10631,"children":10632},{"style":3434},[10633],{"type":3144,"value":10475},{"type":3139,"tag":3422,"props":10635,"children":10636},{"style":3501},[10637],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":10639,"children":10640},{"style":3501},[10641],{"type":3144,"value":3766},{"type":3139,"tag":3422,"props":10643,"children":10644},{"style":3496},[10645],{"type":3144,"value":10646},"Sign in",{"type":3139,"tag":3422,"props":10648,"children":10649},{"style":3501},[10650],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":10652,"children":10653},{"style":3567},[10654],{"type":3144,"value":3827},{"type":3139,"tag":3422,"props":10656,"children":10657},{"style":3501},[10658],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":10660,"children":10661},{"class":3424,"line":4490},[10662,10666,10670],{"type":3139,"tag":3422,"props":10663,"children":10664},{"style":3501},[10665],{"type":3144,"value":3879},{"type":3139,"tag":3422,"props":10667,"children":10668},{"style":3567},[10669],{"type":3144,"value":10360},{"type":3139,"tag":3422,"props":10671,"children":10672},{"style":3501},[10673],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":10675,"children":10676},{"class":3424,"line":4498},[10677,10681,10685],{"type":3139,"tag":3422,"props":10678,"children":10679},{"style":3501},[10680],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":10682,"children":10683},{"style":3567},[10684],{"type":3144,"value":3704},{"type":3139,"tag":3422,"props":10686,"children":10687},{"style":3501},[10688],{"type":3144,"value":3581},{"type":3139,"tag":3146,"props":10690,"children":10691},{},[10692,10694,10705],{"type":3144,"value":10693},"Take a look at the ",{"type":3139,"tag":3150,"props":10695,"children":10698},{"href":10696,"rel":10697},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fcomponents\u002FWebAuthnModal.vue",[3154],[10699],{"type":3139,"tag":3284,"props":10700,"children":10702},{"className":10701},[],[10703],{"type":3144,"value":10704},"WebAuthnModal.vue",{"type":3144,"value":10706}," for a full example.",{"type":3139,"tag":5528,"props":10708,"children":10710},{"id":10709},"demo",[10711],{"type":3144,"value":10712},"Demo",{"type":3139,"tag":3146,"props":10714,"children":10715},{},[10716,10718,10724,10726,10733,10734,10741],{"type":3144,"value":10717},"A full demo can be found on ",{"type":3139,"tag":3150,"props":10719,"children":10722},{"href":10720,"rel":10721},"https:\u002F\u002Ftodo-passkeys.nuxt.dev",[3154],[10723],{"type":3144,"value":10720},{"type":3144,"value":10725}," using ",{"type":3139,"tag":3150,"props":10727,"children":10730},{"href":10728,"rel":10729},"https:\u002F\u002Form.drizzle.team\u002F",[3154],[10731],{"type":3144,"value":10732},"Drizzle ORM",{"type":3144,"value":6254},{"type":3139,"tag":3150,"props":10735,"children":10738},{"href":10736,"rel":10737},"https:\u002F\u002Fhub.nuxt.com",[3154],[10739],{"type":3144,"value":10740},"NuxtHub",{"type":3144,"value":3377},{"type":3139,"tag":3146,"props":10743,"children":10744},{},[10745,10747,10752],{"type":3144,"value":10746},"The source code of the demo is available on ",{"type":3139,"tag":3150,"props":10748,"children":10750},{"href":3224,"rel":10749},[3154],[10751],{"type":3144,"value":3224},{"type":3144,"value":3377},{"type":3139,"tag":3542,"props":10754,"children":10756},{"id":10755},"extend-session",[10757],{"type":3144,"value":10758},"Extend Session",{"type":3139,"tag":3146,"props":10760,"children":10761},{},[10762],{"type":3144,"value":10763},"We leverage hooks to let you extend the session data with your own data or log when the user clears the session.",{"type":3139,"tag":3412,"props":10765,"children":10767},{"className":4100,"code":10766,"language":4102,"meta":3012,"style":3012},"\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",[10768],{"type":3139,"tag":3284,"props":10769,"children":10770},{"__ignoreMap":3012},[10771,10779,10811,10819,10827,10898,10906,10914,10922,10934,10941,10949,11016,11024,11035],{"type":3139,"tag":3422,"props":10772,"children":10773},{"class":3424,"line":3098},[10774],{"type":3139,"tag":3422,"props":10775,"children":10776},{"style":3487},[10777],{"type":3144,"value":10778},"\u002F\u002F server\u002Fplugins\u002Fsession.ts\n",{"type":3139,"tag":3422,"props":10780,"children":10781},{"class":3424,"line":3064},[10782,10786,10790,10795,10799,10803,10807],{"type":3139,"tag":3422,"props":10783,"children":10784},{"style":4684},[10785],{"type":3144,"value":5218},{"type":3139,"tag":3422,"props":10787,"children":10788},{"style":4684},[10789],{"type":3144,"value":5333},{"type":3139,"tag":3422,"props":10791,"children":10792},{"style":3658},[10793],{"type":3144,"value":10794}," defineNitroPlugin",{"type":3139,"tag":3422,"props":10796,"children":10797},{"style":3496},[10798],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":10800,"children":10801},{"style":3501},[10802],{"type":3144,"value":7929},{"type":3139,"tag":3422,"props":10804,"children":10805},{"style":3573},[10806],{"type":3144,"value":4390},{"type":3139,"tag":3422,"props":10808,"children":10809},{"style":3501},[10810],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":10812,"children":10813},{"class":3424,"line":3048},[10814],{"type":3139,"tag":3422,"props":10815,"children":10816},{"style":3487},[10817],{"type":3144,"value":10818},"  \u002F\u002F Called when the session is fetched during SSR for the Vue composable (\u002Fapi\u002F_auth\u002Fsession)\n",{"type":3139,"tag":3422,"props":10820,"children":10821},{"class":3424,"line":3685},[10822],{"type":3139,"tag":3422,"props":10823,"children":10824},{"style":3487},[10825],{"type":3144,"value":10826},"  \u002F\u002F Or when we call useUserSession().fetch()\n",{"type":3139,"tag":3422,"props":10828,"children":10829},{"class":3424,"line":3694},[10830,10835,10839,10844,10848,10852,10857,10861,10865,10870,10874,10878,10882,10886,10890,10894],{"type":3139,"tag":3422,"props":10831,"children":10832},{"style":3496},[10833],{"type":3144,"value":10834},"  sessionHooks",{"type":3139,"tag":3422,"props":10836,"children":10837},{"style":3501},[10838],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":10840,"children":10841},{"style":3658},[10842],{"type":3144,"value":10843},"hook",{"type":3139,"tag":3422,"props":10845,"children":10846},{"style":3567},[10847],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":10849,"children":10850},{"style":3501},[10851],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":10853,"children":10854},{"style":3434},[10855],{"type":3144,"value":10856},"fetch",{"type":3139,"tag":3422,"props":10858,"children":10859},{"style":3501},[10860],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":10862,"children":10863},{"style":3501},[10864],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":10866,"children":10867},{"style":3573},[10868],{"type":3144,"value":10869}," async",{"type":3139,"tag":3422,"props":10871,"children":10872},{"style":3501},[10873],{"type":3144,"value":4513},{"type":3139,"tag":3422,"props":10875,"children":10876},{"style":4516},[10877],{"type":3144,"value":7699},{"type":3139,"tag":3422,"props":10879,"children":10880},{"style":3501},[10881],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":10883,"children":10884},{"style":4516},[10885],{"type":3144,"value":7614},{"type":3139,"tag":3422,"props":10887,"children":10888},{"style":3501},[10889],{"type":3144,"value":6104},{"type":3139,"tag":3422,"props":10891,"children":10892},{"style":3573},[10893],{"type":3144,"value":4390},{"type":3139,"tag":3422,"props":10895,"children":10896},{"style":3501},[10897],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":10899,"children":10900},{"class":3424,"line":3711},[10901],{"type":3139,"tag":3422,"props":10902,"children":10903},{"style":3487},[10904],{"type":3144,"value":10905},"    \u002F\u002F extend User Session by calling your database\n",{"type":3139,"tag":3422,"props":10907,"children":10908},{"class":3424,"line":3044},[10909],{"type":3139,"tag":3422,"props":10910,"children":10911},{"style":3487},[10912],{"type":3144,"value":10913},"    \u002F\u002F or\n",{"type":3139,"tag":3422,"props":10915,"children":10916},{"class":3424,"line":3040},[10917],{"type":3139,"tag":3422,"props":10918,"children":10919},{"style":3487},[10920],{"type":3144,"value":10921},"    \u002F\u002F throw createError({ ... }) if session is invalid for example\n",{"type":3139,"tag":3422,"props":10923,"children":10924},{"class":3424,"line":3036},[10925,10930],{"type":3139,"tag":3422,"props":10926,"children":10927},{"style":3501},[10928],{"type":3144,"value":10929},"  }",{"type":3139,"tag":3422,"props":10931,"children":10932},{"style":3567},[10933],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":10935,"children":10936},{"class":3424,"line":3873},[10937],{"type":3139,"tag":3422,"props":10938,"children":10939},{"emptyLinePlaceholder":1200},[10940],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":10942,"children":10943},{"class":3424,"line":3127},[10944],{"type":3139,"tag":3422,"props":10945,"children":10946},{"style":3487},[10947],{"type":3144,"value":10948},"  \u002F\u002F Called when we call useUserSession().clear() or clearUserSession(event)\n",{"type":3139,"tag":3422,"props":10950,"children":10951},{"class":3424,"line":3910},[10952,10956,10960,10964,10968,10972,10976,10980,10984,10988,10992,10996,11000,11004,11008,11012],{"type":3139,"tag":3422,"props":10953,"children":10954},{"style":3496},[10955],{"type":3144,"value":10834},{"type":3139,"tag":3422,"props":10957,"children":10958},{"style":3501},[10959],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":10961,"children":10962},{"style":3658},[10963],{"type":3144,"value":10843},{"type":3139,"tag":3422,"props":10965,"children":10966},{"style":3567},[10967],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":10969,"children":10970},{"style":3501},[10971],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":10973,"children":10974},{"style":3434},[10975],{"type":3144,"value":3845},{"type":3139,"tag":3422,"props":10977,"children":10978},{"style":3501},[10979],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":10981,"children":10982},{"style":3501},[10983],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":10985,"children":10986},{"style":3573},[10987],{"type":3144,"value":10869},{"type":3139,"tag":3422,"props":10989,"children":10990},{"style":3501},[10991],{"type":3144,"value":4513},{"type":3139,"tag":3422,"props":10993,"children":10994},{"style":4516},[10995],{"type":3144,"value":7699},{"type":3139,"tag":3422,"props":10997,"children":10998},{"style":3501},[10999],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":11001,"children":11002},{"style":4516},[11003],{"type":3144,"value":7614},{"type":3139,"tag":3422,"props":11005,"children":11006},{"style":3501},[11007],{"type":3144,"value":6104},{"type":3139,"tag":3422,"props":11009,"children":11010},{"style":3573},[11011],{"type":3144,"value":4390},{"type":3139,"tag":3422,"props":11013,"children":11014},{"style":3501},[11015],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":11017,"children":11018},{"class":3424,"line":3943},[11019],{"type":3139,"tag":3422,"props":11020,"children":11021},{"style":3487},[11022],{"type":3144,"value":11023},"    \u002F\u002F Log that user logged out\n",{"type":3139,"tag":3422,"props":11025,"children":11026},{"class":3424,"line":3998},[11027,11031],{"type":3139,"tag":3422,"props":11028,"children":11029},{"style":3501},[11030],{"type":3144,"value":10929},{"type":3139,"tag":3422,"props":11032,"children":11033},{"style":3567},[11034],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":11036,"children":11037},{"class":3424,"line":4007},[11038,11042],{"type":3139,"tag":3422,"props":11039,"children":11040},{"style":3501},[11041],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":11043,"children":11044},{"style":3496},[11045],{"type":3144,"value":4864},{"type":3139,"tag":3230,"props":11047,"children":11049},{"id":11048},"server-side-rendering",[11050],{"type":3144,"value":11051},"Server-Side Rendering",{"type":3139,"tag":3146,"props":11053,"children":11054},{},[11055,11057,11063,11065],{"type":3144,"value":11056},"You can make authenticated requests both from the client and the server. However, you must use ",{"type":3139,"tag":3284,"props":11058,"children":11060},{"className":11059},[],[11061],{"type":3144,"value":11062},"useRequestFetch()",{"type":3144,"value":11064}," to make authenticated requests during SSR if you are not using ",{"type":3139,"tag":3284,"props":11066,"children":11068},{"className":11067},[],[11069],{"type":3144,"value":11070},"useFetch()",{"type":3139,"tag":3412,"props":11072,"children":11074},{"className":3550,"code":11073,"language":3552,"meta":3012,"style":3012},"\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",[11075],{"type":3139,"tag":3284,"props":11076,"children":11077},{"__ignoreMap":3012},[11078,11117,11125,11215,11222,11230,11282],{"type":3139,"tag":3422,"props":11079,"children":11080},{"class":3424,"line":3098},[11081,11085,11089,11093,11097,11101,11105,11109,11113],{"type":3139,"tag":3422,"props":11082,"children":11083},{"style":3501},[11084],{"type":3144,"value":3564},{"type":3139,"tag":3422,"props":11086,"children":11087},{"style":3567},[11088],{"type":3144,"value":3570},{"type":3139,"tag":3422,"props":11090,"children":11091},{"style":3573},[11092],{"type":3144,"value":3576},{"type":3139,"tag":3422,"props":11094,"children":11095},{"style":3573},[11096],{"type":3144,"value":9876},{"type":3139,"tag":3422,"props":11098,"children":11099},{"style":3501},[11100],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":11102,"children":11103},{"style":3501},[11104],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":11106,"children":11107},{"style":3434},[11108],{"type":3144,"value":4102},{"type":3139,"tag":3422,"props":11110,"children":11111},{"style":3501},[11112],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":11114,"children":11115},{"style":3501},[11116],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":11118,"children":11119},{"class":3424,"line":3064},[11120],{"type":3139,"tag":3422,"props":11121,"children":11122},{"style":3487},[11123],{"type":3144,"value":11124},"\u002F\u002F When using useAsyncData\n",{"type":3139,"tag":3422,"props":11126,"children":11127},{"class":3424,"line":3048},[11128,11132,11136,11141,11145,11149,11153,11158,11162,11166,11171,11175,11179,11183,11187,11192,11197,11201,11206,11210],{"type":3139,"tag":3422,"props":11129,"children":11130},{"style":3573},[11131],{"type":3144,"value":3589},{"type":3139,"tag":3422,"props":11133,"children":11134},{"style":3501},[11135],{"type":3144,"value":3594},{"type":3139,"tag":3422,"props":11137,"children":11138},{"style":3496},[11139],{"type":3144,"value":11140}," data ",{"type":3139,"tag":3422,"props":11142,"children":11143},{"style":3501},[11144],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":11146,"children":11147},{"style":3501},[11148],{"type":3144,"value":3655},{"type":3139,"tag":3422,"props":11150,"children":11151},{"style":4684},[11152],{"type":3144,"value":4940},{"type":3139,"tag":3422,"props":11154,"children":11155},{"style":3658},[11156],{"type":3144,"value":11157}," useAsyncData",{"type":3139,"tag":3422,"props":11159,"children":11160},{"style":3496},[11161],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":11163,"children":11164},{"style":3501},[11165],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":11167,"children":11168},{"style":3434},[11169],{"type":3144,"value":11170},"team",{"type":3139,"tag":3422,"props":11172,"children":11173},{"style":3501},[11174],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":11176,"children":11177},{"style":3501},[11178],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":11180,"children":11181},{"style":3501},[11182],{"type":3144,"value":4385},{"type":3139,"tag":3422,"props":11184,"children":11185},{"style":3573},[11186],{"type":3144,"value":4390},{"type":3139,"tag":3422,"props":11188,"children":11189},{"style":3658},[11190],{"type":3144,"value":11191}," useRequestFetch",{"type":3139,"tag":3422,"props":11193,"children":11194},{"style":3496},[11195],{"type":3144,"value":11196},"()(",{"type":3139,"tag":3422,"props":11198,"children":11199},{"style":3501},[11200],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":11202,"children":11203},{"style":3434},[11204],{"type":3144,"value":11205},"\u002Fapi\u002Fprotected-endpoint",{"type":3139,"tag":3422,"props":11207,"children":11208},{"style":3501},[11209],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":11211,"children":11212},{"style":3496},[11213],{"type":3144,"value":11214},"))\n",{"type":3139,"tag":3422,"props":11216,"children":11217},{"class":3424,"line":3685},[11218],{"type":3139,"tag":3422,"props":11219,"children":11220},{"emptyLinePlaceholder":1200},[11221],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":11223,"children":11224},{"class":3424,"line":3694},[11225],{"type":3139,"tag":3422,"props":11226,"children":11227},{"style":3487},[11228],{"type":3144,"value":11229},"\u002F\u002F useFetch will automatically use useRequestFetch during SSR\n",{"type":3139,"tag":3422,"props":11231,"children":11232},{"class":3424,"line":3711},[11233,11237,11241,11245,11249,11253,11257,11262,11266,11270,11274,11278],{"type":3139,"tag":3422,"props":11234,"children":11235},{"style":3573},[11236],{"type":3144,"value":3589},{"type":3139,"tag":3422,"props":11238,"children":11239},{"style":3501},[11240],{"type":3144,"value":3594},{"type":3139,"tag":3422,"props":11242,"children":11243},{"style":3496},[11244],{"type":3144,"value":11140},{"type":3139,"tag":3422,"props":11246,"children":11247},{"style":3501},[11248],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":11250,"children":11251},{"style":3501},[11252],{"type":3144,"value":3655},{"type":3139,"tag":3422,"props":11254,"children":11255},{"style":4684},[11256],{"type":3144,"value":4940},{"type":3139,"tag":3422,"props":11258,"children":11259},{"style":3658},[11260],{"type":3144,"value":11261}," useFetch",{"type":3139,"tag":3422,"props":11263,"children":11264},{"style":3496},[11265],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":11267,"children":11268},{"style":3501},[11269],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":11271,"children":11272},{"style":3434},[11273],{"type":3144,"value":11205},{"type":3139,"tag":3422,"props":11275,"children":11276},{"style":3501},[11277],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":11279,"children":11280},{"style":3496},[11281],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":11283,"children":11284},{"class":3424,"line":3044},[11285,11289,11293],{"type":3139,"tag":3422,"props":11286,"children":11287},{"style":3501},[11288],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":11290,"children":11291},{"style":3567},[11292],{"type":3144,"value":3570},{"type":3139,"tag":3422,"props":11294,"children":11295},{"style":3501},[11296],{"type":3144,"value":3581},{"type":3139,"tag":4602,"props":11298,"children":11299},{},[11300],{"type":3139,"tag":3146,"props":11301,"children":11302},{},[11303,11305,11312,11314,11319],{"type":3144,"value":11304},"There's ",{"type":3139,"tag":3150,"props":11306,"children":11309},{"href":11307,"rel":11308},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F24813",[3154],[11310],{"type":3144,"value":11311},"an open issue",{"type":3144,"value":11313}," to include credentials in ",{"type":3139,"tag":3284,"props":11315,"children":11317},{"className":11316},[],[11318],{"type":3144,"value":634},{"type":3144,"value":11320}," in Nuxt.",{"type":3139,"tag":3230,"props":11322,"children":11324},{"id":11323},"hybrid-rendering",[11325],{"type":3144,"value":3246},{"type":3139,"tag":3146,"props":11327,"children":11328},{},[11329,11331,11344],{"type":3144,"value":11330},"When using ",{"type":3139,"tag":3150,"props":11332,"children":11335},{"href":11333,"rel":11334},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fguide\u002Fconcepts\u002Frendering#hybrid-rendering",[3154],[11336,11338],{"type":3144,"value":11337},"Nuxt ",{"type":3139,"tag":3284,"props":11339,"children":11341},{"className":11340},[],[11342],{"type":3144,"value":11343},"routeRules",{"type":3144,"value":11345}," 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":3139,"tag":3146,"props":11347,"children":11348},{},[11349],{"type":3144,"value":11350},"This is because the user session is stored in a secure cookie and cannot be accessed during prerendering.",{"type":3139,"tag":3146,"props":11352,"children":11353},{},[11354],{"type":3139,"tag":4093,"props":11355,"children":11356},{},[11357],{"type":3144,"value":11358},"This means that you should not rely on the user session during prerendering.",{"type":3139,"tag":3146,"props":11360,"children":11361},{},[11362,11364,11370,11372,11377],{"type":3144,"value":11363},"You may also choose to instruct Nuxt Auth Utils to fetch the user session only on the client side, with the ",{"type":3139,"tag":3284,"props":11365,"children":11367},{"className":11366},[],[11368],{"type":3144,"value":11369},"loadStrategy",{"type":3144,"value":11371}," option in your ",{"type":3139,"tag":3284,"props":11373,"children":11375},{"className":11374},[],[11376],{"type":3144,"value":233},{"type":3144,"value":4161},{"type":3139,"tag":3412,"props":11379,"children":11381},{"className":4100,"code":11380,"language":4102,"meta":3012,"style":3012},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'client-only'\n  }\n})\n",[11382],{"type":3139,"tag":3284,"props":11383,"children":11384},{"__ignoreMap":3012},[11385,11408,11423,11448,11455],{"type":3139,"tag":3422,"props":11386,"children":11387},{"class":3424,"line":3098},[11388,11392,11396,11400,11404],{"type":3139,"tag":3422,"props":11389,"children":11390},{"style":4684},[11391],{"type":3144,"value":5218},{"type":3139,"tag":3422,"props":11393,"children":11394},{"style":4684},[11395],{"type":3144,"value":5333},{"type":3139,"tag":3422,"props":11397,"children":11398},{"style":3658},[11399],{"type":3144,"value":5338},{"type":3139,"tag":3422,"props":11401,"children":11402},{"style":3496},[11403],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":11405,"children":11406},{"style":3501},[11407],{"type":3144,"value":5348},{"type":3139,"tag":3422,"props":11409,"children":11410},{"class":3424,"line":3064},[11411,11415,11419],{"type":3139,"tag":3422,"props":11412,"children":11413},{"style":3567},[11414],{"type":3144,"value":6608},{"type":3139,"tag":3422,"props":11416,"children":11417},{"style":3501},[11418],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":11420,"children":11421},{"style":3501},[11422],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":11424,"children":11425},{"class":3424,"line":3048},[11426,11431,11435,11439,11444],{"type":3139,"tag":3422,"props":11427,"children":11428},{"style":3567},[11429],{"type":3144,"value":11430},"    loadStrategy",{"type":3139,"tag":3422,"props":11432,"children":11433},{"style":3501},[11434],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":11436,"children":11437},{"style":3501},[11438],{"type":3144,"value":4745},{"type":3139,"tag":3422,"props":11440,"children":11441},{"style":3434},[11442],{"type":3144,"value":11443},"client-only",{"type":3139,"tag":3422,"props":11445,"children":11446},{"style":3501},[11447],{"type":3144,"value":4754},{"type":3139,"tag":3422,"props":11449,"children":11450},{"class":3424,"line":3685},[11451],{"type":3139,"tag":3422,"props":11452,"children":11453},{"style":3501},[11454],{"type":3144,"value":5122},{"type":3139,"tag":3422,"props":11456,"children":11457},{"class":3424,"line":3694},[11458,11462],{"type":3139,"tag":3422,"props":11459,"children":11460},{"style":3501},[11461],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":11463,"children":11464},{"style":3496},[11465],{"type":3144,"value":4864},{"type":3139,"tag":3146,"props":11467,"children":11468},{},[11469,11471,11476,11478,11483,11484,11490],{"type":3144,"value":11470},"When using the ",{"type":3139,"tag":3284,"props":11472,"children":11474},{"className":11473},[],[11475],{"type":3144,"value":11443},{"type":3144,"value":11477}," load strategy, the user session can still be manually fetched on the server side by calling ",{"type":3139,"tag":3284,"props":11479,"children":11481},{"className":11480},[],[11482],{"type":3144,"value":10856},{"type":3144,"value":7369},{"type":3139,"tag":3284,"props":11485,"children":11487},{"className":11486},[],[11488],{"type":3144,"value":11489},"useUserSession",{"type":3144,"value":11491}," composable.",{"type":3139,"tag":3542,"props":11493,"children":11495},{"id":11494},"disable-session-loading",[11496],{"type":3144,"value":11497},"Disable session loading",{"type":3139,"tag":3146,"props":11499,"children":11500},{},[11501,11503,11508,11509,11514],{"type":3144,"value":11502},"You may also choose to disable session loading entirely, with the ",{"type":3139,"tag":3284,"props":11504,"children":11506},{"className":11505},[],[11507],{"type":3144,"value":11369},{"type":3144,"value":11371},{"type":3139,"tag":3284,"props":11510,"children":11512},{"className":11511},[],[11513],{"type":3144,"value":233},{"type":3144,"value":4161},{"type":3139,"tag":3412,"props":11516,"children":11518},{"className":4100,"code":11517,"language":4102,"meta":3012,"style":3012},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'none'\n  }\n})\n",[11519],{"type":3139,"tag":3284,"props":11520,"children":11521},{"__ignoreMap":3012},[11522,11545,11560,11584,11591],{"type":3139,"tag":3422,"props":11523,"children":11524},{"class":3424,"line":3098},[11525,11529,11533,11537,11541],{"type":3139,"tag":3422,"props":11526,"children":11527},{"style":4684},[11528],{"type":3144,"value":5218},{"type":3139,"tag":3422,"props":11530,"children":11531},{"style":4684},[11532],{"type":3144,"value":5333},{"type":3139,"tag":3422,"props":11534,"children":11535},{"style":3658},[11536],{"type":3144,"value":5338},{"type":3139,"tag":3422,"props":11538,"children":11539},{"style":3496},[11540],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":11542,"children":11543},{"style":3501},[11544],{"type":3144,"value":5348},{"type":3139,"tag":3422,"props":11546,"children":11547},{"class":3424,"line":3064},[11548,11552,11556],{"type":3139,"tag":3422,"props":11549,"children":11550},{"style":3567},[11551],{"type":3144,"value":6608},{"type":3139,"tag":3422,"props":11553,"children":11554},{"style":3501},[11555],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":11557,"children":11558},{"style":3501},[11559],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":11561,"children":11562},{"class":3424,"line":3048},[11563,11567,11571,11575,11580],{"type":3139,"tag":3422,"props":11564,"children":11565},{"style":3567},[11566],{"type":3144,"value":11430},{"type":3139,"tag":3422,"props":11568,"children":11569},{"style":3501},[11570],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":11572,"children":11573},{"style":3501},[11574],{"type":3144,"value":4745},{"type":3139,"tag":3422,"props":11576,"children":11577},{"style":3434},[11578],{"type":3144,"value":11579},"none",{"type":3139,"tag":3422,"props":11581,"children":11582},{"style":3501},[11583],{"type":3144,"value":4754},{"type":3139,"tag":3422,"props":11585,"children":11586},{"class":3424,"line":3685},[11587],{"type":3139,"tag":3422,"props":11588,"children":11589},{"style":3501},[11590],{"type":3144,"value":5122},{"type":3139,"tag":3422,"props":11592,"children":11593},{"class":3424,"line":3694},[11594,11598],{"type":3139,"tag":3422,"props":11595,"children":11596},{"style":3501},[11597],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":11599,"children":11600},{"style":3496},[11601],{"type":3144,"value":4864},{"type":3139,"tag":3146,"props":11603,"children":11604},{},[11605,11606,11611,11613,11619],{"type":3144,"value":11470},{"type":3139,"tag":3284,"props":11607,"children":11609},{"className":11608},[],[11610],{"type":3144,"value":11579},{"type":3144,"value":11612}," load strategy, the user session can still be manually fetched by calling ",{"type":3139,"tag":3284,"props":11614,"children":11616},{"className":11615},[],[11617],{"type":3144,"value":11618},"useUserSession().fetch()",{"type":3144,"value":3377},{"type":3139,"tag":3542,"props":11621,"children":11623},{"id":11622},"authstate-component",[11624,11629],{"type":3139,"tag":3284,"props":11625,"children":11627},{"className":11626},[],[11628],{"type":3144,"value":3313},{"type":3144,"value":3315},{"type":3139,"tag":3146,"props":11631,"children":11632},{},[11633,11635,11640],{"type":3144,"value":11634},"You can use the ",{"type":3139,"tag":3284,"props":11636,"children":11638},{"className":11637},[],[11639],{"type":3144,"value":3313},{"type":3144,"value":11641}," component to safely display auth-related data in your components without worrying about the rendering mode.",{"type":3139,"tag":3146,"props":11643,"children":11644},{},[11645],{"type":3144,"value":11646},"One common use case if the Login button in the header:",{"type":3139,"tag":3412,"props":11648,"children":11650},{"className":3550,"code":11649,"language":3552,"meta":3012,"style":3012},"\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",[11651],{"type":3139,"tag":3284,"props":11652,"children":11653},{"__ignoreMap":3012},[11654,11669,11685,11723,11795,11854,11870,11885],{"type":3139,"tag":3422,"props":11655,"children":11656},{"class":3424,"line":3098},[11657,11661,11665],{"type":3139,"tag":3422,"props":11658,"children":11659},{"style":3501},[11660],{"type":3144,"value":3564},{"type":3139,"tag":3422,"props":11662,"children":11663},{"style":3567},[11664],{"type":3144,"value":3704},{"type":3139,"tag":3422,"props":11666,"children":11667},{"style":3501},[11668],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":11670,"children":11671},{"class":3424,"line":3064},[11672,11676,11681],{"type":3139,"tag":3422,"props":11673,"children":11674},{"style":3501},[11675],{"type":3144,"value":3717},{"type":3139,"tag":3422,"props":11677,"children":11678},{"style":3567},[11679],{"type":3144,"value":11680},"header",{"type":3139,"tag":3422,"props":11682,"children":11683},{"style":3501},[11684],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":11686,"children":11687},{"class":3424,"line":3048},[11688,11692,11697,11702,11706,11710,11715,11719],{"type":3139,"tag":3422,"props":11689,"children":11690},{"style":3501},[11691],{"type":3144,"value":3757},{"type":3139,"tag":3422,"props":11693,"children":11694},{"style":3567},[11695],{"type":3144,"value":11696},"AuthState",{"type":3139,"tag":3422,"props":11698,"children":11699},{"style":3573},[11700],{"type":3144,"value":11701}," v-slot",{"type":3139,"tag":3422,"props":11703,"children":11704},{"style":3501},[11705],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":11707,"children":11708},{"style":3501},[11709],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":11711,"children":11712},{"style":3434},[11713],{"type":3144,"value":11714},"{ loggedIn, clear }",{"type":3139,"tag":3422,"props":11716,"children":11717},{"style":3501},[11718],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":11720,"children":11721},{"style":3501},[11722],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":11724,"children":11725},{"class":3424,"line":3685},[11726,11731,11735,11739,11743,11747,11751,11755,11759,11763,11767,11771,11775,11779,11783,11787,11791],{"type":3139,"tag":3422,"props":11727,"children":11728},{"style":3501},[11729],{"type":3144,"value":11730},"      \u003C",{"type":3139,"tag":3422,"props":11732,"children":11733},{"style":3567},[11734],{"type":3144,"value":3827},{"type":3139,"tag":3422,"props":11736,"children":11737},{"style":3573},[11738],{"type":3144,"value":3727},{"type":3139,"tag":3422,"props":11740,"children":11741},{"style":3501},[11742],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":11744,"children":11745},{"style":3501},[11746],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":11748,"children":11749},{"style":3434},[11750],{"type":3144,"value":3741},{"type":3139,"tag":3422,"props":11752,"children":11753},{"style":3501},[11754],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":11756,"children":11757},{"style":3573},[11758],{"type":3144,"value":3832},{"type":3139,"tag":3422,"props":11760,"children":11761},{"style":3501},[11762],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":11764,"children":11765},{"style":3501},[11766],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":11768,"children":11769},{"style":3434},[11770],{"type":3144,"value":3845},{"type":3139,"tag":3422,"props":11772,"children":11773},{"style":3501},[11774],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":11776,"children":11777},{"style":3501},[11778],{"type":3144,"value":3766},{"type":3139,"tag":3422,"props":11780,"children":11781},{"style":3496},[11782],{"type":3144,"value":3858},{"type":3139,"tag":3422,"props":11784,"children":11785},{"style":3501},[11786],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":11788,"children":11789},{"style":3567},[11790],{"type":3144,"value":3827},{"type":3139,"tag":3422,"props":11792,"children":11793},{"style":3501},[11794],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":11796,"children":11797},{"class":3424,"line":3694},[11798,11802,11807,11811,11816,11820,11824,11829,11833,11837,11842,11846,11850],{"type":3139,"tag":3422,"props":11799,"children":11800},{"style":3501},[11801],{"type":3144,"value":11730},{"type":3139,"tag":3422,"props":11803,"children":11804},{"style":3567},[11805],{"type":3144,"value":11806},"NuxtLink",{"type":3139,"tag":3422,"props":11808,"children":11809},{"style":3573},[11810],{"type":3144,"value":3903},{"type":3139,"tag":3422,"props":11812,"children":11813},{"style":3573},[11814],{"type":3144,"value":11815}," to",{"type":3139,"tag":3422,"props":11817,"children":11818},{"style":3501},[11819],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":11821,"children":11822},{"style":3501},[11823],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":11825,"children":11826},{"style":3434},[11827],{"type":3144,"value":11828},"\u002Flogin",{"type":3139,"tag":3422,"props":11830,"children":11831},{"style":3501},[11832],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":11834,"children":11835},{"style":3501},[11836],{"type":3144,"value":3766},{"type":3139,"tag":3422,"props":11838,"children":11839},{"style":3496},[11840],{"type":3144,"value":11841},"Login",{"type":3139,"tag":3422,"props":11843,"children":11844},{"style":3501},[11845],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":11847,"children":11848},{"style":3567},[11849],{"type":3144,"value":11806},{"type":3139,"tag":3422,"props":11851,"children":11852},{"style":3501},[11853],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":11855,"children":11856},{"class":3424,"line":3711},[11857,11862,11866],{"type":3139,"tag":3422,"props":11858,"children":11859},{"style":3501},[11860],{"type":3144,"value":11861},"    \u003C\u002F",{"type":3139,"tag":3422,"props":11863,"children":11864},{"style":3567},[11865],{"type":3144,"value":11696},{"type":3139,"tag":3422,"props":11867,"children":11868},{"style":3501},[11869],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":11871,"children":11872},{"class":3424,"line":3044},[11873,11877,11881],{"type":3139,"tag":3422,"props":11874,"children":11875},{"style":3501},[11876],{"type":3144,"value":3879},{"type":3139,"tag":3422,"props":11878,"children":11879},{"style":3567},[11880],{"type":3144,"value":11680},{"type":3139,"tag":3422,"props":11882,"children":11883},{"style":3501},[11884],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":11886,"children":11887},{"class":3424,"line":3040},[11888,11892,11896],{"type":3139,"tag":3422,"props":11889,"children":11890},{"style":3501},[11891],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":11893,"children":11894},{"style":3567},[11895],{"type":3144,"value":3704},{"type":3139,"tag":3422,"props":11897,"children":11898},{"style":3501},[11899],{"type":3144,"value":3581},{"type":3139,"tag":3146,"props":11901,"children":11902},{},[11903,11905,11910],{"type":3144,"value":11904},"If the page is cached or prerendered or the load strategy set as ",{"type":3139,"tag":3284,"props":11906,"children":11908},{"className":11907},[],[11909],{"type":3144,"value":11443},{"type":3144,"value":11911},", nothing will be rendered until the user session is fetched on the client-side.",{"type":3139,"tag":3146,"props":11913,"children":11914},{},[11915,11916,11922],{"type":3144,"value":11634},{"type":3139,"tag":3284,"props":11917,"children":11919},{"className":11918},[],[11920],{"type":3144,"value":11921},"placeholder",{"type":3144,"value":11923}," slot to show a placeholder on server-side and while the user session is being fetched on client-side for the prerendered pages:",{"type":3139,"tag":3412,"props":11925,"children":11927},{"className":3550,"code":11926,"language":3552,"meta":3012,"style":3012},"\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",[11928],{"type":3139,"tag":3284,"props":11929,"children":11930},{"__ignoreMap":3012},[11931,11946,11961,11976,12034,12106,12161,12177,12200,12237,12252,12267,12282],{"type":3139,"tag":3422,"props":11932,"children":11933},{"class":3424,"line":3098},[11934,11938,11942],{"type":3139,"tag":3422,"props":11935,"children":11936},{"style":3501},[11937],{"type":3144,"value":3564},{"type":3139,"tag":3422,"props":11939,"children":11940},{"style":3567},[11941],{"type":3144,"value":3704},{"type":3139,"tag":3422,"props":11943,"children":11944},{"style":3501},[11945],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":11947,"children":11948},{"class":3424,"line":3064},[11949,11953,11957],{"type":3139,"tag":3422,"props":11950,"children":11951},{"style":3501},[11952],{"type":3144,"value":3717},{"type":3139,"tag":3422,"props":11954,"children":11955},{"style":3567},[11956],{"type":3144,"value":11680},{"type":3139,"tag":3422,"props":11958,"children":11959},{"style":3501},[11960],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":11962,"children":11963},{"class":3424,"line":3048},[11964,11968,11972],{"type":3139,"tag":3422,"props":11965,"children":11966},{"style":3501},[11967],{"type":3144,"value":3757},{"type":3139,"tag":3422,"props":11969,"children":11970},{"style":3567},[11971],{"type":3144,"value":11696},{"type":3139,"tag":3422,"props":11973,"children":11974},{"style":3501},[11975],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":11977,"children":11978},{"class":3424,"line":3685},[11979,11983,11987,11992,11997,12001,12005,12009,12013,12017,12022,12026,12030],{"type":3139,"tag":3422,"props":11980,"children":11981},{"style":3501},[11982],{"type":3144,"value":11730},{"type":3139,"tag":3422,"props":11984,"children":11985},{"style":3567},[11986],{"type":3144,"value":3704},{"type":3139,"tag":3422,"props":11988,"children":11989},{"style":3501},[11990],{"type":3144,"value":11991}," #",{"type":3139,"tag":3422,"props":11993,"children":11994},{"style":3573},[11995],{"type":3144,"value":11996},"default",{"type":3139,"tag":3422,"props":11998,"children":11999},{"style":3501},[12000],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":12002,"children":12003},{"style":3501},[12004],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":12006,"children":12007},{"style":3501},[12008],{"type":3144,"value":7793},{"type":3139,"tag":3422,"props":12010,"children":12011},{"style":3496},[12012],{"type":3144,"value":3599},{"type":3139,"tag":3422,"props":12014,"children":12015},{"style":3501},[12016],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":12018,"children":12019},{"style":3496},[12020],{"type":3144,"value":12021}," clear ",{"type":3139,"tag":3422,"props":12023,"children":12024},{"style":3501},[12025],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":12027,"children":12028},{"style":3501},[12029],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":12031,"children":12032},{"style":3501},[12033],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":12035,"children":12036},{"class":3424,"line":3694},[12037,12042,12046,12050,12054,12058,12062,12066,12070,12074,12078,12082,12086,12090,12094,12098,12102],{"type":3139,"tag":3422,"props":12038,"children":12039},{"style":3501},[12040],{"type":3144,"value":12041},"        \u003C",{"type":3139,"tag":3422,"props":12043,"children":12044},{"style":3567},[12045],{"type":3144,"value":3827},{"type":3139,"tag":3422,"props":12047,"children":12048},{"style":3573},[12049],{"type":3144,"value":3727},{"type":3139,"tag":3422,"props":12051,"children":12052},{"style":3501},[12053],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":12055,"children":12056},{"style":3501},[12057],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":12059,"children":12060},{"style":3434},[12061],{"type":3144,"value":3741},{"type":3139,"tag":3422,"props":12063,"children":12064},{"style":3501},[12065],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":12067,"children":12068},{"style":3573},[12069],{"type":3144,"value":3832},{"type":3139,"tag":3422,"props":12071,"children":12072},{"style":3501},[12073],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":12075,"children":12076},{"style":3501},[12077],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":12079,"children":12080},{"style":3434},[12081],{"type":3144,"value":3845},{"type":3139,"tag":3422,"props":12083,"children":12084},{"style":3501},[12085],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":12087,"children":12088},{"style":3501},[12089],{"type":3144,"value":3766},{"type":3139,"tag":3422,"props":12091,"children":12092},{"style":3496},[12093],{"type":3144,"value":3858},{"type":3139,"tag":3422,"props":12095,"children":12096},{"style":3501},[12097],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":12099,"children":12100},{"style":3567},[12101],{"type":3144,"value":3827},{"type":3139,"tag":3422,"props":12103,"children":12104},{"style":3501},[12105],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":12107,"children":12108},{"class":3424,"line":3711},[12109,12113,12117,12121,12125,12129,12133,12137,12141,12145,12149,12153,12157],{"type":3139,"tag":3422,"props":12110,"children":12111},{"style":3501},[12112],{"type":3144,"value":12041},{"type":3139,"tag":3422,"props":12114,"children":12115},{"style":3567},[12116],{"type":3144,"value":11806},{"type":3139,"tag":3422,"props":12118,"children":12119},{"style":3573},[12120],{"type":3144,"value":3903},{"type":3139,"tag":3422,"props":12122,"children":12123},{"style":3573},[12124],{"type":3144,"value":11815},{"type":3139,"tag":3422,"props":12126,"children":12127},{"style":3501},[12128],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":12130,"children":12131},{"style":3501},[12132],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":12134,"children":12135},{"style":3434},[12136],{"type":3144,"value":11828},{"type":3139,"tag":3422,"props":12138,"children":12139},{"style":3501},[12140],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":12142,"children":12143},{"style":3501},[12144],{"type":3144,"value":3766},{"type":3139,"tag":3422,"props":12146,"children":12147},{"style":3496},[12148],{"type":3144,"value":11841},{"type":3139,"tag":3422,"props":12150,"children":12151},{"style":3501},[12152],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":12154,"children":12155},{"style":3567},[12156],{"type":3144,"value":11806},{"type":3139,"tag":3422,"props":12158,"children":12159},{"style":3501},[12160],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":12162,"children":12163},{"class":3424,"line":3044},[12164,12169,12173],{"type":3139,"tag":3422,"props":12165,"children":12166},{"style":3501},[12167],{"type":3144,"value":12168},"      \u003C\u002F",{"type":3139,"tag":3422,"props":12170,"children":12171},{"style":3567},[12172],{"type":3144,"value":3704},{"type":3139,"tag":3422,"props":12174,"children":12175},{"style":3501},[12176],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":12178,"children":12179},{"class":3424,"line":3040},[12180,12184,12188,12192,12196],{"type":3139,"tag":3422,"props":12181,"children":12182},{"style":3501},[12183],{"type":3144,"value":11730},{"type":3139,"tag":3422,"props":12185,"children":12186},{"style":3567},[12187],{"type":3144,"value":3704},{"type":3139,"tag":3422,"props":12189,"children":12190},{"style":3501},[12191],{"type":3144,"value":11991},{"type":3139,"tag":3422,"props":12193,"children":12194},{"style":3573},[12195],{"type":3144,"value":11921},{"type":3139,"tag":3422,"props":12197,"children":12198},{"style":3501},[12199],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":12201,"children":12202},{"class":3424,"line":3036},[12203,12207,12211,12216,12220,12225,12229,12233],{"type":3139,"tag":3422,"props":12204,"children":12205},{"style":3501},[12206],{"type":3144,"value":12041},{"type":3139,"tag":3422,"props":12208,"children":12209},{"style":3567},[12210],{"type":3144,"value":3827},{"type":3139,"tag":3422,"props":12212,"children":12213},{"style":3573},[12214],{"type":3144,"value":12215}," disabled",{"type":3139,"tag":3422,"props":12217,"children":12218},{"style":3501},[12219],{"type":3144,"value":3766},{"type":3139,"tag":3422,"props":12221,"children":12222},{"style":3496},[12223],{"type":3144,"value":12224},"Loading...",{"type":3139,"tag":3422,"props":12226,"children":12227},{"style":3501},[12228],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":12230,"children":12231},{"style":3567},[12232],{"type":3144,"value":3827},{"type":3139,"tag":3422,"props":12234,"children":12235},{"style":3501},[12236],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":12238,"children":12239},{"class":3424,"line":3873},[12240,12244,12248],{"type":3139,"tag":3422,"props":12241,"children":12242},{"style":3501},[12243],{"type":3144,"value":12168},{"type":3139,"tag":3422,"props":12245,"children":12246},{"style":3567},[12247],{"type":3144,"value":3704},{"type":3139,"tag":3422,"props":12249,"children":12250},{"style":3501},[12251],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":12253,"children":12254},{"class":3424,"line":3127},[12255,12259,12263],{"type":3139,"tag":3422,"props":12256,"children":12257},{"style":3501},[12258],{"type":3144,"value":11861},{"type":3139,"tag":3422,"props":12260,"children":12261},{"style":3567},[12262],{"type":3144,"value":11696},{"type":3139,"tag":3422,"props":12264,"children":12265},{"style":3501},[12266],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":12268,"children":12269},{"class":3424,"line":3910},[12270,12274,12278],{"type":3139,"tag":3422,"props":12271,"children":12272},{"style":3501},[12273],{"type":3144,"value":3879},{"type":3139,"tag":3422,"props":12275,"children":12276},{"style":3567},[12277],{"type":3144,"value":11680},{"type":3139,"tag":3422,"props":12279,"children":12280},{"style":3501},[12281],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":12283,"children":12284},{"class":3424,"line":3943},[12285,12289,12293],{"type":3139,"tag":3422,"props":12286,"children":12287},{"style":3501},[12288],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":12290,"children":12291},{"style":3567},[12292],{"type":3144,"value":3704},{"type":3139,"tag":3422,"props":12294,"children":12295},{"style":3501},[12296],{"type":3144,"value":3581},{"type":3139,"tag":3146,"props":12298,"children":12299},{},[12300,12302,12307,12309,12315,12317,12323],{"type":3144,"value":12301},"If you are caching your routes with ",{"type":3139,"tag":3284,"props":12303,"children":12305},{"className":12304},[],[12306],{"type":3144,"value":11343},{"type":3144,"value":12308},", please make sure to use ",{"type":3139,"tag":3150,"props":12310,"children":12313},{"href":12311,"rel":12312},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fnitro",[3154],[12314],{"type":3144,"value":837},{"type":3144,"value":12316}," >= ",{"type":3139,"tag":3284,"props":12318,"children":12320},{"className":12319},[],[12321],{"type":3144,"value":12322},"2.9.7",{"type":3144,"value":12324}," to support the client-side fetching of the user session.",{"type":3139,"tag":3230,"props":12326,"children":12328},{"id":12327},"websocket-support",[12329],{"type":3144,"value":12330},"WebSocket Support",{"type":3139,"tag":3146,"props":12332,"children":12333},{},[12334,12336,12343],{"type":3144,"value":12335},"Nuxt Auth Utils is compatible with ",{"type":3139,"tag":3150,"props":12337,"children":12340},{"href":12338,"rel":12339},"https:\u002F\u002Fnitro.build\u002Fguide\u002Fwebsocket",[3154],[12341],{"type":3144,"value":12342},"Nitro WebSockets",{"type":3144,"value":3377},{"type":3139,"tag":3146,"props":12345,"children":12346},{},[12347,12349,12355,12356,12361],{"type":3144,"value":12348},"Make sure to enable the ",{"type":3139,"tag":3284,"props":12350,"children":12352},{"className":12351},[],[12353],{"type":3144,"value":12354},"experimental.websocket",{"type":3144,"value":11371},{"type":3139,"tag":3284,"props":12357,"children":12359},{"className":12358},[],[12360],{"type":3144,"value":233},{"type":3144,"value":4161},{"type":3139,"tag":3412,"props":12363,"children":12365},{"className":4100,"code":12364,"language":4102,"meta":3012,"style":3012},"export default defineNuxtConfig({\n  nitro: {\n    experimental: {\n      websocket: true\n    }\n  }\n})\n",[12366],{"type":3139,"tag":3284,"props":12367,"children":12368},{"__ignoreMap":3012},[12369,12392,12408,12424,12440,12447,12454],{"type":3139,"tag":3422,"props":12370,"children":12371},{"class":3424,"line":3098},[12372,12376,12380,12384,12388],{"type":3139,"tag":3422,"props":12373,"children":12374},{"style":4684},[12375],{"type":3144,"value":5218},{"type":3139,"tag":3422,"props":12377,"children":12378},{"style":4684},[12379],{"type":3144,"value":5333},{"type":3139,"tag":3422,"props":12381,"children":12382},{"style":3658},[12383],{"type":3144,"value":5338},{"type":3139,"tag":3422,"props":12385,"children":12386},{"style":3496},[12387],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":12389,"children":12390},{"style":3501},[12391],{"type":3144,"value":5348},{"type":3139,"tag":3422,"props":12393,"children":12394},{"class":3424,"line":3064},[12395,12400,12404],{"type":3139,"tag":3422,"props":12396,"children":12397},{"style":3567},[12398],{"type":3144,"value":12399},"  nitro",{"type":3139,"tag":3422,"props":12401,"children":12402},{"style":3501},[12403],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":12405,"children":12406},{"style":3501},[12407],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":12409,"children":12410},{"class":3424,"line":3048},[12411,12416,12420],{"type":3139,"tag":3422,"props":12412,"children":12413},{"style":3567},[12414],{"type":3144,"value":12415},"    experimental",{"type":3139,"tag":3422,"props":12417,"children":12418},{"style":3501},[12419],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":12421,"children":12422},{"style":3501},[12423],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":12425,"children":12426},{"class":3424,"line":3685},[12427,12432,12436],{"type":3139,"tag":3422,"props":12428,"children":12429},{"style":3567},[12430],{"type":3144,"value":12431},"      websocket",{"type":3139,"tag":3422,"props":12433,"children":12434},{"style":3501},[12435],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":12437,"children":12438},{"style":5868},[12439],{"type":3144,"value":5871},{"type":3139,"tag":3422,"props":12441,"children":12442},{"class":3424,"line":3694},[12443],{"type":3139,"tag":3422,"props":12444,"children":12445},{"style":3501},[12446],{"type":3144,"value":5474},{"type":3139,"tag":3422,"props":12448,"children":12449},{"class":3424,"line":3711},[12450],{"type":3139,"tag":3422,"props":12451,"children":12452},{"style":3501},[12453],{"type":3144,"value":5122},{"type":3139,"tag":3422,"props":12455,"children":12456},{"class":3424,"line":3044},[12457,12461],{"type":3139,"tag":3422,"props":12458,"children":12459},{"style":3501},[12460],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":12462,"children":12463},{"style":3496},[12464],{"type":3144,"value":4864},{"type":3139,"tag":3146,"props":12466,"children":12467},{},[12468,12469,12475,12477,12483],{"type":3144,"value":11634},{"type":3139,"tag":3284,"props":12470,"children":12472},{"className":12471},[],[12473],{"type":3144,"value":12474},"requireUserSession",{"type":3144,"value":12476}," function in the ",{"type":3139,"tag":3284,"props":12478,"children":12480},{"className":12479},[],[12481],{"type":3144,"value":12482},"upgrade",{"type":3144,"value":12484}," function to check if the user is authenticated before upgrading the WebSocket connection.",{"type":3139,"tag":3412,"props":12486,"children":12488},{"className":4100,"code":12487,"language":4102,"meta":3012,"style":3012},"\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",[12489],{"type":3139,"tag":3284,"props":12490,"children":12491},{"__ignoreMap":3012},[12492,12500,12524,12553,12561,12584,12591,12620,12663,12670,12733,12740,12772,12817,12824],{"type":3139,"tag":3422,"props":12493,"children":12494},{"class":3424,"line":3098},[12495],{"type":3139,"tag":3422,"props":12496,"children":12497},{"style":3487},[12498],{"type":3144,"value":12499},"\u002F\u002F server\u002Froutes\u002Fws.ts\n",{"type":3139,"tag":3422,"props":12501,"children":12502},{"class":3424,"line":3064},[12503,12507,12511,12516,12520],{"type":3139,"tag":3422,"props":12504,"children":12505},{"style":4684},[12506],{"type":3144,"value":5218},{"type":3139,"tag":3422,"props":12508,"children":12509},{"style":4684},[12510],{"type":3144,"value":5333},{"type":3139,"tag":3422,"props":12512,"children":12513},{"style":3658},[12514],{"type":3144,"value":12515}," defineWebSocketHandler",{"type":3139,"tag":3422,"props":12517,"children":12518},{"style":3496},[12519],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":12521,"children":12522},{"style":3501},[12523],{"type":3144,"value":5348},{"type":3139,"tag":3422,"props":12525,"children":12526},{"class":3424,"line":3048},[12527,12531,12536,12540,12545,12549],{"type":3139,"tag":3422,"props":12528,"children":12529},{"style":3573},[12530],{"type":3144,"value":5886},{"type":3139,"tag":3422,"props":12532,"children":12533},{"style":3567},[12534],{"type":3144,"value":12535}," upgrade",{"type":3139,"tag":3422,"props":12537,"children":12538},{"style":3501},[12539],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":12541,"children":12542},{"style":4516},[12543],{"type":3144,"value":12544},"request",{"type":3139,"tag":3422,"props":12546,"children":12547},{"style":3501},[12548],{"type":3144,"value":6104},{"type":3139,"tag":3422,"props":12550,"children":12551},{"style":3501},[12552],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":12554,"children":12555},{"class":3424,"line":3685},[12556],{"type":3139,"tag":3422,"props":12557,"children":12558},{"style":3487},[12559],{"type":3144,"value":12560},"    \u002F\u002F Make sure the user is authenticated before upgrading the WebSocket connection\n",{"type":3139,"tag":3422,"props":12562,"children":12563},{"class":3424,"line":3694},[12564,12568,12572,12576,12580],{"type":3139,"tag":3422,"props":12565,"children":12566},{"style":4684},[12567],{"type":3144,"value":5937},{"type":3139,"tag":3422,"props":12569,"children":12570},{"style":3658},[12571],{"type":3144,"value":5020},{"type":3139,"tag":3422,"props":12573,"children":12574},{"style":3567},[12575],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":12577,"children":12578},{"style":3496},[12579],{"type":3144,"value":12544},{"type":3139,"tag":3422,"props":12581,"children":12582},{"style":3567},[12583],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":12585,"children":12586},{"class":3424,"line":3711},[12587],{"type":3139,"tag":3422,"props":12588,"children":12589},{"style":3501},[12590],{"type":3144,"value":4762},{"type":3139,"tag":3422,"props":12592,"children":12593},{"class":3424,"line":3044},[12594,12598,12603,12607,12612,12616],{"type":3139,"tag":3422,"props":12595,"children":12596},{"style":3573},[12597],{"type":3144,"value":5886},{"type":3139,"tag":3422,"props":12599,"children":12600},{"style":3567},[12601],{"type":3144,"value":12602}," open",{"type":3139,"tag":3422,"props":12604,"children":12605},{"style":3501},[12606],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":12608,"children":12609},{"style":4516},[12610],{"type":3144,"value":12611},"peer",{"type":3139,"tag":3422,"props":12613,"children":12614},{"style":3501},[12615],{"type":3144,"value":6104},{"type":3139,"tag":3422,"props":12617,"children":12618},{"style":3501},[12619],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":12621,"children":12622},{"class":3424,"line":3040},[12623,12627,12631,12635,12639,12643,12647,12651,12655,12659],{"type":3139,"tag":3422,"props":12624,"children":12625},{"style":3573},[12626],{"type":3144,"value":7654},{"type":3139,"tag":3422,"props":12628,"children":12629},{"style":3501},[12630],{"type":3144,"value":3594},{"type":3139,"tag":3422,"props":12632,"children":12633},{"style":3496},[12634],{"type":3144,"value":3609},{"type":3139,"tag":3422,"props":12636,"children":12637},{"style":3501},[12638],{"type":3144,"value":7534},{"type":3139,"tag":3422,"props":12640,"children":12641},{"style":3501},[12642],{"type":3144,"value":3655},{"type":3139,"tag":3422,"props":12644,"children":12645},{"style":4684},[12646],{"type":3144,"value":4940},{"type":3139,"tag":3422,"props":12648,"children":12649},{"style":3658},[12650],{"type":3144,"value":5020},{"type":3139,"tag":3422,"props":12652,"children":12653},{"style":3567},[12654],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":12656,"children":12657},{"style":3496},[12658],{"type":3144,"value":12611},{"type":3139,"tag":3422,"props":12660,"children":12661},{"style":3567},[12662],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":12664,"children":12665},{"class":3424,"line":3036},[12666],{"type":3139,"tag":3422,"props":12667,"children":12668},{"emptyLinePlaceholder":1200},[12669],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":12671,"children":12672},{"class":3424,"line":3873},[12673,12678,12682,12687,12691,12695,12700,12704,12708,12712,12717,12721,12725,12729],{"type":3139,"tag":3422,"props":12674,"children":12675},{"style":3496},[12676],{"type":3144,"value":12677},"    peer",{"type":3139,"tag":3422,"props":12679,"children":12680},{"style":3501},[12681],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":12683,"children":12684},{"style":3658},[12685],{"type":3144,"value":12686},"send",{"type":3139,"tag":3422,"props":12688,"children":12689},{"style":3567},[12690],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":12692,"children":12693},{"style":3501},[12694],{"type":3144,"value":8122},{"type":3139,"tag":3422,"props":12696,"children":12697},{"style":3434},[12698],{"type":3144,"value":12699},"Hello, ",{"type":3139,"tag":3422,"props":12701,"children":12702},{"style":3501},[12703],{"type":3144,"value":9461},{"type":3139,"tag":3422,"props":12705,"children":12706},{"style":3496},[12707],{"type":3144,"value":7708},{"type":3139,"tag":3422,"props":12709,"children":12710},{"style":3501},[12711],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":12713,"children":12714},{"style":3496},[12715],{"type":3144,"value":12716},"name",{"type":3139,"tag":3422,"props":12718,"children":12719},{"style":3501},[12720],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":12722,"children":12723},{"style":3434},[12724],{"type":3144,"value":8147},{"type":3139,"tag":3422,"props":12726,"children":12727},{"style":3501},[12728],{"type":3144,"value":8122},{"type":3139,"tag":3422,"props":12730,"children":12731},{"style":3567},[12732],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":12734,"children":12735},{"class":3424,"line":3127},[12736],{"type":3139,"tag":3422,"props":12737,"children":12738},{"style":3501},[12739],{"type":3144,"value":4762},{"type":3139,"tag":3422,"props":12741,"children":12742},{"class":3424,"line":3910},[12743,12748,12752,12756,12760,12764,12768],{"type":3139,"tag":3422,"props":12744,"children":12745},{"style":3567},[12746],{"type":3144,"value":12747},"  message",{"type":3139,"tag":3422,"props":12749,"children":12750},{"style":3501},[12751],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":12753,"children":12754},{"style":4516},[12755],{"type":3144,"value":12611},{"type":3139,"tag":3422,"props":12757,"children":12758},{"style":3501},[12759],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":12761,"children":12762},{"style":4516},[12763],{"type":3144,"value":7816},{"type":3139,"tag":3422,"props":12765,"children":12766},{"style":3501},[12767],{"type":3144,"value":6104},{"type":3139,"tag":3422,"props":12769,"children":12770},{"style":3501},[12771],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":12773,"children":12774},{"class":3424,"line":3943},[12775,12779,12783,12787,12791,12795,12800,12804,12809,12813],{"type":3139,"tag":3422,"props":12776,"children":12777},{"style":3496},[12778],{"type":3144,"value":12677},{"type":3139,"tag":3422,"props":12780,"children":12781},{"style":3501},[12782],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":12784,"children":12785},{"style":3658},[12786],{"type":3144,"value":12686},{"type":3139,"tag":3422,"props":12788,"children":12789},{"style":3567},[12790],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":12792,"children":12793},{"style":3501},[12794],{"type":3144,"value":8122},{"type":3139,"tag":3422,"props":12796,"children":12797},{"style":3434},[12798],{"type":3144,"value":12799},"Echo: ",{"type":3139,"tag":3422,"props":12801,"children":12802},{"style":3501},[12803],{"type":3144,"value":9461},{"type":3139,"tag":3422,"props":12805,"children":12806},{"style":3496},[12807],{"type":3144,"value":12808},"message",{"type":3139,"tag":3422,"props":12810,"children":12811},{"style":3501},[12812],{"type":3144,"value":9471},{"type":3139,"tag":3422,"props":12814,"children":12815},{"style":3567},[12816],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":12818,"children":12819},{"class":3424,"line":3998},[12820],{"type":3139,"tag":3422,"props":12821,"children":12822},{"style":3501},[12823],{"type":3144,"value":4762},{"type":3139,"tag":3422,"props":12825,"children":12826},{"class":3424,"line":4007},[12827,12831],{"type":3139,"tag":3422,"props":12828,"children":12829},{"style":3501},[12830],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":12832,"children":12833},{"style":3496},[12834],{"type":3144,"value":4864},{"type":3139,"tag":3146,"props":12836,"children":12837},{},[12838,12840,12847],{"type":3144,"value":12839},"Then, in your application, you can use the ",{"type":3139,"tag":3150,"props":12841,"children":12844},{"href":12842,"rel":12843},"https:\u002F\u002Fvueuse.org\u002Fcore\u002FuseWebSocket\u002F",[3154],[12845],{"type":3144,"value":12846},"useWebSocket",{"type":3144,"value":12848}," composable to connect to the WebSocket:",{"type":3139,"tag":3412,"props":12850,"children":12852},{"className":3550,"code":12851,"language":3552,"meta":3012,"style":3012},"\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",[12853],{"type":3139,"tag":3284,"props":12854,"children":12855},{"__ignoreMap":3012},[12856,12875,12986,12993,13001,13014,13029,13036,13051,13066,13098,13130,13145,13198,13251,13304,13319,13334],{"type":3139,"tag":3422,"props":12857,"children":12858},{"class":3424,"line":3098},[12859,12863,12867,12871],{"type":3139,"tag":3422,"props":12860,"children":12861},{"style":3501},[12862],{"type":3144,"value":3564},{"type":3139,"tag":3422,"props":12864,"children":12865},{"style":3567},[12866],{"type":3144,"value":3570},{"type":3139,"tag":3422,"props":12868,"children":12869},{"style":3573},[12870],{"type":3144,"value":3576},{"type":3139,"tag":3422,"props":12872,"children":12873},{"style":3501},[12874],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":12876,"children":12877},{"class":3424,"line":3064},[12878,12882,12886,12891,12895,12900,12904,12909,12913,12917,12921,12926,12930,12934,12939,12943,12947,12952,12956,12960,12964,12969,12973,12978,12982],{"type":3139,"tag":3422,"props":12879,"children":12880},{"style":3573},[12881],{"type":3144,"value":3589},{"type":3139,"tag":3422,"props":12883,"children":12884},{"style":3501},[12885],{"type":3144,"value":3594},{"type":3139,"tag":3422,"props":12887,"children":12888},{"style":3496},[12889],{"type":3144,"value":12890}," status",{"type":3139,"tag":3422,"props":12892,"children":12893},{"style":3501},[12894],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":12896,"children":12897},{"style":3496},[12898],{"type":3144,"value":12899}," data",{"type":3139,"tag":3422,"props":12901,"children":12902},{"style":3501},[12903],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":12905,"children":12906},{"style":3496},[12907],{"type":3144,"value":12908}," send",{"type":3139,"tag":3422,"props":12910,"children":12911},{"style":3501},[12912],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":12914,"children":12915},{"style":3496},[12916],{"type":3144,"value":12602},{"type":3139,"tag":3422,"props":12918,"children":12919},{"style":3501},[12920],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":12922,"children":12923},{"style":3496},[12924],{"type":3144,"value":12925}," close ",{"type":3139,"tag":3422,"props":12927,"children":12928},{"style":3501},[12929],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":12931,"children":12932},{"style":3501},[12933],{"type":3144,"value":3655},{"type":3139,"tag":3422,"props":12935,"children":12936},{"style":3658},[12937],{"type":3144,"value":12938}," useWebSocket",{"type":3139,"tag":3422,"props":12940,"children":12941},{"style":3496},[12942],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":12944,"children":12945},{"style":3501},[12946],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":12948,"children":12949},{"style":3434},[12950],{"type":3144,"value":12951},"\u002Fws",{"type":3139,"tag":3422,"props":12953,"children":12954},{"style":3501},[12955],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":12957,"children":12958},{"style":3501},[12959],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":12961,"children":12962},{"style":3501},[12963],{"type":3144,"value":3594},{"type":3139,"tag":3422,"props":12965,"children":12966},{"style":3567},[12967],{"type":3144,"value":12968}," immediate",{"type":3139,"tag":3422,"props":12970,"children":12971},{"style":3501},[12972],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":12974,"children":12975},{"style":5868},[12976],{"type":3144,"value":12977}," false",{"type":3139,"tag":3422,"props":12979,"children":12980},{"style":3501},[12981],{"type":3144,"value":7534},{"type":3139,"tag":3422,"props":12983,"children":12984},{"style":3496},[12985],{"type":3144,"value":4864},{"type":3139,"tag":3422,"props":12987,"children":12988},{"class":3424,"line":3048},[12989],{"type":3139,"tag":3422,"props":12990,"children":12991},{"emptyLinePlaceholder":1200},[12992],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":12994,"children":12995},{"class":3424,"line":3685},[12996],{"type":3139,"tag":3422,"props":12997,"children":12998},{"style":3487},[12999],{"type":3144,"value":13000},"\u002F\u002F Only open the websocket after the page is hydrated (client-only)\n",{"type":3139,"tag":3422,"props":13002,"children":13003},{"class":3424,"line":3694},[13004,13009],{"type":3139,"tag":3422,"props":13005,"children":13006},{"style":3658},[13007],{"type":3144,"value":13008},"onMounted",{"type":3139,"tag":3422,"props":13010,"children":13011},{"style":3496},[13012],{"type":3144,"value":13013},"(open)\n",{"type":3139,"tag":3422,"props":13015,"children":13016},{"class":3424,"line":3711},[13017,13021,13025],{"type":3139,"tag":3422,"props":13018,"children":13019},{"style":3501},[13020],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":13022,"children":13023},{"style":3567},[13024],{"type":3144,"value":3570},{"type":3139,"tag":3422,"props":13026,"children":13027},{"style":3501},[13028],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":13030,"children":13031},{"class":3424,"line":3044},[13032],{"type":3139,"tag":3422,"props":13033,"children":13034},{"emptyLinePlaceholder":1200},[13035],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":13037,"children":13038},{"class":3424,"line":3040},[13039,13043,13047],{"type":3139,"tag":3422,"props":13040,"children":13041},{"style":3501},[13042],{"type":3144,"value":3564},{"type":3139,"tag":3422,"props":13044,"children":13045},{"style":3567},[13046],{"type":3144,"value":3704},{"type":3139,"tag":3422,"props":13048,"children":13049},{"style":3501},[13050],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":13052,"children":13053},{"class":3424,"line":3036},[13054,13058,13062],{"type":3139,"tag":3422,"props":13055,"children":13056},{"style":3501},[13057],{"type":3144,"value":3717},{"type":3139,"tag":3422,"props":13059,"children":13060},{"style":3567},[13061],{"type":3144,"value":3722},{"type":3139,"tag":3422,"props":13063,"children":13064},{"style":3501},[13065],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":13067,"children":13068},{"class":3424,"line":3873},[13069,13073,13077,13081,13086,13090,13094],{"type":3139,"tag":3422,"props":13070,"children":13071},{"style":3501},[13072],{"type":3144,"value":3757},{"type":3139,"tag":3422,"props":13074,"children":13075},{"style":3567},[13076],{"type":3144,"value":3146},{"type":3139,"tag":3422,"props":13078,"children":13079},{"style":3501},[13080],{"type":3144,"value":3766},{"type":3139,"tag":3422,"props":13082,"children":13083},{"style":3496},[13084],{"type":3144,"value":13085},"Status: {{ status }}",{"type":3139,"tag":3422,"props":13087,"children":13088},{"style":3501},[13089],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":13091,"children":13092},{"style":3567},[13093],{"type":3144,"value":3146},{"type":3139,"tag":3422,"props":13095,"children":13096},{"style":3501},[13097],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":13099,"children":13100},{"class":3424,"line":3127},[13101,13105,13109,13113,13118,13122,13126],{"type":3139,"tag":3422,"props":13102,"children":13103},{"style":3501},[13104],{"type":3144,"value":3757},{"type":3139,"tag":3422,"props":13106,"children":13107},{"style":3567},[13108],{"type":3144,"value":3146},{"type":3139,"tag":3422,"props":13110,"children":13111},{"style":3501},[13112],{"type":3144,"value":3766},{"type":3139,"tag":3422,"props":13114,"children":13115},{"style":3496},[13116],{"type":3144,"value":13117},"Data: {{ data }}",{"type":3139,"tag":3422,"props":13119,"children":13120},{"style":3501},[13121],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":13123,"children":13124},{"style":3567},[13125],{"type":3144,"value":3146},{"type":3139,"tag":3422,"props":13127,"children":13128},{"style":3501},[13129],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":13131,"children":13132},{"class":3424,"line":3910},[13133,13137,13141],{"type":3139,"tag":3422,"props":13134,"children":13135},{"style":3501},[13136],{"type":3144,"value":3757},{"type":3139,"tag":3422,"props":13138,"children":13139},{"style":3567},[13140],{"type":3144,"value":3146},{"type":3139,"tag":3422,"props":13142,"children":13143},{"style":3501},[13144],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":13146,"children":13147},{"class":3424,"line":3943},[13148,13152,13156,13160,13164,13168,13173,13177,13181,13186,13190,13194],{"type":3139,"tag":3422,"props":13149,"children":13150},{"style":3501},[13151],{"type":3144,"value":11730},{"type":3139,"tag":3422,"props":13153,"children":13154},{"style":3567},[13155],{"type":3144,"value":3827},{"type":3139,"tag":3422,"props":13157,"children":13158},{"style":3573},[13159],{"type":3144,"value":3832},{"type":3139,"tag":3422,"props":13161,"children":13162},{"style":3501},[13163],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":13165,"children":13166},{"style":3501},[13167],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":13169,"children":13170},{"style":3434},[13171],{"type":3144,"value":13172},"open",{"type":3139,"tag":3422,"props":13174,"children":13175},{"style":3501},[13176],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":13178,"children":13179},{"style":3501},[13180],{"type":3144,"value":3766},{"type":3139,"tag":3422,"props":13182,"children":13183},{"style":3496},[13184],{"type":3144,"value":13185},"Open",{"type":3139,"tag":3422,"props":13187,"children":13188},{"style":3501},[13189],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":13191,"children":13192},{"style":3567},[13193],{"type":3144,"value":3827},{"type":3139,"tag":3422,"props":13195,"children":13196},{"style":3501},[13197],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":13199,"children":13200},{"class":3424,"line":3998},[13201,13205,13209,13213,13217,13221,13226,13230,13234,13239,13243,13247],{"type":3139,"tag":3422,"props":13202,"children":13203},{"style":3501},[13204],{"type":3144,"value":11730},{"type":3139,"tag":3422,"props":13206,"children":13207},{"style":3567},[13208],{"type":3144,"value":3827},{"type":3139,"tag":3422,"props":13210,"children":13211},{"style":3573},[13212],{"type":3144,"value":3832},{"type":3139,"tag":3422,"props":13214,"children":13215},{"style":3501},[13216],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":13218,"children":13219},{"style":3501},[13220],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":13222,"children":13223},{"style":3434},[13224],{"type":3144,"value":13225},"close(1000, 'Closing')",{"type":3139,"tag":3422,"props":13227,"children":13228},{"style":3501},[13229],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":13231,"children":13232},{"style":3501},[13233],{"type":3144,"value":3766},{"type":3139,"tag":3422,"props":13235,"children":13236},{"style":3496},[13237],{"type":3144,"value":13238},"Close",{"type":3139,"tag":3422,"props":13240,"children":13241},{"style":3501},[13242],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":13244,"children":13245},{"style":3567},[13246],{"type":3144,"value":3827},{"type":3139,"tag":3422,"props":13248,"children":13249},{"style":3501},[13250],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":13252,"children":13253},{"class":3424,"line":4007},[13254,13258,13262,13266,13270,13274,13279,13283,13287,13292,13296,13300],{"type":3139,"tag":3422,"props":13255,"children":13256},{"style":3501},[13257],{"type":3144,"value":11730},{"type":3139,"tag":3422,"props":13259,"children":13260},{"style":3567},[13261],{"type":3144,"value":3827},{"type":3139,"tag":3422,"props":13263,"children":13264},{"style":3573},[13265],{"type":3144,"value":3832},{"type":3139,"tag":3422,"props":13267,"children":13268},{"style":3501},[13269],{"type":3144,"value":3504},{"type":3139,"tag":3422,"props":13271,"children":13272},{"style":3501},[13273],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":13275,"children":13276},{"style":3434},[13277],{"type":3144,"value":13278},"send('hello')",{"type":3139,"tag":3422,"props":13280,"children":13281},{"style":3501},[13282],{"type":3144,"value":3736},{"type":3139,"tag":3422,"props":13284,"children":13285},{"style":3501},[13286],{"type":3144,"value":3766},{"type":3139,"tag":3422,"props":13288,"children":13289},{"style":3496},[13290],{"type":3144,"value":13291},"Send hello",{"type":3139,"tag":3422,"props":13293,"children":13294},{"style":3501},[13295],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":13297,"children":13298},{"style":3567},[13299],{"type":3144,"value":3827},{"type":3139,"tag":3422,"props":13301,"children":13302},{"style":3501},[13303],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":13305,"children":13306},{"class":3424,"line":3032},[13307,13311,13315],{"type":3139,"tag":3422,"props":13308,"children":13309},{"style":3501},[13310],{"type":3144,"value":11861},{"type":3139,"tag":3422,"props":13312,"children":13313},{"style":3567},[13314],{"type":3144,"value":3146},{"type":3139,"tag":3422,"props":13316,"children":13317},{"style":3501},[13318],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":13320,"children":13321},{"class":3424,"line":4075},[13322,13326,13330],{"type":3139,"tag":3422,"props":13323,"children":13324},{"style":3501},[13325],{"type":3144,"value":3879},{"type":3139,"tag":3422,"props":13327,"children":13328},{"style":3567},[13329],{"type":3144,"value":3722},{"type":3139,"tag":3422,"props":13331,"children":13332},{"style":3501},[13333],{"type":3144,"value":3581},{"type":3139,"tag":3422,"props":13335,"children":13336},{"class":3424,"line":4345},[13337,13341,13345],{"type":3139,"tag":3422,"props":13338,"children":13339},{"style":3501},[13340],{"type":3144,"value":3674},{"type":3139,"tag":3422,"props":13342,"children":13343},{"style":3567},[13344],{"type":3144,"value":3704},{"type":3139,"tag":3422,"props":13346,"children":13347},{"style":3501},[13348],{"type":3144,"value":3581},{"type":3139,"tag":3230,"props":13350,"children":13352},{"id":13351},"configuration",[13353],{"type":3144,"value":29},{"type":3139,"tag":3146,"props":13355,"children":13356},{},[13357,13359,13365,13367,13380],{"type":3144,"value":13358},"We leverage ",{"type":3139,"tag":3284,"props":13360,"children":13362},{"className":13361},[],[13363],{"type":3144,"value":13364},"runtimeConfig.session",{"type":3144,"value":13366}," to give the defaults option to ",{"type":3139,"tag":3150,"props":13368,"children":13371},{"href":13369,"rel":13370},"https:\u002F\u002Fh3.unjs.io\u002Fexamples\u002Fhandle-session",[3154],[13372,13374],{"type":3144,"value":13373},"h3 ",{"type":3139,"tag":3284,"props":13375,"children":13377},{"className":13376},[],[13378],{"type":3144,"value":13379},"useSession",{"type":3144,"value":3377},{"type":3139,"tag":3146,"props":13382,"children":13383},{},[13384,13386,13391],{"type":3144,"value":13385},"You can overwrite the options in your ",{"type":3139,"tag":3284,"props":13387,"children":13389},{"className":13388},[],[13390],{"type":3144,"value":233},{"type":3144,"value":4161},{"type":3139,"tag":3412,"props":13393,"children":13395},{"className":4100,"code":13394,"language":4102,"meta":3012,"style":3012},"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",[13396],{"type":3139,"tag":3284,"props":13397,"children":13398},{"__ignoreMap":3012},[13399,13422,13457,13472,13488,13537,13544,13551],{"type":3139,"tag":3422,"props":13400,"children":13401},{"class":3424,"line":3098},[13402,13406,13410,13414,13418],{"type":3139,"tag":3422,"props":13403,"children":13404},{"style":4684},[13405],{"type":3144,"value":5218},{"type":3139,"tag":3422,"props":13407,"children":13408},{"style":4684},[13409],{"type":3144,"value":5333},{"type":3139,"tag":3422,"props":13411,"children":13412},{"style":3658},[13413],{"type":3144,"value":5338},{"type":3139,"tag":3422,"props":13415,"children":13416},{"style":3496},[13417],{"type":3144,"value":5343},{"type":3139,"tag":3422,"props":13419,"children":13420},{"style":3501},[13421],{"type":3144,"value":5348},{"type":3139,"tag":3422,"props":13423,"children":13424},{"class":3424,"line":3064},[13425,13429,13433,13437,13441,13445,13449,13453],{"type":3139,"tag":3422,"props":13426,"children":13427},{"style":3567},[13428],{"type":3144,"value":6570},{"type":3139,"tag":3422,"props":13430,"children":13431},{"style":3501},[13432],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":13434,"children":13435},{"style":3496},[13436],{"type":3144,"value":6579},{"type":3139,"tag":3422,"props":13438,"children":13439},{"style":3501},[13440],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":13442,"children":13443},{"style":3434},[13444],{"type":3144,"value":3011},{"type":3139,"tag":3422,"props":13446,"children":13447},{"style":3501},[13448],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":13450,"children":13451},{"style":3496},[13452],{"type":3144,"value":6596},{"type":3139,"tag":3422,"props":13454,"children":13455},{"style":3501},[13456],{"type":3144,"value":5434},{"type":3139,"tag":3422,"props":13458,"children":13459},{"class":3424,"line":3048},[13460,13464,13468],{"type":3139,"tag":3422,"props":13461,"children":13462},{"style":3567},[13463],{"type":3144,"value":5356},{"type":3139,"tag":3422,"props":13465,"children":13466},{"style":3501},[13467],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":13469,"children":13470},{"style":3501},[13471],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":13473,"children":13474},{"class":3424,"line":3685},[13475,13480,13484],{"type":3139,"tag":3422,"props":13476,"children":13477},{"style":3567},[13478],{"type":3144,"value":13479},"    session",{"type":3139,"tag":3422,"props":13481,"children":13482},{"style":3501},[13483],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":13485,"children":13486},{"style":3501},[13487],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":13489,"children":13490},{"class":3424,"line":3694},[13491,13496,13500,13505,13510,13514,13518,13523,13527,13532],{"type":3139,"tag":3422,"props":13492,"children":13493},{"style":3567},[13494],{"type":3144,"value":13495},"      maxAge",{"type":3139,"tag":3422,"props":13497,"children":13498},{"style":3501},[13499],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":13501,"children":13502},{"style":7022},[13503],{"type":3144,"value":13504}," 60",{"type":3139,"tag":3422,"props":13506,"children":13507},{"style":3501},[13508],{"type":3144,"value":13509}," *",{"type":3139,"tag":3422,"props":13511,"children":13512},{"style":7022},[13513],{"type":3144,"value":13504},{"type":3139,"tag":3422,"props":13515,"children":13516},{"style":3501},[13517],{"type":3144,"value":13509},{"type":3139,"tag":3422,"props":13519,"children":13520},{"style":7022},[13521],{"type":3144,"value":13522}," 24",{"type":3139,"tag":3422,"props":13524,"children":13525},{"style":3501},[13526],{"type":3144,"value":13509},{"type":3139,"tag":3422,"props":13528,"children":13529},{"style":7022},[13530],{"type":3144,"value":13531}," 7",{"type":3139,"tag":3422,"props":13533,"children":13534},{"style":3487},[13535],{"type":3144,"value":13536}," \u002F\u002F 1 week\n",{"type":3139,"tag":3422,"props":13538,"children":13539},{"class":3424,"line":3711},[13540],{"type":3139,"tag":3422,"props":13541,"children":13542},{"style":3501},[13543],{"type":3144,"value":5474},{"type":3139,"tag":3422,"props":13545,"children":13546},{"class":3424,"line":3044},[13547],{"type":3139,"tag":3422,"props":13548,"children":13549},{"style":3501},[13550],{"type":3144,"value":5122},{"type":3139,"tag":3422,"props":13552,"children":13553},{"class":3424,"line":3040},[13554,13558],{"type":3139,"tag":3422,"props":13555,"children":13556},{"style":3501},[13557],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":13559,"children":13560},{"style":3496},[13561],{"type":3144,"value":4864},{"type":3139,"tag":3146,"props":13563,"children":13564},{},[13565],{"type":3144,"value":13566},"Our defaults are:",{"type":3139,"tag":3412,"props":13568,"children":13570},{"className":4100,"code":13569,"language":4102,"meta":3012,"style":3012},"{\n  name: 'nuxt-session',\n  password: process.env.NUXT_SESSION_PASSWORD || '',\n  cookie: {\n    sameSite: 'lax'\n  }\n}\n",[13571],{"type":3139,"tag":3284,"props":13572,"children":13573},{"__ignoreMap":3012},[13574,13581,13610,13658,13674,13699,13706],{"type":3139,"tag":3422,"props":13575,"children":13576},{"class":3424,"line":3098},[13577],{"type":3139,"tag":3422,"props":13578,"children":13579},{"style":3501},[13580],{"type":3144,"value":5348},{"type":3139,"tag":3422,"props":13582,"children":13583},{"class":3424,"line":3064},[13584,13589,13593,13597,13602,13606],{"type":3139,"tag":3422,"props":13585,"children":13586},{"style":3428},[13587],{"type":3144,"value":13588},"  name",{"type":3139,"tag":3422,"props":13590,"children":13591},{"style":3501},[13592],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":13594,"children":13595},{"style":3501},[13596],{"type":3144,"value":4745},{"type":3139,"tag":3422,"props":13598,"children":13599},{"style":3434},[13600],{"type":3144,"value":13601},"nuxt-session",{"type":3139,"tag":3422,"props":13603,"children":13604},{"style":3501},[13605],{"type":3144,"value":5085},{"type":3139,"tag":3422,"props":13607,"children":13608},{"style":3501},[13609],{"type":3144,"value":5434},{"type":3139,"tag":3422,"props":13611,"children":13612},{"class":3424,"line":3048},[13613,13618,13622,13627,13631,13636,13640,13644,13649,13654],{"type":3139,"tag":3422,"props":13614,"children":13615},{"style":3428},[13616],{"type":3144,"value":13617},"  password",{"type":3139,"tag":3422,"props":13619,"children":13620},{"style":3501},[13621],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":13623,"children":13624},{"style":3496},[13625],{"type":3144,"value":13626}," process",{"type":3139,"tag":3422,"props":13628,"children":13629},{"style":3501},[13630],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":13632,"children":13633},{"style":3496},[13634],{"type":3144,"value":13635},"env",{"type":3139,"tag":3422,"props":13637,"children":13638},{"style":3501},[13639],{"type":3144,"value":3377},{"type":3139,"tag":3422,"props":13641,"children":13642},{"style":3496},[13643],{"type":3144,"value":3466},{"type":3139,"tag":3422,"props":13645,"children":13646},{"style":3501},[13647],{"type":3144,"value":13648}," ||",{"type":3139,"tag":3422,"props":13650,"children":13651},{"style":3501},[13652],{"type":3144,"value":13653}," ''",{"type":3139,"tag":3422,"props":13655,"children":13656},{"style":3501},[13657],{"type":3144,"value":5434},{"type":3139,"tag":3422,"props":13659,"children":13660},{"class":3424,"line":3685},[13661,13666,13670],{"type":3139,"tag":3422,"props":13662,"children":13663},{"style":3428},[13664],{"type":3144,"value":13665},"  cookie",{"type":3139,"tag":3422,"props":13667,"children":13668},{"style":3501},[13669],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":13671,"children":13672},{"style":3501},[13673],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":13675,"children":13676},{"class":3424,"line":3694},[13677,13682,13686,13690,13695],{"type":3139,"tag":3422,"props":13678,"children":13679},{"style":3428},[13680],{"type":3144,"value":13681},"    sameSite",{"type":3139,"tag":3422,"props":13683,"children":13684},{"style":3501},[13685],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":13687,"children":13688},{"style":3501},[13689],{"type":3144,"value":4745},{"type":3139,"tag":3422,"props":13691,"children":13692},{"style":3434},[13693],{"type":3144,"value":13694},"lax",{"type":3139,"tag":3422,"props":13696,"children":13697},{"style":3501},[13698],{"type":3144,"value":4754},{"type":3139,"tag":3422,"props":13700,"children":13701},{"class":3424,"line":3711},[13702],{"type":3139,"tag":3422,"props":13703,"children":13704},{"style":3501},[13705],{"type":3144,"value":5122},{"type":3139,"tag":3422,"props":13707,"children":13708},{"class":3424,"line":3044},[13709],{"type":3139,"tag":3422,"props":13710,"children":13711},{"style":3501},[13712],{"type":3144,"value":4600},{"type":3139,"tag":3146,"props":13714,"children":13715},{},[13716,13718,13724,13725,13731],{"type":3144,"value":13717},"You can also overwrite the session config by passing it as 3rd argument of the ",{"type":3139,"tag":3284,"props":13719,"children":13721},{"className":13720},[],[13722],{"type":3144,"value":13723},"setUserSession",{"type":3144,"value":6254},{"type":3139,"tag":3284,"props":13726,"children":13728},{"className":13727},[],[13729],{"type":3144,"value":13730},"replaceUserSession",{"type":3144,"value":13732}," functions:",{"type":3139,"tag":3412,"props":13734,"children":13736},{"className":4100,"code":13735,"language":4102,"meta":3012,"style":3012},"await setUserSession(event, { ... } , {\n  maxAge: 60 * 60 * 24 * 7 \u002F\u002F 1 week\n})\n",[13737],{"type":3139,"tag":3284,"props":13738,"children":13739},{"__ignoreMap":3012},[13740,13781,13825],{"type":3139,"tag":3422,"props":13741,"children":13742},{"class":3424,"line":3098},[13743,13747,13751,13755,13759,13763,13768,13772,13777],{"type":3139,"tag":3422,"props":13744,"children":13745},{"style":4684},[13746],{"type":3144,"value":4687},{"type":3139,"tag":3422,"props":13748,"children":13749},{"style":3658},[13750],{"type":3144,"value":4692},{"type":3139,"tag":3422,"props":13752,"children":13753},{"style":3496},[13754],{"type":3144,"value":4697},{"type":3139,"tag":3422,"props":13756,"children":13757},{"style":3501},[13758],{"type":3144,"value":3604},{"type":3139,"tag":3422,"props":13760,"children":13761},{"style":3501},[13762],{"type":3144,"value":3594},{"type":3139,"tag":3422,"props":13764,"children":13765},{"style":3501},[13766],{"type":3144,"value":13767}," ...",{"type":3139,"tag":3422,"props":13769,"children":13770},{"style":3501},[13771],{"type":3144,"value":7534},{"type":3139,"tag":3422,"props":13773,"children":13774},{"style":3501},[13775],{"type":3144,"value":13776}," ,",{"type":3139,"tag":3422,"props":13778,"children":13779},{"style":3501},[13780],{"type":3144,"value":4124},{"type":3139,"tag":3422,"props":13782,"children":13783},{"class":3424,"line":3064},[13784,13789,13793,13797,13801,13805,13809,13813,13817,13821],{"type":3139,"tag":3422,"props":13785,"children":13786},{"style":3567},[13787],{"type":3144,"value":13788},"  maxAge",{"type":3139,"tag":3422,"props":13790,"children":13791},{"style":3501},[13792],{"type":3144,"value":4161},{"type":3139,"tag":3422,"props":13794,"children":13795},{"style":7022},[13796],{"type":3144,"value":13504},{"type":3139,"tag":3422,"props":13798,"children":13799},{"style":3501},[13800],{"type":3144,"value":13509},{"type":3139,"tag":3422,"props":13802,"children":13803},{"style":7022},[13804],{"type":3144,"value":13504},{"type":3139,"tag":3422,"props":13806,"children":13807},{"style":3501},[13808],{"type":3144,"value":13509},{"type":3139,"tag":3422,"props":13810,"children":13811},{"style":7022},[13812],{"type":3144,"value":13522},{"type":3139,"tag":3422,"props":13814,"children":13815},{"style":3501},[13816],{"type":3144,"value":13509},{"type":3139,"tag":3422,"props":13818,"children":13819},{"style":7022},[13820],{"type":3144,"value":13531},{"type":3139,"tag":3422,"props":13822,"children":13823},{"style":3487},[13824],{"type":3144,"value":13536},{"type":3139,"tag":3422,"props":13826,"children":13827},{"class":3424,"line":3048},[13828,13832],{"type":3139,"tag":3422,"props":13829,"children":13830},{"style":3501},[13831],{"type":3144,"value":3650},{"type":3139,"tag":3422,"props":13833,"children":13834},{"style":3496},[13835],{"type":3144,"value":4864},{"type":3139,"tag":3146,"props":13837,"children":13838},{},[13839,13841,13852],{"type":3144,"value":13840},"Checkout the ",{"type":3139,"tag":3150,"props":13842,"children":13845},{"href":13843,"rel":13844},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fh3\u002Fblob\u002Fc04c458810e34eb15c1647e1369e7d7ef19f567d\u002Fsrc\u002Futils\u002Fsession.ts#L20",[3154],[13846],{"type":3139,"tag":3284,"props":13847,"children":13849},{"className":13848},[],[13850],{"type":3144,"value":13851},"SessionConfig",{"type":3144,"value":13853}," for all options.",{"type":3139,"tag":3230,"props":13855,"children":13857},{"id":13856},"more",[13858],{"type":3144,"value":13859},"More",{"type":3139,"tag":3196,"props":13861,"children":13862},{},[13863],{"type":3139,"tag":3200,"props":13864,"children":13865},{},[13866,13873,13875],{"type":3139,"tag":3150,"props":13867,"children":13870},{"href":13868,"rel":13869},"https:\u002F\u002Fgithub.com\u002Fbarbapapazes\u002Fnuxt-authorization",[3154],[13871],{"type":3144,"value":13872},"nuxt-authorization",{"type":3144,"value":13874},": Authorization module for managing permissions inside a Nuxt app, compatible with ",{"type":3139,"tag":3284,"props":13876,"children":13878},{"className":13877},[],[13879],{"type":3144,"value":3011},{"type":3139,"tag":3230,"props":13881,"children":13883},{"id":13882},"development",[13884],{"type":3144,"value":13885},"Development",{"type":3139,"tag":3412,"props":13887,"children":13889},{"className":3414,"code":13888,"language":3416,"meta":3012,"style":3012},"# 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",[13890],{"type":3139,"tag":3284,"props":13891,"children":13892},{"__ignoreMap":3012},[13893,13901,13914,13921,13929,13946,13953,13961,13977,13984,13992,14008,14015,14023,14039,14046,14054,14070,14086,14093,14101],{"type":3139,"tag":3422,"props":13894,"children":13895},{"class":3424,"line":3098},[13896],{"type":3139,"tag":3422,"props":13897,"children":13898},{"style":3487},[13899],{"type":3144,"value":13900},"# Install dependencies\n",{"type":3139,"tag":3422,"props":13902,"children":13903},{"class":3424,"line":3064},[13904,13909],{"type":3139,"tag":3422,"props":13905,"children":13906},{"style":3428},[13907],{"type":3144,"value":13908},"pnpm",{"type":3139,"tag":3422,"props":13910,"children":13911},{"style":3434},[13912],{"type":3144,"value":13913}," install\n",{"type":3139,"tag":3422,"props":13915,"children":13916},{"class":3424,"line":3048},[13917],{"type":3139,"tag":3422,"props":13918,"children":13919},{"emptyLinePlaceholder":1200},[13920],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":13922,"children":13923},{"class":3424,"line":3685},[13924],{"type":3139,"tag":3422,"props":13925,"children":13926},{"style":3487},[13927],{"type":3144,"value":13928},"# Generate type stubs\n",{"type":3139,"tag":3422,"props":13930,"children":13931},{"class":3424,"line":3694},[13932,13936,13941],{"type":3139,"tag":3422,"props":13933,"children":13934},{"style":3428},[13935],{"type":3144,"value":13908},{"type":3139,"tag":3422,"props":13937,"children":13938},{"style":3434},[13939],{"type":3144,"value":13940}," run",{"type":3139,"tag":3422,"props":13942,"children":13943},{"style":3434},[13944],{"type":3144,"value":13945}," dev:prepare\n",{"type":3139,"tag":3422,"props":13947,"children":13948},{"class":3424,"line":3711},[13949],{"type":3139,"tag":3422,"props":13950,"children":13951},{"emptyLinePlaceholder":1200},[13952],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":13954,"children":13955},{"class":3424,"line":3044},[13956],{"type":3139,"tag":3422,"props":13957,"children":13958},{"style":3487},[13959],{"type":3144,"value":13960},"# Develop with the playground\n",{"type":3139,"tag":3422,"props":13962,"children":13963},{"class":3424,"line":3040},[13964,13968,13972],{"type":3139,"tag":3422,"props":13965,"children":13966},{"style":3428},[13967],{"type":3144,"value":13908},{"type":3139,"tag":3422,"props":13969,"children":13970},{"style":3434},[13971],{"type":3144,"value":13940},{"type":3139,"tag":3422,"props":13973,"children":13974},{"style":3434},[13975],{"type":3144,"value":13976}," dev\n",{"type":3139,"tag":3422,"props":13978,"children":13979},{"class":3424,"line":3036},[13980],{"type":3139,"tag":3422,"props":13981,"children":13982},{"emptyLinePlaceholder":1200},[13983],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":13985,"children":13986},{"class":3424,"line":3873},[13987],{"type":3139,"tag":3422,"props":13988,"children":13989},{"style":3487},[13990],{"type":3144,"value":13991},"# Build the playground\n",{"type":3139,"tag":3422,"props":13993,"children":13994},{"class":3424,"line":3127},[13995,13999,14003],{"type":3139,"tag":3422,"props":13996,"children":13997},{"style":3428},[13998],{"type":3144,"value":13908},{"type":3139,"tag":3422,"props":14000,"children":14001},{"style":3434},[14002],{"type":3144,"value":13940},{"type":3139,"tag":3422,"props":14004,"children":14005},{"style":3434},[14006],{"type":3144,"value":14007}," dev:build\n",{"type":3139,"tag":3422,"props":14009,"children":14010},{"class":3424,"line":3910},[14011],{"type":3139,"tag":3422,"props":14012,"children":14013},{"emptyLinePlaceholder":1200},[14014],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":14016,"children":14017},{"class":3424,"line":3943},[14018],{"type":3139,"tag":3422,"props":14019,"children":14020},{"style":3487},[14021],{"type":3144,"value":14022},"# Run ESLint\n",{"type":3139,"tag":3422,"props":14024,"children":14025},{"class":3424,"line":3998},[14026,14030,14034],{"type":3139,"tag":3422,"props":14027,"children":14028},{"style":3428},[14029],{"type":3144,"value":13908},{"type":3139,"tag":3422,"props":14031,"children":14032},{"style":3434},[14033],{"type":3144,"value":13940},{"type":3139,"tag":3422,"props":14035,"children":14036},{"style":3434},[14037],{"type":3144,"value":14038}," lint\n",{"type":3139,"tag":3422,"props":14040,"children":14041},{"class":3424,"line":4007},[14042],{"type":3139,"tag":3422,"props":14043,"children":14044},{"emptyLinePlaceholder":1200},[14045],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":14047,"children":14048},{"class":3424,"line":3032},[14049],{"type":3139,"tag":3422,"props":14050,"children":14051},{"style":3487},[14052],{"type":3144,"value":14053},"# Run Vitest\n",{"type":3139,"tag":3422,"props":14055,"children":14056},{"class":3424,"line":4075},[14057,14061,14065],{"type":3139,"tag":3422,"props":14058,"children":14059},{"style":3428},[14060],{"type":3144,"value":13908},{"type":3139,"tag":3422,"props":14062,"children":14063},{"style":3434},[14064],{"type":3144,"value":13940},{"type":3139,"tag":3422,"props":14066,"children":14067},{"style":3434},[14068],{"type":3144,"value":14069}," test\n",{"type":3139,"tag":3422,"props":14071,"children":14072},{"class":3424,"line":4345},[14073,14077,14081],{"type":3139,"tag":3422,"props":14074,"children":14075},{"style":3428},[14076],{"type":3144,"value":13908},{"type":3139,"tag":3422,"props":14078,"children":14079},{"style":3434},[14080],{"type":3144,"value":13940},{"type":3139,"tag":3422,"props":14082,"children":14083},{"style":3434},[14084],{"type":3144,"value":14085}," test:watch\n",{"type":3139,"tag":3422,"props":14087,"children":14088},{"class":3424,"line":4353},[14089],{"type":3139,"tag":3422,"props":14090,"children":14091},{"emptyLinePlaceholder":1200},[14092],{"type":3144,"value":3691},{"type":3139,"tag":3422,"props":14094,"children":14095},{"class":3424,"line":4362},[14096],{"type":3139,"tag":3422,"props":14097,"children":14098},{"style":3487},[14099],{"type":3144,"value":14100},"# Release new version\n",{"type":3139,"tag":3422,"props":14102,"children":14103},{"class":3424,"line":4370},[14104,14108,14112],{"type":3139,"tag":3422,"props":14105,"children":14106},{"style":3428},[14107],{"type":3144,"value":13908},{"type":3139,"tag":3422,"props":14109,"children":14110},{"style":3434},[14111],{"type":3144,"value":13940},{"type":3139,"tag":3422,"props":14113,"children":14114},{"style":3434},[14115],{"type":3144,"value":14116}," release\n",{"type":3139,"tag":14118,"props":14119,"children":14120},"style",{},[14121],{"type":3144,"value":14122},"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":3012,"searchDepth":3064,"depth":3064,"links":14124},[14125,14126,14127,14128,14131,14139,14140,14145,14146,14147,14148],{"id":3232,"depth":3064,"text":399},{"id":3350,"depth":3064,"text":3353},{"id":3391,"depth":3064,"text":3394},{"id":3532,"depth":3064,"text":3535,"children":14129},[14130],{"id":3544,"depth":3048,"text":3547},{"id":4625,"depth":3064,"text":4628,"children":14132},[14133,14134,14135,14136,14137,14138],{"id":4644,"depth":3048,"text":4647},{"id":5238,"depth":3048,"text":5241},{"id":6239,"depth":3048,"text":3266},{"id":6691,"depth":3048,"text":6694},{"id":6841,"depth":3048,"text":3275},{"id":10755,"depth":3048,"text":10758},{"id":11048,"depth":3064,"text":11051},{"id":11323,"depth":3064,"text":3246,"children":14141},[14142,14143],{"id":11494,"depth":3048,"text":11497},{"id":11622,"depth":3048,"text":14144},"\u003CAuthState> component",{"id":12327,"depth":3064,"text":12330},{"id":13351,"depth":3064,"text":29},{"id":13856,"depth":3064,"text":13859},{"id":13882,"depth":3064,"text":13885},{"v5":14150,"v4":14151,"v3":14152,"v2":14153},"5 (nightly)","4.5.0","3.21.9","2.18.1"]