[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fGCo9l1hMtNdUiA6QzdUX5X3kLqaWcC5t2kdz4LrvCvc":3,"versions":2856,"module-auth-utils":2861},[4,1120,1948,2767],{"title":5,"titleTemplate":6,"icon":7,"path":8,"stem":9,"children":10,"page":108},"Docs",null,"i-lucide-book-marked","\u002Fdocs\u002F3.x","docs\u002F3.x",[11,109,246,426,907,999,1036,1078],{"title":12,"titleTemplate":13,"icon":14,"path":15,"stem":16,"children":17,"page":108},"Get Started","%s · Get Started with Nuxt","i-lucide-rocket","\u002Fdocs\u002F3.x\u002Fgetting-started","docs\u002F3.x\u002F1.getting-started",[18,23,28,33,38,43,48,53,58,63,68,73,78,83,88,93,98,103],{"title":19,"path":20,"stem":21,"titleTemplate":6,"icon":22},"Introduction","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fintroduction","docs\u002F3.x\u002F1.getting-started\u002F01.introduction","i-lucide-info",{"title":24,"path":25,"stem":26,"titleTemplate":6,"icon":27},"Installation","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Finstallation","docs\u002F3.x\u002F1.getting-started\u002F02.installation","i-lucide-play",{"title":29,"path":30,"stem":31,"titleTemplate":6,"icon":32},"Configuration","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fconfiguration","docs\u002F3.x\u002F1.getting-started\u002F03.configuration","i-lucide-cog",{"title":34,"path":35,"stem":36,"titleTemplate":6,"icon":37},"Views","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fviews","docs\u002F3.x\u002F1.getting-started\u002F04.views","i-lucide-panels-top-left",{"title":39,"path":40,"stem":41,"titleTemplate":6,"icon":42},"Assets","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fassets","docs\u002F3.x\u002F1.getting-started\u002F05.assets","i-lucide-image",{"title":44,"path":45,"stem":46,"titleTemplate":6,"icon":47},"Styling","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fstyling","docs\u002F3.x\u002F1.getting-started\u002F06.styling","i-lucide-palette",{"title":49,"path":50,"stem":51,"titleTemplate":6,"icon":52},"Routing","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Frouting","docs\u002F3.x\u002F1.getting-started\u002F07.routing","i-lucide-milestone",{"title":54,"path":55,"stem":56,"titleTemplate":6,"icon":57},"SEO and Meta","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fseo-meta","docs\u002F3.x\u002F1.getting-started\u002F08.seo-meta","i-lucide-file-search",{"title":59,"path":60,"stem":61,"titleTemplate":6,"icon":62},"Transitions","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ftransitions","docs\u002F3.x\u002F1.getting-started\u002F09.transitions","i-lucide-toggle-right",{"title":64,"path":65,"stem":66,"titleTemplate":6,"icon":67},"Data Fetching","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F3.x\u002F1.getting-started\u002F10.data-fetching","i-lucide-cable",{"title":69,"path":70,"stem":71,"titleTemplate":6,"icon":72},"State Management","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fstate-management","docs\u002F3.x\u002F1.getting-started\u002F11.state-management","i-lucide-database",{"title":74,"path":75,"stem":76,"titleTemplate":6,"icon":77},"Error Handling","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ferror-handling","docs\u002F3.x\u002F1.getting-started\u002F12.error-handling","i-lucide-bug-off",{"title":79,"path":80,"stem":81,"titleTemplate":6,"icon":82},"Server","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fserver","docs\u002F3.x\u002F1.getting-started\u002F13.server","i-lucide-pc-case",{"title":84,"path":85,"stem":86,"titleTemplate":6,"icon":87},"Layers","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Flayers","docs\u002F3.x\u002F1.getting-started\u002F14.layers","i-lucide-layers",{"title":89,"path":90,"stem":91,"titleTemplate":6,"icon":92},"Prerendering","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fprerendering","docs\u002F3.x\u002F1.getting-started\u002F15.prerendering","i-lucide-file-code-2",{"title":94,"path":95,"stem":96,"titleTemplate":6,"icon":97},"Deployment","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fdeployment","docs\u002F3.x\u002F1.getting-started\u002F16.deployment","i-lucide-cloud",{"title":99,"path":100,"stem":101,"titleTemplate":6,"icon":102},"Testing","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ftesting","docs\u002F3.x\u002F1.getting-started\u002F17.testing","i-lucide-circle-check",{"title":104,"path":105,"stem":106,"titleTemplate":6,"icon":107},"Upgrade Guide","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fupgrade","docs\u002F3.x\u002F1.getting-started\u002F18.upgrade","i-lucide-circle-arrow-up",false,{"title":110,"titleTemplate":111,"icon":112,"path":113,"stem":114,"children":115,"page":108},"Directory Structure","%s · Nuxt Directory Structure","i-vscode-icons-default-folder","\u002Fdocs\u002F3.x\u002Fdirectory-structure","docs\u002F3.x\u002F2.directory-structure",[116,121,126,131,136,141,146,151,156,161,165,170,174,179,184,189,194,199,204,209,214,218,223,228,232,236,241],{"title":117,"path":118,"stem":119,"titleTemplate":6,"icon":120},".nuxt","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F3.x\u002F2.directory-structure\u002F0.nuxt","i-vscode-icons-folder-type-temp",{"title":122,"path":123,"stem":124,"titleTemplate":6,"icon":125},".output","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Foutput","docs\u002F3.x\u002F2.directory-structure\u002F0.output","i-vscode-icons-folder-type-package",{"title":127,"path":128,"stem":129,"titleTemplate":6,"icon":130},"assets","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fassets","docs\u002F3.x\u002F2.directory-structure\u002F1.assets","i-vscode-icons-folder-type-asset",{"title":132,"path":133,"stem":134,"titleTemplate":6,"icon":135},"components","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcomponents","docs\u002F3.x\u002F2.directory-structure\u002F1.components","i-vscode-icons-folder-type-component",{"title":137,"path":138,"stem":139,"titleTemplate":6,"icon":140},"composables","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcomposables","docs\u002F3.x\u002F2.directory-structure\u002F1.composables","i-vscode-icons-folder-type-src",{"title":142,"path":143,"stem":144,"titleTemplate":6,"icon":145},"content","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcontent","docs\u002F3.x\u002F2.directory-structure\u002F1.content","i-vscode-icons-folder-type-log",{"title":147,"path":148,"stem":149,"titleTemplate":6,"icon":150},"layers","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Flayers","docs\u002F3.x\u002F2.directory-structure\u002F1.layers","i-vscode-icons-folder-type-nuxt",{"title":152,"path":153,"stem":154,"titleTemplate":6,"icon":155},"layouts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Flayouts","docs\u002F3.x\u002F2.directory-structure\u002F1.layouts","i-vscode-icons-folder-type-view",{"title":157,"path":158,"stem":159,"titleTemplate":6,"icon":160},"middleware","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fmiddleware","docs\u002F3.x\u002F2.directory-structure\u002F1.middleware","i-vscode-icons-folder-type-middleware",{"title":162,"path":163,"stem":164,"titleTemplate":6,"icon":150},"modules","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fmodules","docs\u002F3.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":167,"stem":168,"titleTemplate":6,"icon":169},"node_modules","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F3.x\u002F2.directory-structure\u002F1.node_modules","i-vscode-icons-folder-type-node",{"title":171,"path":172,"stem":173,"titleTemplate":6,"icon":155},"pages","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpages","docs\u002F3.x\u002F2.directory-structure\u002F1.pages",{"title":175,"path":176,"stem":177,"titleTemplate":6,"icon":178},"plugins","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fplugins","docs\u002F3.x\u002F2.directory-structure\u002F1.plugins","i-vscode-icons-folder-type-plugin",{"title":180,"path":181,"stem":182,"titleTemplate":6,"icon":183},"public","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpublic","docs\u002F3.x\u002F2.directory-structure\u002F1.public","i-vscode-icons-folder-type-public",{"title":185,"path":186,"stem":187,"titleTemplate":6,"icon":188},"server","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fserver","docs\u002F3.x\u002F2.directory-structure\u002F1.server","i-vscode-icons-folder-type-server",{"title":190,"path":191,"stem":192,"titleTemplate":6,"icon":193},"shared","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fshared","docs\u002F3.x\u002F2.directory-structure\u002F1.shared","i-vscode-icons-folder-type-shared",{"title":195,"path":196,"stem":197,"titleTemplate":6,"icon":198},"utils","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Futils","docs\u002F3.x\u002F2.directory-structure\u002F1.utils","i-vscode-icons-folder-type-tools",{"title":200,"path":201,"stem":202,"titleTemplate":6,"icon":203},".env","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fenv","docs\u002F3.x\u002F2.directory-structure\u002F2.env","i-vscode-icons-file-type-dotenv",{"title":205,"path":206,"stem":207,"titleTemplate":6,"icon":208},".gitignore","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F3.x\u002F2.directory-structure\u002F2.gitignore","i-vscode-icons-file-type-git",{"title":210,"path":211,"stem":212,"titleTemplate":6,"icon":213},".nuxtignore","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F3.x\u002F2.directory-structure\u002F2.nuxtignore","i-vscode-icons-file-type-nuxt",{"title":215,"path":216,"stem":217,"titleTemplate":6,"icon":213},".nuxtrc","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F3.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":219,"path":220,"stem":221,"titleTemplate":6,"icon":222},"app.vue","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fapp","docs\u002F3.x\u002F2.directory-structure\u002F3.app","i-vscode-icons-file-type-vue",{"title":224,"path":225,"stem":226,"titleTemplate":6,"icon":227},"app.config.ts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fapp-config","docs\u002F3.x\u002F2.directory-structure\u002F3.app-config","i-vscode-icons-file-type-light-config",{"title":229,"path":230,"stem":231,"titleTemplate":6,"icon":222},"error.vue","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Ferror","docs\u002F3.x\u002F2.directory-structure\u002F3.error",{"title":233,"path":234,"stem":235,"titleTemplate":6,"icon":213},"nuxt.config.ts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F3.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":238,"stem":239,"titleTemplate":6,"icon":240},"package.json","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpackage","docs\u002F3.x\u002F2.directory-structure\u002F3.package","i-vscode-icons-file-type-npm",{"title":242,"path":243,"stem":244,"titleTemplate":6,"icon":245},"tsconfig.json","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Ftsconfig","docs\u002F3.x\u002F2.directory-structure\u002F3.tsconfig","i-vscode-icons-file-type-tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":249,"stem":250,"children":251,"page":108},"Guide","i-lucide-book-open","\u002Fdocs\u002F3.x\u002Fguide","docs\u002F3.x\u002F3.guide",[252,287,306,321,356,379],{"title":253,"titleTemplate":254,"icon":255,"path":256,"stem":257,"children":258,"page":108},"Key Concepts","%s · Nuxt Concepts","i-lucide-medal","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts","docs\u002F3.x\u002F3.guide\u002F1.concepts",[259,263,267,271,275,279,283],{"title":260,"path":261,"stem":262,"titleTemplate":6},"Rendering Modes","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":265,"stem":266,"titleTemplate":6},"Nuxt Lifecycle","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":269,"stem":270,"titleTemplate":6},"Auto-imports","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":273,"stem":274,"titleTemplate":6},"Server Engine","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":277,"stem":278,"titleTemplate":6},"Modules","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":281,"stem":282,"titleTemplate":6},"TypeScript","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":285,"stem":286,"titleTemplate":6},"Code Style","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fcode-style","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":291,"stem":292,"children":293,"page":108},"Best Practices","%s · Best Practices","i-lucide-square-check","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices","docs\u002F3.x\u002F3.guide\u002F2.best-practices",[294,298,302],{"title":295,"path":296,"stem":297,"titleTemplate":6},"Nuxt and hydration","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":300,"stem":301,"titleTemplate":6},"Nuxt Performance","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":304,"stem":305,"titleTemplate":6},"Nuxt Plugins","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fplugins","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fplugins",{"title":307,"titleTemplate":308,"icon":309,"path":310,"stem":311,"children":312,"page":108},"Working with AI","Working with AI: %s","i-lucide-bot","\u002Fdocs\u002F3.x\u002Fguide\u002Fai","docs\u002F3.x\u002F3.guide\u002F3.ai",[313,317],{"title":314,"path":315,"stem":316,"titleTemplate":6},"MCP Server","\u002Fdocs\u002F3.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F3.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":319,"stem":320,"titleTemplate":6},"LLMs.txt","\u002Fdocs\u002F3.x\u002Fguide\u002Fai\u002Fllms-txt","docs\u002F3.x\u002F3.guide\u002F3.ai\u002F2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":325,"stem":326,"children":327,"page":108},"Module Author Guide","%s · Nuxt Modules Author Guide","i-lucide-box","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules","docs\u002F3.x\u002F3.guide\u002F4.modules",[328,332,336,340,344,348,352],{"title":329,"path":330,"stem":331,"titleTemplate":6},"Create Your First Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":334,"stem":335,"titleTemplate":6},"Understand Module Structure","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":338,"stem":339,"titleTemplate":6},"Add Plugins, Components & More","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":342,"stem":343,"titleTemplate":6},"Use Hooks & Extend Types","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F4.recipes-advanced",{"title":345,"path":346,"stem":347,"titleTemplate":6},"Test Your Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F5.testing",{"title":349,"path":350,"stem":351,"titleTemplate":6},"Follow Best Practices","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F6.best-practices",{"title":353,"path":354,"stem":355,"titleTemplate":6},"Publish & Share Your Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":360,"stem":361,"children":362,"page":108},"Recipes","%s · Recipes","i-lucide-cooking-pot","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes","docs\u002F3.x\u002F3.guide\u002F5.recipes",[363,367,371,375],{"title":364,"path":365,"stem":366,"titleTemplate":6},"Custom Routing","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":368,"path":369,"stem":370,"titleTemplate":6},"Vite Plugins","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":372,"path":373,"stem":374,"titleTemplate":6},"Custom useFetch","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":376,"path":377,"stem":378,"titleTemplate":6},"Sessions and Authentication","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":383,"stem":384,"children":385,"page":108},"Going Further","%s · Nuxt Advanced","i-lucide-star","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further","docs\u002F3.x\u002F3.guide\u002F6.going-further",[386,390,394,398,402,406,410,414,418,422],{"title":387,"path":388,"stem":389,"titleTemplate":6},"Custom Events","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":391,"path":392,"stem":393,"titleTemplate":6},"Experimental Features","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":395,"path":396,"stem":397,"titleTemplate":6},"Features","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":399,"path":400,"stem":401,"titleTemplate":6},"Runtime Config","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":403,"path":404,"stem":405,"titleTemplate":6},"Nightly Release Channel","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":407,"path":408,"stem":409,"titleTemplate":6},"Lifecycle Hooks","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":411,"path":412,"stem":413,"titleTemplate":6},"Nuxt Kit","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":415,"path":416,"stem":417,"titleTemplate":6},"NuxtApp","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":419,"path":420,"stem":421,"titleTemplate":6},"Authoring Nuxt Layers","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":423,"path":424,"stem":425,"titleTemplate":6},"Debugging","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":430,"stem":431,"children":432,"page":108},"API","%s · Nuxt API","i-lucide-code-xml","\u002Fdocs\u002F3.x\u002Fapi","docs\u002F3.x\u002F4.api",[433,499,622,745,816,889,902],{"title":434,"titleTemplate":435,"icon":324,"path":436,"stem":437,"children":438,"page":108},"Components","%s · Nuxt Components","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents","docs\u002F3.x\u002F4.api\u002F1.components",[439,443,447,451,455,459,463,467,471,475,479,483,487,491,495],{"title":440,"path":441,"stem":442,"titleTemplate":6},"\u003CClientOnly>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":444,"path":445,"stem":446,"titleTemplate":6},"\u003CDevOnly>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":448,"path":449,"stem":450,"titleTemplate":6},"\u003CNuxtClientFallback>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":452,"path":453,"stem":454,"titleTemplate":6},"\u003CNuxtPicture>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F3.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":456,"path":457,"stem":458,"titleTemplate":6},"\u003CTeleport>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F3.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":460,"path":461,"stem":462,"titleTemplate":6},"\u003CNuxtRouteAnnouncer>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F3.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":464,"path":465,"stem":466,"titleTemplate":6},"\u003CNuxtTime>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F3.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":468,"path":469,"stem":470,"titleTemplate":6},"\u003CNuxtPage>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F3.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":472,"path":473,"stem":474,"titleTemplate":6},"\u003CNuxtLayout>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F3.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":476,"path":477,"stem":478,"titleTemplate":6},"\u003CNuxtLink>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F3.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":480,"path":481,"stem":482,"titleTemplate":6},"\u003CNuxtLoadingIndicator>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F3.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":484,"path":485,"stem":486,"titleTemplate":6},"\u003CNuxtErrorBoundary>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F3.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":488,"path":489,"stem":490,"titleTemplate":6},"\u003CNuxtWelcome>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F3.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":492,"path":493,"stem":494,"titleTemplate":6},"\u003CNuxtIsland>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F3.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":496,"path":497,"stem":498,"titleTemplate":6},"\u003CNuxtImg>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F3.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":503,"stem":504,"children":505,"page":108},"Composables","%s · Nuxt Composables","i-lucide-arrow-left-right","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables","docs\u002F3.x\u002F4.api\u002F2.composables",[506,510,514,518,522,526,530,534,538,542,546,550,554,558,562,566,570,574,578,582,586,590,594,598,602,606,610,614,618],{"title":507,"path":508,"stem":509,"titleTemplate":6},"onPrehydrate","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":511,"path":512,"stem":513,"titleTemplate":6},"useAppConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":515,"path":516,"stem":517,"titleTemplate":6},"useAsyncData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":519,"path":520,"stem":521,"titleTemplate":6},"useCookie","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":523,"path":524,"stem":525,"titleTemplate":6},"useError","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":527,"path":528,"stem":529,"titleTemplate":6},"useFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":531,"path":532,"stem":533,"titleTemplate":6},"useHead","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":535,"path":536,"stem":537,"titleTemplate":6},"useHeadSafe","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":539,"path":540,"stem":541,"titleTemplate":6},"useHydration","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":543,"path":544,"stem":545,"titleTemplate":6},"useLazyAsyncData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":547,"path":548,"stem":549,"titleTemplate":6},"useLazyFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":551,"path":552,"stem":553,"titleTemplate":6},"useLoadingIndicator","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":555,"path":556,"stem":557,"titleTemplate":6},"useNuxtApp","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":559,"path":560,"stem":561,"titleTemplate":6},"useNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":563,"path":564,"stem":565,"titleTemplate":6},"usePreviewMode","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":567,"path":568,"stem":569,"titleTemplate":6},"useRequestEvent","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":571,"path":572,"stem":573,"titleTemplate":6},"useRequestFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":575,"path":576,"stem":577,"titleTemplate":6},"useRequestHeader","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":579,"path":580,"stem":581,"titleTemplate":6},"useRequestHeaders","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":583,"path":584,"stem":585,"titleTemplate":6},"useRequestURL","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":587,"path":588,"stem":589,"titleTemplate":6},"useResponseHeader","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":591,"path":592,"stem":593,"titleTemplate":6},"useRoute","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":595,"path":596,"stem":597,"titleTemplate":6},"useRouteAnnouncer","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":599,"path":600,"stem":601,"titleTemplate":6},"useRouter","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":603,"path":604,"stem":605,"titleTemplate":6},"useRuntimeConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":607,"path":608,"stem":609,"titleTemplate":6},"useRuntimeHook","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":611,"path":612,"stem":613,"titleTemplate":6},"useSeoMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":615,"path":616,"stem":617,"titleTemplate":6},"useServerSeoMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":619,"path":620,"stem":621,"titleTemplate":6},"useState","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":623,"titleTemplate":624,"icon":625,"path":626,"stem":627,"children":628,"page":108},"Utils","%s · Nuxt Utils","i-lucide-square-function","\u002Fdocs\u002F3.x\u002Fapi\u002Futils","docs\u002F3.x\u002F4.api\u002F3.utils",[629,633,637,641,645,649,653,657,661,665,669,673,677,681,685,689,693,697,701,705,709,713,717,721,725,729,733,737,741],{"title":630,"path":631,"stem":632,"titleTemplate":6},"$fetch","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F3.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":634,"path":635,"stem":636,"titleTemplate":6},"abortNavigation","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":638,"path":639,"stem":640,"titleTemplate":6},"addRouteMiddleware","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":642,"path":643,"stem":644,"titleTemplate":6},"callOnce","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":646,"path":647,"stem":648,"titleTemplate":6},"clearError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":650,"path":651,"stem":652,"titleTemplate":6},"clearNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":654,"path":655,"stem":656,"titleTemplate":6},"clearNuxtState","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":658,"path":659,"stem":660,"titleTemplate":6},"createError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":662,"path":663,"stem":664,"titleTemplate":6},"defineLazyHydrationComponent","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":666,"path":667,"stem":668,"titleTemplate":6},"defineNuxtComponent","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":670,"path":671,"stem":672,"titleTemplate":6},"defineNuxtPlugin","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":674,"path":675,"stem":676,"titleTemplate":6},"defineNuxtRouteMiddleware","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":678,"path":679,"stem":680,"titleTemplate":6},"definePageMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":682,"path":683,"stem":684,"titleTemplate":6},"defineRouteRules","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":686,"path":687,"stem":688,"titleTemplate":6},"navigateTo","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":690,"path":691,"stem":692,"titleTemplate":6},"onBeforeRouteLeave","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":694,"path":695,"stem":696,"titleTemplate":6},"onBeforeRouteUpdate","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":698,"path":699,"stem":700,"titleTemplate":6},"onNuxtReady","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":702,"path":703,"stem":704,"titleTemplate":6},"prefetchComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":706,"path":707,"stem":708,"titleTemplate":6},"preloadComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":710,"path":711,"stem":712,"titleTemplate":6},"preloadRouteComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":714,"path":715,"stem":716,"titleTemplate":6},"prerenderRoutes","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":718,"path":719,"stem":720,"titleTemplate":6},"refreshCookie","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F3.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":722,"path":723,"stem":724,"titleTemplate":6},"refreshNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F3.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":726,"path":727,"stem":728,"titleTemplate":6},"reloadNuxtApp","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F3.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":730,"path":731,"stem":732,"titleTemplate":6},"setPageLayout","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":734,"path":735,"stem":736,"titleTemplate":6},"setResponseStatus","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":738,"path":739,"stem":740,"titleTemplate":6},"showError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":742,"path":743,"stem":744,"titleTemplate":6},"updateAppConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":749,"stem":750,"children":751,"page":108},"Commands","%s · Nuxt Commands","i-lucide-square-terminal","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands","docs\u002F3.x\u002F4.api\u002F4.commands",[752,756,760,764,768,772,776,780,784,788,792,796,800,804,808,812],{"title":753,"path":754,"stem":755,"titleTemplate":6},"nuxt add","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fadd",{"title":757,"path":758,"stem":759,"titleTemplate":6},"nuxt analyze","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":761,"path":762,"stem":763,"titleTemplate":6},"nuxt build","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":765,"path":766,"stem":767,"titleTemplate":6},"nuxt build-module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":769,"path":770,"stem":771,"titleTemplate":6},"nuxt cleanup","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":773,"path":774,"stem":775,"titleTemplate":6},"nuxt dev","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdev",{"title":777,"path":778,"stem":779,"titleTemplate":6},"nuxt devtools","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":781,"path":782,"stem":783,"titleTemplate":6},"nuxt generate","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":785,"path":786,"stem":787,"titleTemplate":6},"nuxt info","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finfo",{"title":789,"path":790,"stem":791,"titleTemplate":6},"create nuxt","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finit",{"title":793,"path":794,"stem":795,"titleTemplate":6},"nuxt module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":797,"path":798,"stem":799,"titleTemplate":6},"nuxt prepare","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":801,"path":802,"stem":803,"titleTemplate":6},"nuxt preview","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":805,"path":806,"stem":807,"titleTemplate":6},"nuxt test","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftest",{"title":809,"path":810,"stem":811,"titleTemplate":6},"nuxt typecheck","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":813,"path":814,"stem":815,"titleTemplate":6},"nuxt upgrade","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":411,"titleTemplate":817,"icon":818,"path":819,"stem":820,"children":821,"page":108},"%s · Nuxt Kit","i-lucide-package","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit","docs\u002F3.x\u002F4.api\u002F5.kit",[822,825,828,832,836,840,844,848,852,855,859,863,866,869,873,877,881,885],{"title":276,"path":823,"stem":824,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F3.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":399,"path":826,"stem":827,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":829,"path":830,"stem":831,"titleTemplate":6},"Templates","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":833,"path":834,"stem":835,"titleTemplate":6},"Nitro","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F3.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":837,"path":838,"stem":839,"titleTemplate":6},"Resolving","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F3.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":841,"path":842,"stem":843,"titleTemplate":6},"Logging","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F3.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":845,"path":846,"stem":847,"titleTemplate":6},"Builder","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F3.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":849,"path":850,"stem":851,"titleTemplate":6},"Examples","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F3.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":853,"stem":854,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F3.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":856,"path":857,"stem":858,"titleTemplate":6},"Programmatic Usage","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F3.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":860,"path":861,"stem":862,"titleTemplate":6},"Compatibility","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F3.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":864,"stem":865,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F3.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":434,"path":867,"stem":868,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F3.x\u002F4.api\u002F5.kit\u002F5.components",{"title":870,"path":871,"stem":872,"titleTemplate":6},"Context","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F3.x\u002F4.api\u002F5.kit\u002F6.context",{"title":874,"path":875,"stem":876,"titleTemplate":6},"Pages","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F3.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":878,"path":879,"stem":880,"titleTemplate":6},"Layout","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F3.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":882,"path":883,"stem":884,"titleTemplate":6},"Head","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.head",{"title":886,"path":887,"stem":888,"titleTemplate":6},"Plugins","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":892,"stem":893,"children":894,"page":108},"Advanced","i-lucide-brain","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced","docs\u002F3.x\u002F4.api\u002F6.advanced",[895,898],{"title":407,"path":896,"stem":897,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":899,"path":900,"stem":901,"titleTemplate":6},"Import meta","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":903,"path":904,"stem":905,"titleTemplate":906,"icon":32},"Nuxt Configuration","\u002Fdocs\u002F3.x\u002Fapi\u002Fnuxt-config","docs\u002F3.x\u002F4.api\u002F6.nuxt-config","%s",{"title":849,"titleTemplate":908,"icon":909,"path":910,"stem":911,"children":912,"page":108},"%s · Nuxt Examples","i-lucide-app-window-mac","\u002Fdocs\u002F3.x\u002Fexamples","docs\u002F3.x\u002F4.examples",[913,917,939,954,990],{"title":914,"path":915,"stem":916,"titleTemplate":6},"Hello World","\u002Fdocs\u002F3.x\u002Fexamples\u002Fhello-world","docs\u002F3.x\u002F4.examples\u002F0.hello-world",{"title":395,"path":918,"stem":919,"children":920,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures","docs\u002F3.x\u002F4.examples\u002F1.features",[921,925,928,931,935],{"title":922,"path":923,"stem":924,"titleTemplate":6},"Auto Imports","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F3.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":926,"stem":927,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F3.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":929,"stem":930,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F3.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":932,"path":933,"stem":934,"titleTemplate":6},"Meta Tags","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F3.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":936,"path":937,"stem":938,"titleTemplate":6},"Layouts","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F3.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":940,"stem":941,"children":942,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting","docs\u002F3.x\u002F4.examples\u002F2.routing",[943,947,950],{"title":944,"path":945,"stem":946,"titleTemplate":6},"Middleware","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":874,"path":948,"stem":949,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":951,"path":952,"stem":953,"titleTemplate":6},"Universal Router","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":890,"path":955,"stem":956,"children":957,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced","docs\u002F3.x\u002F4.examples\u002F4.advanced",[958,961,964,968,972,976,980,983,986],{"title":84,"path":959,"stem":960,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":962,"stem":963,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":965,"path":966,"stem":967,"titleTemplate":6},"JSX \u002F TSX","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":969,"path":970,"stem":971,"titleTemplate":6},"Locale","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":973,"path":974,"stem":975,"titleTemplate":6},"Module Extend Pages","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":977,"path":978,"stem":979,"titleTemplate":6},"Teleport","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":981,"stem":982,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":519,"path":984,"stem":985,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":987,"path":988,"stem":989,"titleTemplate":6},"Use Custom Fetch Composable","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":991,"path":992,"stem":993,"children":994,"page":108},"Experimental","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental","docs\u002F3.x\u002F4.examples\u002F7.experimental",[995],{"title":996,"path":997,"stem":998,"titleTemplate":6},"WASM","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F3.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":1003,"stem":1004,"children":1005,"page":108},"Community","%s · Nuxt Community","i-lucide-messages-square","\u002Fdocs\u002F3.x\u002Fcommunity","docs\u002F3.x\u002F5.community",[1006,1011,1016,1021,1026,1031],{"title":1007,"path":1008,"stem":1009,"titleTemplate":6,"icon":1010},"Getting Help","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fgetting-help","docs\u002F3.x\u002F5.community\u002F2.getting-help","i-lucide-life-buoy",{"title":1012,"path":1013,"stem":1014,"titleTemplate":6,"icon":1015},"Reporting Bugs","\u002Fdocs\u002F3.x\u002Fcommunity\u002Freporting-bugs","docs\u002F3.x\u002F5.community\u002F3.reporting-bugs","i-lucide-bug",{"title":1017,"path":1018,"stem":1019,"titleTemplate":6,"icon":1020},"Contribution","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fcontribution","docs\u002F3.x\u002F5.community\u002F4.contribution","i-lucide-git-pull-request",{"title":1022,"path":1023,"stem":1024,"titleTemplate":6,"icon":1025},"Framework","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fframework-contribution","docs\u002F3.x\u002F5.community\u002F5.framework-contribution","i-lucide-github",{"title":1027,"path":1028,"stem":1029,"titleTemplate":6,"icon":1030},"Roadmap","\u002Fdocs\u002F3.x\u002Fcommunity\u002Froadmap","docs\u002F3.x\u002F5.community\u002F6.roadmap","i-lucide-map",{"title":1032,"path":1033,"stem":1034,"titleTemplate":6,"icon":1035},"Releases","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fchangelog","docs\u002F3.x\u002F5.community\u002F7.changelog","i-lucide-bell-dot",{"title":1037,"titleTemplate":1038,"icon":1039,"path":1040,"stem":1041,"children":1042,"page":108},"Migrate to Nuxt Bridge","Migrate to Nuxt Bridge: %s","i-lucide-ship","\u002Fdocs\u002F3.x\u002Fbridge","docs\u002F3.x\u002F6.bridge",[1043,1047,1050,1053,1057,1061,1065,1068,1071,1074],{"title":1044,"path":1045,"stem":1046,"titleTemplate":6},"Overview","\u002Fdocs\u002F3.x\u002Fbridge\u002Foverview","docs\u002F3.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1048,"stem":1049,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fconfiguration","docs\u002F3.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1051,"stem":1052,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Ftypescript","docs\u002F3.x\u002F6.bridge\u002F2.typescript",{"title":1054,"path":1055,"stem":1056,"titleTemplate":6},"Legacy Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F3.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1058,"path":1059,"stem":1060,"titleTemplate":6},"Plugins and Middleware","\u002Fdocs\u002F3.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F3.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1062,"path":1063,"stem":1064,"titleTemplate":6},"New Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F3.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":932,"path":1066,"stem":1067,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fmeta","docs\u002F3.x\u002F6.bridge\u002F6.meta",{"title":399,"path":1069,"stem":1070,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fruntime-config","docs\u002F3.x\u002F6.bridge\u002F7.runtime-config",{"title":833,"path":1072,"stem":1073,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fnitro","docs\u002F3.x\u002F6.bridge\u002F8.nitro",{"title":1075,"path":1076,"stem":1077,"titleTemplate":6},"Vite","\u002Fdocs\u002F3.x\u002Fbridge\u002Fvite","docs\u002F3.x\u002F6.bridge\u002F9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":1081,"stem":1082,"children":1083,"page":108},"Migrate to Nuxt 3","Migrate to Nuxt 3: %s","\u002Fdocs\u002F3.x\u002Fmigration","docs\u002F3.x\u002F7.migration",[1084,1087,1091,1094,1097,1100,1103,1106,1109,1113,1117],{"title":1044,"path":1085,"stem":1086,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Foverview","docs\u002F3.x\u002F7.migration\u002F1.overview",{"title":1088,"path":1089,"stem":1090,"titleTemplate":6},"Build Tooling","\u002Fdocs\u002F3.x\u002Fmigration\u002Fbundling","docs\u002F3.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1092,"stem":1093,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fserver","docs\u002F3.x\u002F7.migration\u002F11.server",{"title":29,"path":1095,"stem":1096,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fconfiguration","docs\u002F3.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1098,"stem":1099,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmodule-authors","docs\u002F3.x\u002F7.migration\u002F20.module-authors",{"title":922,"path":1101,"stem":1102,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fauto-imports","docs\u002F3.x\u002F7.migration\u002F3.auto-imports",{"title":932,"path":1104,"stem":1105,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmeta","docs\u002F3.x\u002F7.migration\u002F4.meta",{"title":1058,"path":1107,"stem":1108,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F3.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1110,"path":1111,"stem":1112,"titleTemplate":6},"Pages and Layouts","\u002Fdocs\u002F3.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F3.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1114,"path":1115,"stem":1116,"titleTemplate":6},"Component Options","\u002Fdocs\u002F3.x\u002Fmigration\u002Fcomponent-options","docs\u002F3.x\u002F7.migration\u002F7.component-options",{"title":399,"path":1118,"stem":1119,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fruntime-config","docs\u002F3.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1121,"stem":1122,"children":1123,"page":108},"\u002Fdocs\u002F4.x","docs\u002F4.x",[1124,1182,1276,1404,1778,1855,1877,1911],{"title":12,"titleTemplate":13,"icon":14,"path":1125,"stem":1126,"children":1127,"page":108},"\u002Fdocs\u002F4.x\u002Fgetting-started","docs\u002F4.x\u002F1.getting-started",[1128,1131,1134,1137,1140,1143,1146,1149,1152,1155,1158,1161,1164,1167,1170,1173,1176,1179],{"title":19,"path":1129,"stem":1130,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fintroduction","docs\u002F4.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1132,"stem":1133,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Finstallation","docs\u002F4.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1135,"stem":1136,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fconfiguration","docs\u002F4.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":1138,"stem":1139,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fviews","docs\u002F4.x\u002F1.getting-started\u002F04.views",{"title":39,"path":1141,"stem":1142,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fassets","docs\u002F4.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":1144,"stem":1145,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstyling","docs\u002F4.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":1147,"stem":1148,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Frouting","docs\u002F4.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":1150,"stem":1151,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fseo-meta","docs\u002F4.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":1153,"stem":1154,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftransitions","docs\u002F4.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":1156,"stem":1157,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F4.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":1159,"stem":1160,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstate-management","docs\u002F4.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":1162,"stem":1163,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ferror-handling","docs\u002F4.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":1165,"stem":1166,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fserver","docs\u002F4.x\u002F1.getting-started\u002F13.server",{"title":84,"path":1168,"stem":1169,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Flayers","docs\u002F4.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":1171,"stem":1172,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fprerendering","docs\u002F4.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":1174,"stem":1175,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdeployment","docs\u002F4.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":1177,"stem":1178,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftesting","docs\u002F4.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":1180,"stem":1181,"titleTemplate":6,"icon":107},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fupgrade","docs\u002F4.x\u002F1.getting-started\u002F18.upgrade",{"title":110,"titleTemplate":111,"icon":112,"path":1183,"stem":1184,"children":1185,"page":108},"\u002Fdocs\u002F4.x\u002Fdirectory-structure","docs\u002F4.x\u002F2.directory-structure",[1186,1189,1192,1234,1237,1240,1243,1246,1249,1252,1255,1258,1261,1264,1267,1270,1273],{"title":117,"path":1187,"stem":1188,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F4.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":1190,"stem":1191,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Foutput","docs\u002F4.x\u002F2.directory-structure\u002F0.output",{"title":1193,"titleTemplate":111,"head":1194,"defaultOpen":1196,"icon":1197,"path":1198,"stem":1199,"children":1200,"page":108},"app",{"title":1195},"app\u002F",true,"i-vscode-icons-folder-type-app","\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app",[1201,1204,1207,1210,1213,1216,1219,1222,1225,1228,1231],{"title":127,"path":1202,"stem":1203,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":1205,"stem":1206,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":1208,"stem":1209,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":1211,"stem":1212,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":1214,"stem":1215,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":1217,"stem":1218,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":1220,"stem":1221,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":1223,"stem":1224,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":1226,"stem":1227,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":1229,"stem":1230,"titleTemplate":6,"icon":227},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp-config","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.app-config",{"title":229,"path":1232,"stem":1233,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":1235,"stem":1236,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fcontent","docs\u002F4.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":1238,"stem":1239,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Flayers","docs\u002F4.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":1241,"stem":1242,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fmodules","docs\u002F4.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":1244,"stem":1245,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F4.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":1247,"stem":1248,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpublic","docs\u002F4.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":1250,"stem":1251,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fserver","docs\u002F4.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":1253,"stem":1254,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fshared","docs\u002F4.x\u002F2.directory-structure\u002F1.shared",{"title":200,"path":1256,"stem":1257,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fenv","docs\u002F4.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":1259,"stem":1260,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F4.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":1262,"stem":1263,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":1265,"stem":1266,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":1268,"stem":1269,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F4.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":1271,"stem":1272,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpackage","docs\u002F4.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":1274,"stem":1275,"titleTemplate":6,"icon":245},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Ftsconfig","docs\u002F4.x\u002F2.directory-structure\u002F3.tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":1277,"stem":1278,"children":1279,"page":108},"\u002Fdocs\u002F4.x\u002Fguide","docs\u002F4.x\u002F3.guide",[1280,1305,1319,1329,1354,1370],{"title":253,"titleTemplate":254,"icon":255,"path":1281,"stem":1282,"children":1283,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts","docs\u002F4.x\u002F3.guide\u002F1.concepts",[1284,1287,1290,1293,1296,1299,1302],{"title":260,"path":1285,"stem":1286,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":1288,"stem":1289,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":1291,"stem":1292,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":1294,"stem":1295,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":1297,"stem":1298,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":1300,"stem":1301,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":1303,"stem":1304,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fcode-style","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":1306,"stem":1307,"children":1308,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F2.best-practices",[1309,1313,1316],{"title":1310,"path":1311,"stem":1312,"titleTemplate":6},"Nuxt and Hydration","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":1314,"stem":1315,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":1317,"stem":1318,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fplugins","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fplugins",{"title":307,"titleTemplate":308,"icon":309,"path":1320,"stem":1321,"children":1322,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai","docs\u002F4.x\u002F3.guide\u002F3.ai",[1323,1326],{"title":314,"path":1324,"stem":1325,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F4.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":1327,"stem":1328,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fllms-txt","docs\u002F4.x\u002F3.guide\u002F3.ai\u002F2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":1330,"stem":1331,"children":1332,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F4.modules",[1333,1336,1339,1342,1345,1348,1351],{"title":329,"path":1334,"stem":1335,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":1337,"stem":1338,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":1340,"stem":1341,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":1343,"stem":1344,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F4.recipes-advanced",{"title":345,"path":1346,"stem":1347,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F5.testing",{"title":349,"path":1349,"stem":1350,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F6.best-practices",{"title":353,"path":1352,"stem":1353,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":1355,"stem":1356,"children":1357,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes","docs\u002F4.x\u002F3.guide\u002F5.recipes",[1358,1361,1364,1367],{"title":364,"path":1359,"stem":1360,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":368,"path":1362,"stem":1363,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":372,"path":1365,"stem":1366,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":376,"path":1368,"stem":1369,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":1371,"stem":1372,"children":1373,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further","docs\u002F4.x\u002F3.guide\u002F6.going-further",[1374,1377,1380,1383,1386,1389,1392,1395,1398,1401],{"title":387,"path":1375,"stem":1376,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":391,"path":1378,"stem":1379,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":395,"path":1381,"stem":1382,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":399,"path":1384,"stem":1385,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":403,"path":1387,"stem":1388,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":407,"path":1390,"stem":1391,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":411,"path":1393,"stem":1394,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":415,"path":1396,"stem":1397,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":419,"path":1399,"stem":1400,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":423,"path":1402,"stem":1403,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":1405,"stem":1406,"children":1407,"page":108},"\u002Fdocs\u002F4.x\u002Fapi","docs\u002F4.x\u002F4.api",[1408,1461,1564,1655,1707,1765,1775],{"title":434,"titleTemplate":435,"icon":324,"path":1409,"stem":1410,"children":1411,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F1.components",[1412,1415,1418,1421,1424,1427,1430,1433,1437,1440,1443,1446,1449,1452,1455,1458],{"title":440,"path":1413,"stem":1414,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":444,"path":1416,"stem":1417,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":448,"path":1419,"stem":1420,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":452,"path":1422,"stem":1423,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F4.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":456,"path":1425,"stem":1426,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F4.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":460,"path":1428,"stem":1429,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":464,"path":1431,"stem":1432,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F4.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1434,"path":1435,"stem":1436,"titleTemplate":6},"\u003CNuxtAnnouncer>","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":468,"path":1438,"stem":1439,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F4.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":472,"path":1441,"stem":1442,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F4.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":476,"path":1444,"stem":1445,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F4.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":480,"path":1447,"stem":1448,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F4.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":484,"path":1450,"stem":1451,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F4.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":488,"path":1453,"stem":1454,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F4.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":492,"path":1456,"stem":1457,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F4.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":496,"path":1459,"stem":1460,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F4.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":1462,"stem":1463,"children":1464,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables","docs\u002F4.x\u002F4.api\u002F2.composables",[1465,1469,1473,1476,1480,1483,1486,1489,1492,1495,1498,1501,1504,1507,1510,1513,1516,1519,1522,1525,1528,1531,1534,1537,1540,1543,1546,1549,1552,1555,1558,1561],{"title":1466,"path":1467,"stem":1468,"titleTemplate":6},"createUseAsyncData","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1470,"path":1471,"stem":1472,"titleTemplate":6},"createUseFetch","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":507,"path":1474,"stem":1475,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1477,"path":1478,"stem":1479,"titleTemplate":6},"useAnnouncer","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":511,"path":1481,"stem":1482,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":515,"path":1484,"stem":1485,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":519,"path":1487,"stem":1488,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":523,"path":1490,"stem":1491,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":527,"path":1493,"stem":1494,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":531,"path":1496,"stem":1497,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":535,"path":1499,"stem":1500,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":539,"path":1502,"stem":1503,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":543,"path":1505,"stem":1506,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":547,"path":1508,"stem":1509,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":551,"path":1511,"stem":1512,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":555,"path":1514,"stem":1515,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":559,"path":1517,"stem":1518,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":563,"path":1520,"stem":1521,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":567,"path":1523,"stem":1524,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":571,"path":1526,"stem":1527,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":575,"path":1529,"stem":1530,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":579,"path":1532,"stem":1533,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":583,"path":1535,"stem":1536,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":587,"path":1538,"stem":1539,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":591,"path":1541,"stem":1542,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":595,"path":1544,"stem":1545,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":599,"path":1547,"stem":1548,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":603,"path":1550,"stem":1551,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":607,"path":1553,"stem":1554,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":611,"path":1556,"stem":1557,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":615,"path":1559,"stem":1560,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":619,"path":1562,"stem":1563,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":623,"titleTemplate":624,"icon":625,"path":1565,"stem":1566,"children":1567,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils","docs\u002F4.x\u002F4.api\u002F3.utils",[1568,1571,1574,1577,1580,1583,1586,1589,1592,1595,1598,1601,1604,1607,1610,1613,1616,1619,1622,1625,1628,1631,1634,1637,1640,1643,1646,1649,1652],{"title":630,"path":1569,"stem":1570,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F4.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":634,"path":1572,"stem":1573,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":638,"path":1575,"stem":1576,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":642,"path":1578,"stem":1579,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":646,"path":1581,"stem":1582,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":650,"path":1584,"stem":1585,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":654,"path":1587,"stem":1588,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":658,"path":1590,"stem":1591,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":662,"path":1593,"stem":1594,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":666,"path":1596,"stem":1597,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":670,"path":1599,"stem":1600,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":674,"path":1602,"stem":1603,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":678,"path":1605,"stem":1606,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":682,"path":1608,"stem":1609,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":686,"path":1611,"stem":1612,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":690,"path":1614,"stem":1615,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":694,"path":1617,"stem":1618,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":698,"path":1620,"stem":1621,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":702,"path":1623,"stem":1624,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":706,"path":1626,"stem":1627,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":710,"path":1629,"stem":1630,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":714,"path":1632,"stem":1633,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":718,"path":1635,"stem":1636,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":722,"path":1638,"stem":1639,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":726,"path":1641,"stem":1642,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F4.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":730,"path":1644,"stem":1645,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":734,"path":1647,"stem":1648,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":738,"path":1650,"stem":1651,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":742,"path":1653,"stem":1654,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":1656,"stem":1657,"children":1658,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands","docs\u002F4.x\u002F4.api\u002F4.commands",[1659,1662,1665,1668,1671,1674,1677,1680,1683,1686,1689,1692,1695,1698,1701,1704],{"title":753,"path":1660,"stem":1661,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fadd",{"title":757,"path":1663,"stem":1664,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":761,"path":1666,"stem":1667,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":765,"path":1669,"stem":1670,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":769,"path":1672,"stem":1673,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":773,"path":1675,"stem":1676,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdev",{"title":777,"path":1678,"stem":1679,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":781,"path":1681,"stem":1682,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":785,"path":1684,"stem":1685,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finfo",{"title":789,"path":1687,"stem":1688,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finit",{"title":793,"path":1690,"stem":1691,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":797,"path":1693,"stem":1694,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":801,"path":1696,"stem":1697,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":805,"path":1699,"stem":1700,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftest",{"title":809,"path":1702,"stem":1703,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":813,"path":1705,"stem":1706,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":411,"titleTemplate":817,"icon":818,"path":1708,"stem":1709,"children":1710,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit","docs\u002F4.x\u002F4.api\u002F5.kit",[1711,1714,1717,1720,1723,1726,1729,1732,1735,1738,1741,1744,1747,1750,1753,1756,1759,1762],{"title":276,"path":1712,"stem":1713,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F4.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":399,"path":1715,"stem":1716,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":829,"path":1718,"stem":1719,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":833,"path":1721,"stem":1722,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F4.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":837,"path":1724,"stem":1725,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F4.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":841,"path":1727,"stem":1728,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F4.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":845,"path":1730,"stem":1731,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F4.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":849,"path":1733,"stem":1734,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F4.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":1736,"stem":1737,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F4.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":856,"path":1739,"stem":1740,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F4.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":860,"path":1742,"stem":1743,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F4.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":1745,"stem":1746,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F4.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":434,"path":1748,"stem":1749,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F5.kit\u002F5.components",{"title":870,"path":1751,"stem":1752,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F4.x\u002F4.api\u002F5.kit\u002F6.context",{"title":874,"path":1754,"stem":1755,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F4.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":878,"path":1757,"stem":1758,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F4.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":882,"path":1760,"stem":1761,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.head",{"title":886,"path":1763,"stem":1764,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":1766,"stem":1767,"children":1768,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced","docs\u002F4.x\u002F4.api\u002F6.advanced",[1769,1772],{"title":407,"path":1770,"stem":1771,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":899,"path":1773,"stem":1774,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":903,"path":1776,"stem":1777,"titleTemplate":906,"icon":32},"\u002Fdocs\u002F4.x\u002Fapi\u002Fnuxt-config","docs\u002F4.x\u002F4.api\u002F6.nuxt-config",{"title":849,"titleTemplate":908,"icon":909,"path":1779,"stem":1780,"children":1781,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples","docs\u002F4.x\u002F4.examples",[1782,1785,1804,1817,1848],{"title":914,"path":1783,"stem":1784,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fhello-world","docs\u002F4.x\u002F4.examples\u002F0.hello-world",{"title":395,"path":1786,"stem":1787,"children":1788,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures","docs\u002F4.x\u002F4.examples\u002F1.features",[1789,1792,1795,1798,1801],{"title":922,"path":1790,"stem":1791,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F4.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":1793,"stem":1794,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F4.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":1796,"stem":1797,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F4.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":932,"path":1799,"stem":1800,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F4.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":936,"path":1802,"stem":1803,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F4.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":1805,"stem":1806,"children":1807,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting","docs\u002F4.x\u002F4.examples\u002F2.routing",[1808,1811,1814],{"title":944,"path":1809,"stem":1810,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":874,"path":1812,"stem":1813,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":951,"path":1815,"stem":1816,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":890,"path":1818,"stem":1819,"children":1820,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced","docs\u002F4.x\u002F4.examples\u002F4.advanced",[1821,1824,1827,1830,1833,1836,1839,1842,1845],{"title":84,"path":1822,"stem":1823,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":1825,"stem":1826,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":965,"path":1828,"stem":1829,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":969,"path":1831,"stem":1832,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":973,"path":1834,"stem":1835,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":977,"path":1837,"stem":1838,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":1840,"stem":1841,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":519,"path":1843,"stem":1844,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":987,"path":1846,"stem":1847,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":991,"path":1849,"stem":1850,"children":1851,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental","docs\u002F4.x\u002F4.examples\u002F7.experimental",[1852],{"title":996,"path":1853,"stem":1854,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F4.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":1856,"stem":1857,"children":1858,"page":108},"\u002Fdocs\u002F4.x\u002Fcommunity","docs\u002F4.x\u002F5.community",[1859,1862,1865,1868,1871,1874],{"title":1007,"path":1860,"stem":1861,"titleTemplate":6,"icon":1010},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fgetting-help","docs\u002F4.x\u002F5.community\u002F2.getting-help",{"title":1012,"path":1863,"stem":1864,"titleTemplate":6,"icon":1015},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Freporting-bugs","docs\u002F4.x\u002F5.community\u002F3.reporting-bugs",{"title":1017,"path":1866,"stem":1867,"titleTemplate":6,"icon":1020},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fcontribution","docs\u002F4.x\u002F5.community\u002F4.contribution",{"title":1022,"path":1869,"stem":1870,"titleTemplate":6,"icon":1025},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fframework-contribution","docs\u002F4.x\u002F5.community\u002F5.framework-contribution",{"title":1027,"path":1872,"stem":1873,"titleTemplate":6,"icon":1030},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Froadmap","docs\u002F4.x\u002F5.community\u002F6.roadmap",{"title":1032,"path":1875,"stem":1876,"titleTemplate":6,"icon":1035},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fchangelog","docs\u002F4.x\u002F5.community\u002F7.changelog",{"title":1037,"titleTemplate":1038,"icon":1039,"path":1878,"stem":1879,"children":1880,"page":108},"\u002Fdocs\u002F4.x\u002Fbridge","docs\u002F4.x\u002F6.bridge",[1881,1884,1887,1890,1893,1896,1899,1902,1905,1908],{"title":1044,"path":1882,"stem":1883,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Foverview","docs\u002F4.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1885,"stem":1886,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fconfiguration","docs\u002F4.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1888,"stem":1889,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Ftypescript","docs\u002F4.x\u002F6.bridge\u002F2.typescript",{"title":1054,"path":1891,"stem":1892,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F4.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1058,"path":1894,"stem":1895,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F4.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1062,"path":1897,"stem":1898,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F4.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":932,"path":1900,"stem":1901,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fmeta","docs\u002F4.x\u002F6.bridge\u002F6.meta",{"title":399,"path":1903,"stem":1904,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fruntime-config","docs\u002F4.x\u002F6.bridge\u002F7.runtime-config",{"title":833,"path":1906,"stem":1907,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnitro","docs\u002F4.x\u002F6.bridge\u002F8.nitro",{"title":1075,"path":1909,"stem":1910,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fvite","docs\u002F4.x\u002F6.bridge\u002F9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":1912,"stem":1913,"children":1914,"page":108},"\u002Fdocs\u002F4.x\u002Fmigration","docs\u002F4.x\u002F7.migration",[1915,1918,1921,1924,1927,1930,1933,1936,1939,1942,1945],{"title":1044,"path":1916,"stem":1917,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Foverview","docs\u002F4.x\u002F7.migration\u002F1.overview",{"title":1088,"path":1919,"stem":1920,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fbundling","docs\u002F4.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1922,"stem":1923,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fserver","docs\u002F4.x\u002F7.migration\u002F11.server",{"title":29,"path":1925,"stem":1926,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fconfiguration","docs\u002F4.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1928,"stem":1929,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmodule-authors","docs\u002F4.x\u002F7.migration\u002F20.module-authors",{"title":922,"path":1931,"stem":1932,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fauto-imports","docs\u002F4.x\u002F7.migration\u002F3.auto-imports",{"title":932,"path":1934,"stem":1935,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmeta","docs\u002F4.x\u002F7.migration\u002F4.meta",{"title":1058,"path":1937,"stem":1938,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F4.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1110,"path":1940,"stem":1941,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F4.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1114,"path":1943,"stem":1944,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fcomponent-options","docs\u002F4.x\u002F7.migration\u002F7.component-options",{"title":399,"path":1946,"stem":1947,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fruntime-config","docs\u002F4.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1949,"stem":1950,"children":1951,"page":108},"\u002Fdocs\u002F5.x","docs\u002F5.x",[1952,2010,2100,2227,2597,2674,2696,2730],{"title":12,"titleTemplate":13,"icon":14,"path":1953,"stem":1954,"children":1955,"page":108},"\u002Fdocs\u002F5.x\u002Fgetting-started","docs\u002F5.x\u002F1.getting-started",[1956,1959,1962,1965,1968,1971,1974,1977,1980,1983,1986,1989,1992,1995,1998,2001,2004,2007],{"title":19,"path":1957,"stem":1958,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fintroduction","docs\u002F5.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1960,"stem":1961,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Finstallation","docs\u002F5.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1963,"stem":1964,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fconfiguration","docs\u002F5.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":1966,"stem":1967,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fviews","docs\u002F5.x\u002F1.getting-started\u002F04.views",{"title":39,"path":1969,"stem":1970,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fassets","docs\u002F5.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":1972,"stem":1973,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstyling","docs\u002F5.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":1975,"stem":1976,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Frouting","docs\u002F5.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":1978,"stem":1979,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fseo-meta","docs\u002F5.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":1981,"stem":1982,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftransitions","docs\u002F5.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":1984,"stem":1985,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F5.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":1987,"stem":1988,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstate-management","docs\u002F5.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":1990,"stem":1991,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ferror-handling","docs\u002F5.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":1993,"stem":1994,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fserver","docs\u002F5.x\u002F1.getting-started\u002F13.server",{"title":84,"path":1996,"stem":1997,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Flayers","docs\u002F5.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":1999,"stem":2000,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fprerendering","docs\u002F5.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":2002,"stem":2003,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdeployment","docs\u002F5.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":2005,"stem":2006,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftesting","docs\u002F5.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":2008,"stem":2009,"titleTemplate":6,"icon":107},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fupgrade","docs\u002F5.x\u002F1.getting-started\u002F18.upgrade",{"title":110,"titleTemplate":111,"icon":112,"path":2011,"stem":2012,"children":2013,"page":108},"\u002Fdocs\u002F5.x\u002Fdirectory-structure","docs\u002F5.x\u002F2.directory-structure",[2014,2017,2020,2058,2061,2064,2067,2070,2073,2076,2079,2082,2085,2088,2091,2094,2097],{"title":117,"path":2015,"stem":2016,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F5.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":2018,"stem":2019,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Foutput","docs\u002F5.x\u002F2.directory-structure\u002F0.output",{"title":1193,"titleTemplate":111,"head":2021,"defaultOpen":1196,"icon":1197,"path":2022,"stem":2023,"children":2024,"page":108},{"title":1195},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app",[2025,2028,2031,2034,2037,2040,2043,2046,2049,2052,2055],{"title":127,"path":2026,"stem":2027,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":2029,"stem":2030,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":2032,"stem":2033,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":2035,"stem":2036,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":2038,"stem":2039,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":2041,"stem":2042,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":2044,"stem":2045,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":2047,"stem":2048,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":2050,"stem":2051,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":2053,"stem":2054,"titleTemplate":6,"icon":227},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp-config","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.app-config",{"title":229,"path":2056,"stem":2057,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":2059,"stem":2060,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fcontent","docs\u002F5.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":2062,"stem":2063,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Flayers","docs\u002F5.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":2065,"stem":2066,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fmodules","docs\u002F5.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":2068,"stem":2069,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F5.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":2071,"stem":2072,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpublic","docs\u002F5.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":2074,"stem":2075,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fserver","docs\u002F5.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":2077,"stem":2078,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fshared","docs\u002F5.x\u002F2.directory-structure\u002F1.shared",{"title":200,"path":2080,"stem":2081,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fenv","docs\u002F5.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":2083,"stem":2084,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F5.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":2086,"stem":2087,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":2089,"stem":2090,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":2092,"stem":2093,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F5.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":2095,"stem":2096,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpackage","docs\u002F5.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":2098,"stem":2099,"titleTemplate":6,"icon":245},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Ftsconfig","docs\u002F5.x\u002F2.directory-structure\u002F3.tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":2101,"stem":2102,"children":2103,"page":108},"\u002Fdocs\u002F5.x\u002Fguide","docs\u002F5.x\u002F3.guide",[2104,2129,2142,2152,2177,2193],{"title":253,"titleTemplate":254,"icon":255,"path":2105,"stem":2106,"children":2107,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts","docs\u002F5.x\u002F3.guide\u002F1.concepts",[2108,2111,2114,2117,2120,2123,2126],{"title":260,"path":2109,"stem":2110,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":2112,"stem":2113,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":2115,"stem":2116,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":2118,"stem":2119,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":2121,"stem":2122,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":2124,"stem":2125,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":2127,"stem":2128,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fcode-style","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":2130,"stem":2131,"children":2132,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F2.best-practices",[2133,2136,2139],{"title":1310,"path":2134,"stem":2135,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":2137,"stem":2138,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":2140,"stem":2141,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fplugins","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fplugins",{"title":307,"titleTemplate":308,"icon":309,"path":2143,"stem":2144,"children":2145,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai","docs\u002F5.x\u002F3.guide\u002F3.ai",[2146,2149],{"title":314,"path":2147,"stem":2148,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F5.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":2150,"stem":2151,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fllms-txt","docs\u002F5.x\u002F3.guide\u002F3.ai\u002F2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":2153,"stem":2154,"children":2155,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F4.modules",[2156,2159,2162,2165,2168,2171,2174],{"title":329,"path":2157,"stem":2158,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":2160,"stem":2161,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":2163,"stem":2164,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":2166,"stem":2167,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F4.recipes-advanced",{"title":345,"path":2169,"stem":2170,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F5.testing",{"title":349,"path":2172,"stem":2173,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F6.best-practices",{"title":353,"path":2175,"stem":2176,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":2178,"stem":2179,"children":2180,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes","docs\u002F5.x\u002F3.guide\u002F5.recipes",[2181,2184,2187,2190],{"title":364,"path":2182,"stem":2183,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":368,"path":2185,"stem":2186,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":372,"path":2188,"stem":2189,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":376,"path":2191,"stem":2192,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":2194,"stem":2195,"children":2196,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further","docs\u002F5.x\u002F3.guide\u002F6.going-further",[2197,2200,2203,2206,2209,2212,2215,2218,2221,2224],{"title":387,"path":2198,"stem":2199,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":391,"path":2201,"stem":2202,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":395,"path":2204,"stem":2205,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":399,"path":2207,"stem":2208,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":403,"path":2210,"stem":2211,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":407,"path":2213,"stem":2214,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":411,"path":2216,"stem":2217,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":415,"path":2219,"stem":2220,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":419,"path":2222,"stem":2223,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":423,"path":2225,"stem":2226,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":2228,"stem":2229,"children":2230,"page":108},"\u002Fdocs\u002F5.x\u002Fapi","docs\u002F5.x\u002F4.api",[2231,2283,2383,2474,2526,2584,2594],{"title":434,"titleTemplate":435,"icon":324,"path":2232,"stem":2233,"children":2234,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F1.components",[2235,2238,2241,2244,2247,2250,2253,2256,2259,2262,2265,2268,2271,2274,2277,2280],{"title":440,"path":2236,"stem":2237,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":444,"path":2239,"stem":2240,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":448,"path":2242,"stem":2243,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":452,"path":2245,"stem":2246,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F5.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":456,"path":2248,"stem":2249,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F5.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":460,"path":2251,"stem":2252,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":464,"path":2254,"stem":2255,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F5.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1434,"path":2257,"stem":2258,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":468,"path":2260,"stem":2261,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F5.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":472,"path":2263,"stem":2264,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F5.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":476,"path":2266,"stem":2267,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F5.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":480,"path":2269,"stem":2270,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F5.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":484,"path":2272,"stem":2273,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F5.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":488,"path":2275,"stem":2276,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F5.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":492,"path":2278,"stem":2279,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F5.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":496,"path":2281,"stem":2282,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F5.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":2284,"stem":2285,"children":2286,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables","docs\u002F5.x\u002F4.api\u002F2.composables",[2287,2290,2293,2296,2299,2302,2305,2308,2311,2314,2317,2320,2323,2326,2329,2332,2335,2338,2341,2344,2347,2350,2353,2356,2359,2362,2365,2368,2371,2374,2377,2380],{"title":1466,"path":2288,"stem":2289,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1470,"path":2291,"stem":2292,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":507,"path":2294,"stem":2295,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1477,"path":2297,"stem":2298,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":511,"path":2300,"stem":2301,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":515,"path":2303,"stem":2304,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":519,"path":2306,"stem":2307,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":523,"path":2309,"stem":2310,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":527,"path":2312,"stem":2313,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":531,"path":2315,"stem":2316,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":535,"path":2318,"stem":2319,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":539,"path":2321,"stem":2322,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":543,"path":2324,"stem":2325,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":547,"path":2327,"stem":2328,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":551,"path":2330,"stem":2331,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":555,"path":2333,"stem":2334,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":559,"path":2336,"stem":2337,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":563,"path":2339,"stem":2340,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":567,"path":2342,"stem":2343,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":571,"path":2345,"stem":2346,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":575,"path":2348,"stem":2349,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":579,"path":2351,"stem":2352,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":583,"path":2354,"stem":2355,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":587,"path":2357,"stem":2358,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":591,"path":2360,"stem":2361,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":595,"path":2363,"stem":2364,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":599,"path":2366,"stem":2367,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":603,"path":2369,"stem":2370,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":607,"path":2372,"stem":2373,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":611,"path":2375,"stem":2376,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":615,"path":2378,"stem":2379,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":619,"path":2381,"stem":2382,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":623,"titleTemplate":624,"icon":625,"path":2384,"stem":2385,"children":2386,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils","docs\u002F5.x\u002F4.api\u002F3.utils",[2387,2390,2393,2396,2399,2402,2405,2408,2411,2414,2417,2420,2423,2426,2429,2432,2435,2438,2441,2444,2447,2450,2453,2456,2459,2462,2465,2468,2471],{"title":630,"path":2388,"stem":2389,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F5.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":634,"path":2391,"stem":2392,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":638,"path":2394,"stem":2395,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":642,"path":2397,"stem":2398,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":646,"path":2400,"stem":2401,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":650,"path":2403,"stem":2404,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":654,"path":2406,"stem":2407,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":658,"path":2409,"stem":2410,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":662,"path":2412,"stem":2413,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":666,"path":2415,"stem":2416,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":670,"path":2418,"stem":2419,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":674,"path":2421,"stem":2422,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":678,"path":2424,"stem":2425,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":682,"path":2427,"stem":2428,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":686,"path":2430,"stem":2431,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":690,"path":2433,"stem":2434,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":694,"path":2436,"stem":2437,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":698,"path":2439,"stem":2440,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":702,"path":2442,"stem":2443,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":706,"path":2445,"stem":2446,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":710,"path":2448,"stem":2449,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":714,"path":2451,"stem":2452,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":718,"path":2454,"stem":2455,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":722,"path":2457,"stem":2458,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":726,"path":2460,"stem":2461,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F5.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":730,"path":2463,"stem":2464,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":734,"path":2466,"stem":2467,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":738,"path":2469,"stem":2470,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":742,"path":2472,"stem":2473,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":2475,"stem":2476,"children":2477,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands","docs\u002F5.x\u002F4.api\u002F4.commands",[2478,2481,2484,2487,2490,2493,2496,2499,2502,2505,2508,2511,2514,2517,2520,2523],{"title":753,"path":2479,"stem":2480,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fadd",{"title":757,"path":2482,"stem":2483,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":761,"path":2485,"stem":2486,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":765,"path":2488,"stem":2489,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":769,"path":2491,"stem":2492,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":773,"path":2494,"stem":2495,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdev",{"title":777,"path":2497,"stem":2498,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":781,"path":2500,"stem":2501,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":785,"path":2503,"stem":2504,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finfo",{"title":789,"path":2506,"stem":2507,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finit",{"title":793,"path":2509,"stem":2510,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":797,"path":2512,"stem":2513,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":801,"path":2515,"stem":2516,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":805,"path":2518,"stem":2519,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftest",{"title":809,"path":2521,"stem":2522,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":813,"path":2524,"stem":2525,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":411,"titleTemplate":817,"icon":818,"path":2527,"stem":2528,"children":2529,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit","docs\u002F5.x\u002F4.api\u002F5.kit",[2530,2533,2536,2539,2542,2545,2548,2551,2554,2557,2560,2563,2566,2569,2572,2575,2578,2581],{"title":276,"path":2531,"stem":2532,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F5.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":399,"path":2534,"stem":2535,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":829,"path":2537,"stem":2538,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":833,"path":2540,"stem":2541,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F5.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":837,"path":2543,"stem":2544,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F5.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":841,"path":2546,"stem":2547,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F5.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":845,"path":2549,"stem":2550,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F5.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":849,"path":2552,"stem":2553,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F5.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":2555,"stem":2556,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F5.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":856,"path":2558,"stem":2559,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F5.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":860,"path":2561,"stem":2562,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F5.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":2564,"stem":2565,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F5.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":434,"path":2567,"stem":2568,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F5.kit\u002F5.components",{"title":870,"path":2570,"stem":2571,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F5.x\u002F4.api\u002F5.kit\u002F6.context",{"title":874,"path":2573,"stem":2574,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F5.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":878,"path":2576,"stem":2577,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F5.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":882,"path":2579,"stem":2580,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.head",{"title":886,"path":2582,"stem":2583,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":2585,"stem":2586,"children":2587,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced","docs\u002F5.x\u002F4.api\u002F6.advanced",[2588,2591],{"title":407,"path":2589,"stem":2590,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":899,"path":2592,"stem":2593,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":903,"path":2595,"stem":2596,"titleTemplate":906,"icon":32},"\u002Fdocs\u002F5.x\u002Fapi\u002Fnuxt-config","docs\u002F5.x\u002F4.api\u002F6.nuxt-config",{"title":849,"titleTemplate":908,"icon":909,"path":2598,"stem":2599,"children":2600,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples","docs\u002F5.x\u002F4.examples",[2601,2604,2623,2636,2667],{"title":914,"path":2602,"stem":2603,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fhello-world","docs\u002F5.x\u002F4.examples\u002F0.hello-world",{"title":395,"path":2605,"stem":2606,"children":2607,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures","docs\u002F5.x\u002F4.examples\u002F1.features",[2608,2611,2614,2617,2620],{"title":922,"path":2609,"stem":2610,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F5.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":2612,"stem":2613,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F5.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":2615,"stem":2616,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F5.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":932,"path":2618,"stem":2619,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F5.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":936,"path":2621,"stem":2622,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F5.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":2624,"stem":2625,"children":2626,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting","docs\u002F5.x\u002F4.examples\u002F2.routing",[2627,2630,2633],{"title":944,"path":2628,"stem":2629,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":874,"path":2631,"stem":2632,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":951,"path":2634,"stem":2635,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":890,"path":2637,"stem":2638,"children":2639,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced","docs\u002F5.x\u002F4.examples\u002F4.advanced",[2640,2643,2646,2649,2652,2655,2658,2661,2664],{"title":84,"path":2641,"stem":2642,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":2644,"stem":2645,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":965,"path":2647,"stem":2648,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":969,"path":2650,"stem":2651,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":973,"path":2653,"stem":2654,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":977,"path":2656,"stem":2657,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":2659,"stem":2660,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":519,"path":2662,"stem":2663,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":987,"path":2665,"stem":2666,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":991,"path":2668,"stem":2669,"children":2670,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental","docs\u002F5.x\u002F4.examples\u002F7.experimental",[2671],{"title":996,"path":2672,"stem":2673,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F5.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":2675,"stem":2676,"children":2677,"page":108},"\u002Fdocs\u002F5.x\u002Fcommunity","docs\u002F5.x\u002F5.community",[2678,2681,2684,2687,2690,2693],{"title":1007,"path":2679,"stem":2680,"titleTemplate":6,"icon":1010},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fgetting-help","docs\u002F5.x\u002F5.community\u002F2.getting-help",{"title":1012,"path":2682,"stem":2683,"titleTemplate":6,"icon":1015},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Freporting-bugs","docs\u002F5.x\u002F5.community\u002F3.reporting-bugs",{"title":1017,"path":2685,"stem":2686,"titleTemplate":6,"icon":1020},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fcontribution","docs\u002F5.x\u002F5.community\u002F4.contribution",{"title":1022,"path":2688,"stem":2689,"titleTemplate":6,"icon":1025},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fframework-contribution","docs\u002F5.x\u002F5.community\u002F5.framework-contribution",{"title":1027,"path":2691,"stem":2692,"titleTemplate":6,"icon":1030},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Froadmap","docs\u002F5.x\u002F5.community\u002F6.roadmap",{"title":1032,"path":2694,"stem":2695,"titleTemplate":6,"icon":1035},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fchangelog","docs\u002F5.x\u002F5.community\u002F7.changelog",{"title":1037,"titleTemplate":1038,"icon":1039,"path":2697,"stem":2698,"children":2699,"page":108},"\u002Fdocs\u002F5.x\u002Fbridge","docs\u002F5.x\u002F6.bridge",[2700,2703,2706,2709,2712,2715,2718,2721,2724,2727],{"title":1044,"path":2701,"stem":2702,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Foverview","docs\u002F5.x\u002F6.bridge\u002F1.overview",{"title":29,"path":2704,"stem":2705,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fconfiguration","docs\u002F5.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":2707,"stem":2708,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Ftypescript","docs\u002F5.x\u002F6.bridge\u002F2.typescript",{"title":1054,"path":2710,"stem":2711,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F5.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1058,"path":2713,"stem":2714,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F5.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1062,"path":2716,"stem":2717,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F5.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":932,"path":2719,"stem":2720,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fmeta","docs\u002F5.x\u002F6.bridge\u002F6.meta",{"title":399,"path":2722,"stem":2723,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fruntime-config","docs\u002F5.x\u002F6.bridge\u002F7.runtime-config",{"title":833,"path":2725,"stem":2726,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnitro","docs\u002F5.x\u002F6.bridge\u002F8.nitro",{"title":1075,"path":2728,"stem":2729,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fvite","docs\u002F5.x\u002F6.bridge\u002F9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":2731,"stem":2732,"children":2733,"page":108},"\u002Fdocs\u002F5.x\u002Fmigration","docs\u002F5.x\u002F7.migration",[2734,2737,2740,2743,2746,2749,2752,2755,2758,2761,2764],{"title":1044,"path":2735,"stem":2736,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Foverview","docs\u002F5.x\u002F7.migration\u002F1.overview",{"title":1088,"path":2738,"stem":2739,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fbundling","docs\u002F5.x\u002F7.migration\u002F10.bundling",{"title":79,"path":2741,"stem":2742,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fserver","docs\u002F5.x\u002F7.migration\u002F11.server",{"title":29,"path":2744,"stem":2745,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fconfiguration","docs\u002F5.x\u002F7.migration\u002F2.configuration",{"title":276,"path":2747,"stem":2748,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmodule-authors","docs\u002F5.x\u002F7.migration\u002F20.module-authors",{"title":922,"path":2750,"stem":2751,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fauto-imports","docs\u002F5.x\u002F7.migration\u002F3.auto-imports",{"title":932,"path":2753,"stem":2754,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmeta","docs\u002F5.x\u002F7.migration\u002F4.meta",{"title":1058,"path":2756,"stem":2757,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F5.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1110,"path":2759,"stem":2760,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F5.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1114,"path":2762,"stem":2763,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fcomponent-options","docs\u002F5.x\u002F7.migration\u002F7.component-options",{"title":399,"path":2765,"stem":2766,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fruntime-config","docs\u002F5.x\u002F7.migration\u002F8.runtime-config",{"title":2768,"path":2769,"stem":2770,"children":2771,"page":108},"Blog","\u002Fblog","blog",[2772,2776,2780,2784,2788,2792,2796,2800,2804,2808,2812,2816,2820,2824,2828,2832,2836,2840,2844,2848,2852],{"title":2773,"path":2774,"stem":2775},"Announcing 3.0","\u002Fblog\u002Fv3","blog\u002F1.v3",{"title":2777,"path":2778,"stem":2779},"Nuxt 3.3","\u002Fblog\u002Fv3-3","blog\u002F10.v3-3",{"title":2781,"path":2782,"stem":2783},"Nuxt 3.4","\u002Fblog\u002Fv3-4","blog\u002F11.v3-4",{"title":2785,"path":2786,"stem":2787},"Nuxt 3.5","\u002Fblog\u002Fv3-5","blog\u002F12.v3-5",{"title":2789,"path":2790,"stem":2791},"Nuxt 3.6","\u002Fblog\u002Fv3-6","blog\u002F13.v3-6",{"title":2793,"path":2794,"stem":2795},"Nuxt on the Edge","\u002Fblog\u002Fnuxt-on-the-edge","blog\u002F14.nuxt-on-the-edge",{"title":2797,"path":2798,"stem":2799},"Nuxt DevTools v1.0","\u002Fblog\u002Fnuxt-devtools-v1-0","blog\u002F18.nuxt-devtools-v1-0",{"title":2801,"path":2802,"stem":2803},"Nuxt: A vision for 2023","\u002Fblog\u002Fvision-2023","blog\u002F2.vision-2023",{"title":2805,"path":2806,"stem":2807},"The Evolution of Shiki v1.0","\u002Fblog\u002Fshiki-v1","blog\u002F21.shiki-v1",{"title":2809,"path":2810,"stem":2811},"Refreshed Nuxt ESLint Integrations","\u002Fblog\u002Feslint-module","blog\u002F24.eslint-module",{"title":2813,"path":2814,"stem":2815},"Introducing Nuxt Scripts","\u002Fblog\u002Fnuxt-scripts","blog\u002F26.nuxt-scripts",{"title":2817,"path":2818,"stem":2819},"Introducing Nuxt Icon v1","\u002Fblog\u002Fnuxt-icon-v1-0","blog\u002F29.nuxt-icon-v1-0",{"title":2821,"path":2822,"stem":2823},"Introducing Nuxt DevTools","\u002Fblog\u002Fintroducing-nuxt-devtools","blog\u002F3.introducing-nuxt-devtools",{"title":2825,"path":2826,"stem":2827},"Announcing Nuxt 3 Release Candidate","\u002Fblog\u002Fnuxt3-rc","blog\u002F3.nuxt3-rc",{"title":2829,"path":2830,"stem":2831},"Nuxt 2 End-of-Life (EOL)","\u002Fblog\u002Fnuxt2-eol","blog\u002F4.nuxt2-eol",{"title":2833,"path":2834,"stem":2835},"Introducing Nuxt 3 Beta","\u002Fblog\u002Fnuxt3-beta","blog\u002F4.nuxt3-beta",{"title":2837,"path":2838,"stem":2839},"Going Full Static","\u002Fblog\u002Fgoing-full-static","blog\u002F5.going-full-static",{"title":2841,"path":2842,"stem":2843},"Introducing Smart Prefetching","\u002Fblog\u002Fintroducing-smart-prefetching","blog\u002F6.introducing-smart-prefetching",{"title":2845,"path":2846,"stem":2847},"Understanding how fetch works in Nuxt 2.12","\u002Fblog\u002Funderstanding-how-fetch-works-in-nuxt-2-12","blog\u002F7.understanding-how-fetch-works-in-nuxt-2-12",{"title":2849,"path":2850,"stem":2851},"Nuxt 2 Static Improvements","\u002Fblog\u002Fnuxt-static-improvements","blog\u002F8.nuxt-static-improvements",{"title":2853,"path":2854,"stem":2855},"Nuxt 2: From Terminal to Browser","\u002Fblog\u002Fnuxtjs-from-terminal-to-browser","blog\u002F9.nuxtjs-from-terminal-to-browser",{"v5":2857,"v4":2858,"v3":2859,"v2":2860},"5 (nightly)","4.4.2","3.21.2","2.18.1",{"name":2862,"description":2863,"repo":2864,"npm":2865,"icon":2866,"github":2867,"website":2867,"learn_more":2866,"category":2868,"type":2869,"maintainers":2870,"compatibility":2875,"generatedAt":2878,"contributors":2879,"stats":2977,"readme":2985},"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",[2871],{"name":2872,"github":2873,"twitter":2873,"bluesky":2874},"Sébastien Chopin","atinux","atinux.com",{"nuxt":2876,"requires":2877},">=3.0.0",{},"2026-04-10T09:22:57.016Z",[2880,2883,2887,2891,2895,2899,2903,2906,2909,2912,2915,2919,2922,2925,2928,2931,2934,2937,2940,2943,2946,2949,2953,2956,2959,2962,2965,2968,2971,2974],{"id":2881,"username":2873,"contributions":2882},904724,197,{"id":2884,"username":2885,"contributions":2886},28706372,"danielroe",16,{"id":2888,"username":2889,"contributions":2890},50090595,"ahmedrangel",9,{"id":2892,"username":2893,"contributions":2894},12988935,"Gerbuuun",8,{"id":2896,"username":2897,"contributions":2898},45267552,"Barbapapazes",7,{"id":2900,"username":2901,"contributions":2902},13056429,"sandros94",3,{"id":2904,"username":2905,"contributions":2902},16264115,"Yizack",{"id":2907,"username":2908,"contributions":2902},967369,"acidjazz",{"id":2910,"username":2911,"contributions":2902},15887916,"blumgart",{"id":2913,"username":2914,"contributions":2902},67746033,"justserdar",{"id":2916,"username":2917,"contributions":2918},10636392,"brianacdev",2,{"id":2920,"username":2921,"contributions":2918},67898185,"larsrickert",{"id":2923,"username":2924,"contributions":2918},40021217,"kingyue737",{"id":2926,"username":2927,"contributions":2918},59120414,"cth-latest",{"id":2929,"username":2930,"contributions":2918},19751938,"noook",{"id":2932,"username":2933,"contributions":2918},1409645,"mariosant",{"id":2935,"username":2936,"contributions":2918},24661232,"Jorgagu",{"id":2938,"username":2939,"contributions":2918},5326365,"harlan-zw",{"id":2941,"username":2942,"contributions":2918},61092270,"stranavad",{"id":2944,"username":2945,"contributions":2918},1592441,"mendrinos",{"id":2947,"username":2948,"contributions":2918},376963,"bisand",{"id":2950,"username":2951,"contributions":2952},18315316,"Syrex-o",1,{"id":2954,"username":2955,"contributions":2952},3109921,"silvio-e",{"id":2957,"username":2958,"contributions":2952},18753964,"sifferhans",{"id":2960,"username":2961,"contributions":2952},17186421,"samulefevre",{"id":2963,"username":2964,"contributions":2952},15785987,"samydoesit",{"id":2966,"username":2967,"contributions":2952},31662219,"rudokemper",{"id":2969,"username":2970,"contributions":2952},29805551,"RobertHaba",{"id":2972,"username":2973,"contributions":2952},1231105,"SteinRobert",{"id":2975,"username":2976,"contributions":2952},5472296,"robert-hoffmann",{"version":2978,"downloads":2979,"stars":2980,"watchers":2980,"forks":2981,"defaultBranch":2982,"publishedAt":2983,"createdAt":2984},"0.5.29",223861,1556,185,"main",1771335673386,1699356484873,{"data":2986,"body":2988,"toc":13977},{"title":2987,"description":2866},"Nuxt Auth Utils",{"type":2989,"children":2990},"root",[2991,2998,3044,3048,3082,3088,3187,3201,3207,3219,3231,3242,3248,3264,3306,3328,3363,3375,3383,3389,3394,3401,3943,3952,4455,4477,4483,4496,4502,4879,4899,5078,5090,5096,5101,5121,5142,5169,5347,5352,5373,5381,5388,5631,5644,5650,5661,6066,6078,6091,6096,6126,6252,6265,6376,6387,6543,6549,6554,6559,6567,6601,6614,6693,6698,6703,6708,6715,6747,6759,6838,6843,6848,6862,7182,7322,7352,8280,8315,9152,9186,9699,9704,10543,10561,10567,10596,10607,10613,10618,10900,10906,10925,11151,11175,11180,11200,11205,11213,11232,11320,11346,11352,11369,11456,11474,11484,11496,11501,11754,11766,11778,12151,12179,12185,12198,12216,12319,12339,12689,12703,13203,13208,13235,13246,13416,13421,13567,13587,13690,13708,13714,13734,13740,13971],{"type":2992,"tag":2993,"props":2994,"children":2995},"element","h1",{"id":2865},[2996],{"type":2997,"value":2987},"text",{"type":2992,"tag":2999,"props":3000,"children":3001},"p",{},[3002,3015,3025,3034],{"type":2992,"tag":3003,"props":3004,"children":3008},"a",{"href":3005,"rel":3006},"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fnuxt-auth-utils",[3007],"nofollow",[3009],{"type":2992,"tag":3010,"props":3011,"children":3014},"img",{"alt":3012,"src":3013},"npm version","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fnuxt-auth-utils\u002Flatest.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":2992,"tag":3003,"props":3016,"children":3019},{"href":3017,"rel":3018},"https:\u002F\u002Fnpm.chart.dev\u002Fnuxt-auth-utils",[3007],[3020],{"type":2992,"tag":3010,"props":3021,"children":3024},{"alt":3022,"src":3023},"npm downloads","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":2992,"tag":3003,"props":3026,"children":3028},{"href":3005,"rel":3027},[3007],[3029],{"type":2992,"tag":3010,"props":3030,"children":3033},{"alt":3031,"src":3032},"License","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":2992,"tag":3003,"props":3035,"children":3038},{"href":3036,"rel":3037},"https:\u002F\u002Fnuxt.com",[3007],[3039],{"type":2992,"tag":3010,"props":3040,"children":3043},{"alt":3041,"src":3042},"Nuxt","https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNuxt-020420?logo=nuxt.js",[],{"type":2992,"tag":2999,"props":3045,"children":3046},{},[3047],{"type":2997,"value":2863},{"type":2992,"tag":3049,"props":3050,"children":3051},"ul",{},[3052,3062,3072],{"type":2992,"tag":3053,"props":3054,"children":3055},"li",{},[3056],{"type":2992,"tag":3003,"props":3057,"children":3059},{"href":3058},"\u002FCHANGELOG.md",[3060],{"type":2997,"value":3061},"Release Notes",{"type":2992,"tag":3053,"props":3063,"children":3064},{},[3065],{"type":2992,"tag":3003,"props":3066,"children":3069},{"href":3067,"rel":3068},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fatidone",[3007],[3070],{"type":2997,"value":3071},"Demo with OAuth",{"type":2992,"tag":3053,"props":3073,"children":3074},{},[3075],{"type":2992,"tag":3003,"props":3076,"children":3079},{"href":3077,"rel":3078},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Ftodo-passkeys",[3007],[3080],{"type":2997,"value":3081},"Demo with Passkeys",{"type":2992,"tag":3083,"props":3084,"children":3086},"h2",{"id":3085},"features",[3087],{"type":2997,"value":395},{"type":2992,"tag":3049,"props":3089,"children":3090},{},[3091,3102,3111,3120,3129,3145,3154,3169,3178],{"type":2992,"tag":3053,"props":3092,"children":3093},{},[3094,3100],{"type":2992,"tag":3003,"props":3095,"children":3097},{"href":3096},"#hybrid-rendering",[3098],{"type":2997,"value":3099},"Hybrid Rendering",{"type":2997,"value":3101}," support (SSR \u002F CSR \u002F SWR \u002F Prerendering)",{"type":2992,"tag":3053,"props":3103,"children":3104},{},[3105],{"type":2992,"tag":3003,"props":3106,"children":3108},{"href":3107},"#supported-oauth-providers",[3109],{"type":2997,"value":3110},"40+ OAuth Providers",{"type":2992,"tag":3053,"props":3112,"children":3113},{},[3114],{"type":2992,"tag":3003,"props":3115,"children":3117},{"href":3116},"#password-hashing",[3118],{"type":2997,"value":3119},"Password Hashing",{"type":2992,"tag":3053,"props":3121,"children":3122},{},[3123],{"type":2992,"tag":3003,"props":3124,"children":3126},{"href":3125},"#webauthn-passkey",[3127],{"type":2997,"value":3128},"WebAuthn (passkey)",{"type":2992,"tag":3053,"props":3130,"children":3131},{},[3132],{"type":2992,"tag":3003,"props":3133,"children":3135},{"href":3134},"#vue-composable",[3136,3143],{"type":2992,"tag":3137,"props":3138,"children":3140},"code",{"className":3139},[],[3141],{"type":2997,"value":3142},"useUserSession()",{"type":2997,"value":3144}," Vue composable",{"type":2992,"tag":3053,"props":3146,"children":3147},{},[3148],{"type":2992,"tag":3003,"props":3149,"children":3151},{"href":3150},"#server-utils",[3152],{"type":2997,"value":3153},"Tree-shakable server utils",{"type":2992,"tag":3053,"props":3155,"children":3156},{},[3157],{"type":2992,"tag":3003,"props":3158,"children":3160},{"href":3159},"#authstate-component",[3161,3167],{"type":2992,"tag":3137,"props":3162,"children":3164},{"className":3163},[],[3165],{"type":2997,"value":3166},"\u003CAuthState>",{"type":2997,"value":3168}," component",{"type":2992,"tag":3053,"props":3170,"children":3171},{},[3172],{"type":2992,"tag":3003,"props":3173,"children":3175},{"href":3174},"#extend-session",[3176],{"type":2997,"value":3177},"Extendable with hooks",{"type":2992,"tag":3053,"props":3179,"children":3180},{},[3181],{"type":2992,"tag":3003,"props":3182,"children":3184},{"href":3183},"#websocket-support",[3185],{"type":2997,"value":3186},"WebSocket support",{"type":2992,"tag":2999,"props":3188,"children":3189},{},[3190,3192,3199],{"type":2997,"value":3191},"It has few dependencies (only from ",{"type":2992,"tag":3003,"props":3193,"children":3196},{"href":3194,"rel":3195},"https:\u002F\u002Fgithub.com\u002Funjs",[3007],[3197],{"type":2997,"value":3198},"UnJS",{"type":2997,"value":3200},"), run on multiple JS environments (Node, Deno, Workers) and is fully typed with TypeScript.",{"type":2992,"tag":3083,"props":3202,"children":3204},{"id":3203},"requirements",[3205],{"type":2997,"value":3206},"Requirements",{"type":2992,"tag":2999,"props":3208,"children":3209},{},[3210,3212,3217],{"type":2997,"value":3211},"This module only works with a Nuxt server running as it uses server API routes (",{"type":2992,"tag":3137,"props":3213,"children":3215},{"className":3214},[],[3216],{"type":2997,"value":761},{"type":2997,"value":3218},").",{"type":2992,"tag":2999,"props":3220,"children":3221},{},[3222,3224,3229],{"type":2997,"value":3223},"This means that you cannot use this module with ",{"type":2992,"tag":3137,"props":3225,"children":3227},{"className":3226},[],[3228],{"type":2997,"value":781},{"type":2997,"value":3230},".",{"type":2992,"tag":2999,"props":3232,"children":3233},{},[3234,3236,3240],{"type":2997,"value":3235},"You can anyway use ",{"type":2992,"tag":3003,"props":3237,"children":3238},{"href":3096},[3239],{"type":2997,"value":3099},{"type":2997,"value":3241}," to pre-render pages of your application or disable server-side rendering completely.",{"type":2992,"tag":3083,"props":3243,"children":3245},{"id":3244},"quick-setup",[3246],{"type":2997,"value":3247},"Quick Setup",{"type":2992,"tag":3249,"props":3250,"children":3251},"ol",{},[3252],{"type":2992,"tag":3053,"props":3253,"children":3254},{},[3255,3257,3262],{"type":2997,"value":3256},"Add ",{"type":2992,"tag":3137,"props":3258,"children":3260},{"className":3259},[],[3261],{"type":2997,"value":2865},{"type":2997,"value":3263}," in your Nuxt project",{"type":2992,"tag":3265,"props":3266,"children":3270},"pre",{"className":3267,"code":3268,"language":3269,"meta":2866,"style":2866},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","npx nuxi@latest module add auth-utils\n","bash",[3271],{"type":2992,"tag":3137,"props":3272,"children":3273},{"__ignoreMap":2866},[3274],{"type":2992,"tag":3275,"props":3276,"children":3278},"span",{"class":3277,"line":2952},"line",[3279,3285,3291,3296,3301],{"type":2992,"tag":3275,"props":3280,"children":3282},{"style":3281},"--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B",[3283],{"type":2997,"value":3284},"npx",{"type":2992,"tag":3275,"props":3286,"children":3288},{"style":3287},"--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D",[3289],{"type":2997,"value":3290}," nuxi@latest",{"type":2992,"tag":3275,"props":3292,"children":3293},{"style":3287},[3294],{"type":2997,"value":3295}," module",{"type":2992,"tag":3275,"props":3297,"children":3298},{"style":3287},[3299],{"type":2997,"value":3300}," add",{"type":2992,"tag":3275,"props":3302,"children":3303},{"style":3287},[3304],{"type":2997,"value":3305}," auth-utils\n",{"type":2992,"tag":3249,"props":3307,"children":3308},{"start":2918},[3309],{"type":2992,"tag":3053,"props":3310,"children":3311},{},[3312,3314,3320,3322,3327],{"type":2997,"value":3313},"Add a ",{"type":2992,"tag":3137,"props":3315,"children":3317},{"className":3316},[],[3318],{"type":2997,"value":3319},"NUXT_SESSION_PASSWORD",{"type":2997,"value":3321}," env variable with at least 32 characters in the ",{"type":2992,"tag":3137,"props":3323,"children":3325},{"className":3324},[],[3326],{"type":2997,"value":200},{"type":2997,"value":3230},{"type":2992,"tag":3265,"props":3329,"children":3331},{"className":3267,"code":3330,"language":3269,"meta":2866,"style":2866},"# .env\nNUXT_SESSION_PASSWORD=password-with-at-least-32-characters\n",[3332],{"type":2992,"tag":3137,"props":3333,"children":3334},{"__ignoreMap":2866},[3335,3344],{"type":2992,"tag":3275,"props":3336,"children":3337},{"class":3277,"line":2952},[3338],{"type":2992,"tag":3275,"props":3339,"children":3341},{"style":3340},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[3342],{"type":2997,"value":3343},"# .env\n",{"type":2992,"tag":3275,"props":3345,"children":3346},{"class":3277,"line":2918},[3347,3352,3358],{"type":2992,"tag":3275,"props":3348,"children":3350},{"style":3349},"--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8",[3351],{"type":2997,"value":3319},{"type":2992,"tag":3275,"props":3353,"children":3355},{"style":3354},"--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF",[3356],{"type":2997,"value":3357},"=",{"type":2992,"tag":3275,"props":3359,"children":3360},{"style":3287},[3361],{"type":2997,"value":3362},"password-with-at-least-32-characters\n",{"type":2992,"tag":2999,"props":3364,"children":3365},{},[3366,3368,3373],{"type":2997,"value":3367},"Nuxt Auth Utils generates one for you when running Nuxt in development the first time if no ",{"type":2992,"tag":3137,"props":3369,"children":3371},{"className":3370},[],[3372],{"type":2997,"value":3319},{"type":2997,"value":3374}," is set.",{"type":2992,"tag":3249,"props":3376,"children":3377},{"start":2902},[3378],{"type":2992,"tag":3053,"props":3379,"children":3380},{},[3381],{"type":2997,"value":3382},"That's it! You can now add authentication to your Nuxt app ✨",{"type":2992,"tag":3083,"props":3384,"children":3386},{"id":3385},"vue-composable",[3387],{"type":2997,"value":3388},"Vue Composable",{"type":2992,"tag":2999,"props":3390,"children":3391},{},[3392],{"type":2997,"value":3393},"Nuxt Auth Utils automatically adds some plugins to fetch the current user session to let you access it from your Vue components.",{"type":2992,"tag":3395,"props":3396,"children":3398},"h3",{"id":3397},"user-session",[3399],{"type":2997,"value":3400},"User Session",{"type":2992,"tag":3265,"props":3402,"children":3406},{"className":3403,"code":3404,"language":3405,"meta":2866,"style":2866},"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",[3407],{"type":2992,"tag":3137,"props":3408,"children":3409},{"__ignoreMap":2866},[3410,3435,3520,3536,3545,3562,3603,3637,3669,3724,3741,3762,3795,3850,3859,3912,3927],{"type":2992,"tag":3275,"props":3411,"children":3412},{"class":3277,"line":2952},[3413,3418,3424,3430],{"type":2992,"tag":3275,"props":3414,"children":3415},{"style":3354},[3416],{"type":2997,"value":3417},"\u003C",{"type":2992,"tag":3275,"props":3419,"children":3421},{"style":3420},"--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178",[3422],{"type":2997,"value":3423},"script",{"type":2992,"tag":3275,"props":3425,"children":3427},{"style":3426},"--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA",[3428],{"type":2997,"value":3429}," setup",{"type":2992,"tag":3275,"props":3431,"children":3432},{"style":3354},[3433],{"type":2997,"value":3434},">\n",{"type":2992,"tag":3275,"props":3436,"children":3437},{"class":3277,"line":2918},[3438,3443,3448,3453,3458,3463,3467,3472,3476,3481,3485,3490,3494,3499,3504,3509,3515],{"type":2992,"tag":3275,"props":3439,"children":3440},{"style":3426},[3441],{"type":2997,"value":3442},"const",{"type":2992,"tag":3275,"props":3444,"children":3445},{"style":3354},[3446],{"type":2997,"value":3447}," {",{"type":2992,"tag":3275,"props":3449,"children":3450},{"style":3349},[3451],{"type":2997,"value":3452}," loggedIn",{"type":2992,"tag":3275,"props":3454,"children":3455},{"style":3354},[3456],{"type":2997,"value":3457},",",{"type":2992,"tag":3275,"props":3459,"children":3460},{"style":3349},[3461],{"type":2997,"value":3462}," user",{"type":2992,"tag":3275,"props":3464,"children":3465},{"style":3354},[3466],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":3468,"children":3469},{"style":3349},[3470],{"type":2997,"value":3471}," session",{"type":2992,"tag":3275,"props":3473,"children":3474},{"style":3354},[3475],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":3477,"children":3478},{"style":3349},[3479],{"type":2997,"value":3480}," fetch",{"type":2992,"tag":3275,"props":3482,"children":3483},{"style":3354},[3484],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":3486,"children":3487},{"style":3349},[3488],{"type":2997,"value":3489}," clear",{"type":2992,"tag":3275,"props":3491,"children":3492},{"style":3354},[3493],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":3495,"children":3496},{"style":3349},[3497],{"type":2997,"value":3498}," openInPopup ",{"type":2992,"tag":3275,"props":3500,"children":3501},{"style":3354},[3502],{"type":2997,"value":3503},"}",{"type":2992,"tag":3275,"props":3505,"children":3506},{"style":3354},[3507],{"type":2997,"value":3508}," =",{"type":2992,"tag":3275,"props":3510,"children":3512},{"style":3511},"--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF",[3513],{"type":2997,"value":3514}," useUserSession",{"type":2992,"tag":3275,"props":3516,"children":3517},{"style":3349},[3518],{"type":2997,"value":3519},"()\n",{"type":2992,"tag":3275,"props":3521,"children":3522},{"class":3277,"line":2902},[3523,3528,3532],{"type":2992,"tag":3275,"props":3524,"children":3525},{"style":3354},[3526],{"type":2997,"value":3527},"\u003C\u002F",{"type":2992,"tag":3275,"props":3529,"children":3530},{"style":3420},[3531],{"type":2997,"value":3423},{"type":2992,"tag":3275,"props":3533,"children":3534},{"style":3354},[3535],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":3537,"children":3539},{"class":3277,"line":3538},4,[3540],{"type":2992,"tag":3275,"props":3541,"children":3542},{"emptyLinePlaceholder":1196},[3543],{"type":2997,"value":3544},"\n",{"type":2992,"tag":3275,"props":3546,"children":3548},{"class":3277,"line":3547},5,[3549,3553,3558],{"type":2992,"tag":3275,"props":3550,"children":3551},{"style":3354},[3552],{"type":2997,"value":3417},{"type":2992,"tag":3275,"props":3554,"children":3555},{"style":3420},[3556],{"type":2997,"value":3557},"template",{"type":2992,"tag":3275,"props":3559,"children":3560},{"style":3354},[3561],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":3563,"children":3565},{"class":3277,"line":3564},6,[3566,3571,3576,3581,3585,3590,3595,3599],{"type":2992,"tag":3275,"props":3567,"children":3568},{"style":3354},[3569],{"type":2997,"value":3570},"  \u003C",{"type":2992,"tag":3275,"props":3572,"children":3573},{"style":3420},[3574],{"type":2997,"value":3575},"div",{"type":2992,"tag":3275,"props":3577,"children":3578},{"style":3426},[3579],{"type":2997,"value":3580}," v-if",{"type":2992,"tag":3275,"props":3582,"children":3583},{"style":3354},[3584],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":3586,"children":3587},{"style":3354},[3588],{"type":2997,"value":3589},"\"",{"type":2992,"tag":3275,"props":3591,"children":3592},{"style":3287},[3593],{"type":2997,"value":3594},"loggedIn",{"type":2992,"tag":3275,"props":3596,"children":3597},{"style":3354},[3598],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":3600,"children":3601},{"style":3354},[3602],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":3604,"children":3605},{"class":3277,"line":2898},[3606,3611,3615,3620,3625,3629,3633],{"type":2992,"tag":3275,"props":3607,"children":3608},{"style":3354},[3609],{"type":2997,"value":3610},"    \u003C",{"type":2992,"tag":3275,"props":3612,"children":3613},{"style":3420},[3614],{"type":2997,"value":2993},{"type":2992,"tag":3275,"props":3616,"children":3617},{"style":3354},[3618],{"type":2997,"value":3619},">",{"type":2992,"tag":3275,"props":3621,"children":3622},{"style":3349},[3623],{"type":2997,"value":3624},"Welcome {{ user.login }}!",{"type":2992,"tag":3275,"props":3626,"children":3627},{"style":3354},[3628],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":3630,"children":3631},{"style":3420},[3632],{"type":2997,"value":2993},{"type":2992,"tag":3275,"props":3634,"children":3635},{"style":3354},[3636],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":3638,"children":3639},{"class":3277,"line":2894},[3640,3644,3648,3652,3657,3661,3665],{"type":2992,"tag":3275,"props":3641,"children":3642},{"style":3354},[3643],{"type":2997,"value":3610},{"type":2992,"tag":3275,"props":3645,"children":3646},{"style":3420},[3647],{"type":2997,"value":2999},{"type":2992,"tag":3275,"props":3649,"children":3650},{"style":3354},[3651],{"type":2997,"value":3619},{"type":2992,"tag":3275,"props":3653,"children":3654},{"style":3349},[3655],{"type":2997,"value":3656},"Logged in since {{ session.loggedInAt }}",{"type":2992,"tag":3275,"props":3658,"children":3659},{"style":3354},[3660],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":3662,"children":3663},{"style":3420},[3664],{"type":2997,"value":2999},{"type":2992,"tag":3275,"props":3666,"children":3667},{"style":3354},[3668],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":3670,"children":3671},{"class":3277,"line":2890},[3672,3676,3681,3686,3690,3694,3699,3703,3707,3712,3716,3720],{"type":2992,"tag":3275,"props":3673,"children":3674},{"style":3354},[3675],{"type":2997,"value":3610},{"type":2992,"tag":3275,"props":3677,"children":3678},{"style":3420},[3679],{"type":2997,"value":3680},"button",{"type":2992,"tag":3275,"props":3682,"children":3683},{"style":3426},[3684],{"type":2997,"value":3685}," @click",{"type":2992,"tag":3275,"props":3687,"children":3688},{"style":3354},[3689],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":3691,"children":3692},{"style":3354},[3693],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":3695,"children":3696},{"style":3287},[3697],{"type":2997,"value":3698},"clear",{"type":2992,"tag":3275,"props":3700,"children":3701},{"style":3354},[3702],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":3704,"children":3705},{"style":3354},[3706],{"type":2997,"value":3619},{"type":2992,"tag":3275,"props":3708,"children":3709},{"style":3349},[3710],{"type":2997,"value":3711},"Logout",{"type":2992,"tag":3275,"props":3713,"children":3714},{"style":3354},[3715],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":3717,"children":3718},{"style":3420},[3719],{"type":2997,"value":3680},{"type":2992,"tag":3275,"props":3721,"children":3722},{"style":3354},[3723],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":3725,"children":3727},{"class":3277,"line":3726},10,[3728,3733,3737],{"type":2992,"tag":3275,"props":3729,"children":3730},{"style":3354},[3731],{"type":2997,"value":3732},"  \u003C\u002F",{"type":2992,"tag":3275,"props":3734,"children":3735},{"style":3420},[3736],{"type":2997,"value":3575},{"type":2992,"tag":3275,"props":3738,"children":3739},{"style":3354},[3740],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":3742,"children":3744},{"class":3277,"line":3743},11,[3745,3749,3753,3758],{"type":2992,"tag":3275,"props":3746,"children":3747},{"style":3354},[3748],{"type":2997,"value":3570},{"type":2992,"tag":3275,"props":3750,"children":3751},{"style":3420},[3752],{"type":2997,"value":3575},{"type":2992,"tag":3275,"props":3754,"children":3755},{"style":3426},[3756],{"type":2997,"value":3757}," v-else",{"type":2992,"tag":3275,"props":3759,"children":3760},{"style":3354},[3761],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":3763,"children":3765},{"class":3277,"line":3764},12,[3766,3770,3774,3778,3783,3787,3791],{"type":2992,"tag":3275,"props":3767,"children":3768},{"style":3354},[3769],{"type":2997,"value":3610},{"type":2992,"tag":3275,"props":3771,"children":3772},{"style":3420},[3773],{"type":2997,"value":2993},{"type":2992,"tag":3275,"props":3775,"children":3776},{"style":3354},[3777],{"type":2997,"value":3619},{"type":2992,"tag":3275,"props":3779,"children":3780},{"style":3349},[3781],{"type":2997,"value":3782},"Not logged in",{"type":2992,"tag":3275,"props":3784,"children":3785},{"style":3354},[3786],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":3788,"children":3789},{"style":3420},[3790],{"type":2997,"value":2993},{"type":2992,"tag":3275,"props":3792,"children":3793},{"style":3354},[3794],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":3796,"children":3798},{"class":3277,"line":3797},13,[3799,3803,3807,3812,3816,3820,3825,3829,3833,3838,3842,3846],{"type":2992,"tag":3275,"props":3800,"children":3801},{"style":3354},[3802],{"type":2997,"value":3610},{"type":2992,"tag":3275,"props":3804,"children":3805},{"style":3420},[3806],{"type":2997,"value":3003},{"type":2992,"tag":3275,"props":3808,"children":3809},{"style":3426},[3810],{"type":2997,"value":3811}," href",{"type":2992,"tag":3275,"props":3813,"children":3814},{"style":3354},[3815],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":3817,"children":3818},{"style":3354},[3819],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":3821,"children":3822},{"style":3287},[3823],{"type":2997,"value":3824},"\u002Fauth\u002Fgithub",{"type":2992,"tag":3275,"props":3826,"children":3827},{"style":3354},[3828],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":3830,"children":3831},{"style":3354},[3832],{"type":2997,"value":3619},{"type":2992,"tag":3275,"props":3834,"children":3835},{"style":3349},[3836],{"type":2997,"value":3837},"Login with GitHub",{"type":2992,"tag":3275,"props":3839,"children":3840},{"style":3354},[3841],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":3843,"children":3844},{"style":3420},[3845],{"type":2997,"value":3003},{"type":2992,"tag":3275,"props":3847,"children":3848},{"style":3354},[3849],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":3851,"children":3853},{"class":3277,"line":3852},14,[3854],{"type":2992,"tag":3275,"props":3855,"children":3856},{"style":3340},[3857],{"type":2997,"value":3858},"    \u003C!-- or open the OAuth route in a popup -->\n",{"type":2992,"tag":3275,"props":3860,"children":3862},{"class":3277,"line":3861},15,[3863,3867,3871,3875,3879,3883,3888,3892,3896,3900,3904,3908],{"type":2992,"tag":3275,"props":3864,"children":3865},{"style":3354},[3866],{"type":2997,"value":3610},{"type":2992,"tag":3275,"props":3868,"children":3869},{"style":3420},[3870],{"type":2997,"value":3680},{"type":2992,"tag":3275,"props":3872,"children":3873},{"style":3426},[3874],{"type":2997,"value":3685},{"type":2992,"tag":3275,"props":3876,"children":3877},{"style":3354},[3878],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":3880,"children":3881},{"style":3354},[3882],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":3884,"children":3885},{"style":3287},[3886],{"type":2997,"value":3887},"openInPopup('\u002Fauth\u002Fgithub')",{"type":2992,"tag":3275,"props":3889,"children":3890},{"style":3354},[3891],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":3893,"children":3894},{"style":3354},[3895],{"type":2997,"value":3619},{"type":2992,"tag":3275,"props":3897,"children":3898},{"style":3349},[3899],{"type":2997,"value":3837},{"type":2992,"tag":3275,"props":3901,"children":3902},{"style":3354},[3903],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":3905,"children":3906},{"style":3420},[3907],{"type":2997,"value":3680},{"type":2992,"tag":3275,"props":3909,"children":3910},{"style":3354},[3911],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":3913,"children":3914},{"class":3277,"line":2886},[3915,3919,3923],{"type":2992,"tag":3275,"props":3916,"children":3917},{"style":3354},[3918],{"type":2997,"value":3732},{"type":2992,"tag":3275,"props":3920,"children":3921},{"style":3420},[3922],{"type":2997,"value":3575},{"type":2992,"tag":3275,"props":3924,"children":3925},{"style":3354},[3926],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":3928,"children":3930},{"class":3277,"line":3929},17,[3931,3935,3939],{"type":2992,"tag":3275,"props":3932,"children":3933},{"style":3354},[3934],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":3936,"children":3937},{"style":3420},[3938],{"type":2997,"value":3557},{"type":2992,"tag":3275,"props":3940,"children":3941},{"style":3354},[3942],{"type":2997,"value":3434},{"type":2992,"tag":2999,"props":3944,"children":3945},{},[3946],{"type":2992,"tag":3947,"props":3948,"children":3949},"strong",{},[3950],{"type":2997,"value":3951},"TypeScript Signature:",{"type":2992,"tag":3265,"props":3953,"children":3957},{"className":3954,"code":3955,"language":3956,"meta":2866,"style":2866},"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",[3958],{"type":2992,"tag":3137,"props":3959,"children":3960},{"__ignoreMap":2866},[3961,3979,3987,3995,4003,4034,4041,4049,4056,4084,4091,4099,4106,4145,4152,4160,4167,4197,4205,4214,4222,4263,4271,4280,4288,4325,4333,4342,4350,4446],{"type":2992,"tag":3275,"props":3962,"children":3963},{"class":3277,"line":2952},[3964,3969,3974],{"type":2992,"tag":3275,"props":3965,"children":3966},{"style":3426},[3967],{"type":2997,"value":3968},"interface",{"type":2992,"tag":3275,"props":3970,"children":3971},{"style":3281},[3972],{"type":2997,"value":3973}," UserSessionComposable",{"type":2992,"tag":3275,"props":3975,"children":3976},{"style":3354},[3977],{"type":2997,"value":3978}," {\n",{"type":2992,"tag":3275,"props":3980,"children":3981},{"class":3277,"line":2918},[3982],{"type":2992,"tag":3275,"props":3983,"children":3984},{"style":3340},[3985],{"type":2997,"value":3986},"  \u002F**\n",{"type":2992,"tag":3275,"props":3988,"children":3989},{"class":3277,"line":2902},[3990],{"type":2992,"tag":3275,"props":3991,"children":3992},{"style":3340},[3993],{"type":2997,"value":3994},"   * Computed indicating if the auth session is ready\n",{"type":2992,"tag":3275,"props":3996,"children":3997},{"class":3277,"line":3538},[3998],{"type":2992,"tag":3275,"props":3999,"children":4000},{"style":3340},[4001],{"type":2997,"value":4002},"   *\u002F\n",{"type":2992,"tag":3275,"props":4004,"children":4005},{"class":3277,"line":3547},[4006,4011,4016,4021,4025,4030],{"type":2992,"tag":3275,"props":4007,"children":4008},{"style":3420},[4009],{"type":2997,"value":4010},"  ready",{"type":2992,"tag":3275,"props":4012,"children":4013},{"style":3354},[4014],{"type":2997,"value":4015},":",{"type":2992,"tag":3275,"props":4017,"children":4018},{"style":3281},[4019],{"type":2997,"value":4020}," ComputedRef",{"type":2992,"tag":3275,"props":4022,"children":4023},{"style":3354},[4024],{"type":2997,"value":3417},{"type":2992,"tag":3275,"props":4026,"children":4027},{"style":3281},[4028],{"type":2997,"value":4029},"boolean",{"type":2992,"tag":3275,"props":4031,"children":4032},{"style":3354},[4033],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":4035,"children":4036},{"class":3277,"line":3564},[4037],{"type":2992,"tag":3275,"props":4038,"children":4039},{"style":3340},[4040],{"type":2997,"value":3986},{"type":2992,"tag":3275,"props":4042,"children":4043},{"class":3277,"line":2898},[4044],{"type":2992,"tag":3275,"props":4045,"children":4046},{"style":3340},[4047],{"type":2997,"value":4048},"   * Computed indicating if the user is logged in.\n",{"type":2992,"tag":3275,"props":4050,"children":4051},{"class":3277,"line":2894},[4052],{"type":2992,"tag":3275,"props":4053,"children":4054},{"style":3340},[4055],{"type":2997,"value":4002},{"type":2992,"tag":3275,"props":4057,"children":4058},{"class":3277,"line":2890},[4059,4064,4068,4072,4076,4080],{"type":2992,"tag":3275,"props":4060,"children":4061},{"style":3420},[4062],{"type":2997,"value":4063},"  loggedIn",{"type":2992,"tag":3275,"props":4065,"children":4066},{"style":3354},[4067],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":4069,"children":4070},{"style":3281},[4071],{"type":2997,"value":4020},{"type":2992,"tag":3275,"props":4073,"children":4074},{"style":3354},[4075],{"type":2997,"value":3417},{"type":2992,"tag":3275,"props":4077,"children":4078},{"style":3281},[4079],{"type":2997,"value":4029},{"type":2992,"tag":3275,"props":4081,"children":4082},{"style":3354},[4083],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":4085,"children":4086},{"class":3277,"line":3726},[4087],{"type":2992,"tag":3275,"props":4088,"children":4089},{"style":3340},[4090],{"type":2997,"value":3986},{"type":2992,"tag":3275,"props":4092,"children":4093},{"class":3277,"line":3743},[4094],{"type":2992,"tag":3275,"props":4095,"children":4096},{"style":3340},[4097],{"type":2997,"value":4098},"   * The user object if logged in, null otherwise.\n",{"type":2992,"tag":3275,"props":4100,"children":4101},{"class":3277,"line":3764},[4102],{"type":2992,"tag":3275,"props":4103,"children":4104},{"style":3340},[4105],{"type":2997,"value":4002},{"type":2992,"tag":3275,"props":4107,"children":4108},{"class":3277,"line":3797},[4109,4114,4118,4122,4126,4131,4136,4141],{"type":2992,"tag":3275,"props":4110,"children":4111},{"style":3420},[4112],{"type":2997,"value":4113},"  user",{"type":2992,"tag":3275,"props":4115,"children":4116},{"style":3354},[4117],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":4119,"children":4120},{"style":3281},[4121],{"type":2997,"value":4020},{"type":2992,"tag":3275,"props":4123,"children":4124},{"style":3354},[4125],{"type":2997,"value":3417},{"type":2992,"tag":3275,"props":4127,"children":4128},{"style":3281},[4129],{"type":2997,"value":4130},"User",{"type":2992,"tag":3275,"props":4132,"children":4133},{"style":3354},[4134],{"type":2997,"value":4135}," |",{"type":2992,"tag":3275,"props":4137,"children":4138},{"style":3281},[4139],{"type":2997,"value":4140}," null",{"type":2992,"tag":3275,"props":4142,"children":4143},{"style":3354},[4144],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":4146,"children":4147},{"class":3277,"line":3852},[4148],{"type":2992,"tag":3275,"props":4149,"children":4150},{"style":3340},[4151],{"type":2997,"value":3986},{"type":2992,"tag":3275,"props":4153,"children":4154},{"class":3277,"line":3861},[4155],{"type":2992,"tag":3275,"props":4156,"children":4157},{"style":3340},[4158],{"type":2997,"value":4159},"   * The session object.\n",{"type":2992,"tag":3275,"props":4161,"children":4162},{"class":3277,"line":2886},[4163],{"type":2992,"tag":3275,"props":4164,"children":4165},{"style":3340},[4166],{"type":2997,"value":4002},{"type":2992,"tag":3275,"props":4168,"children":4169},{"class":3277,"line":3929},[4170,4175,4179,4184,4188,4193],{"type":2992,"tag":3275,"props":4171,"children":4172},{"style":3420},[4173],{"type":2997,"value":4174},"  session",{"type":2992,"tag":3275,"props":4176,"children":4177},{"style":3354},[4178],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":4180,"children":4181},{"style":3281},[4182],{"type":2997,"value":4183}," Ref",{"type":2992,"tag":3275,"props":4185,"children":4186},{"style":3354},[4187],{"type":2997,"value":3417},{"type":2992,"tag":3275,"props":4189,"children":4190},{"style":3281},[4191],{"type":2997,"value":4192},"UserSession",{"type":2992,"tag":3275,"props":4194,"children":4195},{"style":3354},[4196],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":4198,"children":4200},{"class":3277,"line":4199},18,[4201],{"type":2992,"tag":3275,"props":4202,"children":4203},{"style":3340},[4204],{"type":2997,"value":3986},{"type":2992,"tag":3275,"props":4206,"children":4208},{"class":3277,"line":4207},19,[4209],{"type":2992,"tag":3275,"props":4210,"children":4211},{"style":3340},[4212],{"type":2997,"value":4213},"   * Fetch the user session from the server.\n",{"type":2992,"tag":3275,"props":4215,"children":4217},{"class":3277,"line":4216},20,[4218],{"type":2992,"tag":3275,"props":4219,"children":4220},{"style":3340},[4221],{"type":2997,"value":4002},{"type":2992,"tag":3275,"props":4223,"children":4225},{"class":3277,"line":4224},21,[4226,4231,4235,4240,4245,4250,4254,4259],{"type":2992,"tag":3275,"props":4227,"children":4228},{"style":3420},[4229],{"type":2997,"value":4230},"  fetch",{"type":2992,"tag":3275,"props":4232,"children":4233},{"style":3354},[4234],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":4236,"children":4237},{"style":3354},[4238],{"type":2997,"value":4239}," ()",{"type":2992,"tag":3275,"props":4241,"children":4242},{"style":3426},[4243],{"type":2997,"value":4244}," =>",{"type":2992,"tag":3275,"props":4246,"children":4247},{"style":3281},[4248],{"type":2997,"value":4249}," Promise",{"type":2992,"tag":3275,"props":4251,"children":4252},{"style":3354},[4253],{"type":2997,"value":3417},{"type":2992,"tag":3275,"props":4255,"children":4256},{"style":3281},[4257],{"type":2997,"value":4258},"void",{"type":2992,"tag":3275,"props":4260,"children":4261},{"style":3354},[4262],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":4264,"children":4266},{"class":3277,"line":4265},22,[4267],{"type":2992,"tag":3275,"props":4268,"children":4269},{"style":3340},[4270],{"type":2997,"value":3986},{"type":2992,"tag":3275,"props":4272,"children":4274},{"class":3277,"line":4273},23,[4275],{"type":2992,"tag":3275,"props":4276,"children":4277},{"style":3340},[4278],{"type":2997,"value":4279},"   * Clear the user session and remove the session cookie.\n",{"type":2992,"tag":3275,"props":4281,"children":4283},{"class":3277,"line":4282},24,[4284],{"type":2992,"tag":3275,"props":4285,"children":4286},{"style":3340},[4287],{"type":2997,"value":4002},{"type":2992,"tag":3275,"props":4289,"children":4291},{"class":3277,"line":4290},25,[4292,4297,4301,4305,4309,4313,4317,4321],{"type":2992,"tag":3275,"props":4293,"children":4294},{"style":3420},[4295],{"type":2997,"value":4296},"  clear",{"type":2992,"tag":3275,"props":4298,"children":4299},{"style":3354},[4300],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":4302,"children":4303},{"style":3354},[4304],{"type":2997,"value":4239},{"type":2992,"tag":3275,"props":4306,"children":4307},{"style":3426},[4308],{"type":2997,"value":4244},{"type":2992,"tag":3275,"props":4310,"children":4311},{"style":3281},[4312],{"type":2997,"value":4249},{"type":2992,"tag":3275,"props":4314,"children":4315},{"style":3354},[4316],{"type":2997,"value":3417},{"type":2992,"tag":3275,"props":4318,"children":4319},{"style":3281},[4320],{"type":2997,"value":4258},{"type":2992,"tag":3275,"props":4322,"children":4323},{"style":3354},[4324],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":4326,"children":4328},{"class":3277,"line":4327},26,[4329],{"type":2992,"tag":3275,"props":4330,"children":4331},{"style":3340},[4332],{"type":2997,"value":3986},{"type":2992,"tag":3275,"props":4334,"children":4336},{"class":3277,"line":4335},27,[4337],{"type":2992,"tag":3275,"props":4338,"children":4339},{"style":3340},[4340],{"type":2997,"value":4341},"   * Open the OAuth route in a popup that auto-closes when successful.\n",{"type":2992,"tag":3275,"props":4343,"children":4345},{"class":3277,"line":4344},28,[4346],{"type":2992,"tag":3275,"props":4347,"children":4348},{"style":3340},[4349],{"type":2997,"value":4002},{"type":2992,"tag":3275,"props":4351,"children":4353},{"class":3277,"line":4352},29,[4354,4359,4363,4368,4374,4378,4383,4387,4392,4397,4401,4406,4410,4415,4419,4424,4428,4432,4437,4441],{"type":2992,"tag":3275,"props":4355,"children":4356},{"style":3420},[4357],{"type":2997,"value":4358},"  openInPopup",{"type":2992,"tag":3275,"props":4360,"children":4361},{"style":3354},[4362],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":4364,"children":4365},{"style":3354},[4366],{"type":2997,"value":4367}," (",{"type":2992,"tag":3275,"props":4369,"children":4371},{"style":4370},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[4372],{"type":2997,"value":4373},"route",{"type":2992,"tag":3275,"props":4375,"children":4376},{"style":3354},[4377],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":4379,"children":4380},{"style":3281},[4381],{"type":2997,"value":4382}," string",{"type":2992,"tag":3275,"props":4384,"children":4385},{"style":3354},[4386],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":4388,"children":4389},{"style":4370},[4390],{"type":2997,"value":4391}," size",{"type":2992,"tag":3275,"props":4393,"children":4394},{"style":3354},[4395],{"type":2997,"value":4396},"?:",{"type":2992,"tag":3275,"props":4398,"children":4399},{"style":3354},[4400],{"type":2997,"value":3447},{"type":2992,"tag":3275,"props":4402,"children":4403},{"style":3420},[4404],{"type":2997,"value":4405}," width",{"type":2992,"tag":3275,"props":4407,"children":4408},{"style":3354},[4409],{"type":2997,"value":4396},{"type":2992,"tag":3275,"props":4411,"children":4412},{"style":3281},[4413],{"type":2997,"value":4414}," number",{"type":2992,"tag":3275,"props":4416,"children":4417},{"style":3354},[4418],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":4420,"children":4421},{"style":3420},[4422],{"type":2997,"value":4423}," height",{"type":2992,"tag":3275,"props":4425,"children":4426},{"style":3354},[4427],{"type":2997,"value":4396},{"type":2992,"tag":3275,"props":4429,"children":4430},{"style":3281},[4431],{"type":2997,"value":4414},{"type":2992,"tag":3275,"props":4433,"children":4434},{"style":3354},[4435],{"type":2997,"value":4436}," })",{"type":2992,"tag":3275,"props":4438,"children":4439},{"style":3426},[4440],{"type":2997,"value":4244},{"type":2992,"tag":3275,"props":4442,"children":4443},{"style":3281},[4444],{"type":2997,"value":4445}," void\n",{"type":2992,"tag":3275,"props":4447,"children":4449},{"class":3277,"line":4448},30,[4450],{"type":2992,"tag":3275,"props":4451,"children":4452},{"style":3354},[4453],{"type":2997,"value":4454},"}\n",{"type":2992,"tag":4456,"props":4457,"children":4458},"blockquote",{},[4459],{"type":2992,"tag":2999,"props":4460,"children":4461},{},[4462,4467,4469,4475],{"type":2992,"tag":3275,"props":4463,"children":4464},{},[4465],{"type":2997,"value":4466},"!IMPORTANT",{"type":2997,"value":4468},"\nNuxt Auth Utils uses the ",{"type":2992,"tag":3137,"props":4470,"children":4472},{"className":4471},[],[4473],{"type":2997,"value":4474},"\u002Fapi\u002F_auth\u002Fsession",{"type":2997,"value":4476}," route for session management. Ensure your API route middleware doesn't interfere with this path.",{"type":2992,"tag":3083,"props":4478,"children":4480},{"id":4479},"server-utils",[4481],{"type":2997,"value":4482},"Server Utils",{"type":2992,"tag":2999,"props":4484,"children":4485},{},[4486,4488,4494],{"type":2997,"value":4487},"The following helpers are auto-imported in your ",{"type":2992,"tag":3137,"props":4489,"children":4491},{"className":4490},[],[4492],{"type":2997,"value":4493},"server\u002F",{"type":2997,"value":4495}," directory.",{"type":2992,"tag":3395,"props":4497,"children":4499},{"id":4498},"session-management",[4500],{"type":2997,"value":4501},"Session Management",{"type":2992,"tag":3265,"props":4503,"children":4505},{"className":3954,"code":4504,"language":3956,"meta":2866,"style":2866},"\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",[4506],{"type":2992,"tag":3137,"props":4507,"children":4508},{"__ignoreMap":2866},[4509,4517,4525,4533,4560,4568,4583,4609,4617,4625,4641,4666,4673,4681,4707,4719,4726,4734,4759,4766,4774,4805,4812,4820,4836,4843,4851],{"type":2992,"tag":3275,"props":4510,"children":4511},{"class":3277,"line":2952},[4512],{"type":2992,"tag":3275,"props":4513,"children":4514},{"style":3340},[4515],{"type":2997,"value":4516},"\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":2992,"tag":3275,"props":4518,"children":4519},{"class":3277,"line":2918},[4520],{"type":2992,"tag":3275,"props":4521,"children":4522},{"style":3340},[4523],{"type":2997,"value":4524},"\u002F\u002F Only store the data that allow you to recognize a user, but do not store sensitive data\n",{"type":2992,"tag":3275,"props":4526,"children":4527},{"class":3277,"line":2902},[4528],{"type":2992,"tag":3275,"props":4529,"children":4530},{"style":3340},[4531],{"type":2997,"value":4532},"\u002F\u002F Merges new data with existing data using unjs\u002Fdefu library\n",{"type":2992,"tag":3275,"props":4534,"children":4535},{"class":3277,"line":3538},[4536,4542,4547,4552,4556],{"type":2992,"tag":3275,"props":4537,"children":4539},{"style":4538},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[4540],{"type":2997,"value":4541},"await",{"type":2992,"tag":3275,"props":4543,"children":4544},{"style":3511},[4545],{"type":2997,"value":4546}," setUserSession",{"type":2992,"tag":3275,"props":4548,"children":4549},{"style":3349},[4550],{"type":2997,"value":4551},"(event",{"type":2992,"tag":3275,"props":4553,"children":4554},{"style":3354},[4555],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":4557,"children":4558},{"style":3354},[4559],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":4561,"children":4562},{"class":3277,"line":3547},[4563],{"type":2992,"tag":3275,"props":4564,"children":4565},{"style":3340},[4566],{"type":2997,"value":4567},"  \u002F\u002F User data\n",{"type":2992,"tag":3275,"props":4569,"children":4570},{"class":3277,"line":3564},[4571,4575,4579],{"type":2992,"tag":3275,"props":4572,"children":4573},{"style":3420},[4574],{"type":2997,"value":4113},{"type":2992,"tag":3275,"props":4576,"children":4577},{"style":3354},[4578],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":4580,"children":4581},{"style":3354},[4582],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":4584,"children":4585},{"class":3277,"line":2898},[4586,4591,4595,4600,4604],{"type":2992,"tag":3275,"props":4587,"children":4588},{"style":3420},[4589],{"type":2997,"value":4590},"    login",{"type":2992,"tag":3275,"props":4592,"children":4593},{"style":3354},[4594],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":4596,"children":4597},{"style":3354},[4598],{"type":2997,"value":4599}," '",{"type":2992,"tag":3275,"props":4601,"children":4602},{"style":3287},[4603],{"type":2997,"value":2873},{"type":2992,"tag":3275,"props":4605,"children":4606},{"style":3354},[4607],{"type":2997,"value":4608},"'\n",{"type":2992,"tag":3275,"props":4610,"children":4611},{"class":3277,"line":2894},[4612],{"type":2992,"tag":3275,"props":4613,"children":4614},{"style":3354},[4615],{"type":2997,"value":4616},"  },\n",{"type":2992,"tag":3275,"props":4618,"children":4619},{"class":3277,"line":2890},[4620],{"type":2992,"tag":3275,"props":4621,"children":4622},{"style":3340},[4623],{"type":2997,"value":4624},"  \u002F\u002F Private data accessible only on server\u002F routes\n",{"type":2992,"tag":3275,"props":4626,"children":4627},{"class":3277,"line":3726},[4628,4633,4637],{"type":2992,"tag":3275,"props":4629,"children":4630},{"style":3420},[4631],{"type":2997,"value":4632},"  secure",{"type":2992,"tag":3275,"props":4634,"children":4635},{"style":3354},[4636],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":4638,"children":4639},{"style":3354},[4640],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":4642,"children":4643},{"class":3277,"line":3743},[4644,4649,4653,4657,4662],{"type":2992,"tag":3275,"props":4645,"children":4646},{"style":3420},[4647],{"type":2997,"value":4648},"    apiToken",{"type":2992,"tag":3275,"props":4650,"children":4651},{"style":3354},[4652],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":4654,"children":4655},{"style":3354},[4656],{"type":2997,"value":4599},{"type":2992,"tag":3275,"props":4658,"children":4659},{"style":3287},[4660],{"type":2997,"value":4661},"1234567890",{"type":2992,"tag":3275,"props":4663,"children":4664},{"style":3354},[4665],{"type":2997,"value":4608},{"type":2992,"tag":3275,"props":4667,"children":4668},{"class":3277,"line":3764},[4669],{"type":2992,"tag":3275,"props":4670,"children":4671},{"style":3354},[4672],{"type":2997,"value":4616},{"type":2992,"tag":3275,"props":4674,"children":4675},{"class":3277,"line":3797},[4676],{"type":2992,"tag":3275,"props":4677,"children":4678},{"style":3340},[4679],{"type":2997,"value":4680},"  \u002F\u002F Any extra fields for the session data\n",{"type":2992,"tag":3275,"props":4682,"children":4683},{"class":3277,"line":3852},[4684,4689,4693,4698,4703],{"type":2992,"tag":3275,"props":4685,"children":4686},{"style":3420},[4687],{"type":2997,"value":4688},"  loggedInAt",{"type":2992,"tag":3275,"props":4690,"children":4691},{"style":3354},[4692],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":4694,"children":4695},{"style":3354},[4696],{"type":2997,"value":4697}," new",{"type":2992,"tag":3275,"props":4699,"children":4700},{"style":3511},[4701],{"type":2997,"value":4702}," Date",{"type":2992,"tag":3275,"props":4704,"children":4705},{"style":3349},[4706],{"type":2997,"value":3519},{"type":2992,"tag":3275,"props":4708,"children":4709},{"class":3277,"line":3861},[4710,4714],{"type":2992,"tag":3275,"props":4711,"children":4712},{"style":3354},[4713],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":4715,"children":4716},{"style":3349},[4717],{"type":2997,"value":4718},")\n",{"type":2992,"tag":3275,"props":4720,"children":4721},{"class":3277,"line":2886},[4722],{"type":2992,"tag":3275,"props":4723,"children":4724},{"emptyLinePlaceholder":1196},[4725],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":4727,"children":4728},{"class":3277,"line":3929},[4729],{"type":2992,"tag":3275,"props":4730,"children":4731},{"style":3340},[4732],{"type":2997,"value":4733},"\u002F\u002F Replace a user session. Same behaviour as setUserSession, except it does not merge data with existing data\n",{"type":2992,"tag":3275,"props":4735,"children":4736},{"class":3277,"line":4199},[4737,4741,4746,4750,4754],{"type":2992,"tag":3275,"props":4738,"children":4739},{"style":4538},[4740],{"type":2997,"value":4541},{"type":2992,"tag":3275,"props":4742,"children":4743},{"style":3511},[4744],{"type":2997,"value":4745}," replaceUserSession",{"type":2992,"tag":3275,"props":4747,"children":4748},{"style":3349},[4749],{"type":2997,"value":4551},{"type":2992,"tag":3275,"props":4751,"children":4752},{"style":3354},[4753],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":4755,"children":4756},{"style":3349},[4757],{"type":2997,"value":4758}," data)\n",{"type":2992,"tag":3275,"props":4760,"children":4761},{"class":3277,"line":4207},[4762],{"type":2992,"tag":3275,"props":4763,"children":4764},{"emptyLinePlaceholder":1196},[4765],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":4767,"children":4768},{"class":3277,"line":4216},[4769],{"type":2992,"tag":3275,"props":4770,"children":4771},{"style":3340},[4772],{"type":2997,"value":4773},"\u002F\u002F Get the current user session\n",{"type":2992,"tag":3275,"props":4775,"children":4776},{"class":3277,"line":4224},[4777,4781,4786,4790,4795,4800],{"type":2992,"tag":3275,"props":4778,"children":4779},{"style":3426},[4780],{"type":2997,"value":3442},{"type":2992,"tag":3275,"props":4782,"children":4783},{"style":3349},[4784],{"type":2997,"value":4785}," session ",{"type":2992,"tag":3275,"props":4787,"children":4788},{"style":3354},[4789],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":4791,"children":4792},{"style":4538},[4793],{"type":2997,"value":4794}," await",{"type":2992,"tag":3275,"props":4796,"children":4797},{"style":3511},[4798],{"type":2997,"value":4799}," getUserSession",{"type":2992,"tag":3275,"props":4801,"children":4802},{"style":3349},[4803],{"type":2997,"value":4804},"(event)\n",{"type":2992,"tag":3275,"props":4806,"children":4807},{"class":3277,"line":4265},[4808],{"type":2992,"tag":3275,"props":4809,"children":4810},{"emptyLinePlaceholder":1196},[4811],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":4813,"children":4814},{"class":3277,"line":4273},[4815],{"type":2992,"tag":3275,"props":4816,"children":4817},{"style":3340},[4818],{"type":2997,"value":4819},"\u002F\u002F Clear the current user session\n",{"type":2992,"tag":3275,"props":4821,"children":4822},{"class":3277,"line":4282},[4823,4827,4832],{"type":2992,"tag":3275,"props":4824,"children":4825},{"style":4538},[4826],{"type":2997,"value":4541},{"type":2992,"tag":3275,"props":4828,"children":4829},{"style":3511},[4830],{"type":2997,"value":4831}," clearUserSession",{"type":2992,"tag":3275,"props":4833,"children":4834},{"style":3349},[4835],{"type":2997,"value":4804},{"type":2992,"tag":3275,"props":4837,"children":4838},{"class":3277,"line":4290},[4839],{"type":2992,"tag":3275,"props":4840,"children":4841},{"emptyLinePlaceholder":1196},[4842],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":4844,"children":4845},{"class":3277,"line":4327},[4846],{"type":2992,"tag":3275,"props":4847,"children":4848},{"style":3340},[4849],{"type":2997,"value":4850},"\u002F\u002F Require a user session (send back 401 if no `user` key in session)\n",{"type":2992,"tag":3275,"props":4852,"children":4853},{"class":3277,"line":4335},[4854,4858,4862,4866,4870,4875],{"type":2992,"tag":3275,"props":4855,"children":4856},{"style":3426},[4857],{"type":2997,"value":3442},{"type":2992,"tag":3275,"props":4859,"children":4860},{"style":3349},[4861],{"type":2997,"value":4785},{"type":2992,"tag":3275,"props":4863,"children":4864},{"style":3354},[4865],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":4867,"children":4868},{"style":4538},[4869],{"type":2997,"value":4794},{"type":2992,"tag":3275,"props":4871,"children":4872},{"style":3511},[4873],{"type":2997,"value":4874}," requireUserSession",{"type":2992,"tag":3275,"props":4876,"children":4877},{"style":3349},[4878],{"type":2997,"value":4804},{"type":2992,"tag":2999,"props":4880,"children":4881},{},[4882,4884,4890,4892,4897],{"type":2997,"value":4883},"You can define the type for your user session by creating a type declaration file (for example, ",{"type":2992,"tag":3137,"props":4885,"children":4887},{"className":4886},[],[4888],{"type":2997,"value":4889},"auth.d.ts",{"type":2997,"value":4891},") in your project to augment the ",{"type":2992,"tag":3137,"props":4893,"children":4895},{"className":4894},[],[4896],{"type":2997,"value":4192},{"type":2997,"value":4898}," type:",{"type":2992,"tag":3265,"props":4900,"children":4902},{"className":3954,"code":4901,"language":3956,"meta":2866,"style":2866},"\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",[4903],{"type":2992,"tag":3137,"props":4904,"children":4905},{"__ignoreMap":2866},[4906,4914,4944,4961,4969,4977,4984,5000,5007,5014,5021,5037,5044,5051,5058,5065],{"type":2992,"tag":3275,"props":4907,"children":4908},{"class":3277,"line":2952},[4909],{"type":2992,"tag":3275,"props":4910,"children":4911},{"style":3340},[4912],{"type":2997,"value":4913},"\u002F\u002F shared\u002Ftypes\u002Fauth.d.ts\n",{"type":2992,"tag":3275,"props":4915,"children":4916},{"class":3277,"line":2918},[4917,4922,4926,4930,4935,4940],{"type":2992,"tag":3275,"props":4918,"children":4919},{"style":3426},[4920],{"type":2997,"value":4921},"declare",{"type":2992,"tag":3275,"props":4923,"children":4924},{"style":3426},[4925],{"type":2997,"value":3295},{"type":2992,"tag":3275,"props":4927,"children":4928},{"style":3354},[4929],{"type":2997,"value":4599},{"type":2992,"tag":3275,"props":4931,"children":4932},{"style":3287},[4933],{"type":2997,"value":4934},"#auth-utils",{"type":2992,"tag":3275,"props":4936,"children":4937},{"style":3354},[4938],{"type":2997,"value":4939},"'",{"type":2992,"tag":3275,"props":4941,"children":4942},{"style":3354},[4943],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":4945,"children":4946},{"class":3277,"line":2902},[4947,4952,4957],{"type":2992,"tag":3275,"props":4948,"children":4949},{"style":3426},[4950],{"type":2997,"value":4951},"  interface",{"type":2992,"tag":3275,"props":4953,"children":4954},{"style":3281},[4955],{"type":2997,"value":4956}," User",{"type":2992,"tag":3275,"props":4958,"children":4959},{"style":3354},[4960],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":4962,"children":4963},{"class":3277,"line":3538},[4964],{"type":2992,"tag":3275,"props":4965,"children":4966},{"style":3340},[4967],{"type":2997,"value":4968},"    \u002F\u002F Add your own fields\n",{"type":2992,"tag":3275,"props":4970,"children":4971},{"class":3277,"line":3547},[4972],{"type":2992,"tag":3275,"props":4973,"children":4974},{"style":3354},[4975],{"type":2997,"value":4976},"  }\n",{"type":2992,"tag":3275,"props":4978,"children":4979},{"class":3277,"line":3564},[4980],{"type":2992,"tag":3275,"props":4981,"children":4982},{"emptyLinePlaceholder":1196},[4983],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":4985,"children":4986},{"class":3277,"line":2898},[4987,4991,4996],{"type":2992,"tag":3275,"props":4988,"children":4989},{"style":3426},[4990],{"type":2997,"value":4951},{"type":2992,"tag":3275,"props":4992,"children":4993},{"style":3281},[4994],{"type":2997,"value":4995}," UserSession",{"type":2992,"tag":3275,"props":4997,"children":4998},{"style":3354},[4999],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":5001,"children":5002},{"class":3277,"line":2894},[5003],{"type":2992,"tag":3275,"props":5004,"children":5005},{"style":3340},[5006],{"type":2997,"value":4968},{"type":2992,"tag":3275,"props":5008,"children":5009},{"class":3277,"line":2890},[5010],{"type":2992,"tag":3275,"props":5011,"children":5012},{"style":3354},[5013],{"type":2997,"value":4976},{"type":2992,"tag":3275,"props":5015,"children":5016},{"class":3277,"line":3726},[5017],{"type":2992,"tag":3275,"props":5018,"children":5019},{"emptyLinePlaceholder":1196},[5020],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":5022,"children":5023},{"class":3277,"line":3743},[5024,5028,5033],{"type":2992,"tag":3275,"props":5025,"children":5026},{"style":3426},[5027],{"type":2997,"value":4951},{"type":2992,"tag":3275,"props":5029,"children":5030},{"style":3281},[5031],{"type":2997,"value":5032}," SecureSessionData",{"type":2992,"tag":3275,"props":5034,"children":5035},{"style":3354},[5036],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":5038,"children":5039},{"class":3277,"line":3764},[5040],{"type":2992,"tag":3275,"props":5041,"children":5042},{"style":3340},[5043],{"type":2997,"value":4968},{"type":2992,"tag":3275,"props":5045,"children":5046},{"class":3277,"line":3797},[5047],{"type":2992,"tag":3275,"props":5048,"children":5049},{"style":3354},[5050],{"type":2997,"value":4976},{"type":2992,"tag":3275,"props":5052,"children":5053},{"class":3277,"line":3852},[5054],{"type":2992,"tag":3275,"props":5055,"children":5056},{"style":3354},[5057],{"type":2997,"value":4454},{"type":2992,"tag":3275,"props":5059,"children":5060},{"class":3277,"line":3861},[5061],{"type":2992,"tag":3275,"props":5062,"children":5063},{"emptyLinePlaceholder":1196},[5064],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":5066,"children":5067},{"class":3277,"line":2886},[5068,5073],{"type":2992,"tag":3275,"props":5069,"children":5070},{"style":4538},[5071],{"type":2997,"value":5072},"export",{"type":2992,"tag":3275,"props":5074,"children":5075},{"style":3354},[5076],{"type":2997,"value":5077}," {}\n",{"type":2992,"tag":4456,"props":5079,"children":5080},{},[5081],{"type":2992,"tag":2999,"props":5082,"children":5083},{},[5084,5088],{"type":2992,"tag":3275,"props":5085,"children":5086},{},[5087],{"type":2997,"value":4466},{"type":2997,"value":5089},"\nSince we encrypt and store session data in cookies, we're constrained by the 4096-byte cookie size limit. Store only essential information.",{"type":2992,"tag":3395,"props":5091,"children":5093},{"id":5092},"oauth-event-handlers",[5094],{"type":2997,"value":5095},"OAuth Event Handlers",{"type":2992,"tag":2999,"props":5097,"children":5098},{},[5099],{"type":2997,"value":5100},"All handlers can be auto-imported and used in your server routes or API routes.",{"type":2992,"tag":2999,"props":5102,"children":5103},{},[5104,5106,5112,5114,5120],{"type":2997,"value":5105},"The pattern is ",{"type":2992,"tag":3137,"props":5107,"children":5109},{"className":5108},[],[5110],{"type":2997,"value":5111},"defineOAuth\u003CProvider>EventHandler({ onSuccess, config?, onError? })",{"type":2997,"value":5113},", example: ",{"type":2992,"tag":3137,"props":5115,"children":5117},{"className":5116},[],[5118],{"type":2997,"value":5119},"defineOAuthGitHubEventHandler",{"type":2997,"value":3230},{"type":2992,"tag":2999,"props":5122,"children":5123},{},[5124,5126,5132,5134,5140],{"type":2997,"value":5125},"The helper returns an event handler that automatically redirects to the provider authorization page and then calls ",{"type":2992,"tag":3137,"props":5127,"children":5129},{"className":5128},[],[5130],{"type":2997,"value":5131},"onSuccess",{"type":2997,"value":5133}," or ",{"type":2992,"tag":3137,"props":5135,"children":5137},{"className":5136},[],[5138],{"type":2997,"value":5139},"onError",{"type":2997,"value":5141}," depending on the result.",{"type":2992,"tag":2999,"props":5143,"children":5144},{},[5145,5147,5153,5155,5161,5163,5168],{"type":2997,"value":5146},"The ",{"type":2992,"tag":3137,"props":5148,"children":5150},{"className":5149},[],[5151],{"type":2997,"value":5152},"config",{"type":2997,"value":5154}," can be defined directly from the ",{"type":2992,"tag":3137,"props":5156,"children":5158},{"className":5157},[],[5159],{"type":2997,"value":5160},"runtimeConfig",{"type":2997,"value":5162}," in your ",{"type":2992,"tag":3137,"props":5164,"children":5166},{"className":5165},[],[5167],{"type":2997,"value":233},{"type":2997,"value":4015},{"type":2992,"tag":3265,"props":5170,"children":5172},{"className":3954,"code":5171,"language":3956,"meta":2866,"style":2866},"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",[5173],{"type":2992,"tag":3137,"props":5174,"children":5175},{"__ignoreMap":2866},[5176,5203,5219,5235,5243,5259,5289,5313,5321,5329,5336],{"type":2992,"tag":3275,"props":5177,"children":5178},{"class":3277,"line":2952},[5179,5183,5188,5193,5198],{"type":2992,"tag":3275,"props":5180,"children":5181},{"style":4538},[5182],{"type":2997,"value":5072},{"type":2992,"tag":3275,"props":5184,"children":5185},{"style":4538},[5186],{"type":2997,"value":5187}," default",{"type":2992,"tag":3275,"props":5189,"children":5190},{"style":3511},[5191],{"type":2997,"value":5192}," defineNuxtConfig",{"type":2992,"tag":3275,"props":5194,"children":5195},{"style":3349},[5196],{"type":2997,"value":5197},"(",{"type":2992,"tag":3275,"props":5199,"children":5200},{"style":3354},[5201],{"type":2997,"value":5202},"{\n",{"type":2992,"tag":3275,"props":5204,"children":5205},{"class":3277,"line":2918},[5206,5211,5215],{"type":2992,"tag":3275,"props":5207,"children":5208},{"style":3420},[5209],{"type":2997,"value":5210},"  runtimeConfig",{"type":2992,"tag":3275,"props":5212,"children":5213},{"style":3354},[5214],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":5216,"children":5217},{"style":3354},[5218],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":5220,"children":5221},{"class":3277,"line":2902},[5222,5227,5231],{"type":2992,"tag":3275,"props":5223,"children":5224},{"style":3420},[5225],{"type":2997,"value":5226},"    oauth",{"type":2992,"tag":3275,"props":5228,"children":5229},{"style":3354},[5230],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":5232,"children":5233},{"style":3354},[5234],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":5236,"children":5237},{"class":3277,"line":3538},[5238],{"type":2992,"tag":3275,"props":5239,"children":5240},{"style":3340},[5241],{"type":2997,"value":5242},"      \u002F\u002F provider in lowercase (github, google, etc.)\n",{"type":2992,"tag":3275,"props":5244,"children":5245},{"class":3277,"line":3547},[5246,5251,5255],{"type":2992,"tag":3275,"props":5247,"children":5248},{"style":3349},[5249],{"type":2997,"value":5250},"      \u003Cprovider>",{"type":2992,"tag":3275,"props":5252,"children":5253},{"style":3354},[5254],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":5256,"children":5257},{"style":3354},[5258],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":5260,"children":5261},{"class":3277,"line":3564},[5262,5267,5271,5275,5280,5284],{"type":2992,"tag":3275,"props":5263,"children":5264},{"style":3420},[5265],{"type":2997,"value":5266},"        clientId",{"type":2992,"tag":3275,"props":5268,"children":5269},{"style":3354},[5270],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":5272,"children":5273},{"style":3354},[5274],{"type":2997,"value":4599},{"type":2992,"tag":3275,"props":5276,"children":5277},{"style":3287},[5278],{"type":2997,"value":5279},"...",{"type":2992,"tag":3275,"props":5281,"children":5282},{"style":3354},[5283],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":5285,"children":5286},{"style":3354},[5287],{"type":2997,"value":5288},",\n",{"type":2992,"tag":3275,"props":5290,"children":5291},{"class":3277,"line":2898},[5292,5297,5301,5305,5309],{"type":2992,"tag":3275,"props":5293,"children":5294},{"style":3420},[5295],{"type":2997,"value":5296},"        clientSecret",{"type":2992,"tag":3275,"props":5298,"children":5299},{"style":3354},[5300],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":5302,"children":5303},{"style":3354},[5304],{"type":2997,"value":4599},{"type":2992,"tag":3275,"props":5306,"children":5307},{"style":3287},[5308],{"type":2997,"value":5279},{"type":2992,"tag":3275,"props":5310,"children":5311},{"style":3354},[5312],{"type":2997,"value":4608},{"type":2992,"tag":3275,"props":5314,"children":5315},{"class":3277,"line":2894},[5316],{"type":2992,"tag":3275,"props":5317,"children":5318},{"style":3354},[5319],{"type":2997,"value":5320},"      }\n",{"type":2992,"tag":3275,"props":5322,"children":5323},{"class":3277,"line":2890},[5324],{"type":2992,"tag":3275,"props":5325,"children":5326},{"style":3354},[5327],{"type":2997,"value":5328},"    }\n",{"type":2992,"tag":3275,"props":5330,"children":5331},{"class":3277,"line":3726},[5332],{"type":2992,"tag":3275,"props":5333,"children":5334},{"style":3354},[5335],{"type":2997,"value":4976},{"type":2992,"tag":3275,"props":5337,"children":5338},{"class":3277,"line":3743},[5339,5343],{"type":2992,"tag":3275,"props":5340,"children":5341},{"style":3354},[5342],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":5344,"children":5345},{"style":3349},[5346],{"type":2997,"value":4718},{"type":2992,"tag":2999,"props":5348,"children":5349},{},[5350],{"type":2997,"value":5351},"It can also be set using environment variables:",{"type":2992,"tag":3049,"props":5353,"children":5354},{},[5355,5364],{"type":2992,"tag":3053,"props":5356,"children":5357},{},[5358],{"type":2992,"tag":3137,"props":5359,"children":5361},{"className":5360},[],[5362],{"type":2997,"value":5363},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_ID",{"type":2992,"tag":3053,"props":5365,"children":5366},{},[5367],{"type":2992,"tag":3137,"props":5368,"children":5370},{"className":5369},[],[5371],{"type":2997,"value":5372},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_SECRET",{"type":2992,"tag":4456,"props":5374,"children":5375},{},[5376],{"type":2992,"tag":2999,"props":5377,"children":5378},{},[5379],{"type":2997,"value":5380},"Provider is in uppercase (GITHUB, GOOGLE, etc.)",{"type":2992,"tag":5382,"props":5383,"children":5385},"h4",{"id":5384},"supported-oauth-providers",[5386],{"type":2997,"value":5387},"Supported OAuth Providers",{"type":2992,"tag":3049,"props":5389,"children":5390},{},[5391,5396,5401,5406,5411,5416,5421,5426,5431,5436,5441,5446,5451,5456,5461,5466,5471,5476,5481,5486,5491,5496,5501,5506,5511,5516,5521,5526,5531,5536,5541,5546,5551,5556,5561,5566,5571,5576,5581,5586,5591,5596,5601,5606,5611,5616,5621,5626],{"type":2992,"tag":3053,"props":5392,"children":5393},{},[5394],{"type":2997,"value":5395},"Apple",{"type":2992,"tag":3053,"props":5397,"children":5398},{},[5399],{"type":2997,"value":5400},"Atlassian",{"type":2992,"tag":3053,"props":5402,"children":5403},{},[5404],{"type":2997,"value":5405},"Auth0",{"type":2992,"tag":3053,"props":5407,"children":5408},{},[5409],{"type":2997,"value":5410},"Authentik",{"type":2992,"tag":3053,"props":5412,"children":5413},{},[5414],{"type":2997,"value":5415},"AWS Cognito",{"type":2992,"tag":3053,"props":5417,"children":5418},{},[5419],{"type":2997,"value":5420},"Azure B2C",{"type":2992,"tag":3053,"props":5422,"children":5423},{},[5424],{"type":2997,"value":5425},"Battle.net",{"type":2992,"tag":3053,"props":5427,"children":5428},{},[5429],{"type":2997,"value":5430},"Bluesky (AT Protocol)",{"type":2992,"tag":3053,"props":5432,"children":5433},{},[5434],{"type":2997,"value":5435},"Box.com",{"type":2992,"tag":3053,"props":5437,"children":5438},{},[5439],{"type":2997,"value":5440},"Discord",{"type":2992,"tag":3053,"props":5442,"children":5443},{},[5444],{"type":2997,"value":5445},"Dropbox",{"type":2992,"tag":3053,"props":5447,"children":5448},{},[5449],{"type":2997,"value":5450},"Facebook",{"type":2992,"tag":3053,"props":5452,"children":5453},{},[5454],{"type":2997,"value":5455},"GitHub",{"type":2992,"tag":3053,"props":5457,"children":5458},{},[5459],{"type":2997,"value":5460},"GitLab",{"type":2992,"tag":3053,"props":5462,"children":5463},{},[5464],{"type":2997,"value":5465},"Gitea",{"type":2992,"tag":3053,"props":5467,"children":5468},{},[5469],{"type":2997,"value":5470},"Google",{"type":2992,"tag":3053,"props":5472,"children":5473},{},[5474],{"type":2997,"value":5475},"Heroku",{"type":2992,"tag":3053,"props":5477,"children":5478},{},[5479],{"type":2997,"value":5480},"Hubspot",{"type":2992,"tag":3053,"props":5482,"children":5483},{},[5484],{"type":2997,"value":5485},"Instagram",{"type":2992,"tag":3053,"props":5487,"children":5488},{},[5489],{"type":2997,"value":5490},"Kick",{"type":2992,"tag":3053,"props":5492,"children":5493},{},[5494],{"type":2997,"value":5495},"Keycloak",{"type":2992,"tag":3053,"props":5497,"children":5498},{},[5499],{"type":2997,"value":5500},"Line",{"type":2992,"tag":3053,"props":5502,"children":5503},{},[5504],{"type":2997,"value":5505},"Linear",{"type":2992,"tag":3053,"props":5507,"children":5508},{},[5509],{"type":2997,"value":5510},"LinkedIn",{"type":2992,"tag":3053,"props":5512,"children":5513},{},[5514],{"type":2997,"value":5515},"LiveChat",{"type":2992,"tag":3053,"props":5517,"children":5518},{},[5519],{"type":2997,"value":5520},"Microsoft",{"type":2992,"tag":3053,"props":5522,"children":5523},{},[5524],{"type":2997,"value":5525},"OIDC \u002F OpenID Connect (Generic)",{"type":2992,"tag":3053,"props":5527,"children":5528},{},[5529],{"type":2997,"value":5530},"Okta",{"type":2992,"tag":3053,"props":5532,"children":5533},{},[5534],{"type":2997,"value":5535},"Ory",{"type":2992,"tag":3053,"props":5537,"children":5538},{},[5539],{"type":2997,"value":5540},"osu!",{"type":2992,"tag":3053,"props":5542,"children":5543},{},[5544],{"type":2997,"value":5545},"PayPal",{"type":2992,"tag":3053,"props":5547,"children":5548},{},[5549],{"type":2997,"value":5550},"Polar",{"type":2992,"tag":3053,"props":5552,"children":5553},{},[5554],{"type":2997,"value":5555},"Riot Games",{"type":2992,"tag":3053,"props":5557,"children":5558},{},[5559],{"type":2997,"value":5560},"Salesforce",{"type":2992,"tag":3053,"props":5562,"children":5563},{},[5564],{"type":2997,"value":5565},"Seznam",{"type":2992,"tag":3053,"props":5567,"children":5568},{},[5569],{"type":2997,"value":5570},"Shopify Customer",{"type":2992,"tag":3053,"props":5572,"children":5573},{},[5574],{"type":2997,"value":5575},"Slack",{"type":2992,"tag":3053,"props":5577,"children":5578},{},[5579],{"type":2997,"value":5580},"Spotify",{"type":2992,"tag":3053,"props":5582,"children":5583},{},[5584],{"type":2997,"value":5585},"Steam",{"type":2992,"tag":3053,"props":5587,"children":5588},{},[5589],{"type":2997,"value":5590},"Strava",{"type":2992,"tag":3053,"props":5592,"children":5593},{},[5594],{"type":2997,"value":5595},"TikTok",{"type":2992,"tag":3053,"props":5597,"children":5598},{},[5599],{"type":2997,"value":5600},"Twitch",{"type":2992,"tag":3053,"props":5602,"children":5603},{},[5604],{"type":2997,"value":5605},"VK",{"type":2992,"tag":3053,"props":5607,"children":5608},{},[5609],{"type":2997,"value":5610},"WorkOS",{"type":2992,"tag":3053,"props":5612,"children":5613},{},[5614],{"type":2997,"value":5615},"X (Twitter)",{"type":2992,"tag":3053,"props":5617,"children":5618},{},[5619],{"type":2997,"value":5620},"XSUAA",{"type":2992,"tag":3053,"props":5622,"children":5623},{},[5624],{"type":2997,"value":5625},"Yandex",{"type":2992,"tag":3053,"props":5627,"children":5628},{},[5629],{"type":2997,"value":5630},"Zitadel",{"type":2992,"tag":2999,"props":5632,"children":5633},{},[5634,5636,5643],{"type":2997,"value":5635},"You can add your favorite provider by creating a new file in ",{"type":2992,"tag":3003,"props":5637,"children":5640},{"href":5638,"rel":5639},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Ftree\u002Fmain\u002Fsrc\u002Fruntime\u002Fserver\u002Flib\u002Foauth",[3007],[5641],{"type":2997,"value":5642},"src\u002Fruntime\u002Fserver\u002Flib\u002Foauth\u002F",{"type":2997,"value":3230},{"type":2992,"tag":5382,"props":5645,"children":5647},{"id":5646},"example",[5648],{"type":2997,"value":5649},"Example",{"type":2992,"tag":2999,"props":5651,"children":5652},{},[5653,5655],{"type":2997,"value":5654},"Example: ",{"type":2992,"tag":3137,"props":5656,"children":5658},{"className":5657},[],[5659],{"type":2997,"value":5660},"~\u002Fserver\u002Froutes\u002Fauth\u002Fgithub.get.ts",{"type":2992,"tag":3265,"props":5662,"children":5664},{"className":3954,"code":5663,"language":3956,"meta":2866,"style":2866},"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",[5665],{"type":2992,"tag":3137,"props":5666,"children":5667},{"__ignoreMap":2866},[5668,5692,5708,5726,5733,5784,5812,5828,5853,5860,5872,5914,5921,5929,5963,6009,6048,6055],{"type":2992,"tag":3275,"props":5669,"children":5670},{"class":3277,"line":2952},[5671,5675,5679,5684,5688],{"type":2992,"tag":3275,"props":5672,"children":5673},{"style":4538},[5674],{"type":2997,"value":5072},{"type":2992,"tag":3275,"props":5676,"children":5677},{"style":4538},[5678],{"type":2997,"value":5187},{"type":2992,"tag":3275,"props":5680,"children":5681},{"style":3511},[5682],{"type":2997,"value":5683}," defineOAuthGitHubEventHandler",{"type":2992,"tag":3275,"props":5685,"children":5686},{"style":3349},[5687],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":5689,"children":5690},{"style":3354},[5691],{"type":2997,"value":5202},{"type":2992,"tag":3275,"props":5693,"children":5694},{"class":3277,"line":2918},[5695,5700,5704],{"type":2992,"tag":3275,"props":5696,"children":5697},{"style":3420},[5698],{"type":2997,"value":5699},"  config",{"type":2992,"tag":3275,"props":5701,"children":5702},{"style":3354},[5703],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":5705,"children":5706},{"style":3354},[5707],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":5709,"children":5710},{"class":3277,"line":2902},[5711,5716,5720],{"type":2992,"tag":3275,"props":5712,"children":5713},{"style":3420},[5714],{"type":2997,"value":5715},"    emailRequired",{"type":2992,"tag":3275,"props":5717,"children":5718},{"style":3354},[5719],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":5721,"children":5723},{"style":5722},"--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC",[5724],{"type":2997,"value":5725}," true\n",{"type":2992,"tag":3275,"props":5727,"children":5728},{"class":3277,"line":3538},[5729],{"type":2992,"tag":3275,"props":5730,"children":5731},{"style":3354},[5732],{"type":2997,"value":4616},{"type":2992,"tag":3275,"props":5734,"children":5735},{"class":3277,"line":3547},[5736,5741,5746,5750,5755,5759,5763,5767,5771,5776,5780],{"type":2992,"tag":3275,"props":5737,"children":5738},{"style":3426},[5739],{"type":2997,"value":5740},"  async",{"type":2992,"tag":3275,"props":5742,"children":5743},{"style":3420},[5744],{"type":2997,"value":5745}," onSuccess",{"type":2992,"tag":3275,"props":5747,"children":5748},{"style":3354},[5749],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":5751,"children":5752},{"style":4370},[5753],{"type":2997,"value":5754},"event",{"type":2992,"tag":3275,"props":5756,"children":5757},{"style":3354},[5758],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":5760,"children":5761},{"style":3354},[5762],{"type":2997,"value":3447},{"type":2992,"tag":3275,"props":5764,"children":5765},{"style":4370},[5766],{"type":2997,"value":3462},{"type":2992,"tag":3275,"props":5768,"children":5769},{"style":3354},[5770],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":5772,"children":5773},{"style":4370},[5774],{"type":2997,"value":5775}," tokens",{"type":2992,"tag":3275,"props":5777,"children":5778},{"style":3354},[5779],{"type":2997,"value":4436},{"type":2992,"tag":3275,"props":5781,"children":5782},{"style":3354},[5783],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":5785,"children":5786},{"class":3277,"line":3564},[5787,5792,5796,5800,5804,5808],{"type":2992,"tag":3275,"props":5788,"children":5789},{"style":4538},[5790],{"type":2997,"value":5791},"    await",{"type":2992,"tag":3275,"props":5793,"children":5794},{"style":3511},[5795],{"type":2997,"value":4546},{"type":2992,"tag":3275,"props":5797,"children":5798},{"style":3420},[5799],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":5801,"children":5802},{"style":3349},[5803],{"type":2997,"value":5754},{"type":2992,"tag":3275,"props":5805,"children":5806},{"style":3354},[5807],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":5809,"children":5810},{"style":3354},[5811],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":5813,"children":5814},{"class":3277,"line":2898},[5815,5820,5824],{"type":2992,"tag":3275,"props":5816,"children":5817},{"style":3420},[5818],{"type":2997,"value":5819},"      user",{"type":2992,"tag":3275,"props":5821,"children":5822},{"style":3354},[5823],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":5825,"children":5826},{"style":3354},[5827],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":5829,"children":5830},{"class":3277,"line":2894},[5831,5836,5840,5844,5848],{"type":2992,"tag":3275,"props":5832,"children":5833},{"style":3420},[5834],{"type":2997,"value":5835},"        githubId",{"type":2992,"tag":3275,"props":5837,"children":5838},{"style":3354},[5839],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":5841,"children":5842},{"style":3349},[5843],{"type":2997,"value":3462},{"type":2992,"tag":3275,"props":5845,"children":5846},{"style":3354},[5847],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":5849,"children":5850},{"style":3349},[5851],{"type":2997,"value":5852},"id\n",{"type":2992,"tag":3275,"props":5854,"children":5855},{"class":3277,"line":2890},[5856],{"type":2992,"tag":3275,"props":5857,"children":5858},{"style":3354},[5859],{"type":2997,"value":5320},{"type":2992,"tag":3275,"props":5861,"children":5862},{"class":3277,"line":3726},[5863,5868],{"type":2992,"tag":3275,"props":5864,"children":5865},{"style":3354},[5866],{"type":2997,"value":5867},"    }",{"type":2992,"tag":3275,"props":5869,"children":5870},{"style":3420},[5871],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":5873,"children":5874},{"class":3277,"line":3743},[5875,5880,5885,5889,5893,5897,5901,5906,5910],{"type":2992,"tag":3275,"props":5876,"children":5877},{"style":4538},[5878],{"type":2997,"value":5879},"    return",{"type":2992,"tag":3275,"props":5881,"children":5882},{"style":3511},[5883],{"type":2997,"value":5884}," sendRedirect",{"type":2992,"tag":3275,"props":5886,"children":5887},{"style":3420},[5888],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":5890,"children":5891},{"style":3349},[5892],{"type":2997,"value":5754},{"type":2992,"tag":3275,"props":5894,"children":5895},{"style":3354},[5896],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":5898,"children":5899},{"style":3354},[5900],{"type":2997,"value":4599},{"type":2992,"tag":3275,"props":5902,"children":5903},{"style":3287},[5904],{"type":2997,"value":5905},"\u002F",{"type":2992,"tag":3275,"props":5907,"children":5908},{"style":3354},[5909],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":5911,"children":5912},{"style":3420},[5913],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":5915,"children":5916},{"class":3277,"line":3764},[5917],{"type":2992,"tag":3275,"props":5918,"children":5919},{"style":3354},[5920],{"type":2997,"value":4616},{"type":2992,"tag":3275,"props":5922,"children":5923},{"class":3277,"line":3797},[5924],{"type":2992,"tag":3275,"props":5925,"children":5926},{"style":3340},[5927],{"type":2997,"value":5928},"  \u002F\u002F Optional, will return a json error and 401 status code by default\n",{"type":2992,"tag":3275,"props":5930,"children":5931},{"class":3277,"line":3852},[5932,5937,5941,5945,5949,5954,5959],{"type":2992,"tag":3275,"props":5933,"children":5934},{"style":3420},[5935],{"type":2997,"value":5936},"  onError",{"type":2992,"tag":3275,"props":5938,"children":5939},{"style":3354},[5940],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":5942,"children":5943},{"style":4370},[5944],{"type":2997,"value":5754},{"type":2992,"tag":3275,"props":5946,"children":5947},{"style":3354},[5948],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":5950,"children":5951},{"style":4370},[5952],{"type":2997,"value":5953}," error",{"type":2992,"tag":3275,"props":5955,"children":5956},{"style":3354},[5957],{"type":2997,"value":5958},")",{"type":2992,"tag":3275,"props":5960,"children":5961},{"style":3354},[5962],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":5964,"children":5965},{"class":3277,"line":3861},[5966,5971,5975,5980,5984,5988,5993,5997,6001,6005],{"type":2992,"tag":3275,"props":5967,"children":5968},{"style":3349},[5969],{"type":2997,"value":5970},"    console",{"type":2992,"tag":3275,"props":5972,"children":5973},{"style":3354},[5974],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":5976,"children":5977},{"style":3511},[5978],{"type":2997,"value":5979},"error",{"type":2992,"tag":3275,"props":5981,"children":5982},{"style":3420},[5983],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":5985,"children":5986},{"style":3354},[5987],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":5989,"children":5990},{"style":3287},[5991],{"type":2997,"value":5992},"GitHub OAuth error:",{"type":2992,"tag":3275,"props":5994,"children":5995},{"style":3354},[5996],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":5998,"children":5999},{"style":3354},[6000],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":6002,"children":6003},{"style":3349},[6004],{"type":2997,"value":5953},{"type":2992,"tag":3275,"props":6006,"children":6007},{"style":3420},[6008],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":6010,"children":6011},{"class":3277,"line":2886},[6012,6016,6020,6024,6028,6032,6036,6040,6044],{"type":2992,"tag":3275,"props":6013,"children":6014},{"style":4538},[6015],{"type":2997,"value":5879},{"type":2992,"tag":3275,"props":6017,"children":6018},{"style":3511},[6019],{"type":2997,"value":5884},{"type":2992,"tag":3275,"props":6021,"children":6022},{"style":3420},[6023],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":6025,"children":6026},{"style":3349},[6027],{"type":2997,"value":5754},{"type":2992,"tag":3275,"props":6029,"children":6030},{"style":3354},[6031],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":6033,"children":6034},{"style":3354},[6035],{"type":2997,"value":4599},{"type":2992,"tag":3275,"props":6037,"children":6038},{"style":3287},[6039],{"type":2997,"value":5905},{"type":2992,"tag":3275,"props":6041,"children":6042},{"style":3354},[6043],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":6045,"children":6046},{"style":3420},[6047],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":6049,"children":6050},{"class":3277,"line":3929},[6051],{"type":2992,"tag":3275,"props":6052,"children":6053},{"style":3354},[6054],{"type":2997,"value":4616},{"type":2992,"tag":3275,"props":6056,"children":6057},{"class":3277,"line":4199},[6058,6062],{"type":2992,"tag":3275,"props":6059,"children":6060},{"style":3354},[6061],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":6063,"children":6064},{"style":3349},[6065],{"type":2997,"value":4718},{"type":2992,"tag":2999,"props":6067,"children":6068},{},[6069,6071,6077],{"type":2997,"value":6070},"Make sure to set the callback URL in your OAuth app settings as ",{"type":2992,"tag":3137,"props":6072,"children":6074},{"className":6073},[],[6075],{"type":2997,"value":6076},"\u003Cyour-domain>\u002Fauth\u002Fgithub",{"type":2997,"value":3230},{"type":2992,"tag":2999,"props":6079,"children":6080},{},[6081,6083,6089],{"type":2997,"value":6082},"If the redirect URL mismatch in production, this means that the module cannot guess the right redirect URL. You can set the ",{"type":2992,"tag":3137,"props":6084,"children":6086},{"className":6085},[],[6087],{"type":2997,"value":6088},"NUXT_OAUTH_\u003CPROVIDER>_REDIRECT_URL",{"type":2997,"value":6090}," env variable to overwrite the default one.",{"type":2992,"tag":3395,"props":6092,"children":6094},{"id":6093},"password-hashing",[6095],{"type":2997,"value":3119},{"type":2992,"tag":2999,"props":6097,"children":6098},{},[6099,6101,6107,6109,6115,6117,6124],{"type":2997,"value":6100},"Nuxt Auth Utils provides password hashing utilities like ",{"type":2992,"tag":3137,"props":6102,"children":6104},{"className":6103},[],[6105],{"type":2997,"value":6106},"hashPassword",{"type":2997,"value":6108}," and ",{"type":2992,"tag":3137,"props":6110,"children":6112},{"className":6111},[],[6113],{"type":2997,"value":6114},"verifyPassword",{"type":2997,"value":6116}," to hash and verify passwords by using ",{"type":2992,"tag":3003,"props":6118,"children":6121},{"href":6119,"rel":6120},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FScrypt",[3007],[6122],{"type":2997,"value":6123},"scrypt",{"type":2997,"value":6125}," as it is supported in many JS runtime.",{"type":2992,"tag":3265,"props":6127,"children":6129},{"className":3954,"code":6128,"language":3956,"meta":2866,"style":2866},"const hashedPassword = await hashPassword('user_password')\n\nif (await verifyPassword(hashedPassword, 'user_password')) {\n  \u002F\u002F Password is valid\n}\n",[6130],{"type":2992,"tag":3137,"props":6131,"children":6132},{"__ignoreMap":2866},[6133,6179,6186,6237,6245],{"type":2992,"tag":3275,"props":6134,"children":6135},{"class":3277,"line":2952},[6136,6140,6145,6149,6153,6158,6162,6166,6171,6175],{"type":2992,"tag":3275,"props":6137,"children":6138},{"style":3426},[6139],{"type":2997,"value":3442},{"type":2992,"tag":3275,"props":6141,"children":6142},{"style":3349},[6143],{"type":2997,"value":6144}," hashedPassword ",{"type":2992,"tag":3275,"props":6146,"children":6147},{"style":3354},[6148],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":6150,"children":6151},{"style":4538},[6152],{"type":2997,"value":4794},{"type":2992,"tag":3275,"props":6154,"children":6155},{"style":3511},[6156],{"type":2997,"value":6157}," hashPassword",{"type":2992,"tag":3275,"props":6159,"children":6160},{"style":3349},[6161],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":6163,"children":6164},{"style":3354},[6165],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":6167,"children":6168},{"style":3287},[6169],{"type":2997,"value":6170},"user_password",{"type":2992,"tag":3275,"props":6172,"children":6173},{"style":3354},[6174],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":6176,"children":6177},{"style":3349},[6178],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":6180,"children":6181},{"class":3277,"line":2918},[6182],{"type":2992,"tag":3275,"props":6183,"children":6184},{"emptyLinePlaceholder":1196},[6185],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":6187,"children":6188},{"class":3277,"line":2902},[6189,6194,6198,6202,6207,6212,6216,6220,6224,6228,6233],{"type":2992,"tag":3275,"props":6190,"children":6191},{"style":4538},[6192],{"type":2997,"value":6193},"if",{"type":2992,"tag":3275,"props":6195,"children":6196},{"style":3349},[6197],{"type":2997,"value":4367},{"type":2992,"tag":3275,"props":6199,"children":6200},{"style":4538},[6201],{"type":2997,"value":4541},{"type":2992,"tag":3275,"props":6203,"children":6204},{"style":3511},[6205],{"type":2997,"value":6206}," verifyPassword",{"type":2992,"tag":3275,"props":6208,"children":6209},{"style":3349},[6210],{"type":2997,"value":6211},"(hashedPassword",{"type":2992,"tag":3275,"props":6213,"children":6214},{"style":3354},[6215],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":6217,"children":6218},{"style":3354},[6219],{"type":2997,"value":4599},{"type":2992,"tag":3275,"props":6221,"children":6222},{"style":3287},[6223],{"type":2997,"value":6170},{"type":2992,"tag":3275,"props":6225,"children":6226},{"style":3354},[6227],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":6229,"children":6230},{"style":3349},[6231],{"type":2997,"value":6232},")) ",{"type":2992,"tag":3275,"props":6234,"children":6235},{"style":3354},[6236],{"type":2997,"value":5202},{"type":2992,"tag":3275,"props":6238,"children":6239},{"class":3277,"line":3538},[6240],{"type":2992,"tag":3275,"props":6241,"children":6242},{"style":3340},[6243],{"type":2997,"value":6244},"  \u002F\u002F Password is valid\n",{"type":2992,"tag":3275,"props":6246,"children":6247},{"class":3277,"line":3547},[6248],{"type":2992,"tag":3275,"props":6249,"children":6250},{"style":3354},[6251],{"type":2997,"value":4454},{"type":2992,"tag":2999,"props":6253,"children":6254},{},[6255,6257,6263],{"type":2997,"value":6256},"It also provides a ",{"type":2992,"tag":3137,"props":6258,"children":6260},{"className":6259},[],[6261],{"type":2997,"value":6262},"passwordNeedsRehash",{"type":2997,"value":6264}," 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":2992,"tag":3265,"props":6266,"children":6268},{"className":3954,"code":6267,"language":3956,"meta":2866,"style":2866},"const needsRehash = passwordNeedsRehash(hashedPassword)\n\nif (needsRehash) {\n  \u002F\u002F Password needs to be rehashed\n  hashedPassword = await hashPassword('user_password')\n}\n",[6269],{"type":2992,"tag":3137,"props":6270,"children":6271},{"__ignoreMap":2866},[6272,6298,6305,6321,6329,6369],{"type":2992,"tag":3275,"props":6273,"children":6274},{"class":3277,"line":2952},[6275,6279,6284,6288,6293],{"type":2992,"tag":3275,"props":6276,"children":6277},{"style":3426},[6278],{"type":2997,"value":3442},{"type":2992,"tag":3275,"props":6280,"children":6281},{"style":3349},[6282],{"type":2997,"value":6283}," needsRehash ",{"type":2992,"tag":3275,"props":6285,"children":6286},{"style":3354},[6287],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":6289,"children":6290},{"style":3511},[6291],{"type":2997,"value":6292}," passwordNeedsRehash",{"type":2992,"tag":3275,"props":6294,"children":6295},{"style":3349},[6296],{"type":2997,"value":6297},"(hashedPassword)\n",{"type":2992,"tag":3275,"props":6299,"children":6300},{"class":3277,"line":2918},[6301],{"type":2992,"tag":3275,"props":6302,"children":6303},{"emptyLinePlaceholder":1196},[6304],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":6306,"children":6307},{"class":3277,"line":2902},[6308,6312,6317],{"type":2992,"tag":3275,"props":6309,"children":6310},{"style":4538},[6311],{"type":2997,"value":6193},{"type":2992,"tag":3275,"props":6313,"children":6314},{"style":3349},[6315],{"type":2997,"value":6316}," (needsRehash) ",{"type":2992,"tag":3275,"props":6318,"children":6319},{"style":3354},[6320],{"type":2997,"value":5202},{"type":2992,"tag":3275,"props":6322,"children":6323},{"class":3277,"line":3538},[6324],{"type":2992,"tag":3275,"props":6325,"children":6326},{"style":3340},[6327],{"type":2997,"value":6328},"  \u002F\u002F Password needs to be rehashed\n",{"type":2992,"tag":3275,"props":6330,"children":6331},{"class":3277,"line":3547},[6332,6337,6341,6345,6349,6353,6357,6361,6365],{"type":2992,"tag":3275,"props":6333,"children":6334},{"style":3349},[6335],{"type":2997,"value":6336},"  hashedPassword",{"type":2992,"tag":3275,"props":6338,"children":6339},{"style":3354},[6340],{"type":2997,"value":3508},{"type":2992,"tag":3275,"props":6342,"children":6343},{"style":4538},[6344],{"type":2997,"value":4794},{"type":2992,"tag":3275,"props":6346,"children":6347},{"style":3511},[6348],{"type":2997,"value":6157},{"type":2992,"tag":3275,"props":6350,"children":6351},{"style":3420},[6352],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":6354,"children":6355},{"style":3354},[6356],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":6358,"children":6359},{"style":3287},[6360],{"type":2997,"value":6170},{"type":2992,"tag":3275,"props":6362,"children":6363},{"style":3354},[6364],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":6366,"children":6367},{"style":3420},[6368],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":6370,"children":6371},{"class":3277,"line":3564},[6372],{"type":2992,"tag":3275,"props":6373,"children":6374},{"style":3354},[6375],{"type":2997,"value":4454},{"type":2992,"tag":2999,"props":6377,"children":6378},{},[6379,6381,6386],{"type":2997,"value":6380},"You can configure the scrypt options in your ",{"type":2992,"tag":3137,"props":6382,"children":6384},{"className":6383},[],[6385],{"type":2997,"value":233},{"type":2997,"value":4015},{"type":2992,"tag":3265,"props":6388,"children":6390},{"className":3954,"code":6389,"language":3956,"meta":2866,"style":2866},"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",[6391],{"type":2992,"tag":3137,"props":6392,"children":6393},{"__ignoreMap":2866},[6394,6417,6455,6471,6487,6503,6511,6518,6525,6532],{"type":2992,"tag":3275,"props":6395,"children":6396},{"class":3277,"line":2952},[6397,6401,6405,6409,6413],{"type":2992,"tag":3275,"props":6398,"children":6399},{"style":4538},[6400],{"type":2997,"value":5072},{"type":2992,"tag":3275,"props":6402,"children":6403},{"style":4538},[6404],{"type":2997,"value":5187},{"type":2992,"tag":3275,"props":6406,"children":6407},{"style":3511},[6408],{"type":2997,"value":5192},{"type":2992,"tag":3275,"props":6410,"children":6411},{"style":3349},[6412],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":6414,"children":6415},{"style":3354},[6416],{"type":2997,"value":5202},{"type":2992,"tag":3275,"props":6418,"children":6419},{"class":3277,"line":2918},[6420,6425,6429,6434,6438,6442,6446,6451],{"type":2992,"tag":3275,"props":6421,"children":6422},{"style":3420},[6423],{"type":2997,"value":6424},"  modules",{"type":2992,"tag":3275,"props":6426,"children":6427},{"style":3354},[6428],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":6430,"children":6431},{"style":3349},[6432],{"type":2997,"value":6433}," [",{"type":2992,"tag":3275,"props":6435,"children":6436},{"style":3354},[6437],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":6439,"children":6440},{"style":3287},[6441],{"type":2997,"value":2865},{"type":2992,"tag":3275,"props":6443,"children":6444},{"style":3354},[6445],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":6447,"children":6448},{"style":3349},[6449],{"type":2997,"value":6450},"]",{"type":2992,"tag":3275,"props":6452,"children":6453},{"style":3354},[6454],{"type":2997,"value":5288},{"type":2992,"tag":3275,"props":6456,"children":6457},{"class":3277,"line":2902},[6458,6463,6467],{"type":2992,"tag":3275,"props":6459,"children":6460},{"style":3420},[6461],{"type":2997,"value":6462},"  auth",{"type":2992,"tag":3275,"props":6464,"children":6465},{"style":3354},[6466],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":6468,"children":6469},{"style":3354},[6470],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":6472,"children":6473},{"class":3277,"line":3538},[6474,6479,6483],{"type":2992,"tag":3275,"props":6475,"children":6476},{"style":3420},[6477],{"type":2997,"value":6478},"    hash",{"type":2992,"tag":3275,"props":6480,"children":6481},{"style":3354},[6482],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":6484,"children":6485},{"style":3354},[6486],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":6488,"children":6489},{"class":3277,"line":3547},[6490,6495,6499],{"type":2992,"tag":3275,"props":6491,"children":6492},{"style":3420},[6493],{"type":2997,"value":6494},"      scrypt",{"type":2992,"tag":3275,"props":6496,"children":6497},{"style":3354},[6498],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":6500,"children":6501},{"style":3354},[6502],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":6504,"children":6505},{"class":3277,"line":3564},[6506],{"type":2992,"tag":3275,"props":6507,"children":6508},{"style":3340},[6509],{"type":2997,"value":6510},"        \u002F\u002F See https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fhash\u002Fblob\u002F94637029cd526783ac0a763ec581306d98db2036\u002Fsrc\u002Ftypes.ts#L144\n",{"type":2992,"tag":3275,"props":6512,"children":6513},{"class":3277,"line":2898},[6514],{"type":2992,"tag":3275,"props":6515,"children":6516},{"style":3354},[6517],{"type":2997,"value":5320},{"type":2992,"tag":3275,"props":6519,"children":6520},{"class":3277,"line":2894},[6521],{"type":2992,"tag":3275,"props":6522,"children":6523},{"style":3354},[6524],{"type":2997,"value":5328},{"type":2992,"tag":3275,"props":6526,"children":6527},{"class":3277,"line":2890},[6528],{"type":2992,"tag":3275,"props":6529,"children":6530},{"style":3354},[6531],{"type":2997,"value":4976},{"type":2992,"tag":3275,"props":6533,"children":6534},{"class":3277,"line":3726},[6535,6539],{"type":2992,"tag":3275,"props":6536,"children":6537},{"style":3354},[6538],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":6540,"children":6541},{"style":3349},[6542],{"type":2997,"value":4718},{"type":2992,"tag":3395,"props":6544,"children":6546},{"id":6545},"at-protocol",[6547],{"type":2997,"value":6548},"AT Protocol",{"type":2992,"tag":2999,"props":6550,"children":6551},{},[6552],{"type":2997,"value":6553},"Social networks that rely on AT Protocol (e.g., Bluesky) slightly differ from a regular OAuth flow.",{"type":2992,"tag":2999,"props":6555,"children":6556},{},[6557],{"type":2997,"value":6558},"To enable OAuth with AT Protocol, you need to:",{"type":2992,"tag":3249,"props":6560,"children":6561},{},[6562],{"type":2992,"tag":3053,"props":6563,"children":6564},{},[6565],{"type":2997,"value":6566},"Install the peer dependencies:",{"type":2992,"tag":3265,"props":6568,"children":6570},{"className":3267,"code":6569,"language":3269,"meta":2866,"style":2866},"npx nypm i @atproto\u002Foauth-client-node @atproto\u002Fapi\n",[6571],{"type":2992,"tag":3137,"props":6572,"children":6573},{"__ignoreMap":2866},[6574],{"type":2992,"tag":3275,"props":6575,"children":6576},{"class":3277,"line":2952},[6577,6581,6586,6591,6596],{"type":2992,"tag":3275,"props":6578,"children":6579},{"style":3281},[6580],{"type":2997,"value":3284},{"type":2992,"tag":3275,"props":6582,"children":6583},{"style":3287},[6584],{"type":2997,"value":6585}," nypm",{"type":2992,"tag":3275,"props":6587,"children":6588},{"style":3287},[6589],{"type":2997,"value":6590}," i",{"type":2992,"tag":3275,"props":6592,"children":6593},{"style":3287},[6594],{"type":2997,"value":6595}," @atproto\u002Foauth-client-node",{"type":2992,"tag":3275,"props":6597,"children":6598},{"style":3287},[6599],{"type":2997,"value":6600}," @atproto\u002Fapi\n",{"type":2992,"tag":3249,"props":6602,"children":6603},{"start":2918},[6604],{"type":2992,"tag":3053,"props":6605,"children":6606},{},[6607,6609],{"type":2997,"value":6608},"Enable it in your ",{"type":2992,"tag":3137,"props":6610,"children":6612},{"className":6611},[],[6613],{"type":2997,"value":233},{"type":2992,"tag":3265,"props":6615,"children":6617},{"className":3954,"code":6616,"language":3956,"meta":2866,"style":2866},"export default defineNuxtConfig({\n  auth: {\n    atproto: true\n  }\n})\n",[6618],{"type":2992,"tag":3137,"props":6619,"children":6620},{"__ignoreMap":2866},[6621,6644,6659,6675,6682],{"type":2992,"tag":3275,"props":6622,"children":6623},{"class":3277,"line":2952},[6624,6628,6632,6636,6640],{"type":2992,"tag":3275,"props":6625,"children":6626},{"style":4538},[6627],{"type":2997,"value":5072},{"type":2992,"tag":3275,"props":6629,"children":6630},{"style":4538},[6631],{"type":2997,"value":5187},{"type":2992,"tag":3275,"props":6633,"children":6634},{"style":3511},[6635],{"type":2997,"value":5192},{"type":2992,"tag":3275,"props":6637,"children":6638},{"style":3349},[6639],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":6641,"children":6642},{"style":3354},[6643],{"type":2997,"value":5202},{"type":2992,"tag":3275,"props":6645,"children":6646},{"class":3277,"line":2918},[6647,6651,6655],{"type":2992,"tag":3275,"props":6648,"children":6649},{"style":3420},[6650],{"type":2997,"value":6462},{"type":2992,"tag":3275,"props":6652,"children":6653},{"style":3354},[6654],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":6656,"children":6657},{"style":3354},[6658],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":6660,"children":6661},{"class":3277,"line":2902},[6662,6667,6671],{"type":2992,"tag":3275,"props":6663,"children":6664},{"style":3420},[6665],{"type":2997,"value":6666},"    atproto",{"type":2992,"tag":3275,"props":6668,"children":6669},{"style":3354},[6670],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":6672,"children":6673},{"style":5722},[6674],{"type":2997,"value":5725},{"type":2992,"tag":3275,"props":6676,"children":6677},{"class":3277,"line":3538},[6678],{"type":2992,"tag":3275,"props":6679,"children":6680},{"style":3354},[6681],{"type":2997,"value":4976},{"type":2992,"tag":3275,"props":6683,"children":6684},{"class":3277,"line":3547},[6685,6689],{"type":2992,"tag":3275,"props":6686,"children":6687},{"style":3354},[6688],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":6690,"children":6691},{"style":3349},[6692],{"type":2997,"value":4718},{"type":2992,"tag":3395,"props":6694,"children":6696},{"id":6695},"webauthn-passkey",[6697],{"type":2997,"value":3128},{"type":2992,"tag":2999,"props":6699,"children":6700},{},[6701],{"type":2997,"value":6702},"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":2992,"tag":2999,"props":6704,"children":6705},{},[6706],{"type":2997,"value":6707},"To enable WebAuthn you need to:",{"type":2992,"tag":3249,"props":6709,"children":6710},{},[6711],{"type":2992,"tag":3053,"props":6712,"children":6713},{},[6714],{"type":2997,"value":6566},{"type":2992,"tag":3265,"props":6716,"children":6718},{"className":3267,"code":6717,"language":3269,"meta":2866,"style":2866},"npx nypm i @simplewebauthn\u002Fserver@11 @simplewebauthn\u002Fbrowser@11\n",[6719],{"type":2992,"tag":3137,"props":6720,"children":6721},{"__ignoreMap":2866},[6722],{"type":2992,"tag":3275,"props":6723,"children":6724},{"class":3277,"line":2952},[6725,6729,6733,6737,6742],{"type":2992,"tag":3275,"props":6726,"children":6727},{"style":3281},[6728],{"type":2997,"value":3284},{"type":2992,"tag":3275,"props":6730,"children":6731},{"style":3287},[6732],{"type":2997,"value":6585},{"type":2992,"tag":3275,"props":6734,"children":6735},{"style":3287},[6736],{"type":2997,"value":6590},{"type":2992,"tag":3275,"props":6738,"children":6739},{"style":3287},[6740],{"type":2997,"value":6741}," @simplewebauthn\u002Fserver@11",{"type":2992,"tag":3275,"props":6743,"children":6744},{"style":3287},[6745],{"type":2997,"value":6746}," @simplewebauthn\u002Fbrowser@11\n",{"type":2992,"tag":3249,"props":6748,"children":6749},{"start":2918},[6750],{"type":2992,"tag":3053,"props":6751,"children":6752},{},[6753,6754],{"type":2997,"value":6608},{"type":2992,"tag":3137,"props":6755,"children":6757},{"className":6756},[],[6758],{"type":2997,"value":233},{"type":2992,"tag":3265,"props":6760,"children":6762},{"className":3954,"code":6761,"language":3956,"meta":2866,"style":2866},"export default defineNuxtConfig({\n  auth: {\n    webAuthn: true\n  }\n})\n",[6763],{"type":2992,"tag":3137,"props":6764,"children":6765},{"__ignoreMap":2866},[6766,6789,6804,6820,6827],{"type":2992,"tag":3275,"props":6767,"children":6768},{"class":3277,"line":2952},[6769,6773,6777,6781,6785],{"type":2992,"tag":3275,"props":6770,"children":6771},{"style":4538},[6772],{"type":2997,"value":5072},{"type":2992,"tag":3275,"props":6774,"children":6775},{"style":4538},[6776],{"type":2997,"value":5187},{"type":2992,"tag":3275,"props":6778,"children":6779},{"style":3511},[6780],{"type":2997,"value":5192},{"type":2992,"tag":3275,"props":6782,"children":6783},{"style":3349},[6784],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":6786,"children":6787},{"style":3354},[6788],{"type":2997,"value":5202},{"type":2992,"tag":3275,"props":6790,"children":6791},{"class":3277,"line":2918},[6792,6796,6800],{"type":2992,"tag":3275,"props":6793,"children":6794},{"style":3420},[6795],{"type":2997,"value":6462},{"type":2992,"tag":3275,"props":6797,"children":6798},{"style":3354},[6799],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":6801,"children":6802},{"style":3354},[6803],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":6805,"children":6806},{"class":3277,"line":2902},[6807,6812,6816],{"type":2992,"tag":3275,"props":6808,"children":6809},{"style":3420},[6810],{"type":2997,"value":6811},"    webAuthn",{"type":2992,"tag":3275,"props":6813,"children":6814},{"style":3354},[6815],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":6817,"children":6818},{"style":5722},[6819],{"type":2997,"value":5725},{"type":2992,"tag":3275,"props":6821,"children":6822},{"class":3277,"line":3538},[6823],{"type":2992,"tag":3275,"props":6824,"children":6825},{"style":3354},[6826],{"type":2997,"value":4976},{"type":2992,"tag":3275,"props":6828,"children":6829},{"class":3277,"line":3547},[6830,6834],{"type":2992,"tag":3275,"props":6831,"children":6832},{"style":3354},[6833],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":6835,"children":6836},{"style":3349},[6837],{"type":2997,"value":4718},{"type":2992,"tag":5382,"props":6839,"children":6841},{"id":6840},"example-1",[6842],{"type":2997,"value":5649},{"type":2992,"tag":2999,"props":6844,"children":6845},{},[6846],{"type":2997,"value":6847},"In this example we will implement the very basic steps to register and authenticate a credential.",{"type":2992,"tag":2999,"props":6849,"children":6850},{},[6851,6853,6860],{"type":2997,"value":6852},"The full code can be found in the ",{"type":2992,"tag":3003,"props":6854,"children":6857},{"href":6855,"rel":6856},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn",[3007],[6858],{"type":2997,"value":6859},"playground",{"type":2997,"value":6861},". The example uses a SQLite database with the following minimal tables:",{"type":2992,"tag":3265,"props":6863,"children":6867},{"className":6864,"code":6865,"language":6866,"meta":2866,"style":2866},"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",[6868],{"type":2992,"tag":3137,"props":6869,"children":6870},{"__ignoreMap":2866},[6871,6895,6918,6936,6944,6951,6982,7023,7047,7067,7088,7108,7128,7175],{"type":2992,"tag":3275,"props":6872,"children":6873},{"class":3277,"line":2952},[6874,6880,6885,6890],{"type":2992,"tag":3275,"props":6875,"children":6877},{"style":6876},"--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C",[6878],{"type":2997,"value":6879},"CREATE",{"type":2992,"tag":3275,"props":6881,"children":6882},{"style":6876},[6883],{"type":2997,"value":6884}," TABLE",{"type":2992,"tag":3275,"props":6886,"children":6887},{"style":3511},[6888],{"type":2997,"value":6889}," users",{"type":2992,"tag":3275,"props":6891,"children":6892},{"style":3349},[6893],{"type":2997,"value":6894}," (\n",{"type":2992,"tag":3275,"props":6896,"children":6897},{"class":3277,"line":2918},[6898,6903,6908,6913],{"type":2992,"tag":3275,"props":6899,"children":6900},{"style":3349},[6901],{"type":2997,"value":6902},"  id ",{"type":2992,"tag":3275,"props":6904,"children":6905},{"style":3426},[6906],{"type":2997,"value":6907},"INTEGER",{"type":2992,"tag":3275,"props":6909,"children":6910},{"style":3426},[6911],{"type":2997,"value":6912}," PRIMARY KEY",{"type":2992,"tag":3275,"props":6914,"children":6915},{"style":3349},[6916],{"type":2997,"value":6917}," AUTOINCREMENT,\n",{"type":2992,"tag":3275,"props":6919,"children":6920},{"class":3277,"line":2902},[6921,6926,6931],{"type":2992,"tag":3275,"props":6922,"children":6923},{"style":3349},[6924],{"type":2997,"value":6925},"  email ",{"type":2992,"tag":3275,"props":6927,"children":6928},{"style":3426},[6929],{"type":2997,"value":6930},"TEXT",{"type":2992,"tag":3275,"props":6932,"children":6933},{"style":6876},[6934],{"type":2997,"value":6935}," NOT NULL\n",{"type":2992,"tag":3275,"props":6937,"children":6938},{"class":3277,"line":3538},[6939],{"type":2992,"tag":3275,"props":6940,"children":6941},{"style":3349},[6942],{"type":2997,"value":6943},");\n",{"type":2992,"tag":3275,"props":6945,"children":6946},{"class":3277,"line":3547},[6947],{"type":2992,"tag":3275,"props":6948,"children":6949},{"emptyLinePlaceholder":1196},[6950],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":6952,"children":6953},{"class":3277,"line":3564},[6954,6958,6962,6967,6972,6977],{"type":2992,"tag":3275,"props":6955,"children":6956},{"style":6876},[6957],{"type":2997,"value":6879},{"type":2992,"tag":3275,"props":6959,"children":6960},{"style":6876},[6961],{"type":2997,"value":6884},{"type":2992,"tag":3275,"props":6963,"children":6964},{"style":3511},[6965],{"type":2997,"value":6966}," IF",{"type":2992,"tag":3275,"props":6968,"children":6969},{"style":6876},[6970],{"type":2997,"value":6971}," NOT",{"type":2992,"tag":3275,"props":6973,"children":6974},{"style":6876},[6975],{"type":2997,"value":6976}," EXISTS",{"type":2992,"tag":3275,"props":6978,"children":6979},{"style":3349},[6980],{"type":2997,"value":6981}," credentials (\n",{"type":2992,"tag":3275,"props":6983,"children":6984},{"class":3277,"line":2898},[6985,6990,6994,6999,7004,7009,7014,7019],{"type":2992,"tag":3275,"props":6986,"children":6987},{"style":3349},[6988],{"type":2997,"value":6989},"  userId ",{"type":2992,"tag":3275,"props":6991,"children":6992},{"style":3426},[6993],{"type":2997,"value":6907},{"type":2992,"tag":3275,"props":6995,"children":6996},{"style":6876},[6997],{"type":2997,"value":6998}," NOT NULL",{"type":2992,"tag":3275,"props":7000,"children":7001},{"style":3426},[7002],{"type":2997,"value":7003}," REFERENCES",{"type":2992,"tag":3275,"props":7005,"children":7006},{"style":3349},[7007],{"type":2997,"value":7008}," users(id) ",{"type":2992,"tag":3275,"props":7010,"children":7011},{"style":3426},[7012],{"type":2997,"value":7013},"ON DELETE CASCADE",{"type":2992,"tag":3275,"props":7015,"children":7016},{"style":3426},[7017],{"type":2997,"value":7018}," ON UPDATE CASCADE",{"type":2992,"tag":3275,"props":7020,"children":7021},{"style":3349},[7022],{"type":2997,"value":5288},{"type":2992,"tag":3275,"props":7024,"children":7025},{"class":3277,"line":2894},[7026,7030,7034,7039,7043],{"type":2992,"tag":3275,"props":7027,"children":7028},{"style":3349},[7029],{"type":2997,"value":6902},{"type":2992,"tag":3275,"props":7031,"children":7032},{"style":3426},[7033],{"type":2997,"value":6930},{"type":2992,"tag":3275,"props":7035,"children":7036},{"style":6876},[7037],{"type":2997,"value":7038}," UNIQUE",{"type":2992,"tag":3275,"props":7040,"children":7041},{"style":6876},[7042],{"type":2997,"value":6998},{"type":2992,"tag":3275,"props":7044,"children":7045},{"style":3349},[7046],{"type":2997,"value":5288},{"type":2992,"tag":3275,"props":7048,"children":7049},{"class":3277,"line":2890},[7050,7055,7059,7063],{"type":2992,"tag":3275,"props":7051,"children":7052},{"style":3349},[7053],{"type":2997,"value":7054},"  publicKey ",{"type":2992,"tag":3275,"props":7056,"children":7057},{"style":3426},[7058],{"type":2997,"value":6930},{"type":2992,"tag":3275,"props":7060,"children":7061},{"style":6876},[7062],{"type":2997,"value":6998},{"type":2992,"tag":3275,"props":7064,"children":7065},{"style":3349},[7066],{"type":2997,"value":5288},{"type":2992,"tag":3275,"props":7068,"children":7069},{"class":3277,"line":3726},[7070,7075,7080,7084],{"type":2992,"tag":3275,"props":7071,"children":7072},{"style":6876},[7073],{"type":2997,"value":7074},"  counter",{"type":2992,"tag":3275,"props":7076,"children":7077},{"style":3426},[7078],{"type":2997,"value":7079}," INTEGER",{"type":2992,"tag":3275,"props":7081,"children":7082},{"style":6876},[7083],{"type":2997,"value":6998},{"type":2992,"tag":3275,"props":7085,"children":7086},{"style":3349},[7087],{"type":2997,"value":5288},{"type":2992,"tag":3275,"props":7089,"children":7090},{"class":3277,"line":3743},[7091,7096,7100,7104],{"type":2992,"tag":3275,"props":7092,"children":7093},{"style":3349},[7094],{"type":2997,"value":7095},"  backedUp ",{"type":2992,"tag":3275,"props":7097,"children":7098},{"style":3426},[7099],{"type":2997,"value":6907},{"type":2992,"tag":3275,"props":7101,"children":7102},{"style":6876},[7103],{"type":2997,"value":6998},{"type":2992,"tag":3275,"props":7105,"children":7106},{"style":3349},[7107],{"type":2997,"value":5288},{"type":2992,"tag":3275,"props":7109,"children":7110},{"class":3277,"line":3764},[7111,7116,7120,7124],{"type":2992,"tag":3275,"props":7112,"children":7113},{"style":3349},[7114],{"type":2997,"value":7115},"  transports ",{"type":2992,"tag":3275,"props":7117,"children":7118},{"style":3426},[7119],{"type":2997,"value":6930},{"type":2992,"tag":3275,"props":7121,"children":7122},{"style":6876},[7123],{"type":2997,"value":6998},{"type":2992,"tag":3275,"props":7125,"children":7126},{"style":3349},[7127],{"type":2997,"value":5288},{"type":2992,"tag":3275,"props":7129,"children":7130},{"class":3277,"line":3797},[7131,7136,7140,7144,7149,7153,7158,7162,7167,7171],{"type":2992,"tag":3275,"props":7132,"children":7133},{"style":3426},[7134],{"type":2997,"value":7135},"  PRIMARY KEY",{"type":2992,"tag":3275,"props":7137,"children":7138},{"style":3349},[7139],{"type":2997,"value":4367},{"type":2992,"tag":3275,"props":7141,"children":7142},{"style":3354},[7143],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":7145,"children":7146},{"style":3287},[7147],{"type":2997,"value":7148},"userId",{"type":2992,"tag":3275,"props":7150,"children":7151},{"style":3354},[7152],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":7154,"children":7155},{"style":3349},[7156],{"type":2997,"value":7157},", ",{"type":2992,"tag":3275,"props":7159,"children":7160},{"style":3354},[7161],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":7163,"children":7164},{"style":3287},[7165],{"type":2997,"value":7166},"id",{"type":2992,"tag":3275,"props":7168,"children":7169},{"style":3354},[7170],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":7172,"children":7173},{"style":3349},[7174],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":7176,"children":7177},{"class":3277,"line":3852},[7178],{"type":2992,"tag":3275,"props":7179,"children":7180},{"style":3349},[7181],{"type":2997,"value":6943},{"type":2992,"tag":3049,"props":7183,"children":7184},{},[7185,7198],{"type":2992,"tag":3053,"props":7186,"children":7187},{},[7188,7190,7196],{"type":2997,"value":7189},"For the ",{"type":2992,"tag":3137,"props":7191,"children":7193},{"className":7192},[],[7194],{"type":2997,"value":7195},"users",{"type":2997,"value":7197}," 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":2992,"tag":3053,"props":7199,"children":7200},{},[7201,7202,7208,7210],{"type":2997,"value":5146},{"type":2992,"tag":3137,"props":7203,"children":7205},{"className":7204},[],[7206],{"type":2997,"value":7207},"credentials",{"type":2997,"value":7209}," table stores:\n",{"type":2992,"tag":3049,"props":7211,"children":7212},{},[7213,7231,7243,7253,7282,7303],{"type":2992,"tag":3053,"props":7214,"children":7215},{},[7216,7217,7222,7224,7229],{"type":2997,"value":5146},{"type":2992,"tag":3137,"props":7218,"children":7220},{"className":7219},[],[7221],{"type":2997,"value":7148},{"type":2997,"value":7223}," from the ",{"type":2992,"tag":3137,"props":7225,"children":7227},{"className":7226},[],[7228],{"type":2997,"value":7195},{"type":2997,"value":7230}," table.",{"type":2992,"tag":3053,"props":7232,"children":7233},{},[7234,7236,7241],{"type":2997,"value":7235},"The credential ",{"type":2992,"tag":3137,"props":7237,"children":7239},{"className":7238},[],[7240],{"type":2997,"value":7166},{"type":2997,"value":7242}," (as unique index)",{"type":2992,"tag":3053,"props":7244,"children":7245},{},[7246,7247],{"type":2997,"value":7235},{"type":2992,"tag":3137,"props":7248,"children":7250},{"className":7249},[],[7251],{"type":2997,"value":7252},"publicKey",{"type":2992,"tag":3053,"props":7254,"children":7255},{},[7256,7258,7264,7266,7271,7273,7280],{"type":2997,"value":7257},"A ",{"type":2992,"tag":3137,"props":7259,"children":7261},{"className":7260},[],[7262],{"type":2997,"value":7263},"counter",{"type":2997,"value":7265},". Each time a credential is used, the counter is incremented. We can use this value to perform extra security checks. More about ",{"type":2992,"tag":3137,"props":7267,"children":7269},{"className":7268},[],[7270],{"type":2997,"value":7263},{"type":2997,"value":7272}," can be read ",{"type":2992,"tag":3003,"props":7274,"children":7277},{"href":7275,"rel":7276},"https:\u002F\u002Fsimplewebauthn.dev\u002Fdocs\u002Fpackages\u002Fserver#3-post-registration-responsibilities",[3007],[7278],{"type":2997,"value":7279},"here",{"type":2997,"value":7281},". For this example, we won't be using the counter. But you should update the counter in your database with the new value.",{"type":2992,"tag":3053,"props":7283,"children":7284},{},[7285,7286,7292,7294,7301],{"type":2997,"value":7257},{"type":2992,"tag":3137,"props":7287,"children":7289},{"className":7288},[],[7290],{"type":2997,"value":7291},"backedUp",{"type":2997,"value":7293}," 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":2992,"tag":3003,"props":7295,"children":7298},{"href":7296,"rel":7297},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fugaemxot",[3007],[7299],{"type":2997,"value":7300},"this section",{"type":2997,"value":7302}," for more details.",{"type":2992,"tag":3053,"props":7304,"children":7305},{},[7306,7307,7313,7315,7321],{"type":2997,"value":7235},{"type":2992,"tag":3137,"props":7308,"children":7310},{"className":7309},[],[7311],{"type":2997,"value":7312},"transports",{"type":2997,"value":7314},". 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":2992,"tag":3003,"props":7316,"children":7319},{"href":7317,"rel":7318},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fycxtiorp",[3007],[7320],{"type":2997,"value":7300},{"type":2997,"value":7302},{"type":2992,"tag":2999,"props":7323,"children":7324},{},[7325,7327,7334,7335,7342,7344,7351],{"type":2997,"value":7326},"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":2992,"tag":3003,"props":7328,"children":7331},{"href":7329,"rel":7330},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fregister.post.ts",[3007],[7332],{"type":2997,"value":7333},"registration",{"type":2997,"value":7157},{"type":2992,"tag":3003,"props":7336,"children":7339},{"href":7337,"rel":7338},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts",[3007],[7340],{"type":2997,"value":7341},"authentication",{"type":2997,"value":7343}," and the ",{"type":2992,"tag":3003,"props":7345,"children":7348},{"href":7346,"rel":7347},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fplugins\u002Fdatabase.ts",[3007],[7349],{"type":2997,"value":7350},"database setup",{"type":2997,"value":3230},{"type":2992,"tag":3265,"props":7353,"children":7355},{"className":3954,"code":7354,"language":3956,"meta":2866,"style":2866},"\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",[7356],{"type":2992,"tag":3137,"props":7357,"children":7358},{"__ignoreMap":2866},[7359,7367,7407,7431,7439,7477,7485,7493,7501,7537,7626,7696,7703,7710,7718,7746,7754,7796,7828,7835,7883,7891,7899,7924,7931,7939,7986,8015,8023,8063,8070,8078,8087,8119,8127,8136,8164,8180,8205,8214,8248,8260,8268],{"type":2992,"tag":3275,"props":7360,"children":7361},{"class":3277,"line":2952},[7362],{"type":2992,"tag":3275,"props":7363,"children":7364},{"style":3340},[7365],{"type":2997,"value":7366},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fregister.post.ts\n",{"type":2992,"tag":3275,"props":7368,"children":7369},{"class":3277,"line":2918},[7370,7375,7379,7384,7389,7394,7398,7403],{"type":2992,"tag":3275,"props":7371,"children":7372},{"style":4538},[7373],{"type":2997,"value":7374},"import",{"type":2992,"tag":3275,"props":7376,"children":7377},{"style":3354},[7378],{"type":2997,"value":3447},{"type":2992,"tag":3275,"props":7380,"children":7381},{"style":3349},[7382],{"type":2997,"value":7383}," z",{"type":2992,"tag":3275,"props":7385,"children":7386},{"style":3354},[7387],{"type":2997,"value":7388}," }",{"type":2992,"tag":3275,"props":7390,"children":7391},{"style":4538},[7392],{"type":2997,"value":7393}," from",{"type":2992,"tag":3275,"props":7395,"children":7396},{"style":3354},[7397],{"type":2997,"value":4599},{"type":2992,"tag":3275,"props":7399,"children":7400},{"style":3287},[7401],{"type":2997,"value":7402},"zod",{"type":2992,"tag":3275,"props":7404,"children":7405},{"style":3354},[7406],{"type":2997,"value":4608},{"type":2992,"tag":3275,"props":7408,"children":7409},{"class":3277,"line":2902},[7410,7414,7418,7423,7427],{"type":2992,"tag":3275,"props":7411,"children":7412},{"style":4538},[7413],{"type":2997,"value":5072},{"type":2992,"tag":3275,"props":7415,"children":7416},{"style":4538},[7417],{"type":2997,"value":5187},{"type":2992,"tag":3275,"props":7419,"children":7420},{"style":3511},[7421],{"type":2997,"value":7422}," defineWebAuthnRegisterEventHandler",{"type":2992,"tag":3275,"props":7424,"children":7425},{"style":3349},[7426],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":7428,"children":7429},{"style":3354},[7430],{"type":2997,"value":5202},{"type":2992,"tag":3275,"props":7432,"children":7433},{"class":3277,"line":3538},[7434],{"type":2992,"tag":3275,"props":7435,"children":7436},{"style":3340},[7437],{"type":2997,"value":7438},"  \u002F\u002F optional\n",{"type":2992,"tag":3275,"props":7440,"children":7441},{"class":3277,"line":3547},[7442,7446,7451,7455,7460,7464,7469,7473],{"type":2992,"tag":3275,"props":7443,"children":7444},{"style":3426},[7445],{"type":2997,"value":5740},{"type":2992,"tag":3275,"props":7447,"children":7448},{"style":3420},[7449],{"type":2997,"value":7450}," validateUser",{"type":2992,"tag":3275,"props":7452,"children":7453},{"style":3354},[7454],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":7456,"children":7457},{"style":4370},[7458],{"type":2997,"value":7459},"userBody",{"type":2992,"tag":3275,"props":7461,"children":7462},{"style":3354},[7463],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":7465,"children":7466},{"style":4370},[7467],{"type":2997,"value":7468}," event",{"type":2992,"tag":3275,"props":7470,"children":7471},{"style":3354},[7472],{"type":2997,"value":5958},{"type":2992,"tag":3275,"props":7474,"children":7475},{"style":3354},[7476],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":7478,"children":7479},{"class":3277,"line":3564},[7480],{"type":2992,"tag":3275,"props":7481,"children":7482},{"style":3340},[7483],{"type":2997,"value":7484},"    \u002F\u002F bonus: check if the user is already authenticated to link a credential to his account\n",{"type":2992,"tag":3275,"props":7486,"children":7487},{"class":3277,"line":2898},[7488],{"type":2992,"tag":3275,"props":7489,"children":7490},{"style":3340},[7491],{"type":2997,"value":7492},"    \u002F\u002F We first check if the user is already authenticated by getting the session\n",{"type":2992,"tag":3275,"props":7494,"children":7495},{"class":3277,"line":2894},[7496],{"type":2992,"tag":3275,"props":7497,"children":7498},{"style":3340},[7499],{"type":2997,"value":7500},"    \u002F\u002F And verify that the email is the same as the one in session\n",{"type":2992,"tag":3275,"props":7502,"children":7503},{"class":3277,"line":2890},[7504,7509,7513,7517,7521,7525,7529,7533],{"type":2992,"tag":3275,"props":7505,"children":7506},{"style":3426},[7507],{"type":2997,"value":7508},"    const",{"type":2992,"tag":3275,"props":7510,"children":7511},{"style":3349},[7512],{"type":2997,"value":3471},{"type":2992,"tag":3275,"props":7514,"children":7515},{"style":3354},[7516],{"type":2997,"value":3508},{"type":2992,"tag":3275,"props":7518,"children":7519},{"style":4538},[7520],{"type":2997,"value":4794},{"type":2992,"tag":3275,"props":7522,"children":7523},{"style":3511},[7524],{"type":2997,"value":4799},{"type":2992,"tag":3275,"props":7526,"children":7527},{"style":3420},[7528],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":7530,"children":7531},{"style":3349},[7532],{"type":2997,"value":5754},{"type":2992,"tag":3275,"props":7534,"children":7535},{"style":3420},[7536],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":7538,"children":7539},{"class":3277,"line":3726},[7540,7545,7549,7554,7558,7563,7568,7573,7578,7582,7586,7590,7594,7598,7603,7608,7612,7617,7622],{"type":2992,"tag":3275,"props":7541,"children":7542},{"style":4538},[7543],{"type":2997,"value":7544},"    if",{"type":2992,"tag":3275,"props":7546,"children":7547},{"style":3420},[7548],{"type":2997,"value":4367},{"type":2992,"tag":3275,"props":7550,"children":7551},{"style":3349},[7552],{"type":2997,"value":7553},"session",{"type":2992,"tag":3275,"props":7555,"children":7556},{"style":3354},[7557],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":7559,"children":7560},{"style":3349},[7561],{"type":2997,"value":7562},"user",{"type":2992,"tag":3275,"props":7564,"children":7565},{"style":3354},[7566],{"type":2997,"value":7567},"?.",{"type":2992,"tag":3275,"props":7569,"children":7570},{"style":3349},[7571],{"type":2997,"value":7572},"email",{"type":2992,"tag":3275,"props":7574,"children":7575},{"style":3354},[7576],{"type":2997,"value":7577}," &&",{"type":2992,"tag":3275,"props":7579,"children":7580},{"style":3349},[7581],{"type":2997,"value":3471},{"type":2992,"tag":3275,"props":7583,"children":7584},{"style":3354},[7585],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":7587,"children":7588},{"style":3349},[7589],{"type":2997,"value":7562},{"type":2992,"tag":3275,"props":7591,"children":7592},{"style":3354},[7593],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":7595,"children":7596},{"style":3349},[7597],{"type":2997,"value":7572},{"type":2992,"tag":3275,"props":7599,"children":7600},{"style":3354},[7601],{"type":2997,"value":7602}," !==",{"type":2992,"tag":3275,"props":7604,"children":7605},{"style":3349},[7606],{"type":2997,"value":7607}," userBody",{"type":2992,"tag":3275,"props":7609,"children":7610},{"style":3354},[7611],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":7613,"children":7614},{"style":3349},[7615],{"type":2997,"value":7616},"userName",{"type":2992,"tag":3275,"props":7618,"children":7619},{"style":3420},[7620],{"type":2997,"value":7621},") ",{"type":2992,"tag":3275,"props":7623,"children":7624},{"style":3354},[7625],{"type":2997,"value":5202},{"type":2992,"tag":3275,"props":7627,"children":7628},{"class":3277,"line":3743},[7629,7634,7639,7643,7648,7653,7657,7662,7666,7671,7675,7679,7684,7688,7692],{"type":2992,"tag":3275,"props":7630,"children":7631},{"style":4538},[7632],{"type":2997,"value":7633},"      throw",{"type":2992,"tag":3275,"props":7635,"children":7636},{"style":3511},[7637],{"type":2997,"value":7638}," createError",{"type":2992,"tag":3275,"props":7640,"children":7641},{"style":3420},[7642],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":7644,"children":7645},{"style":3354},[7646],{"type":2997,"value":7647},"{",{"type":2992,"tag":3275,"props":7649,"children":7650},{"style":3420},[7651],{"type":2997,"value":7652}," statusCode",{"type":2992,"tag":3275,"props":7654,"children":7655},{"style":3354},[7656],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":7658,"children":7659},{"style":6876},[7660],{"type":2997,"value":7661}," 400",{"type":2992,"tag":3275,"props":7663,"children":7664},{"style":3354},[7665],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":7667,"children":7668},{"style":3420},[7669],{"type":2997,"value":7670}," message",{"type":2992,"tag":3275,"props":7672,"children":7673},{"style":3354},[7674],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":7676,"children":7677},{"style":3354},[7678],{"type":2997,"value":4599},{"type":2992,"tag":3275,"props":7680,"children":7681},{"style":3287},[7682],{"type":2997,"value":7683},"Email not matching curent session",{"type":2992,"tag":3275,"props":7685,"children":7686},{"style":3354},[7687],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":7689,"children":7690},{"style":3354},[7691],{"type":2997,"value":7388},{"type":2992,"tag":3275,"props":7693,"children":7694},{"style":3420},[7695],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":7697,"children":7698},{"class":3277,"line":3764},[7699],{"type":2992,"tag":3275,"props":7700,"children":7701},{"style":3354},[7702],{"type":2997,"value":5328},{"type":2992,"tag":3275,"props":7704,"children":7705},{"class":3277,"line":3797},[7706],{"type":2992,"tag":3275,"props":7707,"children":7708},{"emptyLinePlaceholder":1196},[7709],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":7711,"children":7712},{"class":3277,"line":3852},[7713],{"type":2992,"tag":3275,"props":7714,"children":7715},{"style":3340},[7716],{"type":2997,"value":7717},"    \u002F\u002F If he registers a new account with credentials\n",{"type":2992,"tag":3275,"props":7719,"children":7720},{"class":3277,"line":3861},[7721,7725,7729,7733,7738,7742],{"type":2992,"tag":3275,"props":7722,"children":7723},{"style":4538},[7724],{"type":2997,"value":5879},{"type":2992,"tag":3275,"props":7726,"children":7727},{"style":3349},[7728],{"type":2997,"value":7383},{"type":2992,"tag":3275,"props":7730,"children":7731},{"style":3354},[7732],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":7734,"children":7735},{"style":3511},[7736],{"type":2997,"value":7737},"object",{"type":2992,"tag":3275,"props":7739,"children":7740},{"style":3420},[7741],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":7743,"children":7744},{"style":3354},[7745],{"type":2997,"value":5202},{"type":2992,"tag":3275,"props":7747,"children":7748},{"class":3277,"line":2886},[7749],{"type":2992,"tag":3275,"props":7750,"children":7751},{"style":3340},[7752],{"type":2997,"value":7753},"      \u002F\u002F we want the userName to be a valid email\n",{"type":2992,"tag":3275,"props":7755,"children":7756},{"class":3277,"line":3929},[7757,7762,7766,7770,7774,7779,7784,7788,7792],{"type":2992,"tag":3275,"props":7758,"children":7759},{"style":3420},[7760],{"type":2997,"value":7761},"      userName",{"type":2992,"tag":3275,"props":7763,"children":7764},{"style":3354},[7765],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":7767,"children":7768},{"style":3349},[7769],{"type":2997,"value":7383},{"type":2992,"tag":3275,"props":7771,"children":7772},{"style":3354},[7773],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":7775,"children":7776},{"style":3511},[7777],{"type":2997,"value":7778},"string",{"type":2992,"tag":3275,"props":7780,"children":7781},{"style":3420},[7782],{"type":2997,"value":7783},"()",{"type":2992,"tag":3275,"props":7785,"children":7786},{"style":3354},[7787],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":7789,"children":7790},{"style":3511},[7791],{"type":2997,"value":7572},{"type":2992,"tag":3275,"props":7793,"children":7794},{"style":3420},[7795],{"type":2997,"value":3519},{"type":2992,"tag":3275,"props":7797,"children":7798},{"class":3277,"line":4199},[7799,7803,7807,7811,7816,7820,7824],{"type":2992,"tag":3275,"props":7800,"children":7801},{"style":3354},[7802],{"type":2997,"value":5867},{"type":2992,"tag":3275,"props":7804,"children":7805},{"style":3420},[7806],{"type":2997,"value":5958},{"type":2992,"tag":3275,"props":7808,"children":7809},{"style":3354},[7810],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":7812,"children":7813},{"style":3511},[7814],{"type":2997,"value":7815},"parse",{"type":2992,"tag":3275,"props":7817,"children":7818},{"style":3420},[7819],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":7821,"children":7822},{"style":3349},[7823],{"type":2997,"value":7459},{"type":2992,"tag":3275,"props":7825,"children":7826},{"style":3420},[7827],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":7829,"children":7830},{"class":3277,"line":4207},[7831],{"type":2992,"tag":3275,"props":7832,"children":7833},{"style":3354},[7834],{"type":2997,"value":4616},{"type":2992,"tag":3275,"props":7836,"children":7837},{"class":3277,"line":4216},[7838,7842,7846,7850,7854,7858,7862,7867,7871,7875,7879],{"type":2992,"tag":3275,"props":7839,"children":7840},{"style":3426},[7841],{"type":2997,"value":5740},{"type":2992,"tag":3275,"props":7843,"children":7844},{"style":3420},[7845],{"type":2997,"value":5745},{"type":2992,"tag":3275,"props":7847,"children":7848},{"style":3354},[7849],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":7851,"children":7852},{"style":4370},[7853],{"type":2997,"value":5754},{"type":2992,"tag":3275,"props":7855,"children":7856},{"style":3354},[7857],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":7859,"children":7860},{"style":3354},[7861],{"type":2997,"value":3447},{"type":2992,"tag":3275,"props":7863,"children":7864},{"style":4370},[7865],{"type":2997,"value":7866}," credential",{"type":2992,"tag":3275,"props":7868,"children":7869},{"style":3354},[7870],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":7872,"children":7873},{"style":4370},[7874],{"type":2997,"value":3462},{"type":2992,"tag":3275,"props":7876,"children":7877},{"style":3354},[7878],{"type":2997,"value":4436},{"type":2992,"tag":3275,"props":7880,"children":7881},{"style":3354},[7882],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":7884,"children":7885},{"class":3277,"line":4224},[7886],{"type":2992,"tag":3275,"props":7887,"children":7888},{"style":3340},[7889],{"type":2997,"value":7890},"    \u002F\u002F The credential creation has been successful\n",{"type":2992,"tag":3275,"props":7892,"children":7893},{"class":3277,"line":4265},[7894],{"type":2992,"tag":3275,"props":7895,"children":7896},{"style":3340},[7897],{"type":2997,"value":7898},"    \u002F\u002F We need to create a user if it does not exist\n",{"type":2992,"tag":3275,"props":7900,"children":7901},{"class":3277,"line":4273},[7902,7906,7911,7915,7920],{"type":2992,"tag":3275,"props":7903,"children":7904},{"style":3426},[7905],{"type":2997,"value":7508},{"type":2992,"tag":3275,"props":7907,"children":7908},{"style":3349},[7909],{"type":2997,"value":7910}," db",{"type":2992,"tag":3275,"props":7912,"children":7913},{"style":3354},[7914],{"type":2997,"value":3508},{"type":2992,"tag":3275,"props":7916,"children":7917},{"style":3511},[7918],{"type":2997,"value":7919}," useDatabase",{"type":2992,"tag":3275,"props":7921,"children":7922},{"style":3420},[7923],{"type":2997,"value":3519},{"type":2992,"tag":3275,"props":7925,"children":7926},{"class":3277,"line":4282},[7927],{"type":2992,"tag":3275,"props":7928,"children":7929},{"emptyLinePlaceholder":1196},[7930],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":7932,"children":7933},{"class":3277,"line":4290},[7934],{"type":2992,"tag":3275,"props":7935,"children":7936},{"style":3340},[7937],{"type":2997,"value":7938},"    \u002F\u002F Get the user from the database\n",{"type":2992,"tag":3275,"props":7940,"children":7941},{"class":3277,"line":4327},[7942,7947,7952,7956,7960,7964,7968,7972,7977,7981],{"type":2992,"tag":3275,"props":7943,"children":7944},{"style":3426},[7945],{"type":2997,"value":7946},"    let",{"type":2992,"tag":3275,"props":7948,"children":7949},{"style":3349},[7950],{"type":2997,"value":7951}," dbUser",{"type":2992,"tag":3275,"props":7953,"children":7954},{"style":3354},[7955],{"type":2997,"value":3508},{"type":2992,"tag":3275,"props":7957,"children":7958},{"style":4538},[7959],{"type":2997,"value":4794},{"type":2992,"tag":3275,"props":7961,"children":7962},{"style":3349},[7963],{"type":2997,"value":7910},{"type":2992,"tag":3275,"props":7965,"children":7966},{"style":3354},[7967],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":7969,"children":7970},{"style":3511},[7971],{"type":2997,"value":6866},{"type":2992,"tag":3275,"props":7973,"children":7974},{"style":3354},[7975],{"type":2997,"value":7976},"`",{"type":2992,"tag":3275,"props":7978,"children":7979},{"style":3287},[7980],{"type":2997,"value":5279},{"type":2992,"tag":3275,"props":7982,"children":7983},{"style":3354},[7984],{"type":2997,"value":7985},"`\n",{"type":2992,"tag":3275,"props":7987,"children":7988},{"class":3277,"line":4335},[7989,7993,7997,8002,8007,8011],{"type":2992,"tag":3275,"props":7990,"children":7991},{"style":4538},[7992],{"type":2997,"value":7544},{"type":2992,"tag":3275,"props":7994,"children":7995},{"style":3420},[7996],{"type":2997,"value":4367},{"type":2992,"tag":3275,"props":7998,"children":7999},{"style":3354},[8000],{"type":2997,"value":8001},"!",{"type":2992,"tag":3275,"props":8003,"children":8004},{"style":3349},[8005],{"type":2997,"value":8006},"dbUser",{"type":2992,"tag":3275,"props":8008,"children":8009},{"style":3420},[8010],{"type":2997,"value":7621},{"type":2992,"tag":3275,"props":8012,"children":8013},{"style":3354},[8014],{"type":2997,"value":5202},{"type":2992,"tag":3275,"props":8016,"children":8017},{"class":3277,"line":4344},[8018],{"type":2992,"tag":3275,"props":8019,"children":8020},{"style":3340},[8021],{"type":2997,"value":8022},"      \u002F\u002F Store new user in database & its credentials\n",{"type":2992,"tag":3275,"props":8024,"children":8025},{"class":3277,"line":4352},[8026,8031,8035,8039,8043,8047,8051,8055,8059],{"type":2992,"tag":3275,"props":8027,"children":8028},{"style":3349},[8029],{"type":2997,"value":8030},"      dbUser",{"type":2992,"tag":3275,"props":8032,"children":8033},{"style":3354},[8034],{"type":2997,"value":3508},{"type":2992,"tag":3275,"props":8036,"children":8037},{"style":4538},[8038],{"type":2997,"value":4794},{"type":2992,"tag":3275,"props":8040,"children":8041},{"style":3349},[8042],{"type":2997,"value":7910},{"type":2992,"tag":3275,"props":8044,"children":8045},{"style":3354},[8046],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":8048,"children":8049},{"style":3511},[8050],{"type":2997,"value":6866},{"type":2992,"tag":3275,"props":8052,"children":8053},{"style":3354},[8054],{"type":2997,"value":7976},{"type":2992,"tag":3275,"props":8056,"children":8057},{"style":3287},[8058],{"type":2997,"value":5279},{"type":2992,"tag":3275,"props":8060,"children":8061},{"style":3354},[8062],{"type":2997,"value":7985},{"type":2992,"tag":3275,"props":8064,"children":8065},{"class":3277,"line":4448},[8066],{"type":2992,"tag":3275,"props":8067,"children":8068},{"style":3354},[8069],{"type":2997,"value":5328},{"type":2992,"tag":3275,"props":8071,"children":8073},{"class":3277,"line":8072},31,[8074],{"type":2992,"tag":3275,"props":8075,"children":8076},{"emptyLinePlaceholder":1196},[8077],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":8079,"children":8081},{"class":3277,"line":8080},32,[8082],{"type":2992,"tag":3275,"props":8083,"children":8084},{"style":3340},[8085],{"type":2997,"value":8086},"    \u002F\u002F we now need to store the credential in our database and link it to the user\n",{"type":2992,"tag":3275,"props":8088,"children":8090},{"class":3277,"line":8089},33,[8091,8095,8099,8103,8107,8111,8115],{"type":2992,"tag":3275,"props":8092,"children":8093},{"style":4538},[8094],{"type":2997,"value":5791},{"type":2992,"tag":3275,"props":8096,"children":8097},{"style":3349},[8098],{"type":2997,"value":7910},{"type":2992,"tag":3275,"props":8100,"children":8101},{"style":3354},[8102],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":8104,"children":8105},{"style":3511},[8106],{"type":2997,"value":6866},{"type":2992,"tag":3275,"props":8108,"children":8109},{"style":3354},[8110],{"type":2997,"value":7976},{"type":2992,"tag":3275,"props":8112,"children":8113},{"style":3287},[8114],{"type":2997,"value":5279},{"type":2992,"tag":3275,"props":8116,"children":8117},{"style":3354},[8118],{"type":2997,"value":7985},{"type":2992,"tag":3275,"props":8120,"children":8122},{"class":3277,"line":8121},34,[8123],{"type":2992,"tag":3275,"props":8124,"children":8125},{"emptyLinePlaceholder":1196},[8126],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":8128,"children":8130},{"class":3277,"line":8129},35,[8131],{"type":2992,"tag":3275,"props":8132,"children":8133},{"style":3340},[8134],{"type":2997,"value":8135},"    \u002F\u002F Set the user session\n",{"type":2992,"tag":3275,"props":8137,"children":8139},{"class":3277,"line":8138},36,[8140,8144,8148,8152,8156,8160],{"type":2992,"tag":3275,"props":8141,"children":8142},{"style":4538},[8143],{"type":2997,"value":5791},{"type":2992,"tag":3275,"props":8145,"children":8146},{"style":3511},[8147],{"type":2997,"value":4546},{"type":2992,"tag":3275,"props":8149,"children":8150},{"style":3420},[8151],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":8153,"children":8154},{"style":3349},[8155],{"type":2997,"value":5754},{"type":2992,"tag":3275,"props":8157,"children":8158},{"style":3354},[8159],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":8161,"children":8162},{"style":3354},[8163],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":8165,"children":8167},{"class":3277,"line":8166},37,[8168,8172,8176],{"type":2992,"tag":3275,"props":8169,"children":8170},{"style":3420},[8171],{"type":2997,"value":5819},{"type":2992,"tag":3275,"props":8173,"children":8174},{"style":3354},[8175],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":8177,"children":8178},{"style":3354},[8179],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":8181,"children":8183},{"class":3277,"line":8182},38,[8184,8189,8193,8197,8201],{"type":2992,"tag":3275,"props":8185,"children":8186},{"style":3420},[8187],{"type":2997,"value":8188},"        id",{"type":2992,"tag":3275,"props":8190,"children":8191},{"style":3354},[8192],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":8194,"children":8195},{"style":3349},[8196],{"type":2997,"value":7951},{"type":2992,"tag":3275,"props":8198,"children":8199},{"style":3354},[8200],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":8202,"children":8203},{"style":3349},[8204],{"type":2997,"value":5852},{"type":2992,"tag":3275,"props":8206,"children":8208},{"class":3277,"line":8207},39,[8209],{"type":2992,"tag":3275,"props":8210,"children":8211},{"style":3354},[8212],{"type":2997,"value":8213},"      },\n",{"type":2992,"tag":3275,"props":8215,"children":8217},{"class":3277,"line":8216},40,[8218,8223,8227,8231,8235,8240,8244],{"type":2992,"tag":3275,"props":8219,"children":8220},{"style":3420},[8221],{"type":2997,"value":8222},"      loggedInAt",{"type":2992,"tag":3275,"props":8224,"children":8225},{"style":3354},[8226],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":8228,"children":8229},{"style":3349},[8230],{"type":2997,"value":4702},{"type":2992,"tag":3275,"props":8232,"children":8233},{"style":3354},[8234],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":8236,"children":8237},{"style":3511},[8238],{"type":2997,"value":8239},"now",{"type":2992,"tag":3275,"props":8241,"children":8242},{"style":3420},[8243],{"type":2997,"value":7783},{"type":2992,"tag":3275,"props":8245,"children":8246},{"style":3354},[8247],{"type":2997,"value":5288},{"type":2992,"tag":3275,"props":8249,"children":8251},{"class":3277,"line":8250},41,[8252,8256],{"type":2992,"tag":3275,"props":8253,"children":8254},{"style":3354},[8255],{"type":2997,"value":5867},{"type":2992,"tag":3275,"props":8257,"children":8258},{"style":3420},[8259],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":8261,"children":8263},{"class":3277,"line":8262},42,[8264],{"type":2992,"tag":3275,"props":8265,"children":8266},{"style":3354},[8267],{"type":2997,"value":4616},{"type":2992,"tag":3275,"props":8269,"children":8271},{"class":3277,"line":8270},43,[8272,8276],{"type":2992,"tag":3275,"props":8273,"children":8274},{"style":3354},[8275],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":8277,"children":8278},{"style":3349},[8279],{"type":2997,"value":4718},{"type":2992,"tag":4456,"props":8281,"children":8282},{},[8283],{"type":2992,"tag":2999,"props":8284,"children":8285},{},[8286,8291,8293,8300,8302,8308,8310],{"type":2992,"tag":3275,"props":8287,"children":8288},{},[8289],{"type":2997,"value":8290},"!TIP",{"type":2997,"value":8292},"\nIf you want to plug in and use the ",{"type":2992,"tag":3003,"props":8294,"children":8297},{"href":8295,"rel":8296},"https:\u002F\u002Fgithub.com\u002Fpasskeydeveloper\u002Fpasskey-authenticator-aaguids",[3007],[8298],{"type":2997,"value":8299},"Community sourced list of AAGUIDS",{"type":2997,"value":8301}," to decorate your display of added passkeys, you can access the the ID via ",{"type":2992,"tag":3137,"props":8303,"children":8305},{"className":8304},[],[8306],{"type":2997,"value":8307},"credential.aaguid",{"type":2997,"value":8309}," inside ",{"type":2992,"tag":3137,"props":8311,"children":8313},{"className":8312},[],[8314],{"type":2997,"value":5131},{"type":2992,"tag":3265,"props":8316,"children":8318},{"className":3954,"code":8317,"language":3956,"meta":2866,"style":2866},"\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",[8319],{"type":2992,"tag":3137,"props":8320,"children":8321},{"__ignoreMap":2866},[8322,8330,8354,8362,8399,8447,8455,8487,8551,8558,8566,8574,8582,8594,8602,8609,8646,8654,8701,8708,8716,8740,8804,8811,8823,8830,8878,8886,8894,8917,8960,8967,8975,9006,9013,9020,9047,9062,9085,9092,9123,9134,9141],{"type":2992,"tag":3275,"props":8323,"children":8324},{"class":3277,"line":2952},[8325],{"type":2992,"tag":3275,"props":8326,"children":8327},{"style":3340},[8328],{"type":2997,"value":8329},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts\n",{"type":2992,"tag":3275,"props":8331,"children":8332},{"class":3277,"line":2918},[8333,8337,8341,8346,8350],{"type":2992,"tag":3275,"props":8334,"children":8335},{"style":4538},[8336],{"type":2997,"value":5072},{"type":2992,"tag":3275,"props":8338,"children":8339},{"style":4538},[8340],{"type":2997,"value":5187},{"type":2992,"tag":3275,"props":8342,"children":8343},{"style":3511},[8344],{"type":2997,"value":8345}," defineWebAuthnAuthenticateEventHandler",{"type":2992,"tag":3275,"props":8347,"children":8348},{"style":3349},[8349],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":8351,"children":8352},{"style":3354},[8353],{"type":2997,"value":5202},{"type":2992,"tag":3275,"props":8355,"children":8356},{"class":3277,"line":2902},[8357],{"type":2992,"tag":3275,"props":8358,"children":8359},{"style":3340},[8360],{"type":2997,"value":8361},"  \u002F\u002F Optionally, we can prefetch the credentials if the user gives their userName during login\n",{"type":2992,"tag":3275,"props":8363,"children":8364},{"class":3277,"line":3538},[8365,8369,8374,8378,8382,8386,8391,8395],{"type":2992,"tag":3275,"props":8366,"children":8367},{"style":3426},[8368],{"type":2997,"value":5740},{"type":2992,"tag":3275,"props":8370,"children":8371},{"style":3420},[8372],{"type":2997,"value":8373}," allowCredentials",{"type":2992,"tag":3275,"props":8375,"children":8376},{"style":3354},[8377],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":8379,"children":8380},{"style":4370},[8381],{"type":2997,"value":5754},{"type":2992,"tag":3275,"props":8383,"children":8384},{"style":3354},[8385],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":8387,"children":8388},{"style":4370},[8389],{"type":2997,"value":8390}," userName",{"type":2992,"tag":3275,"props":8392,"children":8393},{"style":3354},[8394],{"type":2997,"value":5958},{"type":2992,"tag":3275,"props":8396,"children":8397},{"style":3354},[8398],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":8400,"children":8401},{"class":3277,"line":3547},[8402,8406,8411,8415,8419,8423,8427,8431,8435,8439,8443],{"type":2992,"tag":3275,"props":8403,"children":8404},{"style":3426},[8405],{"type":2997,"value":7508},{"type":2992,"tag":3275,"props":8407,"children":8408},{"style":3349},[8409],{"type":2997,"value":8410}," credentials",{"type":2992,"tag":3275,"props":8412,"children":8413},{"style":3354},[8414],{"type":2997,"value":3508},{"type":2992,"tag":3275,"props":8416,"children":8417},{"style":4538},[8418],{"type":2997,"value":4794},{"type":2992,"tag":3275,"props":8420,"children":8421},{"style":3511},[8422],{"type":2997,"value":7919},{"type":2992,"tag":3275,"props":8424,"children":8425},{"style":3420},[8426],{"type":2997,"value":7783},{"type":2992,"tag":3275,"props":8428,"children":8429},{"style":3354},[8430],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":8432,"children":8433},{"style":3511},[8434],{"type":2997,"value":6866},{"type":2992,"tag":3275,"props":8436,"children":8437},{"style":3354},[8438],{"type":2997,"value":7976},{"type":2992,"tag":3275,"props":8440,"children":8441},{"style":3287},[8442],{"type":2997,"value":5279},{"type":2992,"tag":3275,"props":8444,"children":8445},{"style":3354},[8446],{"type":2997,"value":7985},{"type":2992,"tag":3275,"props":8448,"children":8449},{"class":3277,"line":3564},[8450],{"type":2992,"tag":3275,"props":8451,"children":8452},{"style":3340},[8453],{"type":2997,"value":8454},"    \u002F\u002F If no credentials are found, the authentication cannot be completed\n",{"type":2992,"tag":3275,"props":8456,"children":8457},{"class":3277,"line":2898},[8458,8462,8466,8470,8474,8478,8483],{"type":2992,"tag":3275,"props":8459,"children":8460},{"style":4538},[8461],{"type":2997,"value":7544},{"type":2992,"tag":3275,"props":8463,"children":8464},{"style":3420},[8465],{"type":2997,"value":4367},{"type":2992,"tag":3275,"props":8467,"children":8468},{"style":3354},[8469],{"type":2997,"value":8001},{"type":2992,"tag":3275,"props":8471,"children":8472},{"style":3349},[8473],{"type":2997,"value":7207},{"type":2992,"tag":3275,"props":8475,"children":8476},{"style":3354},[8477],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":8479,"children":8480},{"style":3349},[8481],{"type":2997,"value":8482},"length",{"type":2992,"tag":3275,"props":8484,"children":8485},{"style":3420},[8486],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":8488,"children":8489},{"class":3277,"line":2894},[8490,8494,8498,8502,8506,8510,8514,8518,8522,8526,8530,8534,8539,8543,8547],{"type":2992,"tag":3275,"props":8491,"children":8492},{"style":4538},[8493],{"type":2997,"value":7633},{"type":2992,"tag":3275,"props":8495,"children":8496},{"style":3511},[8497],{"type":2997,"value":7638},{"type":2992,"tag":3275,"props":8499,"children":8500},{"style":3420},[8501],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":8503,"children":8504},{"style":3354},[8505],{"type":2997,"value":7647},{"type":2992,"tag":3275,"props":8507,"children":8508},{"style":3420},[8509],{"type":2997,"value":7652},{"type":2992,"tag":3275,"props":8511,"children":8512},{"style":3354},[8513],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":8515,"children":8516},{"style":6876},[8517],{"type":2997,"value":7661},{"type":2992,"tag":3275,"props":8519,"children":8520},{"style":3354},[8521],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":8523,"children":8524},{"style":3420},[8525],{"type":2997,"value":7670},{"type":2992,"tag":3275,"props":8527,"children":8528},{"style":3354},[8529],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":8531,"children":8532},{"style":3354},[8533],{"type":2997,"value":4599},{"type":2992,"tag":3275,"props":8535,"children":8536},{"style":3287},[8537],{"type":2997,"value":8538},"User not found",{"type":2992,"tag":3275,"props":8540,"children":8541},{"style":3354},[8542],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":8544,"children":8545},{"style":3354},[8546],{"type":2997,"value":7388},{"type":2992,"tag":3275,"props":8548,"children":8549},{"style":3420},[8550],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":8552,"children":8553},{"class":3277,"line":2890},[8554],{"type":2992,"tag":3275,"props":8555,"children":8556},{"emptyLinePlaceholder":1196},[8557],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":8559,"children":8560},{"class":3277,"line":3726},[8561],{"type":2992,"tag":3275,"props":8562,"children":8563},{"style":3340},[8564],{"type":2997,"value":8565},"    \u002F\u002F If user is found, only allow credentials that are registered\n",{"type":2992,"tag":3275,"props":8567,"children":8568},{"class":3277,"line":3743},[8569],{"type":2992,"tag":3275,"props":8570,"children":8571},{"style":3340},[8572],{"type":2997,"value":8573},"    \u002F\u002F The browser will automatically try to use the credential that it knows about\n",{"type":2992,"tag":3275,"props":8575,"children":8576},{"class":3277,"line":3764},[8577],{"type":2992,"tag":3275,"props":8578,"children":8579},{"style":3340},[8580],{"type":2997,"value":8581},"    \u002F\u002F Skipping the step for the user to select a credential for a better user experience\n",{"type":2992,"tag":3275,"props":8583,"children":8584},{"class":3277,"line":3797},[8585,8589],{"type":2992,"tag":3275,"props":8586,"children":8587},{"style":4538},[8588],{"type":2997,"value":5879},{"type":2992,"tag":3275,"props":8590,"children":8591},{"style":3349},[8592],{"type":2997,"value":8593}," credentials\n",{"type":2992,"tag":3275,"props":8595,"children":8596},{"class":3277,"line":3852},[8597],{"type":2992,"tag":3275,"props":8598,"children":8599},{"style":3340},[8600],{"type":2997,"value":8601},"    \u002F\u002F example: [{ id: '...' }]\n",{"type":2992,"tag":3275,"props":8603,"children":8604},{"class":3277,"line":3861},[8605],{"type":2992,"tag":3275,"props":8606,"children":8607},{"style":3354},[8608],{"type":2997,"value":4616},{"type":2992,"tag":3275,"props":8610,"children":8611},{"class":3277,"line":2886},[8612,8616,8621,8625,8629,8633,8638,8642],{"type":2992,"tag":3275,"props":8613,"children":8614},{"style":3426},[8615],{"type":2997,"value":5740},{"type":2992,"tag":3275,"props":8617,"children":8618},{"style":3420},[8619],{"type":2997,"value":8620}," getCredential",{"type":2992,"tag":3275,"props":8622,"children":8623},{"style":3354},[8624],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":8626,"children":8627},{"style":4370},[8628],{"type":2997,"value":5754},{"type":2992,"tag":3275,"props":8630,"children":8631},{"style":3354},[8632],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":8634,"children":8635},{"style":4370},[8636],{"type":2997,"value":8637}," credentialId",{"type":2992,"tag":3275,"props":8639,"children":8640},{"style":3354},[8641],{"type":2997,"value":5958},{"type":2992,"tag":3275,"props":8643,"children":8644},{"style":3354},[8645],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":8647,"children":8648},{"class":3277,"line":3929},[8649],{"type":2992,"tag":3275,"props":8650,"children":8651},{"style":3340},[8652],{"type":2997,"value":8653},"    \u002F\u002F Look for the credential in our database\n",{"type":2992,"tag":3275,"props":8655,"children":8656},{"class":3277,"line":4199},[8657,8661,8665,8669,8673,8677,8681,8685,8689,8693,8697],{"type":2992,"tag":3275,"props":8658,"children":8659},{"style":3426},[8660],{"type":2997,"value":7508},{"type":2992,"tag":3275,"props":8662,"children":8663},{"style":3349},[8664],{"type":2997,"value":7866},{"type":2992,"tag":3275,"props":8666,"children":8667},{"style":3354},[8668],{"type":2997,"value":3508},{"type":2992,"tag":3275,"props":8670,"children":8671},{"style":4538},[8672],{"type":2997,"value":4794},{"type":2992,"tag":3275,"props":8674,"children":8675},{"style":3511},[8676],{"type":2997,"value":7919},{"type":2992,"tag":3275,"props":8678,"children":8679},{"style":3420},[8680],{"type":2997,"value":7783},{"type":2992,"tag":3275,"props":8682,"children":8683},{"style":3354},[8684],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":8686,"children":8687},{"style":3511},[8688],{"type":2997,"value":6866},{"type":2992,"tag":3275,"props":8690,"children":8691},{"style":3354},[8692],{"type":2997,"value":7976},{"type":2992,"tag":3275,"props":8694,"children":8695},{"style":3287},[8696],{"type":2997,"value":5279},{"type":2992,"tag":3275,"props":8698,"children":8699},{"style":3354},[8700],{"type":2997,"value":7985},{"type":2992,"tag":3275,"props":8702,"children":8703},{"class":3277,"line":4207},[8704],{"type":2992,"tag":3275,"props":8705,"children":8706},{"emptyLinePlaceholder":1196},[8707],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":8709,"children":8710},{"class":3277,"line":4216},[8711],{"type":2992,"tag":3275,"props":8712,"children":8713},{"style":3340},[8714],{"type":2997,"value":8715},"    \u002F\u002F If the credential is not found, there is no account to log in to\n",{"type":2992,"tag":3275,"props":8717,"children":8718},{"class":3277,"line":4224},[8719,8723,8727,8731,8736],{"type":2992,"tag":3275,"props":8720,"children":8721},{"style":4538},[8722],{"type":2997,"value":7544},{"type":2992,"tag":3275,"props":8724,"children":8725},{"style":3420},[8726],{"type":2997,"value":4367},{"type":2992,"tag":3275,"props":8728,"children":8729},{"style":3354},[8730],{"type":2997,"value":8001},{"type":2992,"tag":3275,"props":8732,"children":8733},{"style":3349},[8734],{"type":2997,"value":8735},"credential",{"type":2992,"tag":3275,"props":8737,"children":8738},{"style":3420},[8739],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":8741,"children":8742},{"class":3277,"line":4265},[8743,8747,8751,8755,8759,8763,8767,8771,8775,8779,8783,8787,8792,8796,8800],{"type":2992,"tag":3275,"props":8744,"children":8745},{"style":4538},[8746],{"type":2997,"value":7633},{"type":2992,"tag":3275,"props":8748,"children":8749},{"style":3511},[8750],{"type":2997,"value":7638},{"type":2992,"tag":3275,"props":8752,"children":8753},{"style":3420},[8754],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":8756,"children":8757},{"style":3354},[8758],{"type":2997,"value":7647},{"type":2992,"tag":3275,"props":8760,"children":8761},{"style":3420},[8762],{"type":2997,"value":7652},{"type":2992,"tag":3275,"props":8764,"children":8765},{"style":3354},[8766],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":8768,"children":8769},{"style":6876},[8770],{"type":2997,"value":7661},{"type":2992,"tag":3275,"props":8772,"children":8773},{"style":3354},[8774],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":8776,"children":8777},{"style":3420},[8778],{"type":2997,"value":7670},{"type":2992,"tag":3275,"props":8780,"children":8781},{"style":3354},[8782],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":8784,"children":8785},{"style":3354},[8786],{"type":2997,"value":4599},{"type":2992,"tag":3275,"props":8788,"children":8789},{"style":3287},[8790],{"type":2997,"value":8791},"Credential not found",{"type":2992,"tag":3275,"props":8793,"children":8794},{"style":3354},[8795],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":8797,"children":8798},{"style":3354},[8799],{"type":2997,"value":7388},{"type":2992,"tag":3275,"props":8801,"children":8802},{"style":3420},[8803],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":8805,"children":8806},{"class":3277,"line":4273},[8807],{"type":2992,"tag":3275,"props":8808,"children":8809},{"emptyLinePlaceholder":1196},[8810],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":8812,"children":8813},{"class":3277,"line":4282},[8814,8818],{"type":2992,"tag":3275,"props":8815,"children":8816},{"style":4538},[8817],{"type":2997,"value":5879},{"type":2992,"tag":3275,"props":8819,"children":8820},{"style":3349},[8821],{"type":2997,"value":8822}," credential\n",{"type":2992,"tag":3275,"props":8824,"children":8825},{"class":3277,"line":4290},[8826],{"type":2992,"tag":3275,"props":8827,"children":8828},{"style":3354},[8829],{"type":2997,"value":4616},{"type":2992,"tag":3275,"props":8831,"children":8832},{"class":3277,"line":4327},[8833,8837,8841,8845,8849,8853,8857,8861,8865,8870,8874],{"type":2992,"tag":3275,"props":8834,"children":8835},{"style":3426},[8836],{"type":2997,"value":5740},{"type":2992,"tag":3275,"props":8838,"children":8839},{"style":3420},[8840],{"type":2997,"value":5745},{"type":2992,"tag":3275,"props":8842,"children":8843},{"style":3354},[8844],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":8846,"children":8847},{"style":4370},[8848],{"type":2997,"value":5754},{"type":2992,"tag":3275,"props":8850,"children":8851},{"style":3354},[8852],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":8854,"children":8855},{"style":3354},[8856],{"type":2997,"value":3447},{"type":2992,"tag":3275,"props":8858,"children":8859},{"style":4370},[8860],{"type":2997,"value":7866},{"type":2992,"tag":3275,"props":8862,"children":8863},{"style":3354},[8864],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":8866,"children":8867},{"style":4370},[8868],{"type":2997,"value":8869}," authenticationInfo",{"type":2992,"tag":3275,"props":8871,"children":8872},{"style":3354},[8873],{"type":2997,"value":4436},{"type":2992,"tag":3275,"props":8875,"children":8876},{"style":3354},[8877],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":8879,"children":8880},{"class":3277,"line":4335},[8881],{"type":2992,"tag":3275,"props":8882,"children":8883},{"style":3340},[8884],{"type":2997,"value":8885},"    \u002F\u002F The credential authentication has been successful\n",{"type":2992,"tag":3275,"props":8887,"children":8888},{"class":3277,"line":4344},[8889],{"type":2992,"tag":3275,"props":8890,"children":8891},{"style":3340},[8892],{"type":2997,"value":8893},"    \u002F\u002F We can look it up in our database and get the corresponding user\n",{"type":2992,"tag":3275,"props":8895,"children":8896},{"class":3277,"line":4352},[8897,8901,8905,8909,8913],{"type":2992,"tag":3275,"props":8898,"children":8899},{"style":3426},[8900],{"type":2997,"value":7508},{"type":2992,"tag":3275,"props":8902,"children":8903},{"style":3349},[8904],{"type":2997,"value":7910},{"type":2992,"tag":3275,"props":8906,"children":8907},{"style":3354},[8908],{"type":2997,"value":3508},{"type":2992,"tag":3275,"props":8910,"children":8911},{"style":3511},[8912],{"type":2997,"value":7919},{"type":2992,"tag":3275,"props":8914,"children":8915},{"style":3420},[8916],{"type":2997,"value":3519},{"type":2992,"tag":3275,"props":8918,"children":8919},{"class":3277,"line":4448},[8920,8924,8928,8932,8936,8940,8944,8948,8952,8956],{"type":2992,"tag":3275,"props":8921,"children":8922},{"style":3426},[8923],{"type":2997,"value":7508},{"type":2992,"tag":3275,"props":8925,"children":8926},{"style":3349},[8927],{"type":2997,"value":3462},{"type":2992,"tag":3275,"props":8929,"children":8930},{"style":3354},[8931],{"type":2997,"value":3508},{"type":2992,"tag":3275,"props":8933,"children":8934},{"style":4538},[8935],{"type":2997,"value":4794},{"type":2992,"tag":3275,"props":8937,"children":8938},{"style":3349},[8939],{"type":2997,"value":7910},{"type":2992,"tag":3275,"props":8941,"children":8942},{"style":3354},[8943],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":8945,"children":8946},{"style":3511},[8947],{"type":2997,"value":6866},{"type":2992,"tag":3275,"props":8949,"children":8950},{"style":3354},[8951],{"type":2997,"value":7976},{"type":2992,"tag":3275,"props":8953,"children":8954},{"style":3287},[8955],{"type":2997,"value":5279},{"type":2992,"tag":3275,"props":8957,"children":8958},{"style":3354},[8959],{"type":2997,"value":7985},{"type":2992,"tag":3275,"props":8961,"children":8962},{"class":3277,"line":8072},[8963],{"type":2992,"tag":3275,"props":8964,"children":8965},{"emptyLinePlaceholder":1196},[8966],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":8968,"children":8969},{"class":3277,"line":8080},[8970],{"type":2992,"tag":3275,"props":8971,"children":8972},{"style":3340},[8973],{"type":2997,"value":8974},"    \u002F\u002F Update the counter in the database (authenticationInfo.newCounter)\n",{"type":2992,"tag":3275,"props":8976,"children":8977},{"class":3277,"line":8089},[8978,8982,8986,8990,8994,8998,9002],{"type":2992,"tag":3275,"props":8979,"children":8980},{"style":4538},[8981],{"type":2997,"value":5791},{"type":2992,"tag":3275,"props":8983,"children":8984},{"style":3349},[8985],{"type":2997,"value":7910},{"type":2992,"tag":3275,"props":8987,"children":8988},{"style":3354},[8989],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":8991,"children":8992},{"style":3511},[8993],{"type":2997,"value":6866},{"type":2992,"tag":3275,"props":8995,"children":8996},{"style":3354},[8997],{"type":2997,"value":7976},{"type":2992,"tag":3275,"props":8999,"children":9000},{"style":3287},[9001],{"type":2997,"value":5279},{"type":2992,"tag":3275,"props":9003,"children":9004},{"style":3354},[9005],{"type":2997,"value":7985},{"type":2992,"tag":3275,"props":9007,"children":9008},{"class":3277,"line":8121},[9009],{"type":2992,"tag":3275,"props":9010,"children":9011},{"emptyLinePlaceholder":1196},[9012],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":9014,"children":9015},{"class":3277,"line":8129},[9016],{"type":2992,"tag":3275,"props":9017,"children":9018},{"style":3340},[9019],{"type":2997,"value":8135},{"type":2992,"tag":3275,"props":9021,"children":9022},{"class":3277,"line":8138},[9023,9027,9031,9035,9039,9043],{"type":2992,"tag":3275,"props":9024,"children":9025},{"style":4538},[9026],{"type":2997,"value":5791},{"type":2992,"tag":3275,"props":9028,"children":9029},{"style":3511},[9030],{"type":2997,"value":4546},{"type":2992,"tag":3275,"props":9032,"children":9033},{"style":3420},[9034],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":9036,"children":9037},{"style":3349},[9038],{"type":2997,"value":5754},{"type":2992,"tag":3275,"props":9040,"children":9041},{"style":3354},[9042],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":9044,"children":9045},{"style":3354},[9046],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":9048,"children":9049},{"class":3277,"line":8166},[9050,9054,9058],{"type":2992,"tag":3275,"props":9051,"children":9052},{"style":3420},[9053],{"type":2997,"value":5819},{"type":2992,"tag":3275,"props":9055,"children":9056},{"style":3354},[9057],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":9059,"children":9060},{"style":3354},[9061],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":9063,"children":9064},{"class":3277,"line":8182},[9065,9069,9073,9077,9081],{"type":2992,"tag":3275,"props":9066,"children":9067},{"style":3420},[9068],{"type":2997,"value":8188},{"type":2992,"tag":3275,"props":9070,"children":9071},{"style":3354},[9072],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":9074,"children":9075},{"style":3349},[9076],{"type":2997,"value":3462},{"type":2992,"tag":3275,"props":9078,"children":9079},{"style":3354},[9080],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":9082,"children":9083},{"style":3349},[9084],{"type":2997,"value":5852},{"type":2992,"tag":3275,"props":9086,"children":9087},{"class":3277,"line":8207},[9088],{"type":2992,"tag":3275,"props":9089,"children":9090},{"style":3354},[9091],{"type":2997,"value":8213},{"type":2992,"tag":3275,"props":9093,"children":9094},{"class":3277,"line":8216},[9095,9099,9103,9107,9111,9115,9119],{"type":2992,"tag":3275,"props":9096,"children":9097},{"style":3420},[9098],{"type":2997,"value":8222},{"type":2992,"tag":3275,"props":9100,"children":9101},{"style":3354},[9102],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":9104,"children":9105},{"style":3349},[9106],{"type":2997,"value":4702},{"type":2992,"tag":3275,"props":9108,"children":9109},{"style":3354},[9110],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":9112,"children":9113},{"style":3511},[9114],{"type":2997,"value":8239},{"type":2992,"tag":3275,"props":9116,"children":9117},{"style":3420},[9118],{"type":2997,"value":7783},{"type":2992,"tag":3275,"props":9120,"children":9121},{"style":3354},[9122],{"type":2997,"value":5288},{"type":2992,"tag":3275,"props":9124,"children":9125},{"class":3277,"line":8250},[9126,9130],{"type":2992,"tag":3275,"props":9127,"children":9128},{"style":3354},[9129],{"type":2997,"value":5867},{"type":2992,"tag":3275,"props":9131,"children":9132},{"style":3420},[9133],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":9135,"children":9136},{"class":3277,"line":8262},[9137],{"type":2992,"tag":3275,"props":9138,"children":9139},{"style":3354},[9140],{"type":2997,"value":4616},{"type":2992,"tag":3275,"props":9142,"children":9143},{"class":3277,"line":8270},[9144,9148],{"type":2992,"tag":3275,"props":9145,"children":9146},{"style":3354},[9147],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":9149,"children":9150},{"style":3349},[9151],{"type":2997,"value":4718},{"type":2992,"tag":4456,"props":9153,"children":9154},{},[9155],{"type":2992,"tag":2999,"props":9156,"children":9157},{},[9158,9162,9164,9169,9171,9177,9178,9184],{"type":2992,"tag":3275,"props":9159,"children":9160},{},[9161],{"type":2997,"value":4466},{"type":2997,"value":9163},"\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":2992,"tag":3947,"props":9165,"children":9166},{},[9167],{"type":2997,"value":9168},"which is highly recommended",{"type":2997,"value":9170},"), the ",{"type":2992,"tag":3137,"props":9172,"children":9174},{"className":9173},[],[9175],{"type":2997,"value":9176},"storeChallenge",{"type":2997,"value":6108},{"type":2992,"tag":3137,"props":9179,"children":9181},{"className":9180},[],[9182],{"type":2997,"value":9183},"getChallenge",{"type":2997,"value":9185}," 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":2992,"tag":4456,"props":9187,"children":9188},{},[9189],{"type":2992,"tag":3265,"props":9190,"children":9192},{"className":3954,"code":9191,"language":3956,"meta":2866,"style":2866},"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",[9193],{"type":2992,"tag":3137,"props":9194,"children":9195},{"__ignoreMap":2866},[9196,9219,9265,9273,9338,9345,9381,9445,9452,9460,9512,9519,9543,9607,9614,9626,9633,9673,9681,9688],{"type":2992,"tag":3275,"props":9197,"children":9198},{"class":3277,"line":2952},[9199,9203,9207,9211,9215],{"type":2992,"tag":3275,"props":9200,"children":9201},{"style":4538},[9202],{"type":2997,"value":5072},{"type":2992,"tag":3275,"props":9204,"children":9205},{"style":4538},[9206],{"type":2997,"value":5187},{"type":2992,"tag":3275,"props":9208,"children":9209},{"style":3511},[9210],{"type":2997,"value":8345},{"type":2992,"tag":3275,"props":9212,"children":9213},{"style":3349},[9214],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":9216,"children":9217},{"style":3354},[9218],{"type":2997,"value":5202},{"type":2992,"tag":3275,"props":9220,"children":9221},{"class":3277,"line":2918},[9222,9226,9231,9235,9239,9243,9248,9252,9257,9261],{"type":2992,"tag":3275,"props":9223,"children":9224},{"style":3426},[9225],{"type":2997,"value":5740},{"type":2992,"tag":3275,"props":9227,"children":9228},{"style":3420},[9229],{"type":2997,"value":9230}," storeChallenge",{"type":2992,"tag":3275,"props":9232,"children":9233},{"style":3354},[9234],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":9236,"children":9237},{"style":4370},[9238],{"type":2997,"value":5754},{"type":2992,"tag":3275,"props":9240,"children":9241},{"style":3354},[9242],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":9244,"children":9245},{"style":4370},[9246],{"type":2997,"value":9247}," challenge",{"type":2992,"tag":3275,"props":9249,"children":9250},{"style":3354},[9251],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":9253,"children":9254},{"style":4370},[9255],{"type":2997,"value":9256}," attemptId",{"type":2992,"tag":3275,"props":9258,"children":9259},{"style":3354},[9260],{"type":2997,"value":5958},{"type":2992,"tag":3275,"props":9262,"children":9263},{"style":3354},[9264],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":9266,"children":9267},{"class":3277,"line":2902},[9268],{"type":2992,"tag":3275,"props":9269,"children":9270},{"style":3340},[9271],{"type":2997,"value":9272},"    \u002F\u002F Store the challenge in a KV store or DB\n",{"type":2992,"tag":3275,"props":9274,"children":9275},{"class":3277,"line":3538},[9276,9280,9285,9289,9293,9298,9302,9306,9311,9316,9321,9326,9330,9334],{"type":2992,"tag":3275,"props":9277,"children":9278},{"style":4538},[9279],{"type":2997,"value":5791},{"type":2992,"tag":3275,"props":9281,"children":9282},{"style":3511},[9283],{"type":2997,"value":9284}," useStorage",{"type":2992,"tag":3275,"props":9286,"children":9287},{"style":3420},[9288],{"type":2997,"value":7783},{"type":2992,"tag":3275,"props":9290,"children":9291},{"style":3354},[9292],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":9294,"children":9295},{"style":3511},[9296],{"type":2997,"value":9297},"setItem",{"type":2992,"tag":3275,"props":9299,"children":9300},{"style":3420},[9301],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":9303,"children":9304},{"style":3354},[9305],{"type":2997,"value":7976},{"type":2992,"tag":3275,"props":9307,"children":9308},{"style":3287},[9309],{"type":2997,"value":9310},"attempt:",{"type":2992,"tag":3275,"props":9312,"children":9313},{"style":3354},[9314],{"type":2997,"value":9315},"${",{"type":2992,"tag":3275,"props":9317,"children":9318},{"style":3349},[9319],{"type":2997,"value":9320},"attemptId",{"type":2992,"tag":3275,"props":9322,"children":9323},{"style":3354},[9324],{"type":2997,"value":9325},"}`",{"type":2992,"tag":3275,"props":9327,"children":9328},{"style":3354},[9329],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":9331,"children":9332},{"style":3349},[9333],{"type":2997,"value":9247},{"type":2992,"tag":3275,"props":9335,"children":9336},{"style":3420},[9337],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":9339,"children":9340},{"class":3277,"line":3547},[9341],{"type":2992,"tag":3275,"props":9342,"children":9343},{"style":3354},[9344],{"type":2997,"value":4616},{"type":2992,"tag":3275,"props":9346,"children":9347},{"class":3277,"line":3564},[9348,9352,9357,9361,9365,9369,9373,9377],{"type":2992,"tag":3275,"props":9349,"children":9350},{"style":3426},[9351],{"type":2997,"value":5740},{"type":2992,"tag":3275,"props":9353,"children":9354},{"style":3420},[9355],{"type":2997,"value":9356}," getChallenge",{"type":2992,"tag":3275,"props":9358,"children":9359},{"style":3354},[9360],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":9362,"children":9363},{"style":4370},[9364],{"type":2997,"value":5754},{"type":2992,"tag":3275,"props":9366,"children":9367},{"style":3354},[9368],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":9370,"children":9371},{"style":4370},[9372],{"type":2997,"value":9256},{"type":2992,"tag":3275,"props":9374,"children":9375},{"style":3354},[9376],{"type":2997,"value":5958},{"type":2992,"tag":3275,"props":9378,"children":9379},{"style":3354},[9380],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":9382,"children":9383},{"class":3277,"line":2898},[9384,9388,9392,9396,9400,9404,9408,9412,9417,9421,9425,9429,9433,9437,9441],{"type":2992,"tag":3275,"props":9385,"children":9386},{"style":3426},[9387],{"type":2997,"value":7508},{"type":2992,"tag":3275,"props":9389,"children":9390},{"style":3349},[9391],{"type":2997,"value":9247},{"type":2992,"tag":3275,"props":9393,"children":9394},{"style":3354},[9395],{"type":2997,"value":3508},{"type":2992,"tag":3275,"props":9397,"children":9398},{"style":4538},[9399],{"type":2997,"value":4794},{"type":2992,"tag":3275,"props":9401,"children":9402},{"style":3511},[9403],{"type":2997,"value":9284},{"type":2992,"tag":3275,"props":9405,"children":9406},{"style":3420},[9407],{"type":2997,"value":7783},{"type":2992,"tag":3275,"props":9409,"children":9410},{"style":3354},[9411],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":9413,"children":9414},{"style":3511},[9415],{"type":2997,"value":9416},"getItem",{"type":2992,"tag":3275,"props":9418,"children":9419},{"style":3420},[9420],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":9422,"children":9423},{"style":3354},[9424],{"type":2997,"value":7976},{"type":2992,"tag":3275,"props":9426,"children":9427},{"style":3287},[9428],{"type":2997,"value":9310},{"type":2992,"tag":3275,"props":9430,"children":9431},{"style":3354},[9432],{"type":2997,"value":9315},{"type":2992,"tag":3275,"props":9434,"children":9435},{"style":3349},[9436],{"type":2997,"value":9320},{"type":2992,"tag":3275,"props":9438,"children":9439},{"style":3354},[9440],{"type":2997,"value":9325},{"type":2992,"tag":3275,"props":9442,"children":9443},{"style":3420},[9444],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":9446,"children":9447},{"class":3277,"line":2894},[9448],{"type":2992,"tag":3275,"props":9449,"children":9450},{"emptyLinePlaceholder":1196},[9451],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":9453,"children":9454},{"class":3277,"line":2890},[9455],{"type":2992,"tag":3275,"props":9456,"children":9457},{"style":3340},[9458],{"type":2997,"value":9459},"    \u002F\u002F Make sure to always remove the attempt because they are single use only!\n",{"type":2992,"tag":3275,"props":9461,"children":9462},{"class":3277,"line":3726},[9463,9467,9471,9475,9479,9484,9488,9492,9496,9500,9504,9508],{"type":2992,"tag":3275,"props":9464,"children":9465},{"style":4538},[9466],{"type":2997,"value":5791},{"type":2992,"tag":3275,"props":9468,"children":9469},{"style":3511},[9470],{"type":2997,"value":9284},{"type":2992,"tag":3275,"props":9472,"children":9473},{"style":3420},[9474],{"type":2997,"value":7783},{"type":2992,"tag":3275,"props":9476,"children":9477},{"style":3354},[9478],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":9480,"children":9481},{"style":3511},[9482],{"type":2997,"value":9483},"removeItem",{"type":2992,"tag":3275,"props":9485,"children":9486},{"style":3420},[9487],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":9489,"children":9490},{"style":3354},[9491],{"type":2997,"value":7976},{"type":2992,"tag":3275,"props":9493,"children":9494},{"style":3287},[9495],{"type":2997,"value":9310},{"type":2992,"tag":3275,"props":9497,"children":9498},{"style":3354},[9499],{"type":2997,"value":9315},{"type":2992,"tag":3275,"props":9501,"children":9502},{"style":3349},[9503],{"type":2997,"value":9320},{"type":2992,"tag":3275,"props":9505,"children":9506},{"style":3354},[9507],{"type":2997,"value":9325},{"type":2992,"tag":3275,"props":9509,"children":9510},{"style":3420},[9511],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":9513,"children":9514},{"class":3277,"line":3743},[9515],{"type":2992,"tag":3275,"props":9516,"children":9517},{"emptyLinePlaceholder":1196},[9518],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":9520,"children":9521},{"class":3277,"line":3764},[9522,9526,9530,9534,9539],{"type":2992,"tag":3275,"props":9523,"children":9524},{"style":4538},[9525],{"type":2997,"value":7544},{"type":2992,"tag":3275,"props":9527,"children":9528},{"style":3420},[9529],{"type":2997,"value":4367},{"type":2992,"tag":3275,"props":9531,"children":9532},{"style":3354},[9533],{"type":2997,"value":8001},{"type":2992,"tag":3275,"props":9535,"children":9536},{"style":3349},[9537],{"type":2997,"value":9538},"challenge",{"type":2992,"tag":3275,"props":9540,"children":9541},{"style":3420},[9542],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":9544,"children":9545},{"class":3277,"line":3797},[9546,9550,9554,9558,9562,9566,9570,9574,9578,9582,9586,9590,9595,9599,9603],{"type":2992,"tag":3275,"props":9547,"children":9548},{"style":4538},[9549],{"type":2997,"value":7633},{"type":2992,"tag":3275,"props":9551,"children":9552},{"style":3511},[9553],{"type":2997,"value":7638},{"type":2992,"tag":3275,"props":9555,"children":9556},{"style":3420},[9557],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":9559,"children":9560},{"style":3354},[9561],{"type":2997,"value":7647},{"type":2992,"tag":3275,"props":9563,"children":9564},{"style":3420},[9565],{"type":2997,"value":7652},{"type":2992,"tag":3275,"props":9567,"children":9568},{"style":3354},[9569],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":9571,"children":9572},{"style":6876},[9573],{"type":2997,"value":7661},{"type":2992,"tag":3275,"props":9575,"children":9576},{"style":3354},[9577],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":9579,"children":9580},{"style":3420},[9581],{"type":2997,"value":7670},{"type":2992,"tag":3275,"props":9583,"children":9584},{"style":3354},[9585],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":9587,"children":9588},{"style":3354},[9589],{"type":2997,"value":4599},{"type":2992,"tag":3275,"props":9591,"children":9592},{"style":3287},[9593],{"type":2997,"value":9594},"Challenge expired",{"type":2992,"tag":3275,"props":9596,"children":9597},{"style":3354},[9598],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":9600,"children":9601},{"style":3354},[9602],{"type":2997,"value":7388},{"type":2992,"tag":3275,"props":9604,"children":9605},{"style":3420},[9606],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":9608,"children":9609},{"class":3277,"line":3852},[9610],{"type":2992,"tag":3275,"props":9611,"children":9612},{"emptyLinePlaceholder":1196},[9613],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":9615,"children":9616},{"class":3277,"line":3861},[9617,9621],{"type":2992,"tag":3275,"props":9618,"children":9619},{"style":4538},[9620],{"type":2997,"value":5879},{"type":2992,"tag":3275,"props":9622,"children":9623},{"style":3349},[9624],{"type":2997,"value":9625}," challenge\n",{"type":2992,"tag":3275,"props":9627,"children":9628},{"class":3277,"line":2886},[9629],{"type":2992,"tag":3275,"props":9630,"children":9631},{"style":3354},[9632],{"type":2997,"value":4616},{"type":2992,"tag":3275,"props":9634,"children":9635},{"class":3277,"line":3929},[9636,9640,9644,9648,9652,9656,9660,9665,9669],{"type":2992,"tag":3275,"props":9637,"children":9638},{"style":3426},[9639],{"type":2997,"value":5740},{"type":2992,"tag":3275,"props":9641,"children":9642},{"style":3420},[9643],{"type":2997,"value":5745},{"type":2992,"tag":3275,"props":9645,"children":9646},{"style":3354},[9647],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":9649,"children":9650},{"style":4370},[9651],{"type":2997,"value":5754},{"type":2992,"tag":3275,"props":9653,"children":9654},{"style":3354},[9655],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":9657,"children":9658},{"style":3354},[9659],{"type":2997,"value":3447},{"type":2992,"tag":3275,"props":9661,"children":9662},{"style":4370},[9663],{"type":2997,"value":9664}," authenticator",{"type":2992,"tag":3275,"props":9666,"children":9667},{"style":3354},[9668],{"type":2997,"value":4436},{"type":2992,"tag":3275,"props":9670,"children":9671},{"style":3354},[9672],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":9674,"children":9675},{"class":3277,"line":4199},[9676],{"type":2992,"tag":3275,"props":9677,"children":9678},{"style":3340},[9679],{"type":2997,"value":9680},"    \u002F\u002F ...\n",{"type":2992,"tag":3275,"props":9682,"children":9683},{"class":3277,"line":4207},[9684],{"type":2992,"tag":3275,"props":9685,"children":9686},{"style":3354},[9687],{"type":2997,"value":4616},{"type":2992,"tag":3275,"props":9689,"children":9690},{"class":3277,"line":4216},[9691,9695],{"type":2992,"tag":3275,"props":9692,"children":9693},{"style":3354},[9694],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":9696,"children":9697},{"style":3349},[9698],{"type":2997,"value":4718},{"type":2992,"tag":2999,"props":9700,"children":9701},{},[9702],{"type":2997,"value":9703},"On the frontend it is as simple as:",{"type":2992,"tag":3265,"props":9705,"children":9707},{"className":3403,"code":9706,"language":3405,"meta":2866,"style":2866},"\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",[9708],{"type":2992,"tag":3137,"props":9709,"children":9710},{"__ignoreMap":2866},[9711,9751,9797,9831,9864,9875,9915,9922,9956,9982,10031,10062,10069,10076,10100,10132,10159,10166,10181,10188,10203,10241,10301,10355,10370,10406,10461,10513,10528],{"type":2992,"tag":3275,"props":9712,"children":9713},{"class":3277,"line":2952},[9714,9718,9722,9726,9731,9735,9739,9743,9747],{"type":2992,"tag":3275,"props":9715,"children":9716},{"style":3354},[9717],{"type":2997,"value":3417},{"type":2992,"tag":3275,"props":9719,"children":9720},{"style":3420},[9721],{"type":2997,"value":3423},{"type":2992,"tag":3275,"props":9723,"children":9724},{"style":3426},[9725],{"type":2997,"value":3429},{"type":2992,"tag":3275,"props":9727,"children":9728},{"style":3426},[9729],{"type":2997,"value":9730}," lang",{"type":2992,"tag":3275,"props":9732,"children":9733},{"style":3354},[9734],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":9736,"children":9737},{"style":3354},[9738],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":9740,"children":9741},{"style":3287},[9742],{"type":2997,"value":3956},{"type":2992,"tag":3275,"props":9744,"children":9745},{"style":3354},[9746],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":9748,"children":9749},{"style":3354},[9750],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":9752,"children":9753},{"class":3277,"line":2918},[9754,9758,9762,9767,9771,9776,9780,9784,9789,9793],{"type":2992,"tag":3275,"props":9755,"children":9756},{"style":3426},[9757],{"type":2997,"value":3442},{"type":2992,"tag":3275,"props":9759,"children":9760},{"style":3354},[9761],{"type":2997,"value":3447},{"type":2992,"tag":3275,"props":9763,"children":9764},{"style":3349},[9765],{"type":2997,"value":9766}," register",{"type":2992,"tag":3275,"props":9768,"children":9769},{"style":3354},[9770],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":9772,"children":9773},{"style":3349},[9774],{"type":2997,"value":9775}," authenticate ",{"type":2992,"tag":3275,"props":9777,"children":9778},{"style":3354},[9779],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":9781,"children":9782},{"style":3354},[9783],{"type":2997,"value":3508},{"type":2992,"tag":3275,"props":9785,"children":9786},{"style":3511},[9787],{"type":2997,"value":9788}," useWebAuthn",{"type":2992,"tag":3275,"props":9790,"children":9791},{"style":3349},[9792],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":9794,"children":9795},{"style":3354},[9796],{"type":2997,"value":5202},{"type":2992,"tag":3275,"props":9798,"children":9799},{"class":3277,"line":2902},[9800,9805,9809,9813,9818,9822,9826],{"type":2992,"tag":3275,"props":9801,"children":9802},{"style":3420},[9803],{"type":2997,"value":9804},"  registerEndpoint",{"type":2992,"tag":3275,"props":9806,"children":9807},{"style":3354},[9808],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":9810,"children":9811},{"style":3354},[9812],{"type":2997,"value":4599},{"type":2992,"tag":3275,"props":9814,"children":9815},{"style":3287},[9816],{"type":2997,"value":9817},"\u002Fapi\u002Fwebauthn\u002Fregister",{"type":2992,"tag":3275,"props":9819,"children":9820},{"style":3354},[9821],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":9823,"children":9824},{"style":3354},[9825],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":9827,"children":9828},{"style":3340},[9829],{"type":2997,"value":9830}," \u002F\u002F Default\n",{"type":2992,"tag":3275,"props":9832,"children":9833},{"class":3277,"line":3538},[9834,9839,9843,9847,9852,9856,9860],{"type":2992,"tag":3275,"props":9835,"children":9836},{"style":3420},[9837],{"type":2997,"value":9838},"  authenticateEndpoint",{"type":2992,"tag":3275,"props":9840,"children":9841},{"style":3354},[9842],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":9844,"children":9845},{"style":3354},[9846],{"type":2997,"value":4599},{"type":2992,"tag":3275,"props":9848,"children":9849},{"style":3287},[9850],{"type":2997,"value":9851},"\u002Fapi\u002Fwebauthn\u002Fauthenticate",{"type":2992,"tag":3275,"props":9853,"children":9854},{"style":3354},[9855],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":9857,"children":9858},{"style":3354},[9859],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":9861,"children":9862},{"style":3340},[9863],{"type":2997,"value":9830},{"type":2992,"tag":3275,"props":9865,"children":9866},{"class":3277,"line":3547},[9867,9871],{"type":2992,"tag":3275,"props":9868,"children":9869},{"style":3354},[9870],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":9872,"children":9873},{"style":3349},[9874],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":9876,"children":9877},{"class":3277,"line":3564},[9878,9882,9886,9890,9894,9899,9903,9907,9911],{"type":2992,"tag":3275,"props":9879,"children":9880},{"style":3426},[9881],{"type":2997,"value":3442},{"type":2992,"tag":3275,"props":9883,"children":9884},{"style":3354},[9885],{"type":2997,"value":3447},{"type":2992,"tag":3275,"props":9887,"children":9888},{"style":3420},[9889],{"type":2997,"value":3480},{"type":2992,"tag":3275,"props":9891,"children":9892},{"style":3354},[9893],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":9895,"children":9896},{"style":3349},[9897],{"type":2997,"value":9898}," fetchUserSession ",{"type":2992,"tag":3275,"props":9900,"children":9901},{"style":3354},[9902],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":9904,"children":9905},{"style":3354},[9906],{"type":2997,"value":3508},{"type":2992,"tag":3275,"props":9908,"children":9909},{"style":3511},[9910],{"type":2997,"value":3514},{"type":2992,"tag":3275,"props":9912,"children":9913},{"style":3349},[9914],{"type":2997,"value":3519},{"type":2992,"tag":3275,"props":9916,"children":9917},{"class":3277,"line":2898},[9918],{"type":2992,"tag":3275,"props":9919,"children":9920},{"emptyLinePlaceholder":1196},[9921],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":9923,"children":9924},{"class":3277,"line":2894},[9925,9929,9934,9938,9943,9947,9952],{"type":2992,"tag":3275,"props":9926,"children":9927},{"style":3426},[9928],{"type":2997,"value":3442},{"type":2992,"tag":3275,"props":9930,"children":9931},{"style":3349},[9932],{"type":2997,"value":9933}," userName ",{"type":2992,"tag":3275,"props":9935,"children":9936},{"style":3354},[9937],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":9939,"children":9940},{"style":3511},[9941],{"type":2997,"value":9942}," ref",{"type":2992,"tag":3275,"props":9944,"children":9945},{"style":3349},[9946],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":9948,"children":9949},{"style":3354},[9950],{"type":2997,"value":9951},"''",{"type":2992,"tag":3275,"props":9953,"children":9954},{"style":3349},[9955],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":9957,"children":9958},{"class":3277,"line":2890},[9959,9964,9969,9974,9978],{"type":2992,"tag":3275,"props":9960,"children":9961},{"style":3426},[9962],{"type":2997,"value":9963},"async",{"type":2992,"tag":3275,"props":9965,"children":9966},{"style":3426},[9967],{"type":2997,"value":9968}," function",{"type":2992,"tag":3275,"props":9970,"children":9971},{"style":3511},[9972],{"type":2997,"value":9973}," signUp",{"type":2992,"tag":3275,"props":9975,"children":9976},{"style":3354},[9977],{"type":2997,"value":7783},{"type":2992,"tag":3275,"props":9979,"children":9980},{"style":3354},[9981],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":9983,"children":9984},{"class":3277,"line":3726},[9985,9990,9994,9998,10002,10006,10010,10014,10018,10023,10027],{"type":2992,"tag":3275,"props":9986,"children":9987},{"style":4538},[9988],{"type":2997,"value":9989},"  await",{"type":2992,"tag":3275,"props":9991,"children":9992},{"style":3511},[9993],{"type":2997,"value":9766},{"type":2992,"tag":3275,"props":9995,"children":9996},{"style":3420},[9997],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":9999,"children":10000},{"style":3354},[10001],{"type":2997,"value":7647},{"type":2992,"tag":3275,"props":10003,"children":10004},{"style":3420},[10005],{"type":2997,"value":8390},{"type":2992,"tag":3275,"props":10007,"children":10008},{"style":3354},[10009],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":10011,"children":10012},{"style":3349},[10013],{"type":2997,"value":8390},{"type":2992,"tag":3275,"props":10015,"children":10016},{"style":3354},[10017],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":10019,"children":10020},{"style":3349},[10021],{"type":2997,"value":10022},"value",{"type":2992,"tag":3275,"props":10024,"children":10025},{"style":3354},[10026],{"type":2997,"value":7388},{"type":2992,"tag":3275,"props":10028,"children":10029},{"style":3420},[10030],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":10032,"children":10033},{"class":3277,"line":3743},[10034,10039,10044,10048,10053,10057],{"type":2992,"tag":3275,"props":10035,"children":10036},{"style":3354},[10037],{"type":2997,"value":10038},"    .",{"type":2992,"tag":3275,"props":10040,"children":10041},{"style":3511},[10042],{"type":2997,"value":10043},"then",{"type":2992,"tag":3275,"props":10045,"children":10046},{"style":3420},[10047],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":10049,"children":10050},{"style":3349},[10051],{"type":2997,"value":10052},"fetchUserSession",{"type":2992,"tag":3275,"props":10054,"children":10055},{"style":3420},[10056],{"type":2997,"value":7621},{"type":2992,"tag":3275,"props":10058,"children":10059},{"style":3340},[10060],{"type":2997,"value":10061},"\u002F\u002F refetch the user session\n",{"type":2992,"tag":3275,"props":10063,"children":10064},{"class":3277,"line":3764},[10065],{"type":2992,"tag":3275,"props":10066,"children":10067},{"style":3354},[10068],{"type":2997,"value":4454},{"type":2992,"tag":3275,"props":10070,"children":10071},{"class":3277,"line":3797},[10072],{"type":2992,"tag":3275,"props":10073,"children":10074},{"emptyLinePlaceholder":1196},[10075],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":10077,"children":10078},{"class":3277,"line":3852},[10079,10083,10087,10092,10096],{"type":2992,"tag":3275,"props":10080,"children":10081},{"style":3426},[10082],{"type":2997,"value":9963},{"type":2992,"tag":3275,"props":10084,"children":10085},{"style":3426},[10086],{"type":2997,"value":9968},{"type":2992,"tag":3275,"props":10088,"children":10089},{"style":3511},[10090],{"type":2997,"value":10091}," signIn",{"type":2992,"tag":3275,"props":10093,"children":10094},{"style":3354},[10095],{"type":2997,"value":7783},{"type":2992,"tag":3275,"props":10097,"children":10098},{"style":3354},[10099],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":10101,"children":10102},{"class":3277,"line":3861},[10103,10107,10112,10116,10120,10124,10128],{"type":2992,"tag":3275,"props":10104,"children":10105},{"style":4538},[10106],{"type":2997,"value":9989},{"type":2992,"tag":3275,"props":10108,"children":10109},{"style":3511},[10110],{"type":2997,"value":10111}," authenticate",{"type":2992,"tag":3275,"props":10113,"children":10114},{"style":3420},[10115],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":10117,"children":10118},{"style":3349},[10119],{"type":2997,"value":7616},{"type":2992,"tag":3275,"props":10121,"children":10122},{"style":3354},[10123],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":10125,"children":10126},{"style":3349},[10127],{"type":2997,"value":10022},{"type":2992,"tag":3275,"props":10129,"children":10130},{"style":3420},[10131],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":10133,"children":10134},{"class":3277,"line":2886},[10135,10139,10143,10147,10151,10155],{"type":2992,"tag":3275,"props":10136,"children":10137},{"style":3354},[10138],{"type":2997,"value":10038},{"type":2992,"tag":3275,"props":10140,"children":10141},{"style":3511},[10142],{"type":2997,"value":10043},{"type":2992,"tag":3275,"props":10144,"children":10145},{"style":3420},[10146],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":10148,"children":10149},{"style":3349},[10150],{"type":2997,"value":10052},{"type":2992,"tag":3275,"props":10152,"children":10153},{"style":3420},[10154],{"type":2997,"value":7621},{"type":2992,"tag":3275,"props":10156,"children":10157},{"style":3340},[10158],{"type":2997,"value":10061},{"type":2992,"tag":3275,"props":10160,"children":10161},{"class":3277,"line":3929},[10162],{"type":2992,"tag":3275,"props":10163,"children":10164},{"style":3354},[10165],{"type":2997,"value":4454},{"type":2992,"tag":3275,"props":10167,"children":10168},{"class":3277,"line":4199},[10169,10173,10177],{"type":2992,"tag":3275,"props":10170,"children":10171},{"style":3354},[10172],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":10174,"children":10175},{"style":3420},[10176],{"type":2997,"value":3423},{"type":2992,"tag":3275,"props":10178,"children":10179},{"style":3354},[10180],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":10182,"children":10183},{"class":3277,"line":4207},[10184],{"type":2992,"tag":3275,"props":10185,"children":10186},{"emptyLinePlaceholder":1196},[10187],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":10189,"children":10190},{"class":3277,"line":4216},[10191,10195,10199],{"type":2992,"tag":3275,"props":10192,"children":10193},{"style":3354},[10194],{"type":2997,"value":3417},{"type":2992,"tag":3275,"props":10196,"children":10197},{"style":3420},[10198],{"type":2997,"value":3557},{"type":2992,"tag":3275,"props":10200,"children":10201},{"style":3354},[10202],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":10204,"children":10205},{"class":3277,"line":4224},[10206,10210,10215,10220,10224,10228,10233,10237],{"type":2992,"tag":3275,"props":10207,"children":10208},{"style":3354},[10209],{"type":2997,"value":3570},{"type":2992,"tag":3275,"props":10211,"children":10212},{"style":3420},[10213],{"type":2997,"value":10214},"form",{"type":2992,"tag":3275,"props":10216,"children":10217},{"style":3426},[10218],{"type":2997,"value":10219}," @submit.prevent",{"type":2992,"tag":3275,"props":10221,"children":10222},{"style":3354},[10223],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":10225,"children":10226},{"style":3354},[10227],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":10229,"children":10230},{"style":3287},[10231],{"type":2997,"value":10232},"signUp",{"type":2992,"tag":3275,"props":10234,"children":10235},{"style":3354},[10236],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":10238,"children":10239},{"style":3354},[10240],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":10242,"children":10243},{"class":3277,"line":4265},[10244,10248,10253,10258,10262,10266,10270,10274,10279,10283,10287,10292,10296],{"type":2992,"tag":3275,"props":10245,"children":10246},{"style":3354},[10247],{"type":2997,"value":3610},{"type":2992,"tag":3275,"props":10249,"children":10250},{"style":3420},[10251],{"type":2997,"value":10252},"input",{"type":2992,"tag":3275,"props":10254,"children":10255},{"style":3426},[10256],{"type":2997,"value":10257}," v-model",{"type":2992,"tag":3275,"props":10259,"children":10260},{"style":3354},[10261],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":10263,"children":10264},{"style":3354},[10265],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":10267,"children":10268},{"style":3287},[10269],{"type":2997,"value":7616},{"type":2992,"tag":3275,"props":10271,"children":10272},{"style":3354},[10273],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":10275,"children":10276},{"style":3426},[10277],{"type":2997,"value":10278}," placeholder",{"type":2992,"tag":3275,"props":10280,"children":10281},{"style":3354},[10282],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":10284,"children":10285},{"style":3354},[10286],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":10288,"children":10289},{"style":3287},[10290],{"type":2997,"value":10291},"Email or username",{"type":2992,"tag":3275,"props":10293,"children":10294},{"style":3354},[10295],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":10297,"children":10298},{"style":3354},[10299],{"type":2997,"value":10300}," \u002F>\n",{"type":2992,"tag":3275,"props":10302,"children":10303},{"class":3277,"line":4273},[10304,10308,10312,10317,10321,10325,10330,10334,10338,10343,10347,10351],{"type":2992,"tag":3275,"props":10305,"children":10306},{"style":3354},[10307],{"type":2997,"value":3610},{"type":2992,"tag":3275,"props":10309,"children":10310},{"style":3420},[10311],{"type":2997,"value":3680},{"type":2992,"tag":3275,"props":10313,"children":10314},{"style":3426},[10315],{"type":2997,"value":10316}," type",{"type":2992,"tag":3275,"props":10318,"children":10319},{"style":3354},[10320],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":10322,"children":10323},{"style":3354},[10324],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":10326,"children":10327},{"style":3287},[10328],{"type":2997,"value":10329},"submit",{"type":2992,"tag":3275,"props":10331,"children":10332},{"style":3354},[10333],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":10335,"children":10336},{"style":3354},[10337],{"type":2997,"value":3619},{"type":2992,"tag":3275,"props":10339,"children":10340},{"style":3349},[10341],{"type":2997,"value":10342},"Sign up",{"type":2992,"tag":3275,"props":10344,"children":10345},{"style":3354},[10346],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":10348,"children":10349},{"style":3420},[10350],{"type":2997,"value":3680},{"type":2992,"tag":3275,"props":10352,"children":10353},{"style":3354},[10354],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":10356,"children":10357},{"class":3277,"line":4282},[10358,10362,10366],{"type":2992,"tag":3275,"props":10359,"children":10360},{"style":3354},[10361],{"type":2997,"value":3732},{"type":2992,"tag":3275,"props":10363,"children":10364},{"style":3420},[10365],{"type":2997,"value":10214},{"type":2992,"tag":3275,"props":10367,"children":10368},{"style":3354},[10369],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":10371,"children":10372},{"class":3277,"line":4290},[10373,10377,10381,10385,10389,10393,10398,10402],{"type":2992,"tag":3275,"props":10374,"children":10375},{"style":3354},[10376],{"type":2997,"value":3570},{"type":2992,"tag":3275,"props":10378,"children":10379},{"style":3420},[10380],{"type":2997,"value":10214},{"type":2992,"tag":3275,"props":10382,"children":10383},{"style":3426},[10384],{"type":2997,"value":10219},{"type":2992,"tag":3275,"props":10386,"children":10387},{"style":3354},[10388],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":10390,"children":10391},{"style":3354},[10392],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":10394,"children":10395},{"style":3287},[10396],{"type":2997,"value":10397},"signIn",{"type":2992,"tag":3275,"props":10399,"children":10400},{"style":3354},[10401],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":10403,"children":10404},{"style":3354},[10405],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":10407,"children":10408},{"class":3277,"line":4327},[10409,10413,10417,10421,10425,10429,10433,10437,10441,10445,10449,10453,10457],{"type":2992,"tag":3275,"props":10410,"children":10411},{"style":3354},[10412],{"type":2997,"value":3610},{"type":2992,"tag":3275,"props":10414,"children":10415},{"style":3420},[10416],{"type":2997,"value":10252},{"type":2992,"tag":3275,"props":10418,"children":10419},{"style":3426},[10420],{"type":2997,"value":10257},{"type":2992,"tag":3275,"props":10422,"children":10423},{"style":3354},[10424],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":10426,"children":10427},{"style":3354},[10428],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":10430,"children":10431},{"style":3287},[10432],{"type":2997,"value":7616},{"type":2992,"tag":3275,"props":10434,"children":10435},{"style":3354},[10436],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":10438,"children":10439},{"style":3426},[10440],{"type":2997,"value":10278},{"type":2992,"tag":3275,"props":10442,"children":10443},{"style":3354},[10444],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":10446,"children":10447},{"style":3354},[10448],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":10450,"children":10451},{"style":3287},[10452],{"type":2997,"value":10291},{"type":2992,"tag":3275,"props":10454,"children":10455},{"style":3354},[10456],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":10458,"children":10459},{"style":3354},[10460],{"type":2997,"value":10300},{"type":2992,"tag":3275,"props":10462,"children":10463},{"class":3277,"line":4335},[10464,10468,10472,10476,10480,10484,10488,10492,10496,10501,10505,10509],{"type":2992,"tag":3275,"props":10465,"children":10466},{"style":3354},[10467],{"type":2997,"value":3610},{"type":2992,"tag":3275,"props":10469,"children":10470},{"style":3420},[10471],{"type":2997,"value":3680},{"type":2992,"tag":3275,"props":10473,"children":10474},{"style":3426},[10475],{"type":2997,"value":10316},{"type":2992,"tag":3275,"props":10477,"children":10478},{"style":3354},[10479],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":10481,"children":10482},{"style":3354},[10483],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":10485,"children":10486},{"style":3287},[10487],{"type":2997,"value":10329},{"type":2992,"tag":3275,"props":10489,"children":10490},{"style":3354},[10491],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":10493,"children":10494},{"style":3354},[10495],{"type":2997,"value":3619},{"type":2992,"tag":3275,"props":10497,"children":10498},{"style":3349},[10499],{"type":2997,"value":10500},"Sign in",{"type":2992,"tag":3275,"props":10502,"children":10503},{"style":3354},[10504],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":10506,"children":10507},{"style":3420},[10508],{"type":2997,"value":3680},{"type":2992,"tag":3275,"props":10510,"children":10511},{"style":3354},[10512],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":10514,"children":10515},{"class":3277,"line":4344},[10516,10520,10524],{"type":2992,"tag":3275,"props":10517,"children":10518},{"style":3354},[10519],{"type":2997,"value":3732},{"type":2992,"tag":3275,"props":10521,"children":10522},{"style":3420},[10523],{"type":2997,"value":10214},{"type":2992,"tag":3275,"props":10525,"children":10526},{"style":3354},[10527],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":10529,"children":10530},{"class":3277,"line":4352},[10531,10535,10539],{"type":2992,"tag":3275,"props":10532,"children":10533},{"style":3354},[10534],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":10536,"children":10537},{"style":3420},[10538],{"type":2997,"value":3557},{"type":2992,"tag":3275,"props":10540,"children":10541},{"style":3354},[10542],{"type":2997,"value":3434},{"type":2992,"tag":2999,"props":10544,"children":10545},{},[10546,10548,10559],{"type":2997,"value":10547},"Take a look at the ",{"type":2992,"tag":3003,"props":10549,"children":10552},{"href":10550,"rel":10551},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fcomponents\u002FWebAuthnModal.vue",[3007],[10553],{"type":2992,"tag":3137,"props":10554,"children":10556},{"className":10555},[],[10557],{"type":2997,"value":10558},"WebAuthnModal.vue",{"type":2997,"value":10560}," for a full example.",{"type":2992,"tag":5382,"props":10562,"children":10564},{"id":10563},"demo",[10565],{"type":2997,"value":10566},"Demo",{"type":2992,"tag":2999,"props":10568,"children":10569},{},[10570,10572,10578,10580,10587,10588,10595],{"type":2997,"value":10571},"A full demo can be found on ",{"type":2992,"tag":3003,"props":10573,"children":10576},{"href":10574,"rel":10575},"https:\u002F\u002Ftodo-passkeys.nuxt.dev",[3007],[10577],{"type":2997,"value":10574},{"type":2997,"value":10579}," using ",{"type":2992,"tag":3003,"props":10581,"children":10584},{"href":10582,"rel":10583},"https:\u002F\u002Form.drizzle.team\u002F",[3007],[10585],{"type":2997,"value":10586},"Drizzle ORM",{"type":2997,"value":6108},{"type":2992,"tag":3003,"props":10589,"children":10592},{"href":10590,"rel":10591},"https:\u002F\u002Fhub.nuxt.com",[3007],[10593],{"type":2997,"value":10594},"NuxtHub",{"type":2997,"value":3230},{"type":2992,"tag":2999,"props":10597,"children":10598},{},[10599,10601,10606],{"type":2997,"value":10600},"The source code of the demo is available on ",{"type":2992,"tag":3003,"props":10602,"children":10604},{"href":3077,"rel":10603},[3007],[10605],{"type":2997,"value":3077},{"type":2997,"value":3230},{"type":2992,"tag":3395,"props":10608,"children":10610},{"id":10609},"extend-session",[10611],{"type":2997,"value":10612},"Extend Session",{"type":2992,"tag":2999,"props":10614,"children":10615},{},[10616],{"type":2997,"value":10617},"We leverage hooks to let you extend the session data with your own data or log when the user clears the session.",{"type":2992,"tag":3265,"props":10619,"children":10621},{"className":3954,"code":10620,"language":3956,"meta":2866,"style":2866},"\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",[10622],{"type":2992,"tag":3137,"props":10623,"children":10624},{"__ignoreMap":2866},[10625,10633,10665,10673,10681,10752,10760,10768,10776,10788,10795,10803,10870,10878,10889],{"type":2992,"tag":3275,"props":10626,"children":10627},{"class":3277,"line":2952},[10628],{"type":2992,"tag":3275,"props":10629,"children":10630},{"style":3340},[10631],{"type":2997,"value":10632},"\u002F\u002F server\u002Fplugins\u002Fsession.ts\n",{"type":2992,"tag":3275,"props":10634,"children":10635},{"class":3277,"line":2918},[10636,10640,10644,10649,10653,10657,10661],{"type":2992,"tag":3275,"props":10637,"children":10638},{"style":4538},[10639],{"type":2997,"value":5072},{"type":2992,"tag":3275,"props":10641,"children":10642},{"style":4538},[10643],{"type":2997,"value":5187},{"type":2992,"tag":3275,"props":10645,"children":10646},{"style":3511},[10647],{"type":2997,"value":10648}," defineNitroPlugin",{"type":2992,"tag":3275,"props":10650,"children":10651},{"style":3349},[10652],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":10654,"children":10655},{"style":3354},[10656],{"type":2997,"value":7783},{"type":2992,"tag":3275,"props":10658,"children":10659},{"style":3426},[10660],{"type":2997,"value":4244},{"type":2992,"tag":3275,"props":10662,"children":10663},{"style":3354},[10664],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":10666,"children":10667},{"class":3277,"line":2902},[10668],{"type":2992,"tag":3275,"props":10669,"children":10670},{"style":3340},[10671],{"type":2997,"value":10672},"  \u002F\u002F Called when the session is fetched during SSR for the Vue composable (\u002Fapi\u002F_auth\u002Fsession)\n",{"type":2992,"tag":3275,"props":10674,"children":10675},{"class":3277,"line":3538},[10676],{"type":2992,"tag":3275,"props":10677,"children":10678},{"style":3340},[10679],{"type":2997,"value":10680},"  \u002F\u002F Or when we call useUserSession().fetch()\n",{"type":2992,"tag":3275,"props":10682,"children":10683},{"class":3277,"line":3547},[10684,10689,10693,10698,10702,10706,10711,10715,10719,10724,10728,10732,10736,10740,10744,10748],{"type":2992,"tag":3275,"props":10685,"children":10686},{"style":3349},[10687],{"type":2997,"value":10688},"  sessionHooks",{"type":2992,"tag":3275,"props":10690,"children":10691},{"style":3354},[10692],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":10694,"children":10695},{"style":3511},[10696],{"type":2997,"value":10697},"hook",{"type":2992,"tag":3275,"props":10699,"children":10700},{"style":3420},[10701],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":10703,"children":10704},{"style":3354},[10705],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":10707,"children":10708},{"style":3287},[10709],{"type":2997,"value":10710},"fetch",{"type":2992,"tag":3275,"props":10712,"children":10713},{"style":3354},[10714],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":10716,"children":10717},{"style":3354},[10718],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":10720,"children":10721},{"style":3426},[10722],{"type":2997,"value":10723}," async",{"type":2992,"tag":3275,"props":10725,"children":10726},{"style":3354},[10727],{"type":2997,"value":4367},{"type":2992,"tag":3275,"props":10729,"children":10730},{"style":4370},[10731],{"type":2997,"value":7553},{"type":2992,"tag":3275,"props":10733,"children":10734},{"style":3354},[10735],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":10737,"children":10738},{"style":4370},[10739],{"type":2997,"value":7468},{"type":2992,"tag":3275,"props":10741,"children":10742},{"style":3354},[10743],{"type":2997,"value":5958},{"type":2992,"tag":3275,"props":10745,"children":10746},{"style":3426},[10747],{"type":2997,"value":4244},{"type":2992,"tag":3275,"props":10749,"children":10750},{"style":3354},[10751],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":10753,"children":10754},{"class":3277,"line":3564},[10755],{"type":2992,"tag":3275,"props":10756,"children":10757},{"style":3340},[10758],{"type":2997,"value":10759},"    \u002F\u002F extend User Session by calling your database\n",{"type":2992,"tag":3275,"props":10761,"children":10762},{"class":3277,"line":2898},[10763],{"type":2992,"tag":3275,"props":10764,"children":10765},{"style":3340},[10766],{"type":2997,"value":10767},"    \u002F\u002F or\n",{"type":2992,"tag":3275,"props":10769,"children":10770},{"class":3277,"line":2894},[10771],{"type":2992,"tag":3275,"props":10772,"children":10773},{"style":3340},[10774],{"type":2997,"value":10775},"    \u002F\u002F throw createError({ ... }) if session is invalid for example\n",{"type":2992,"tag":3275,"props":10777,"children":10778},{"class":3277,"line":2890},[10779,10784],{"type":2992,"tag":3275,"props":10780,"children":10781},{"style":3354},[10782],{"type":2997,"value":10783},"  }",{"type":2992,"tag":3275,"props":10785,"children":10786},{"style":3420},[10787],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":10789,"children":10790},{"class":3277,"line":3726},[10791],{"type":2992,"tag":3275,"props":10792,"children":10793},{"emptyLinePlaceholder":1196},[10794],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":10796,"children":10797},{"class":3277,"line":3743},[10798],{"type":2992,"tag":3275,"props":10799,"children":10800},{"style":3340},[10801],{"type":2997,"value":10802},"  \u002F\u002F Called when we call useUserSession().clear() or clearUserSession(event)\n",{"type":2992,"tag":3275,"props":10804,"children":10805},{"class":3277,"line":3764},[10806,10810,10814,10818,10822,10826,10830,10834,10838,10842,10846,10850,10854,10858,10862,10866],{"type":2992,"tag":3275,"props":10807,"children":10808},{"style":3349},[10809],{"type":2997,"value":10688},{"type":2992,"tag":3275,"props":10811,"children":10812},{"style":3354},[10813],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":10815,"children":10816},{"style":3511},[10817],{"type":2997,"value":10697},{"type":2992,"tag":3275,"props":10819,"children":10820},{"style":3420},[10821],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":10823,"children":10824},{"style":3354},[10825],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":10827,"children":10828},{"style":3287},[10829],{"type":2997,"value":3698},{"type":2992,"tag":3275,"props":10831,"children":10832},{"style":3354},[10833],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":10835,"children":10836},{"style":3354},[10837],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":10839,"children":10840},{"style":3426},[10841],{"type":2997,"value":10723},{"type":2992,"tag":3275,"props":10843,"children":10844},{"style":3354},[10845],{"type":2997,"value":4367},{"type":2992,"tag":3275,"props":10847,"children":10848},{"style":4370},[10849],{"type":2997,"value":7553},{"type":2992,"tag":3275,"props":10851,"children":10852},{"style":3354},[10853],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":10855,"children":10856},{"style":4370},[10857],{"type":2997,"value":7468},{"type":2992,"tag":3275,"props":10859,"children":10860},{"style":3354},[10861],{"type":2997,"value":5958},{"type":2992,"tag":3275,"props":10863,"children":10864},{"style":3426},[10865],{"type":2997,"value":4244},{"type":2992,"tag":3275,"props":10867,"children":10868},{"style":3354},[10869],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":10871,"children":10872},{"class":3277,"line":3797},[10873],{"type":2992,"tag":3275,"props":10874,"children":10875},{"style":3340},[10876],{"type":2997,"value":10877},"    \u002F\u002F Log that user logged out\n",{"type":2992,"tag":3275,"props":10879,"children":10880},{"class":3277,"line":3852},[10881,10885],{"type":2992,"tag":3275,"props":10882,"children":10883},{"style":3354},[10884],{"type":2997,"value":10783},{"type":2992,"tag":3275,"props":10886,"children":10887},{"style":3420},[10888],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":10890,"children":10891},{"class":3277,"line":3861},[10892,10896],{"type":2992,"tag":3275,"props":10893,"children":10894},{"style":3354},[10895],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":10897,"children":10898},{"style":3349},[10899],{"type":2997,"value":4718},{"type":2992,"tag":3083,"props":10901,"children":10903},{"id":10902},"server-side-rendering",[10904],{"type":2997,"value":10905},"Server-Side Rendering",{"type":2992,"tag":2999,"props":10907,"children":10908},{},[10909,10911,10917,10919],{"type":2997,"value":10910},"You can make authenticated requests both from the client and the server. However, you must use ",{"type":2992,"tag":3137,"props":10912,"children":10914},{"className":10913},[],[10915],{"type":2997,"value":10916},"useRequestFetch()",{"type":2997,"value":10918}," to make authenticated requests during SSR if you are not using ",{"type":2992,"tag":3137,"props":10920,"children":10922},{"className":10921},[],[10923],{"type":2997,"value":10924},"useFetch()",{"type":2992,"tag":3265,"props":10926,"children":10928},{"className":3403,"code":10927,"language":3405,"meta":2866,"style":2866},"\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",[10929],{"type":2992,"tag":3137,"props":10930,"children":10931},{"__ignoreMap":2866},[10932,10971,10979,11069,11076,11084,11136],{"type":2992,"tag":3275,"props":10933,"children":10934},{"class":3277,"line":2952},[10935,10939,10943,10947,10951,10955,10959,10963,10967],{"type":2992,"tag":3275,"props":10936,"children":10937},{"style":3354},[10938],{"type":2997,"value":3417},{"type":2992,"tag":3275,"props":10940,"children":10941},{"style":3420},[10942],{"type":2997,"value":3423},{"type":2992,"tag":3275,"props":10944,"children":10945},{"style":3426},[10946],{"type":2997,"value":3429},{"type":2992,"tag":3275,"props":10948,"children":10949},{"style":3426},[10950],{"type":2997,"value":9730},{"type":2992,"tag":3275,"props":10952,"children":10953},{"style":3354},[10954],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":10956,"children":10957},{"style":3354},[10958],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":10960,"children":10961},{"style":3287},[10962],{"type":2997,"value":3956},{"type":2992,"tag":3275,"props":10964,"children":10965},{"style":3354},[10966],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":10968,"children":10969},{"style":3354},[10970],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":10972,"children":10973},{"class":3277,"line":2918},[10974],{"type":2992,"tag":3275,"props":10975,"children":10976},{"style":3340},[10977],{"type":2997,"value":10978},"\u002F\u002F When using useAsyncData\n",{"type":2992,"tag":3275,"props":10980,"children":10981},{"class":3277,"line":2902},[10982,10986,10990,10995,10999,11003,11007,11012,11016,11020,11025,11029,11033,11037,11041,11046,11051,11055,11060,11064],{"type":2992,"tag":3275,"props":10983,"children":10984},{"style":3426},[10985],{"type":2997,"value":3442},{"type":2992,"tag":3275,"props":10987,"children":10988},{"style":3354},[10989],{"type":2997,"value":3447},{"type":2992,"tag":3275,"props":10991,"children":10992},{"style":3349},[10993],{"type":2997,"value":10994}," data ",{"type":2992,"tag":3275,"props":10996,"children":10997},{"style":3354},[10998],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":11000,"children":11001},{"style":3354},[11002],{"type":2997,"value":3508},{"type":2992,"tag":3275,"props":11004,"children":11005},{"style":4538},[11006],{"type":2997,"value":4794},{"type":2992,"tag":3275,"props":11008,"children":11009},{"style":3511},[11010],{"type":2997,"value":11011}," useAsyncData",{"type":2992,"tag":3275,"props":11013,"children":11014},{"style":3349},[11015],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":11017,"children":11018},{"style":3354},[11019],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":11021,"children":11022},{"style":3287},[11023],{"type":2997,"value":11024},"team",{"type":2992,"tag":3275,"props":11026,"children":11027},{"style":3354},[11028],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":11030,"children":11031},{"style":3354},[11032],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":11034,"children":11035},{"style":3354},[11036],{"type":2997,"value":4239},{"type":2992,"tag":3275,"props":11038,"children":11039},{"style":3426},[11040],{"type":2997,"value":4244},{"type":2992,"tag":3275,"props":11042,"children":11043},{"style":3511},[11044],{"type":2997,"value":11045}," useRequestFetch",{"type":2992,"tag":3275,"props":11047,"children":11048},{"style":3349},[11049],{"type":2997,"value":11050},"()(",{"type":2992,"tag":3275,"props":11052,"children":11053},{"style":3354},[11054],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":11056,"children":11057},{"style":3287},[11058],{"type":2997,"value":11059},"\u002Fapi\u002Fprotected-endpoint",{"type":2992,"tag":3275,"props":11061,"children":11062},{"style":3354},[11063],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":11065,"children":11066},{"style":3349},[11067],{"type":2997,"value":11068},"))\n",{"type":2992,"tag":3275,"props":11070,"children":11071},{"class":3277,"line":3538},[11072],{"type":2992,"tag":3275,"props":11073,"children":11074},{"emptyLinePlaceholder":1196},[11075],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":11077,"children":11078},{"class":3277,"line":3547},[11079],{"type":2992,"tag":3275,"props":11080,"children":11081},{"style":3340},[11082],{"type":2997,"value":11083},"\u002F\u002F useFetch will automatically use useRequestFetch during SSR\n",{"type":2992,"tag":3275,"props":11085,"children":11086},{"class":3277,"line":3564},[11087,11091,11095,11099,11103,11107,11111,11116,11120,11124,11128,11132],{"type":2992,"tag":3275,"props":11088,"children":11089},{"style":3426},[11090],{"type":2997,"value":3442},{"type":2992,"tag":3275,"props":11092,"children":11093},{"style":3354},[11094],{"type":2997,"value":3447},{"type":2992,"tag":3275,"props":11096,"children":11097},{"style":3349},[11098],{"type":2997,"value":10994},{"type":2992,"tag":3275,"props":11100,"children":11101},{"style":3354},[11102],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":11104,"children":11105},{"style":3354},[11106],{"type":2997,"value":3508},{"type":2992,"tag":3275,"props":11108,"children":11109},{"style":4538},[11110],{"type":2997,"value":4794},{"type":2992,"tag":3275,"props":11112,"children":11113},{"style":3511},[11114],{"type":2997,"value":11115}," useFetch",{"type":2992,"tag":3275,"props":11117,"children":11118},{"style":3349},[11119],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":11121,"children":11122},{"style":3354},[11123],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":11125,"children":11126},{"style":3287},[11127],{"type":2997,"value":11059},{"type":2992,"tag":3275,"props":11129,"children":11130},{"style":3354},[11131],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":11133,"children":11134},{"style":3349},[11135],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":11137,"children":11138},{"class":3277,"line":2898},[11139,11143,11147],{"type":2992,"tag":3275,"props":11140,"children":11141},{"style":3354},[11142],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":11144,"children":11145},{"style":3420},[11146],{"type":2997,"value":3423},{"type":2992,"tag":3275,"props":11148,"children":11149},{"style":3354},[11150],{"type":2997,"value":3434},{"type":2992,"tag":4456,"props":11152,"children":11153},{},[11154],{"type":2992,"tag":2999,"props":11155,"children":11156},{},[11157,11159,11166,11168,11173],{"type":2997,"value":11158},"There's ",{"type":2992,"tag":3003,"props":11160,"children":11163},{"href":11161,"rel":11162},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F24813",[3007],[11164],{"type":2997,"value":11165},"an open issue",{"type":2997,"value":11167}," to include credentials in ",{"type":2992,"tag":3137,"props":11169,"children":11171},{"className":11170},[],[11172],{"type":2997,"value":630},{"type":2997,"value":11174}," in Nuxt.",{"type":2992,"tag":3083,"props":11176,"children":11178},{"id":11177},"hybrid-rendering",[11179],{"type":2997,"value":3099},{"type":2992,"tag":2999,"props":11181,"children":11182},{},[11183,11185,11198],{"type":2997,"value":11184},"When using ",{"type":2992,"tag":3003,"props":11186,"children":11189},{"href":11187,"rel":11188},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fguide\u002Fconcepts\u002Frendering#hybrid-rendering",[3007],[11190,11192],{"type":2997,"value":11191},"Nuxt ",{"type":2992,"tag":3137,"props":11193,"children":11195},{"className":11194},[],[11196],{"type":2997,"value":11197},"routeRules",{"type":2997,"value":11199}," 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":2992,"tag":2999,"props":11201,"children":11202},{},[11203],{"type":2997,"value":11204},"This is because the user session is stored in a secure cookie and cannot be accessed during prerendering.",{"type":2992,"tag":2999,"props":11206,"children":11207},{},[11208],{"type":2992,"tag":3947,"props":11209,"children":11210},{},[11211],{"type":2997,"value":11212},"This means that you should not rely on the user session during prerendering.",{"type":2992,"tag":2999,"props":11214,"children":11215},{},[11216,11218,11224,11226,11231],{"type":2997,"value":11217},"You may also choose to instruct Nuxt Auth Utils to fetch the user session only on the client side, with the ",{"type":2992,"tag":3137,"props":11219,"children":11221},{"className":11220},[],[11222],{"type":2997,"value":11223},"loadStrategy",{"type":2997,"value":11225}," option in your ",{"type":2992,"tag":3137,"props":11227,"children":11229},{"className":11228},[],[11230],{"type":2997,"value":233},{"type":2997,"value":4015},{"type":2992,"tag":3265,"props":11233,"children":11235},{"className":3954,"code":11234,"language":3956,"meta":2866,"style":2866},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'client-only'\n  }\n})\n",[11236],{"type":2992,"tag":3137,"props":11237,"children":11238},{"__ignoreMap":2866},[11239,11262,11277,11302,11309],{"type":2992,"tag":3275,"props":11240,"children":11241},{"class":3277,"line":2952},[11242,11246,11250,11254,11258],{"type":2992,"tag":3275,"props":11243,"children":11244},{"style":4538},[11245],{"type":2997,"value":5072},{"type":2992,"tag":3275,"props":11247,"children":11248},{"style":4538},[11249],{"type":2997,"value":5187},{"type":2992,"tag":3275,"props":11251,"children":11252},{"style":3511},[11253],{"type":2997,"value":5192},{"type":2992,"tag":3275,"props":11255,"children":11256},{"style":3349},[11257],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":11259,"children":11260},{"style":3354},[11261],{"type":2997,"value":5202},{"type":2992,"tag":3275,"props":11263,"children":11264},{"class":3277,"line":2918},[11265,11269,11273],{"type":2992,"tag":3275,"props":11266,"children":11267},{"style":3420},[11268],{"type":2997,"value":6462},{"type":2992,"tag":3275,"props":11270,"children":11271},{"style":3354},[11272],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":11274,"children":11275},{"style":3354},[11276],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":11278,"children":11279},{"class":3277,"line":2902},[11280,11285,11289,11293,11298],{"type":2992,"tag":3275,"props":11281,"children":11282},{"style":3420},[11283],{"type":2997,"value":11284},"    loadStrategy",{"type":2992,"tag":3275,"props":11286,"children":11287},{"style":3354},[11288],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":11290,"children":11291},{"style":3354},[11292],{"type":2997,"value":4599},{"type":2992,"tag":3275,"props":11294,"children":11295},{"style":3287},[11296],{"type":2997,"value":11297},"client-only",{"type":2992,"tag":3275,"props":11299,"children":11300},{"style":3354},[11301],{"type":2997,"value":4608},{"type":2992,"tag":3275,"props":11303,"children":11304},{"class":3277,"line":3538},[11305],{"type":2992,"tag":3275,"props":11306,"children":11307},{"style":3354},[11308],{"type":2997,"value":4976},{"type":2992,"tag":3275,"props":11310,"children":11311},{"class":3277,"line":3547},[11312,11316],{"type":2992,"tag":3275,"props":11313,"children":11314},{"style":3354},[11315],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":11317,"children":11318},{"style":3349},[11319],{"type":2997,"value":4718},{"type":2992,"tag":2999,"props":11321,"children":11322},{},[11323,11325,11330,11332,11337,11338,11344],{"type":2997,"value":11324},"When using the ",{"type":2992,"tag":3137,"props":11326,"children":11328},{"className":11327},[],[11329],{"type":2997,"value":11297},{"type":2997,"value":11331}," load strategy, the user session can still be manually fetched on the server side by calling ",{"type":2992,"tag":3137,"props":11333,"children":11335},{"className":11334},[],[11336],{"type":2997,"value":10710},{"type":2997,"value":7223},{"type":2992,"tag":3137,"props":11339,"children":11341},{"className":11340},[],[11342],{"type":2997,"value":11343},"useUserSession",{"type":2997,"value":11345}," composable.",{"type":2992,"tag":3395,"props":11347,"children":11349},{"id":11348},"disable-session-loading",[11350],{"type":2997,"value":11351},"Disable session loading",{"type":2992,"tag":2999,"props":11353,"children":11354},{},[11355,11357,11362,11363,11368],{"type":2997,"value":11356},"You may also choose to disable session loading entirely, with the ",{"type":2992,"tag":3137,"props":11358,"children":11360},{"className":11359},[],[11361],{"type":2997,"value":11223},{"type":2997,"value":11225},{"type":2992,"tag":3137,"props":11364,"children":11366},{"className":11365},[],[11367],{"type":2997,"value":233},{"type":2997,"value":4015},{"type":2992,"tag":3265,"props":11370,"children":11372},{"className":3954,"code":11371,"language":3956,"meta":2866,"style":2866},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'none'\n  }\n})\n",[11373],{"type":2992,"tag":3137,"props":11374,"children":11375},{"__ignoreMap":2866},[11376,11399,11414,11438,11445],{"type":2992,"tag":3275,"props":11377,"children":11378},{"class":3277,"line":2952},[11379,11383,11387,11391,11395],{"type":2992,"tag":3275,"props":11380,"children":11381},{"style":4538},[11382],{"type":2997,"value":5072},{"type":2992,"tag":3275,"props":11384,"children":11385},{"style":4538},[11386],{"type":2997,"value":5187},{"type":2992,"tag":3275,"props":11388,"children":11389},{"style":3511},[11390],{"type":2997,"value":5192},{"type":2992,"tag":3275,"props":11392,"children":11393},{"style":3349},[11394],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":11396,"children":11397},{"style":3354},[11398],{"type":2997,"value":5202},{"type":2992,"tag":3275,"props":11400,"children":11401},{"class":3277,"line":2918},[11402,11406,11410],{"type":2992,"tag":3275,"props":11403,"children":11404},{"style":3420},[11405],{"type":2997,"value":6462},{"type":2992,"tag":3275,"props":11407,"children":11408},{"style":3354},[11409],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":11411,"children":11412},{"style":3354},[11413],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":11415,"children":11416},{"class":3277,"line":2902},[11417,11421,11425,11429,11434],{"type":2992,"tag":3275,"props":11418,"children":11419},{"style":3420},[11420],{"type":2997,"value":11284},{"type":2992,"tag":3275,"props":11422,"children":11423},{"style":3354},[11424],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":11426,"children":11427},{"style":3354},[11428],{"type":2997,"value":4599},{"type":2992,"tag":3275,"props":11430,"children":11431},{"style":3287},[11432],{"type":2997,"value":11433},"none",{"type":2992,"tag":3275,"props":11435,"children":11436},{"style":3354},[11437],{"type":2997,"value":4608},{"type":2992,"tag":3275,"props":11439,"children":11440},{"class":3277,"line":3538},[11441],{"type":2992,"tag":3275,"props":11442,"children":11443},{"style":3354},[11444],{"type":2997,"value":4976},{"type":2992,"tag":3275,"props":11446,"children":11447},{"class":3277,"line":3547},[11448,11452],{"type":2992,"tag":3275,"props":11449,"children":11450},{"style":3354},[11451],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":11453,"children":11454},{"style":3349},[11455],{"type":2997,"value":4718},{"type":2992,"tag":2999,"props":11457,"children":11458},{},[11459,11460,11465,11467,11473],{"type":2997,"value":11324},{"type":2992,"tag":3137,"props":11461,"children":11463},{"className":11462},[],[11464],{"type":2997,"value":11433},{"type":2997,"value":11466}," load strategy, the user session can still be manually fetched by calling ",{"type":2992,"tag":3137,"props":11468,"children":11470},{"className":11469},[],[11471],{"type":2997,"value":11472},"useUserSession().fetch()",{"type":2997,"value":3230},{"type":2992,"tag":3395,"props":11475,"children":11477},{"id":11476},"authstate-component",[11478,11483],{"type":2992,"tag":3137,"props":11479,"children":11481},{"className":11480},[],[11482],{"type":2997,"value":3166},{"type":2997,"value":3168},{"type":2992,"tag":2999,"props":11485,"children":11486},{},[11487,11489,11494],{"type":2997,"value":11488},"You can use the ",{"type":2992,"tag":3137,"props":11490,"children":11492},{"className":11491},[],[11493],{"type":2997,"value":3166},{"type":2997,"value":11495}," component to safely display auth-related data in your components without worrying about the rendering mode.",{"type":2992,"tag":2999,"props":11497,"children":11498},{},[11499],{"type":2997,"value":11500},"One common use case if the Login button in the header:",{"type":2992,"tag":3265,"props":11502,"children":11504},{"className":3403,"code":11503,"language":3405,"meta":2866,"style":2866},"\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",[11505],{"type":2992,"tag":3137,"props":11506,"children":11507},{"__ignoreMap":2866},[11508,11523,11539,11577,11649,11708,11724,11739],{"type":2992,"tag":3275,"props":11509,"children":11510},{"class":3277,"line":2952},[11511,11515,11519],{"type":2992,"tag":3275,"props":11512,"children":11513},{"style":3354},[11514],{"type":2997,"value":3417},{"type":2992,"tag":3275,"props":11516,"children":11517},{"style":3420},[11518],{"type":2997,"value":3557},{"type":2992,"tag":3275,"props":11520,"children":11521},{"style":3354},[11522],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":11524,"children":11525},{"class":3277,"line":2918},[11526,11530,11535],{"type":2992,"tag":3275,"props":11527,"children":11528},{"style":3354},[11529],{"type":2997,"value":3570},{"type":2992,"tag":3275,"props":11531,"children":11532},{"style":3420},[11533],{"type":2997,"value":11534},"header",{"type":2992,"tag":3275,"props":11536,"children":11537},{"style":3354},[11538],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":11540,"children":11541},{"class":3277,"line":2902},[11542,11546,11551,11556,11560,11564,11569,11573],{"type":2992,"tag":3275,"props":11543,"children":11544},{"style":3354},[11545],{"type":2997,"value":3610},{"type":2992,"tag":3275,"props":11547,"children":11548},{"style":3420},[11549],{"type":2997,"value":11550},"AuthState",{"type":2992,"tag":3275,"props":11552,"children":11553},{"style":3426},[11554],{"type":2997,"value":11555}," v-slot",{"type":2992,"tag":3275,"props":11557,"children":11558},{"style":3354},[11559],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":11561,"children":11562},{"style":3354},[11563],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":11565,"children":11566},{"style":3287},[11567],{"type":2997,"value":11568},"{ loggedIn, clear }",{"type":2992,"tag":3275,"props":11570,"children":11571},{"style":3354},[11572],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":11574,"children":11575},{"style":3354},[11576],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":11578,"children":11579},{"class":3277,"line":3538},[11580,11585,11589,11593,11597,11601,11605,11609,11613,11617,11621,11625,11629,11633,11637,11641,11645],{"type":2992,"tag":3275,"props":11581,"children":11582},{"style":3354},[11583],{"type":2997,"value":11584},"      \u003C",{"type":2992,"tag":3275,"props":11586,"children":11587},{"style":3420},[11588],{"type":2997,"value":3680},{"type":2992,"tag":3275,"props":11590,"children":11591},{"style":3426},[11592],{"type":2997,"value":3580},{"type":2992,"tag":3275,"props":11594,"children":11595},{"style":3354},[11596],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":11598,"children":11599},{"style":3354},[11600],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":11602,"children":11603},{"style":3287},[11604],{"type":2997,"value":3594},{"type":2992,"tag":3275,"props":11606,"children":11607},{"style":3354},[11608],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":11610,"children":11611},{"style":3426},[11612],{"type":2997,"value":3685},{"type":2992,"tag":3275,"props":11614,"children":11615},{"style":3354},[11616],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":11618,"children":11619},{"style":3354},[11620],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":11622,"children":11623},{"style":3287},[11624],{"type":2997,"value":3698},{"type":2992,"tag":3275,"props":11626,"children":11627},{"style":3354},[11628],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":11630,"children":11631},{"style":3354},[11632],{"type":2997,"value":3619},{"type":2992,"tag":3275,"props":11634,"children":11635},{"style":3349},[11636],{"type":2997,"value":3711},{"type":2992,"tag":3275,"props":11638,"children":11639},{"style":3354},[11640],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":11642,"children":11643},{"style":3420},[11644],{"type":2997,"value":3680},{"type":2992,"tag":3275,"props":11646,"children":11647},{"style":3354},[11648],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":11650,"children":11651},{"class":3277,"line":3547},[11652,11656,11661,11665,11670,11674,11678,11683,11687,11691,11696,11700,11704],{"type":2992,"tag":3275,"props":11653,"children":11654},{"style":3354},[11655],{"type":2997,"value":11584},{"type":2992,"tag":3275,"props":11657,"children":11658},{"style":3420},[11659],{"type":2997,"value":11660},"NuxtLink",{"type":2992,"tag":3275,"props":11662,"children":11663},{"style":3426},[11664],{"type":2997,"value":3757},{"type":2992,"tag":3275,"props":11666,"children":11667},{"style":3426},[11668],{"type":2997,"value":11669}," to",{"type":2992,"tag":3275,"props":11671,"children":11672},{"style":3354},[11673],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":11675,"children":11676},{"style":3354},[11677],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":11679,"children":11680},{"style":3287},[11681],{"type":2997,"value":11682},"\u002Flogin",{"type":2992,"tag":3275,"props":11684,"children":11685},{"style":3354},[11686],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":11688,"children":11689},{"style":3354},[11690],{"type":2997,"value":3619},{"type":2992,"tag":3275,"props":11692,"children":11693},{"style":3349},[11694],{"type":2997,"value":11695},"Login",{"type":2992,"tag":3275,"props":11697,"children":11698},{"style":3354},[11699],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":11701,"children":11702},{"style":3420},[11703],{"type":2997,"value":11660},{"type":2992,"tag":3275,"props":11705,"children":11706},{"style":3354},[11707],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":11709,"children":11710},{"class":3277,"line":3564},[11711,11716,11720],{"type":2992,"tag":3275,"props":11712,"children":11713},{"style":3354},[11714],{"type":2997,"value":11715},"    \u003C\u002F",{"type":2992,"tag":3275,"props":11717,"children":11718},{"style":3420},[11719],{"type":2997,"value":11550},{"type":2992,"tag":3275,"props":11721,"children":11722},{"style":3354},[11723],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":11725,"children":11726},{"class":3277,"line":2898},[11727,11731,11735],{"type":2992,"tag":3275,"props":11728,"children":11729},{"style":3354},[11730],{"type":2997,"value":3732},{"type":2992,"tag":3275,"props":11732,"children":11733},{"style":3420},[11734],{"type":2997,"value":11534},{"type":2992,"tag":3275,"props":11736,"children":11737},{"style":3354},[11738],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":11740,"children":11741},{"class":3277,"line":2894},[11742,11746,11750],{"type":2992,"tag":3275,"props":11743,"children":11744},{"style":3354},[11745],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":11747,"children":11748},{"style":3420},[11749],{"type":2997,"value":3557},{"type":2992,"tag":3275,"props":11751,"children":11752},{"style":3354},[11753],{"type":2997,"value":3434},{"type":2992,"tag":2999,"props":11755,"children":11756},{},[11757,11759,11764],{"type":2997,"value":11758},"If the page is cached or prerendered or the load strategy set as ",{"type":2992,"tag":3137,"props":11760,"children":11762},{"className":11761},[],[11763],{"type":2997,"value":11297},{"type":2997,"value":11765},", nothing will be rendered until the user session is fetched on the client-side.",{"type":2992,"tag":2999,"props":11767,"children":11768},{},[11769,11770,11776],{"type":2997,"value":11488},{"type":2992,"tag":3137,"props":11771,"children":11773},{"className":11772},[],[11774],{"type":2997,"value":11775},"placeholder",{"type":2997,"value":11777}," slot to show a placeholder on server-side and while the user session is being fetched on client-side for the prerendered pages:",{"type":2992,"tag":3265,"props":11779,"children":11781},{"className":3403,"code":11780,"language":3405,"meta":2866,"style":2866},"\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",[11782],{"type":2992,"tag":3137,"props":11783,"children":11784},{"__ignoreMap":2866},[11785,11800,11815,11830,11888,11960,12015,12031,12054,12091,12106,12121,12136],{"type":2992,"tag":3275,"props":11786,"children":11787},{"class":3277,"line":2952},[11788,11792,11796],{"type":2992,"tag":3275,"props":11789,"children":11790},{"style":3354},[11791],{"type":2997,"value":3417},{"type":2992,"tag":3275,"props":11793,"children":11794},{"style":3420},[11795],{"type":2997,"value":3557},{"type":2992,"tag":3275,"props":11797,"children":11798},{"style":3354},[11799],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":11801,"children":11802},{"class":3277,"line":2918},[11803,11807,11811],{"type":2992,"tag":3275,"props":11804,"children":11805},{"style":3354},[11806],{"type":2997,"value":3570},{"type":2992,"tag":3275,"props":11808,"children":11809},{"style":3420},[11810],{"type":2997,"value":11534},{"type":2992,"tag":3275,"props":11812,"children":11813},{"style":3354},[11814],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":11816,"children":11817},{"class":3277,"line":2902},[11818,11822,11826],{"type":2992,"tag":3275,"props":11819,"children":11820},{"style":3354},[11821],{"type":2997,"value":3610},{"type":2992,"tag":3275,"props":11823,"children":11824},{"style":3420},[11825],{"type":2997,"value":11550},{"type":2992,"tag":3275,"props":11827,"children":11828},{"style":3354},[11829],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":11831,"children":11832},{"class":3277,"line":3538},[11833,11837,11841,11846,11851,11855,11859,11863,11867,11871,11876,11880,11884],{"type":2992,"tag":3275,"props":11834,"children":11835},{"style":3354},[11836],{"type":2997,"value":11584},{"type":2992,"tag":3275,"props":11838,"children":11839},{"style":3420},[11840],{"type":2997,"value":3557},{"type":2992,"tag":3275,"props":11842,"children":11843},{"style":3354},[11844],{"type":2997,"value":11845}," #",{"type":2992,"tag":3275,"props":11847,"children":11848},{"style":3426},[11849],{"type":2997,"value":11850},"default",{"type":2992,"tag":3275,"props":11852,"children":11853},{"style":3354},[11854],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":11856,"children":11857},{"style":3354},[11858],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":11860,"children":11861},{"style":3354},[11862],{"type":2997,"value":7647},{"type":2992,"tag":3275,"props":11864,"children":11865},{"style":3349},[11866],{"type":2997,"value":3452},{"type":2992,"tag":3275,"props":11868,"children":11869},{"style":3354},[11870],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":11872,"children":11873},{"style":3349},[11874],{"type":2997,"value":11875}," clear ",{"type":2992,"tag":3275,"props":11877,"children":11878},{"style":3354},[11879],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":11881,"children":11882},{"style":3354},[11883],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":11885,"children":11886},{"style":3354},[11887],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":11889,"children":11890},{"class":3277,"line":3547},[11891,11896,11900,11904,11908,11912,11916,11920,11924,11928,11932,11936,11940,11944,11948,11952,11956],{"type":2992,"tag":3275,"props":11892,"children":11893},{"style":3354},[11894],{"type":2997,"value":11895},"        \u003C",{"type":2992,"tag":3275,"props":11897,"children":11898},{"style":3420},[11899],{"type":2997,"value":3680},{"type":2992,"tag":3275,"props":11901,"children":11902},{"style":3426},[11903],{"type":2997,"value":3580},{"type":2992,"tag":3275,"props":11905,"children":11906},{"style":3354},[11907],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":11909,"children":11910},{"style":3354},[11911],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":11913,"children":11914},{"style":3287},[11915],{"type":2997,"value":3594},{"type":2992,"tag":3275,"props":11917,"children":11918},{"style":3354},[11919],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":11921,"children":11922},{"style":3426},[11923],{"type":2997,"value":3685},{"type":2992,"tag":3275,"props":11925,"children":11926},{"style":3354},[11927],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":11929,"children":11930},{"style":3354},[11931],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":11933,"children":11934},{"style":3287},[11935],{"type":2997,"value":3698},{"type":2992,"tag":3275,"props":11937,"children":11938},{"style":3354},[11939],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":11941,"children":11942},{"style":3354},[11943],{"type":2997,"value":3619},{"type":2992,"tag":3275,"props":11945,"children":11946},{"style":3349},[11947],{"type":2997,"value":3711},{"type":2992,"tag":3275,"props":11949,"children":11950},{"style":3354},[11951],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":11953,"children":11954},{"style":3420},[11955],{"type":2997,"value":3680},{"type":2992,"tag":3275,"props":11957,"children":11958},{"style":3354},[11959],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":11961,"children":11962},{"class":3277,"line":3564},[11963,11967,11971,11975,11979,11983,11987,11991,11995,11999,12003,12007,12011],{"type":2992,"tag":3275,"props":11964,"children":11965},{"style":3354},[11966],{"type":2997,"value":11895},{"type":2992,"tag":3275,"props":11968,"children":11969},{"style":3420},[11970],{"type":2997,"value":11660},{"type":2992,"tag":3275,"props":11972,"children":11973},{"style":3426},[11974],{"type":2997,"value":3757},{"type":2992,"tag":3275,"props":11976,"children":11977},{"style":3426},[11978],{"type":2997,"value":11669},{"type":2992,"tag":3275,"props":11980,"children":11981},{"style":3354},[11982],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":11984,"children":11985},{"style":3354},[11986],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":11988,"children":11989},{"style":3287},[11990],{"type":2997,"value":11682},{"type":2992,"tag":3275,"props":11992,"children":11993},{"style":3354},[11994],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":11996,"children":11997},{"style":3354},[11998],{"type":2997,"value":3619},{"type":2992,"tag":3275,"props":12000,"children":12001},{"style":3349},[12002],{"type":2997,"value":11695},{"type":2992,"tag":3275,"props":12004,"children":12005},{"style":3354},[12006],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":12008,"children":12009},{"style":3420},[12010],{"type":2997,"value":11660},{"type":2992,"tag":3275,"props":12012,"children":12013},{"style":3354},[12014],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":12016,"children":12017},{"class":3277,"line":2898},[12018,12023,12027],{"type":2992,"tag":3275,"props":12019,"children":12020},{"style":3354},[12021],{"type":2997,"value":12022},"      \u003C\u002F",{"type":2992,"tag":3275,"props":12024,"children":12025},{"style":3420},[12026],{"type":2997,"value":3557},{"type":2992,"tag":3275,"props":12028,"children":12029},{"style":3354},[12030],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":12032,"children":12033},{"class":3277,"line":2894},[12034,12038,12042,12046,12050],{"type":2992,"tag":3275,"props":12035,"children":12036},{"style":3354},[12037],{"type":2997,"value":11584},{"type":2992,"tag":3275,"props":12039,"children":12040},{"style":3420},[12041],{"type":2997,"value":3557},{"type":2992,"tag":3275,"props":12043,"children":12044},{"style":3354},[12045],{"type":2997,"value":11845},{"type":2992,"tag":3275,"props":12047,"children":12048},{"style":3426},[12049],{"type":2997,"value":11775},{"type":2992,"tag":3275,"props":12051,"children":12052},{"style":3354},[12053],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":12055,"children":12056},{"class":3277,"line":2890},[12057,12061,12065,12070,12074,12079,12083,12087],{"type":2992,"tag":3275,"props":12058,"children":12059},{"style":3354},[12060],{"type":2997,"value":11895},{"type":2992,"tag":3275,"props":12062,"children":12063},{"style":3420},[12064],{"type":2997,"value":3680},{"type":2992,"tag":3275,"props":12066,"children":12067},{"style":3426},[12068],{"type":2997,"value":12069}," disabled",{"type":2992,"tag":3275,"props":12071,"children":12072},{"style":3354},[12073],{"type":2997,"value":3619},{"type":2992,"tag":3275,"props":12075,"children":12076},{"style":3349},[12077],{"type":2997,"value":12078},"Loading...",{"type":2992,"tag":3275,"props":12080,"children":12081},{"style":3354},[12082],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":12084,"children":12085},{"style":3420},[12086],{"type":2997,"value":3680},{"type":2992,"tag":3275,"props":12088,"children":12089},{"style":3354},[12090],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":12092,"children":12093},{"class":3277,"line":3726},[12094,12098,12102],{"type":2992,"tag":3275,"props":12095,"children":12096},{"style":3354},[12097],{"type":2997,"value":12022},{"type":2992,"tag":3275,"props":12099,"children":12100},{"style":3420},[12101],{"type":2997,"value":3557},{"type":2992,"tag":3275,"props":12103,"children":12104},{"style":3354},[12105],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":12107,"children":12108},{"class":3277,"line":3743},[12109,12113,12117],{"type":2992,"tag":3275,"props":12110,"children":12111},{"style":3354},[12112],{"type":2997,"value":11715},{"type":2992,"tag":3275,"props":12114,"children":12115},{"style":3420},[12116],{"type":2997,"value":11550},{"type":2992,"tag":3275,"props":12118,"children":12119},{"style":3354},[12120],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":12122,"children":12123},{"class":3277,"line":3764},[12124,12128,12132],{"type":2992,"tag":3275,"props":12125,"children":12126},{"style":3354},[12127],{"type":2997,"value":3732},{"type":2992,"tag":3275,"props":12129,"children":12130},{"style":3420},[12131],{"type":2997,"value":11534},{"type":2992,"tag":3275,"props":12133,"children":12134},{"style":3354},[12135],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":12137,"children":12138},{"class":3277,"line":3797},[12139,12143,12147],{"type":2992,"tag":3275,"props":12140,"children":12141},{"style":3354},[12142],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":12144,"children":12145},{"style":3420},[12146],{"type":2997,"value":3557},{"type":2992,"tag":3275,"props":12148,"children":12149},{"style":3354},[12150],{"type":2997,"value":3434},{"type":2992,"tag":2999,"props":12152,"children":12153},{},[12154,12156,12161,12163,12169,12171,12177],{"type":2997,"value":12155},"If you are caching your routes with ",{"type":2992,"tag":3137,"props":12157,"children":12159},{"className":12158},[],[12160],{"type":2997,"value":11197},{"type":2997,"value":12162},", please make sure to use ",{"type":2992,"tag":3003,"props":12164,"children":12167},{"href":12165,"rel":12166},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fnitro",[3007],[12168],{"type":2997,"value":833},{"type":2997,"value":12170}," >= ",{"type":2992,"tag":3137,"props":12172,"children":12174},{"className":12173},[],[12175],{"type":2997,"value":12176},"2.9.7",{"type":2997,"value":12178}," to support the client-side fetching of the user session.",{"type":2992,"tag":3083,"props":12180,"children":12182},{"id":12181},"websocket-support",[12183],{"type":2997,"value":12184},"WebSocket Support",{"type":2992,"tag":2999,"props":12186,"children":12187},{},[12188,12190,12197],{"type":2997,"value":12189},"Nuxt Auth Utils is compatible with ",{"type":2992,"tag":3003,"props":12191,"children":12194},{"href":12192,"rel":12193},"https:\u002F\u002Fnitro.build\u002Fguide\u002Fwebsocket",[3007],[12195],{"type":2997,"value":12196},"Nitro WebSockets",{"type":2997,"value":3230},{"type":2992,"tag":2999,"props":12199,"children":12200},{},[12201,12203,12209,12210,12215],{"type":2997,"value":12202},"Make sure to enable the ",{"type":2992,"tag":3137,"props":12204,"children":12206},{"className":12205},[],[12207],{"type":2997,"value":12208},"experimental.websocket",{"type":2997,"value":11225},{"type":2992,"tag":3137,"props":12211,"children":12213},{"className":12212},[],[12214],{"type":2997,"value":233},{"type":2997,"value":4015},{"type":2992,"tag":3265,"props":12217,"children":12219},{"className":3954,"code":12218,"language":3956,"meta":2866,"style":2866},"export default defineNuxtConfig({\n  nitro: {\n    experimental: {\n      websocket: true\n    }\n  }\n})\n",[12220],{"type":2992,"tag":3137,"props":12221,"children":12222},{"__ignoreMap":2866},[12223,12246,12262,12278,12294,12301,12308],{"type":2992,"tag":3275,"props":12224,"children":12225},{"class":3277,"line":2952},[12226,12230,12234,12238,12242],{"type":2992,"tag":3275,"props":12227,"children":12228},{"style":4538},[12229],{"type":2997,"value":5072},{"type":2992,"tag":3275,"props":12231,"children":12232},{"style":4538},[12233],{"type":2997,"value":5187},{"type":2992,"tag":3275,"props":12235,"children":12236},{"style":3511},[12237],{"type":2997,"value":5192},{"type":2992,"tag":3275,"props":12239,"children":12240},{"style":3349},[12241],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":12243,"children":12244},{"style":3354},[12245],{"type":2997,"value":5202},{"type":2992,"tag":3275,"props":12247,"children":12248},{"class":3277,"line":2918},[12249,12254,12258],{"type":2992,"tag":3275,"props":12250,"children":12251},{"style":3420},[12252],{"type":2997,"value":12253},"  nitro",{"type":2992,"tag":3275,"props":12255,"children":12256},{"style":3354},[12257],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":12259,"children":12260},{"style":3354},[12261],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":12263,"children":12264},{"class":3277,"line":2902},[12265,12270,12274],{"type":2992,"tag":3275,"props":12266,"children":12267},{"style":3420},[12268],{"type":2997,"value":12269},"    experimental",{"type":2992,"tag":3275,"props":12271,"children":12272},{"style":3354},[12273],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":12275,"children":12276},{"style":3354},[12277],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":12279,"children":12280},{"class":3277,"line":3538},[12281,12286,12290],{"type":2992,"tag":3275,"props":12282,"children":12283},{"style":3420},[12284],{"type":2997,"value":12285},"      websocket",{"type":2992,"tag":3275,"props":12287,"children":12288},{"style":3354},[12289],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":12291,"children":12292},{"style":5722},[12293],{"type":2997,"value":5725},{"type":2992,"tag":3275,"props":12295,"children":12296},{"class":3277,"line":3547},[12297],{"type":2992,"tag":3275,"props":12298,"children":12299},{"style":3354},[12300],{"type":2997,"value":5328},{"type":2992,"tag":3275,"props":12302,"children":12303},{"class":3277,"line":3564},[12304],{"type":2992,"tag":3275,"props":12305,"children":12306},{"style":3354},[12307],{"type":2997,"value":4976},{"type":2992,"tag":3275,"props":12309,"children":12310},{"class":3277,"line":2898},[12311,12315],{"type":2992,"tag":3275,"props":12312,"children":12313},{"style":3354},[12314],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":12316,"children":12317},{"style":3349},[12318],{"type":2997,"value":4718},{"type":2992,"tag":2999,"props":12320,"children":12321},{},[12322,12323,12329,12331,12337],{"type":2997,"value":11488},{"type":2992,"tag":3137,"props":12324,"children":12326},{"className":12325},[],[12327],{"type":2997,"value":12328},"requireUserSession",{"type":2997,"value":12330}," function in the ",{"type":2992,"tag":3137,"props":12332,"children":12334},{"className":12333},[],[12335],{"type":2997,"value":12336},"upgrade",{"type":2997,"value":12338}," function to check if the user is authenticated before upgrading the WebSocket connection.",{"type":2992,"tag":3265,"props":12340,"children":12342},{"className":3954,"code":12341,"language":3956,"meta":2866,"style":2866},"\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",[12343],{"type":2992,"tag":3137,"props":12344,"children":12345},{"__ignoreMap":2866},[12346,12354,12378,12407,12415,12438,12445,12474,12517,12524,12587,12594,12626,12671,12678],{"type":2992,"tag":3275,"props":12347,"children":12348},{"class":3277,"line":2952},[12349],{"type":2992,"tag":3275,"props":12350,"children":12351},{"style":3340},[12352],{"type":2997,"value":12353},"\u002F\u002F server\u002Froutes\u002Fws.ts\n",{"type":2992,"tag":3275,"props":12355,"children":12356},{"class":3277,"line":2918},[12357,12361,12365,12370,12374],{"type":2992,"tag":3275,"props":12358,"children":12359},{"style":4538},[12360],{"type":2997,"value":5072},{"type":2992,"tag":3275,"props":12362,"children":12363},{"style":4538},[12364],{"type":2997,"value":5187},{"type":2992,"tag":3275,"props":12366,"children":12367},{"style":3511},[12368],{"type":2997,"value":12369}," defineWebSocketHandler",{"type":2992,"tag":3275,"props":12371,"children":12372},{"style":3349},[12373],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":12375,"children":12376},{"style":3354},[12377],{"type":2997,"value":5202},{"type":2992,"tag":3275,"props":12379,"children":12380},{"class":3277,"line":2902},[12381,12385,12390,12394,12399,12403],{"type":2992,"tag":3275,"props":12382,"children":12383},{"style":3426},[12384],{"type":2997,"value":5740},{"type":2992,"tag":3275,"props":12386,"children":12387},{"style":3420},[12388],{"type":2997,"value":12389}," upgrade",{"type":2992,"tag":3275,"props":12391,"children":12392},{"style":3354},[12393],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":12395,"children":12396},{"style":4370},[12397],{"type":2997,"value":12398},"request",{"type":2992,"tag":3275,"props":12400,"children":12401},{"style":3354},[12402],{"type":2997,"value":5958},{"type":2992,"tag":3275,"props":12404,"children":12405},{"style":3354},[12406],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":12408,"children":12409},{"class":3277,"line":3538},[12410],{"type":2992,"tag":3275,"props":12411,"children":12412},{"style":3340},[12413],{"type":2997,"value":12414},"    \u002F\u002F Make sure the user is authenticated before upgrading the WebSocket connection\n",{"type":2992,"tag":3275,"props":12416,"children":12417},{"class":3277,"line":3547},[12418,12422,12426,12430,12434],{"type":2992,"tag":3275,"props":12419,"children":12420},{"style":4538},[12421],{"type":2997,"value":5791},{"type":2992,"tag":3275,"props":12423,"children":12424},{"style":3511},[12425],{"type":2997,"value":4874},{"type":2992,"tag":3275,"props":12427,"children":12428},{"style":3420},[12429],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":12431,"children":12432},{"style":3349},[12433],{"type":2997,"value":12398},{"type":2992,"tag":3275,"props":12435,"children":12436},{"style":3420},[12437],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":12439,"children":12440},{"class":3277,"line":3564},[12441],{"type":2992,"tag":3275,"props":12442,"children":12443},{"style":3354},[12444],{"type":2997,"value":4616},{"type":2992,"tag":3275,"props":12446,"children":12447},{"class":3277,"line":2898},[12448,12452,12457,12461,12466,12470],{"type":2992,"tag":3275,"props":12449,"children":12450},{"style":3426},[12451],{"type":2997,"value":5740},{"type":2992,"tag":3275,"props":12453,"children":12454},{"style":3420},[12455],{"type":2997,"value":12456}," open",{"type":2992,"tag":3275,"props":12458,"children":12459},{"style":3354},[12460],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":12462,"children":12463},{"style":4370},[12464],{"type":2997,"value":12465},"peer",{"type":2992,"tag":3275,"props":12467,"children":12468},{"style":3354},[12469],{"type":2997,"value":5958},{"type":2992,"tag":3275,"props":12471,"children":12472},{"style":3354},[12473],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":12475,"children":12476},{"class":3277,"line":2894},[12477,12481,12485,12489,12493,12497,12501,12505,12509,12513],{"type":2992,"tag":3275,"props":12478,"children":12479},{"style":3426},[12480],{"type":2997,"value":7508},{"type":2992,"tag":3275,"props":12482,"children":12483},{"style":3354},[12484],{"type":2997,"value":3447},{"type":2992,"tag":3275,"props":12486,"children":12487},{"style":3349},[12488],{"type":2997,"value":3462},{"type":2992,"tag":3275,"props":12490,"children":12491},{"style":3354},[12492],{"type":2997,"value":7388},{"type":2992,"tag":3275,"props":12494,"children":12495},{"style":3354},[12496],{"type":2997,"value":3508},{"type":2992,"tag":3275,"props":12498,"children":12499},{"style":4538},[12500],{"type":2997,"value":4794},{"type":2992,"tag":3275,"props":12502,"children":12503},{"style":3511},[12504],{"type":2997,"value":4874},{"type":2992,"tag":3275,"props":12506,"children":12507},{"style":3420},[12508],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":12510,"children":12511},{"style":3349},[12512],{"type":2997,"value":12465},{"type":2992,"tag":3275,"props":12514,"children":12515},{"style":3420},[12516],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":12518,"children":12519},{"class":3277,"line":2890},[12520],{"type":2992,"tag":3275,"props":12521,"children":12522},{"emptyLinePlaceholder":1196},[12523],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":12525,"children":12526},{"class":3277,"line":3726},[12527,12532,12536,12541,12545,12549,12554,12558,12562,12566,12571,12575,12579,12583],{"type":2992,"tag":3275,"props":12528,"children":12529},{"style":3349},[12530],{"type":2997,"value":12531},"    peer",{"type":2992,"tag":3275,"props":12533,"children":12534},{"style":3354},[12535],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":12537,"children":12538},{"style":3511},[12539],{"type":2997,"value":12540},"send",{"type":2992,"tag":3275,"props":12542,"children":12543},{"style":3420},[12544],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":12546,"children":12547},{"style":3354},[12548],{"type":2997,"value":7976},{"type":2992,"tag":3275,"props":12550,"children":12551},{"style":3287},[12552],{"type":2997,"value":12553},"Hello, ",{"type":2992,"tag":3275,"props":12555,"children":12556},{"style":3354},[12557],{"type":2997,"value":9315},{"type":2992,"tag":3275,"props":12559,"children":12560},{"style":3349},[12561],{"type":2997,"value":7562},{"type":2992,"tag":3275,"props":12563,"children":12564},{"style":3354},[12565],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":12567,"children":12568},{"style":3349},[12569],{"type":2997,"value":12570},"name",{"type":2992,"tag":3275,"props":12572,"children":12573},{"style":3354},[12574],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":12576,"children":12577},{"style":3287},[12578],{"type":2997,"value":8001},{"type":2992,"tag":3275,"props":12580,"children":12581},{"style":3354},[12582],{"type":2997,"value":7976},{"type":2992,"tag":3275,"props":12584,"children":12585},{"style":3420},[12586],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":12588,"children":12589},{"class":3277,"line":3743},[12590],{"type":2992,"tag":3275,"props":12591,"children":12592},{"style":3354},[12593],{"type":2997,"value":4616},{"type":2992,"tag":3275,"props":12595,"children":12596},{"class":3277,"line":3764},[12597,12602,12606,12610,12614,12618,12622],{"type":2992,"tag":3275,"props":12598,"children":12599},{"style":3420},[12600],{"type":2997,"value":12601},"  message",{"type":2992,"tag":3275,"props":12603,"children":12604},{"style":3354},[12605],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":12607,"children":12608},{"style":4370},[12609],{"type":2997,"value":12465},{"type":2992,"tag":3275,"props":12611,"children":12612},{"style":3354},[12613],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":12615,"children":12616},{"style":4370},[12617],{"type":2997,"value":7670},{"type":2992,"tag":3275,"props":12619,"children":12620},{"style":3354},[12621],{"type":2997,"value":5958},{"type":2992,"tag":3275,"props":12623,"children":12624},{"style":3354},[12625],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":12627,"children":12628},{"class":3277,"line":3797},[12629,12633,12637,12641,12645,12649,12654,12658,12663,12667],{"type":2992,"tag":3275,"props":12630,"children":12631},{"style":3349},[12632],{"type":2997,"value":12531},{"type":2992,"tag":3275,"props":12634,"children":12635},{"style":3354},[12636],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":12638,"children":12639},{"style":3511},[12640],{"type":2997,"value":12540},{"type":2992,"tag":3275,"props":12642,"children":12643},{"style":3420},[12644],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":12646,"children":12647},{"style":3354},[12648],{"type":2997,"value":7976},{"type":2992,"tag":3275,"props":12650,"children":12651},{"style":3287},[12652],{"type":2997,"value":12653},"Echo: ",{"type":2992,"tag":3275,"props":12655,"children":12656},{"style":3354},[12657],{"type":2997,"value":9315},{"type":2992,"tag":3275,"props":12659,"children":12660},{"style":3349},[12661],{"type":2997,"value":12662},"message",{"type":2992,"tag":3275,"props":12664,"children":12665},{"style":3354},[12666],{"type":2997,"value":9325},{"type":2992,"tag":3275,"props":12668,"children":12669},{"style":3420},[12670],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":12672,"children":12673},{"class":3277,"line":3852},[12674],{"type":2992,"tag":3275,"props":12675,"children":12676},{"style":3354},[12677],{"type":2997,"value":4616},{"type":2992,"tag":3275,"props":12679,"children":12680},{"class":3277,"line":3861},[12681,12685],{"type":2992,"tag":3275,"props":12682,"children":12683},{"style":3354},[12684],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":12686,"children":12687},{"style":3349},[12688],{"type":2997,"value":4718},{"type":2992,"tag":2999,"props":12690,"children":12691},{},[12692,12694,12701],{"type":2997,"value":12693},"Then, in your application, you can use the ",{"type":2992,"tag":3003,"props":12695,"children":12698},{"href":12696,"rel":12697},"https:\u002F\u002Fvueuse.org\u002Fcore\u002FuseWebSocket\u002F",[3007],[12699],{"type":2997,"value":12700},"useWebSocket",{"type":2997,"value":12702}," composable to connect to the WebSocket:",{"type":2992,"tag":3265,"props":12704,"children":12706},{"className":3403,"code":12705,"language":3405,"meta":2866,"style":2866},"\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",[12707],{"type":2992,"tag":3137,"props":12708,"children":12709},{"__ignoreMap":2866},[12710,12729,12840,12847,12855,12868,12883,12890,12905,12920,12952,12984,12999,13052,13105,13158,13173,13188],{"type":2992,"tag":3275,"props":12711,"children":12712},{"class":3277,"line":2952},[12713,12717,12721,12725],{"type":2992,"tag":3275,"props":12714,"children":12715},{"style":3354},[12716],{"type":2997,"value":3417},{"type":2992,"tag":3275,"props":12718,"children":12719},{"style":3420},[12720],{"type":2997,"value":3423},{"type":2992,"tag":3275,"props":12722,"children":12723},{"style":3426},[12724],{"type":2997,"value":3429},{"type":2992,"tag":3275,"props":12726,"children":12727},{"style":3354},[12728],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":12730,"children":12731},{"class":3277,"line":2918},[12732,12736,12740,12745,12749,12754,12758,12763,12767,12771,12775,12780,12784,12788,12793,12797,12801,12806,12810,12814,12818,12823,12827,12832,12836],{"type":2992,"tag":3275,"props":12733,"children":12734},{"style":3426},[12735],{"type":2997,"value":3442},{"type":2992,"tag":3275,"props":12737,"children":12738},{"style":3354},[12739],{"type":2997,"value":3447},{"type":2992,"tag":3275,"props":12741,"children":12742},{"style":3349},[12743],{"type":2997,"value":12744}," status",{"type":2992,"tag":3275,"props":12746,"children":12747},{"style":3354},[12748],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":12750,"children":12751},{"style":3349},[12752],{"type":2997,"value":12753}," data",{"type":2992,"tag":3275,"props":12755,"children":12756},{"style":3354},[12757],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":12759,"children":12760},{"style":3349},[12761],{"type":2997,"value":12762}," send",{"type":2992,"tag":3275,"props":12764,"children":12765},{"style":3354},[12766],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":12768,"children":12769},{"style":3349},[12770],{"type":2997,"value":12456},{"type":2992,"tag":3275,"props":12772,"children":12773},{"style":3354},[12774],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":12776,"children":12777},{"style":3349},[12778],{"type":2997,"value":12779}," close ",{"type":2992,"tag":3275,"props":12781,"children":12782},{"style":3354},[12783],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":12785,"children":12786},{"style":3354},[12787],{"type":2997,"value":3508},{"type":2992,"tag":3275,"props":12789,"children":12790},{"style":3511},[12791],{"type":2997,"value":12792}," useWebSocket",{"type":2992,"tag":3275,"props":12794,"children":12795},{"style":3349},[12796],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":12798,"children":12799},{"style":3354},[12800],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":12802,"children":12803},{"style":3287},[12804],{"type":2997,"value":12805},"\u002Fws",{"type":2992,"tag":3275,"props":12807,"children":12808},{"style":3354},[12809],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":12811,"children":12812},{"style":3354},[12813],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":12815,"children":12816},{"style":3354},[12817],{"type":2997,"value":3447},{"type":2992,"tag":3275,"props":12819,"children":12820},{"style":3420},[12821],{"type":2997,"value":12822}," immediate",{"type":2992,"tag":3275,"props":12824,"children":12825},{"style":3354},[12826],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":12828,"children":12829},{"style":5722},[12830],{"type":2997,"value":12831}," false",{"type":2992,"tag":3275,"props":12833,"children":12834},{"style":3354},[12835],{"type":2997,"value":7388},{"type":2992,"tag":3275,"props":12837,"children":12838},{"style":3349},[12839],{"type":2997,"value":4718},{"type":2992,"tag":3275,"props":12841,"children":12842},{"class":3277,"line":2902},[12843],{"type":2992,"tag":3275,"props":12844,"children":12845},{"emptyLinePlaceholder":1196},[12846],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":12848,"children":12849},{"class":3277,"line":3538},[12850],{"type":2992,"tag":3275,"props":12851,"children":12852},{"style":3340},[12853],{"type":2997,"value":12854},"\u002F\u002F Only open the websocket after the page is hydrated (client-only)\n",{"type":2992,"tag":3275,"props":12856,"children":12857},{"class":3277,"line":3547},[12858,12863],{"type":2992,"tag":3275,"props":12859,"children":12860},{"style":3511},[12861],{"type":2997,"value":12862},"onMounted",{"type":2992,"tag":3275,"props":12864,"children":12865},{"style":3349},[12866],{"type":2997,"value":12867},"(open)\n",{"type":2992,"tag":3275,"props":12869,"children":12870},{"class":3277,"line":3564},[12871,12875,12879],{"type":2992,"tag":3275,"props":12872,"children":12873},{"style":3354},[12874],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":12876,"children":12877},{"style":3420},[12878],{"type":2997,"value":3423},{"type":2992,"tag":3275,"props":12880,"children":12881},{"style":3354},[12882],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":12884,"children":12885},{"class":3277,"line":2898},[12886],{"type":2992,"tag":3275,"props":12887,"children":12888},{"emptyLinePlaceholder":1196},[12889],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":12891,"children":12892},{"class":3277,"line":2894},[12893,12897,12901],{"type":2992,"tag":3275,"props":12894,"children":12895},{"style":3354},[12896],{"type":2997,"value":3417},{"type":2992,"tag":3275,"props":12898,"children":12899},{"style":3420},[12900],{"type":2997,"value":3557},{"type":2992,"tag":3275,"props":12902,"children":12903},{"style":3354},[12904],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":12906,"children":12907},{"class":3277,"line":2890},[12908,12912,12916],{"type":2992,"tag":3275,"props":12909,"children":12910},{"style":3354},[12911],{"type":2997,"value":3570},{"type":2992,"tag":3275,"props":12913,"children":12914},{"style":3420},[12915],{"type":2997,"value":3575},{"type":2992,"tag":3275,"props":12917,"children":12918},{"style":3354},[12919],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":12921,"children":12922},{"class":3277,"line":3726},[12923,12927,12931,12935,12940,12944,12948],{"type":2992,"tag":3275,"props":12924,"children":12925},{"style":3354},[12926],{"type":2997,"value":3610},{"type":2992,"tag":3275,"props":12928,"children":12929},{"style":3420},[12930],{"type":2997,"value":2999},{"type":2992,"tag":3275,"props":12932,"children":12933},{"style":3354},[12934],{"type":2997,"value":3619},{"type":2992,"tag":3275,"props":12936,"children":12937},{"style":3349},[12938],{"type":2997,"value":12939},"Status: {{ status }}",{"type":2992,"tag":3275,"props":12941,"children":12942},{"style":3354},[12943],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":12945,"children":12946},{"style":3420},[12947],{"type":2997,"value":2999},{"type":2992,"tag":3275,"props":12949,"children":12950},{"style":3354},[12951],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":12953,"children":12954},{"class":3277,"line":3743},[12955,12959,12963,12967,12972,12976,12980],{"type":2992,"tag":3275,"props":12956,"children":12957},{"style":3354},[12958],{"type":2997,"value":3610},{"type":2992,"tag":3275,"props":12960,"children":12961},{"style":3420},[12962],{"type":2997,"value":2999},{"type":2992,"tag":3275,"props":12964,"children":12965},{"style":3354},[12966],{"type":2997,"value":3619},{"type":2992,"tag":3275,"props":12968,"children":12969},{"style":3349},[12970],{"type":2997,"value":12971},"Data: {{ data }}",{"type":2992,"tag":3275,"props":12973,"children":12974},{"style":3354},[12975],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":12977,"children":12978},{"style":3420},[12979],{"type":2997,"value":2999},{"type":2992,"tag":3275,"props":12981,"children":12982},{"style":3354},[12983],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":12985,"children":12986},{"class":3277,"line":3764},[12987,12991,12995],{"type":2992,"tag":3275,"props":12988,"children":12989},{"style":3354},[12990],{"type":2997,"value":3610},{"type":2992,"tag":3275,"props":12992,"children":12993},{"style":3420},[12994],{"type":2997,"value":2999},{"type":2992,"tag":3275,"props":12996,"children":12997},{"style":3354},[12998],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":13000,"children":13001},{"class":3277,"line":3797},[13002,13006,13010,13014,13018,13022,13027,13031,13035,13040,13044,13048],{"type":2992,"tag":3275,"props":13003,"children":13004},{"style":3354},[13005],{"type":2997,"value":11584},{"type":2992,"tag":3275,"props":13007,"children":13008},{"style":3420},[13009],{"type":2997,"value":3680},{"type":2992,"tag":3275,"props":13011,"children":13012},{"style":3426},[13013],{"type":2997,"value":3685},{"type":2992,"tag":3275,"props":13015,"children":13016},{"style":3354},[13017],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":13019,"children":13020},{"style":3354},[13021],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":13023,"children":13024},{"style":3287},[13025],{"type":2997,"value":13026},"open",{"type":2992,"tag":3275,"props":13028,"children":13029},{"style":3354},[13030],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":13032,"children":13033},{"style":3354},[13034],{"type":2997,"value":3619},{"type":2992,"tag":3275,"props":13036,"children":13037},{"style":3349},[13038],{"type":2997,"value":13039},"Open",{"type":2992,"tag":3275,"props":13041,"children":13042},{"style":3354},[13043],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":13045,"children":13046},{"style":3420},[13047],{"type":2997,"value":3680},{"type":2992,"tag":3275,"props":13049,"children":13050},{"style":3354},[13051],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":13053,"children":13054},{"class":3277,"line":3852},[13055,13059,13063,13067,13071,13075,13080,13084,13088,13093,13097,13101],{"type":2992,"tag":3275,"props":13056,"children":13057},{"style":3354},[13058],{"type":2997,"value":11584},{"type":2992,"tag":3275,"props":13060,"children":13061},{"style":3420},[13062],{"type":2997,"value":3680},{"type":2992,"tag":3275,"props":13064,"children":13065},{"style":3426},[13066],{"type":2997,"value":3685},{"type":2992,"tag":3275,"props":13068,"children":13069},{"style":3354},[13070],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":13072,"children":13073},{"style":3354},[13074],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":13076,"children":13077},{"style":3287},[13078],{"type":2997,"value":13079},"close(1000, 'Closing')",{"type":2992,"tag":3275,"props":13081,"children":13082},{"style":3354},[13083],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":13085,"children":13086},{"style":3354},[13087],{"type":2997,"value":3619},{"type":2992,"tag":3275,"props":13089,"children":13090},{"style":3349},[13091],{"type":2997,"value":13092},"Close",{"type":2992,"tag":3275,"props":13094,"children":13095},{"style":3354},[13096],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":13098,"children":13099},{"style":3420},[13100],{"type":2997,"value":3680},{"type":2992,"tag":3275,"props":13102,"children":13103},{"style":3354},[13104],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":13106,"children":13107},{"class":3277,"line":3861},[13108,13112,13116,13120,13124,13128,13133,13137,13141,13146,13150,13154],{"type":2992,"tag":3275,"props":13109,"children":13110},{"style":3354},[13111],{"type":2997,"value":11584},{"type":2992,"tag":3275,"props":13113,"children":13114},{"style":3420},[13115],{"type":2997,"value":3680},{"type":2992,"tag":3275,"props":13117,"children":13118},{"style":3426},[13119],{"type":2997,"value":3685},{"type":2992,"tag":3275,"props":13121,"children":13122},{"style":3354},[13123],{"type":2997,"value":3357},{"type":2992,"tag":3275,"props":13125,"children":13126},{"style":3354},[13127],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":13129,"children":13130},{"style":3287},[13131],{"type":2997,"value":13132},"send('hello')",{"type":2992,"tag":3275,"props":13134,"children":13135},{"style":3354},[13136],{"type":2997,"value":3589},{"type":2992,"tag":3275,"props":13138,"children":13139},{"style":3354},[13140],{"type":2997,"value":3619},{"type":2992,"tag":3275,"props":13142,"children":13143},{"style":3349},[13144],{"type":2997,"value":13145},"Send hello",{"type":2992,"tag":3275,"props":13147,"children":13148},{"style":3354},[13149],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":13151,"children":13152},{"style":3420},[13153],{"type":2997,"value":3680},{"type":2992,"tag":3275,"props":13155,"children":13156},{"style":3354},[13157],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":13159,"children":13160},{"class":3277,"line":2886},[13161,13165,13169],{"type":2992,"tag":3275,"props":13162,"children":13163},{"style":3354},[13164],{"type":2997,"value":11715},{"type":2992,"tag":3275,"props":13166,"children":13167},{"style":3420},[13168],{"type":2997,"value":2999},{"type":2992,"tag":3275,"props":13170,"children":13171},{"style":3354},[13172],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":13174,"children":13175},{"class":3277,"line":3929},[13176,13180,13184],{"type":2992,"tag":3275,"props":13177,"children":13178},{"style":3354},[13179],{"type":2997,"value":3732},{"type":2992,"tag":3275,"props":13181,"children":13182},{"style":3420},[13183],{"type":2997,"value":3575},{"type":2992,"tag":3275,"props":13185,"children":13186},{"style":3354},[13187],{"type":2997,"value":3434},{"type":2992,"tag":3275,"props":13189,"children":13190},{"class":3277,"line":4199},[13191,13195,13199],{"type":2992,"tag":3275,"props":13192,"children":13193},{"style":3354},[13194],{"type":2997,"value":3527},{"type":2992,"tag":3275,"props":13196,"children":13197},{"style":3420},[13198],{"type":2997,"value":3557},{"type":2992,"tag":3275,"props":13200,"children":13201},{"style":3354},[13202],{"type":2997,"value":3434},{"type":2992,"tag":3083,"props":13204,"children":13206},{"id":13205},"configuration",[13207],{"type":2997,"value":29},{"type":2992,"tag":2999,"props":13209,"children":13210},{},[13211,13213,13219,13221,13234],{"type":2997,"value":13212},"We leverage ",{"type":2992,"tag":3137,"props":13214,"children":13216},{"className":13215},[],[13217],{"type":2997,"value":13218},"runtimeConfig.session",{"type":2997,"value":13220}," to give the defaults option to ",{"type":2992,"tag":3003,"props":13222,"children":13225},{"href":13223,"rel":13224},"https:\u002F\u002Fh3.unjs.io\u002Fexamples\u002Fhandle-session",[3007],[13226,13228],{"type":2997,"value":13227},"h3 ",{"type":2992,"tag":3137,"props":13229,"children":13231},{"className":13230},[],[13232],{"type":2997,"value":13233},"useSession",{"type":2997,"value":3230},{"type":2992,"tag":2999,"props":13236,"children":13237},{},[13238,13240,13245],{"type":2997,"value":13239},"You can overwrite the options in your ",{"type":2992,"tag":3137,"props":13241,"children":13243},{"className":13242},[],[13244],{"type":2997,"value":233},{"type":2997,"value":4015},{"type":2992,"tag":3265,"props":13247,"children":13249},{"className":3954,"code":13248,"language":3956,"meta":2866,"style":2866},"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",[13250],{"type":2992,"tag":3137,"props":13251,"children":13252},{"__ignoreMap":2866},[13253,13276,13311,13326,13342,13391,13398,13405],{"type":2992,"tag":3275,"props":13254,"children":13255},{"class":3277,"line":2952},[13256,13260,13264,13268,13272],{"type":2992,"tag":3275,"props":13257,"children":13258},{"style":4538},[13259],{"type":2997,"value":5072},{"type":2992,"tag":3275,"props":13261,"children":13262},{"style":4538},[13263],{"type":2997,"value":5187},{"type":2992,"tag":3275,"props":13265,"children":13266},{"style":3511},[13267],{"type":2997,"value":5192},{"type":2992,"tag":3275,"props":13269,"children":13270},{"style":3349},[13271],{"type":2997,"value":5197},{"type":2992,"tag":3275,"props":13273,"children":13274},{"style":3354},[13275],{"type":2997,"value":5202},{"type":2992,"tag":3275,"props":13277,"children":13278},{"class":3277,"line":2918},[13279,13283,13287,13291,13295,13299,13303,13307],{"type":2992,"tag":3275,"props":13280,"children":13281},{"style":3420},[13282],{"type":2997,"value":6424},{"type":2992,"tag":3275,"props":13284,"children":13285},{"style":3354},[13286],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":13288,"children":13289},{"style":3349},[13290],{"type":2997,"value":6433},{"type":2992,"tag":3275,"props":13292,"children":13293},{"style":3354},[13294],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":13296,"children":13297},{"style":3287},[13298],{"type":2997,"value":2865},{"type":2992,"tag":3275,"props":13300,"children":13301},{"style":3354},[13302],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":13304,"children":13305},{"style":3349},[13306],{"type":2997,"value":6450},{"type":2992,"tag":3275,"props":13308,"children":13309},{"style":3354},[13310],{"type":2997,"value":5288},{"type":2992,"tag":3275,"props":13312,"children":13313},{"class":3277,"line":2902},[13314,13318,13322],{"type":2992,"tag":3275,"props":13315,"children":13316},{"style":3420},[13317],{"type":2997,"value":5210},{"type":2992,"tag":3275,"props":13319,"children":13320},{"style":3354},[13321],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":13323,"children":13324},{"style":3354},[13325],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":13327,"children":13328},{"class":3277,"line":3538},[13329,13334,13338],{"type":2992,"tag":3275,"props":13330,"children":13331},{"style":3420},[13332],{"type":2997,"value":13333},"    session",{"type":2992,"tag":3275,"props":13335,"children":13336},{"style":3354},[13337],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":13339,"children":13340},{"style":3354},[13341],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":13343,"children":13344},{"class":3277,"line":3547},[13345,13350,13354,13359,13364,13368,13372,13377,13381,13386],{"type":2992,"tag":3275,"props":13346,"children":13347},{"style":3420},[13348],{"type":2997,"value":13349},"      maxAge",{"type":2992,"tag":3275,"props":13351,"children":13352},{"style":3354},[13353],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":13355,"children":13356},{"style":6876},[13357],{"type":2997,"value":13358}," 60",{"type":2992,"tag":3275,"props":13360,"children":13361},{"style":3354},[13362],{"type":2997,"value":13363}," *",{"type":2992,"tag":3275,"props":13365,"children":13366},{"style":6876},[13367],{"type":2997,"value":13358},{"type":2992,"tag":3275,"props":13369,"children":13370},{"style":3354},[13371],{"type":2997,"value":13363},{"type":2992,"tag":3275,"props":13373,"children":13374},{"style":6876},[13375],{"type":2997,"value":13376}," 24",{"type":2992,"tag":3275,"props":13378,"children":13379},{"style":3354},[13380],{"type":2997,"value":13363},{"type":2992,"tag":3275,"props":13382,"children":13383},{"style":6876},[13384],{"type":2997,"value":13385}," 7",{"type":2992,"tag":3275,"props":13387,"children":13388},{"style":3340},[13389],{"type":2997,"value":13390}," \u002F\u002F 1 week\n",{"type":2992,"tag":3275,"props":13392,"children":13393},{"class":3277,"line":3564},[13394],{"type":2992,"tag":3275,"props":13395,"children":13396},{"style":3354},[13397],{"type":2997,"value":5328},{"type":2992,"tag":3275,"props":13399,"children":13400},{"class":3277,"line":2898},[13401],{"type":2992,"tag":3275,"props":13402,"children":13403},{"style":3354},[13404],{"type":2997,"value":4976},{"type":2992,"tag":3275,"props":13406,"children":13407},{"class":3277,"line":2894},[13408,13412],{"type":2992,"tag":3275,"props":13409,"children":13410},{"style":3354},[13411],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":13413,"children":13414},{"style":3349},[13415],{"type":2997,"value":4718},{"type":2992,"tag":2999,"props":13417,"children":13418},{},[13419],{"type":2997,"value":13420},"Our defaults are:",{"type":2992,"tag":3265,"props":13422,"children":13424},{"className":3954,"code":13423,"language":3956,"meta":2866,"style":2866},"{\n  name: 'nuxt-session',\n  password: process.env.NUXT_SESSION_PASSWORD || '',\n  cookie: {\n    sameSite: 'lax'\n  }\n}\n",[13425],{"type":2992,"tag":3137,"props":13426,"children":13427},{"__ignoreMap":2866},[13428,13435,13464,13512,13528,13553,13560],{"type":2992,"tag":3275,"props":13429,"children":13430},{"class":3277,"line":2952},[13431],{"type":2992,"tag":3275,"props":13432,"children":13433},{"style":3354},[13434],{"type":2997,"value":5202},{"type":2992,"tag":3275,"props":13436,"children":13437},{"class":3277,"line":2918},[13438,13443,13447,13451,13456,13460],{"type":2992,"tag":3275,"props":13439,"children":13440},{"style":3281},[13441],{"type":2997,"value":13442},"  name",{"type":2992,"tag":3275,"props":13444,"children":13445},{"style":3354},[13446],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":13448,"children":13449},{"style":3354},[13450],{"type":2997,"value":4599},{"type":2992,"tag":3275,"props":13452,"children":13453},{"style":3287},[13454],{"type":2997,"value":13455},"nuxt-session",{"type":2992,"tag":3275,"props":13457,"children":13458},{"style":3354},[13459],{"type":2997,"value":4939},{"type":2992,"tag":3275,"props":13461,"children":13462},{"style":3354},[13463],{"type":2997,"value":5288},{"type":2992,"tag":3275,"props":13465,"children":13466},{"class":3277,"line":2902},[13467,13472,13476,13481,13485,13490,13494,13498,13503,13508],{"type":2992,"tag":3275,"props":13468,"children":13469},{"style":3281},[13470],{"type":2997,"value":13471},"  password",{"type":2992,"tag":3275,"props":13473,"children":13474},{"style":3354},[13475],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":13477,"children":13478},{"style":3349},[13479],{"type":2997,"value":13480}," process",{"type":2992,"tag":3275,"props":13482,"children":13483},{"style":3354},[13484],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":13486,"children":13487},{"style":3349},[13488],{"type":2997,"value":13489},"env",{"type":2992,"tag":3275,"props":13491,"children":13492},{"style":3354},[13493],{"type":2997,"value":3230},{"type":2992,"tag":3275,"props":13495,"children":13496},{"style":3349},[13497],{"type":2997,"value":3319},{"type":2992,"tag":3275,"props":13499,"children":13500},{"style":3354},[13501],{"type":2997,"value":13502}," ||",{"type":2992,"tag":3275,"props":13504,"children":13505},{"style":3354},[13506],{"type":2997,"value":13507}," ''",{"type":2992,"tag":3275,"props":13509,"children":13510},{"style":3354},[13511],{"type":2997,"value":5288},{"type":2992,"tag":3275,"props":13513,"children":13514},{"class":3277,"line":3538},[13515,13520,13524],{"type":2992,"tag":3275,"props":13516,"children":13517},{"style":3281},[13518],{"type":2997,"value":13519},"  cookie",{"type":2992,"tag":3275,"props":13521,"children":13522},{"style":3354},[13523],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":13525,"children":13526},{"style":3354},[13527],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":13529,"children":13530},{"class":3277,"line":3547},[13531,13536,13540,13544,13549],{"type":2992,"tag":3275,"props":13532,"children":13533},{"style":3281},[13534],{"type":2997,"value":13535},"    sameSite",{"type":2992,"tag":3275,"props":13537,"children":13538},{"style":3354},[13539],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":13541,"children":13542},{"style":3354},[13543],{"type":2997,"value":4599},{"type":2992,"tag":3275,"props":13545,"children":13546},{"style":3287},[13547],{"type":2997,"value":13548},"lax",{"type":2992,"tag":3275,"props":13550,"children":13551},{"style":3354},[13552],{"type":2997,"value":4608},{"type":2992,"tag":3275,"props":13554,"children":13555},{"class":3277,"line":3564},[13556],{"type":2992,"tag":3275,"props":13557,"children":13558},{"style":3354},[13559],{"type":2997,"value":4976},{"type":2992,"tag":3275,"props":13561,"children":13562},{"class":3277,"line":2898},[13563],{"type":2992,"tag":3275,"props":13564,"children":13565},{"style":3354},[13566],{"type":2997,"value":4454},{"type":2992,"tag":2999,"props":13568,"children":13569},{},[13570,13572,13578,13579,13585],{"type":2997,"value":13571},"You can also overwrite the session config by passing it as 3rd argument of the ",{"type":2992,"tag":3137,"props":13573,"children":13575},{"className":13574},[],[13576],{"type":2997,"value":13577},"setUserSession",{"type":2997,"value":6108},{"type":2992,"tag":3137,"props":13580,"children":13582},{"className":13581},[],[13583],{"type":2997,"value":13584},"replaceUserSession",{"type":2997,"value":13586}," functions:",{"type":2992,"tag":3265,"props":13588,"children":13590},{"className":3954,"code":13589,"language":3956,"meta":2866,"style":2866},"await setUserSession(event, { ... } , {\n  maxAge: 60 * 60 * 24 * 7 \u002F\u002F 1 week\n})\n",[13591],{"type":2992,"tag":3137,"props":13592,"children":13593},{"__ignoreMap":2866},[13594,13635,13679],{"type":2992,"tag":3275,"props":13595,"children":13596},{"class":3277,"line":2952},[13597,13601,13605,13609,13613,13617,13622,13626,13631],{"type":2992,"tag":3275,"props":13598,"children":13599},{"style":4538},[13600],{"type":2997,"value":4541},{"type":2992,"tag":3275,"props":13602,"children":13603},{"style":3511},[13604],{"type":2997,"value":4546},{"type":2992,"tag":3275,"props":13606,"children":13607},{"style":3349},[13608],{"type":2997,"value":4551},{"type":2992,"tag":3275,"props":13610,"children":13611},{"style":3354},[13612],{"type":2997,"value":3457},{"type":2992,"tag":3275,"props":13614,"children":13615},{"style":3354},[13616],{"type":2997,"value":3447},{"type":2992,"tag":3275,"props":13618,"children":13619},{"style":3354},[13620],{"type":2997,"value":13621}," ...",{"type":2992,"tag":3275,"props":13623,"children":13624},{"style":3354},[13625],{"type":2997,"value":7388},{"type":2992,"tag":3275,"props":13627,"children":13628},{"style":3354},[13629],{"type":2997,"value":13630}," ,",{"type":2992,"tag":3275,"props":13632,"children":13633},{"style":3354},[13634],{"type":2997,"value":3978},{"type":2992,"tag":3275,"props":13636,"children":13637},{"class":3277,"line":2918},[13638,13643,13647,13651,13655,13659,13663,13667,13671,13675],{"type":2992,"tag":3275,"props":13639,"children":13640},{"style":3420},[13641],{"type":2997,"value":13642},"  maxAge",{"type":2992,"tag":3275,"props":13644,"children":13645},{"style":3354},[13646],{"type":2997,"value":4015},{"type":2992,"tag":3275,"props":13648,"children":13649},{"style":6876},[13650],{"type":2997,"value":13358},{"type":2992,"tag":3275,"props":13652,"children":13653},{"style":3354},[13654],{"type":2997,"value":13363},{"type":2992,"tag":3275,"props":13656,"children":13657},{"style":6876},[13658],{"type":2997,"value":13358},{"type":2992,"tag":3275,"props":13660,"children":13661},{"style":3354},[13662],{"type":2997,"value":13363},{"type":2992,"tag":3275,"props":13664,"children":13665},{"style":6876},[13666],{"type":2997,"value":13376},{"type":2992,"tag":3275,"props":13668,"children":13669},{"style":3354},[13670],{"type":2997,"value":13363},{"type":2992,"tag":3275,"props":13672,"children":13673},{"style":6876},[13674],{"type":2997,"value":13385},{"type":2992,"tag":3275,"props":13676,"children":13677},{"style":3340},[13678],{"type":2997,"value":13390},{"type":2992,"tag":3275,"props":13680,"children":13681},{"class":3277,"line":2902},[13682,13686],{"type":2992,"tag":3275,"props":13683,"children":13684},{"style":3354},[13685],{"type":2997,"value":3503},{"type":2992,"tag":3275,"props":13687,"children":13688},{"style":3349},[13689],{"type":2997,"value":4718},{"type":2992,"tag":2999,"props":13691,"children":13692},{},[13693,13695,13706],{"type":2997,"value":13694},"Checkout the ",{"type":2992,"tag":3003,"props":13696,"children":13699},{"href":13697,"rel":13698},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fh3\u002Fblob\u002Fc04c458810e34eb15c1647e1369e7d7ef19f567d\u002Fsrc\u002Futils\u002Fsession.ts#L20",[3007],[13700],{"type":2992,"tag":3137,"props":13701,"children":13703},{"className":13702},[],[13704],{"type":2997,"value":13705},"SessionConfig",{"type":2997,"value":13707}," for all options.",{"type":2992,"tag":3083,"props":13709,"children":13711},{"id":13710},"more",[13712],{"type":2997,"value":13713},"More",{"type":2992,"tag":3049,"props":13715,"children":13716},{},[13717],{"type":2992,"tag":3053,"props":13718,"children":13719},{},[13720,13727,13729],{"type":2992,"tag":3003,"props":13721,"children":13724},{"href":13722,"rel":13723},"https:\u002F\u002Fgithub.com\u002Fbarbapapazes\u002Fnuxt-authorization",[3007],[13725],{"type":2997,"value":13726},"nuxt-authorization",{"type":2997,"value":13728},": Authorization module for managing permissions inside a Nuxt app, compatible with ",{"type":2992,"tag":3137,"props":13730,"children":13732},{"className":13731},[],[13733],{"type":2997,"value":2865},{"type":2992,"tag":3083,"props":13735,"children":13737},{"id":13736},"development",[13738],{"type":2997,"value":13739},"Development",{"type":2992,"tag":3265,"props":13741,"children":13743},{"className":3267,"code":13742,"language":3269,"meta":2866,"style":2866},"# 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",[13744],{"type":2992,"tag":3137,"props":13745,"children":13746},{"__ignoreMap":2866},[13747,13755,13768,13775,13783,13800,13807,13815,13831,13838,13846,13862,13869,13877,13893,13900,13908,13924,13940,13947,13955],{"type":2992,"tag":3275,"props":13748,"children":13749},{"class":3277,"line":2952},[13750],{"type":2992,"tag":3275,"props":13751,"children":13752},{"style":3340},[13753],{"type":2997,"value":13754},"# Install dependencies\n",{"type":2992,"tag":3275,"props":13756,"children":13757},{"class":3277,"line":2918},[13758,13763],{"type":2992,"tag":3275,"props":13759,"children":13760},{"style":3281},[13761],{"type":2997,"value":13762},"pnpm",{"type":2992,"tag":3275,"props":13764,"children":13765},{"style":3287},[13766],{"type":2997,"value":13767}," install\n",{"type":2992,"tag":3275,"props":13769,"children":13770},{"class":3277,"line":2902},[13771],{"type":2992,"tag":3275,"props":13772,"children":13773},{"emptyLinePlaceholder":1196},[13774],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":13776,"children":13777},{"class":3277,"line":3538},[13778],{"type":2992,"tag":3275,"props":13779,"children":13780},{"style":3340},[13781],{"type":2997,"value":13782},"# Generate type stubs\n",{"type":2992,"tag":3275,"props":13784,"children":13785},{"class":3277,"line":3547},[13786,13790,13795],{"type":2992,"tag":3275,"props":13787,"children":13788},{"style":3281},[13789],{"type":2997,"value":13762},{"type":2992,"tag":3275,"props":13791,"children":13792},{"style":3287},[13793],{"type":2997,"value":13794}," run",{"type":2992,"tag":3275,"props":13796,"children":13797},{"style":3287},[13798],{"type":2997,"value":13799}," dev:prepare\n",{"type":2992,"tag":3275,"props":13801,"children":13802},{"class":3277,"line":3564},[13803],{"type":2992,"tag":3275,"props":13804,"children":13805},{"emptyLinePlaceholder":1196},[13806],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":13808,"children":13809},{"class":3277,"line":2898},[13810],{"type":2992,"tag":3275,"props":13811,"children":13812},{"style":3340},[13813],{"type":2997,"value":13814},"# Develop with the playground\n",{"type":2992,"tag":3275,"props":13816,"children":13817},{"class":3277,"line":2894},[13818,13822,13826],{"type":2992,"tag":3275,"props":13819,"children":13820},{"style":3281},[13821],{"type":2997,"value":13762},{"type":2992,"tag":3275,"props":13823,"children":13824},{"style":3287},[13825],{"type":2997,"value":13794},{"type":2992,"tag":3275,"props":13827,"children":13828},{"style":3287},[13829],{"type":2997,"value":13830}," dev\n",{"type":2992,"tag":3275,"props":13832,"children":13833},{"class":3277,"line":2890},[13834],{"type":2992,"tag":3275,"props":13835,"children":13836},{"emptyLinePlaceholder":1196},[13837],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":13839,"children":13840},{"class":3277,"line":3726},[13841],{"type":2992,"tag":3275,"props":13842,"children":13843},{"style":3340},[13844],{"type":2997,"value":13845},"# Build the playground\n",{"type":2992,"tag":3275,"props":13847,"children":13848},{"class":3277,"line":3743},[13849,13853,13857],{"type":2992,"tag":3275,"props":13850,"children":13851},{"style":3281},[13852],{"type":2997,"value":13762},{"type":2992,"tag":3275,"props":13854,"children":13855},{"style":3287},[13856],{"type":2997,"value":13794},{"type":2992,"tag":3275,"props":13858,"children":13859},{"style":3287},[13860],{"type":2997,"value":13861}," dev:build\n",{"type":2992,"tag":3275,"props":13863,"children":13864},{"class":3277,"line":3764},[13865],{"type":2992,"tag":3275,"props":13866,"children":13867},{"emptyLinePlaceholder":1196},[13868],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":13870,"children":13871},{"class":3277,"line":3797},[13872],{"type":2992,"tag":3275,"props":13873,"children":13874},{"style":3340},[13875],{"type":2997,"value":13876},"# Run ESLint\n",{"type":2992,"tag":3275,"props":13878,"children":13879},{"class":3277,"line":3852},[13880,13884,13888],{"type":2992,"tag":3275,"props":13881,"children":13882},{"style":3281},[13883],{"type":2997,"value":13762},{"type":2992,"tag":3275,"props":13885,"children":13886},{"style":3287},[13887],{"type":2997,"value":13794},{"type":2992,"tag":3275,"props":13889,"children":13890},{"style":3287},[13891],{"type":2997,"value":13892}," lint\n",{"type":2992,"tag":3275,"props":13894,"children":13895},{"class":3277,"line":3861},[13896],{"type":2992,"tag":3275,"props":13897,"children":13898},{"emptyLinePlaceholder":1196},[13899],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":13901,"children":13902},{"class":3277,"line":2886},[13903],{"type":2992,"tag":3275,"props":13904,"children":13905},{"style":3340},[13906],{"type":2997,"value":13907},"# Run Vitest\n",{"type":2992,"tag":3275,"props":13909,"children":13910},{"class":3277,"line":3929},[13911,13915,13919],{"type":2992,"tag":3275,"props":13912,"children":13913},{"style":3281},[13914],{"type":2997,"value":13762},{"type":2992,"tag":3275,"props":13916,"children":13917},{"style":3287},[13918],{"type":2997,"value":13794},{"type":2992,"tag":3275,"props":13920,"children":13921},{"style":3287},[13922],{"type":2997,"value":13923}," test\n",{"type":2992,"tag":3275,"props":13925,"children":13926},{"class":3277,"line":4199},[13927,13931,13935],{"type":2992,"tag":3275,"props":13928,"children":13929},{"style":3281},[13930],{"type":2997,"value":13762},{"type":2992,"tag":3275,"props":13932,"children":13933},{"style":3287},[13934],{"type":2997,"value":13794},{"type":2992,"tag":3275,"props":13936,"children":13937},{"style":3287},[13938],{"type":2997,"value":13939}," test:watch\n",{"type":2992,"tag":3275,"props":13941,"children":13942},{"class":3277,"line":4207},[13943],{"type":2992,"tag":3275,"props":13944,"children":13945},{"emptyLinePlaceholder":1196},[13946],{"type":2997,"value":3544},{"type":2992,"tag":3275,"props":13948,"children":13949},{"class":3277,"line":4216},[13950],{"type":2992,"tag":3275,"props":13951,"children":13952},{"style":3340},[13953],{"type":2997,"value":13954},"# Release new version\n",{"type":2992,"tag":3275,"props":13956,"children":13957},{"class":3277,"line":4224},[13958,13962,13966],{"type":2992,"tag":3275,"props":13959,"children":13960},{"style":3281},[13961],{"type":2997,"value":13762},{"type":2992,"tag":3275,"props":13963,"children":13964},{"style":3287},[13965],{"type":2997,"value":13794},{"type":2992,"tag":3275,"props":13967,"children":13968},{"style":3287},[13969],{"type":2997,"value":13970}," release\n",{"type":2992,"tag":13972,"props":13973,"children":13974},"style",{},[13975],{"type":2997,"value":13976},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":2866,"searchDepth":2918,"depth":2918,"links":13978},[13979,13980,13981,13982,13985,13993,13994,13999,14000,14001,14002],{"id":3085,"depth":2918,"text":395},{"id":3203,"depth":2918,"text":3206},{"id":3244,"depth":2918,"text":3247},{"id":3385,"depth":2918,"text":3388,"children":13983},[13984],{"id":3397,"depth":2902,"text":3400},{"id":4479,"depth":2918,"text":4482,"children":13986},[13987,13988,13989,13990,13991,13992],{"id":4498,"depth":2902,"text":4501},{"id":5092,"depth":2902,"text":5095},{"id":6093,"depth":2902,"text":3119},{"id":6545,"depth":2902,"text":6548},{"id":6695,"depth":2902,"text":3128},{"id":10609,"depth":2902,"text":10612},{"id":10902,"depth":2918,"text":10905},{"id":11177,"depth":2918,"text":3099,"children":13995},[13996,13997],{"id":11348,"depth":2902,"text":11351},{"id":11476,"depth":2902,"text":13998},"\u003CAuthState> component",{"id":12181,"depth":2918,"text":12184},{"id":13205,"depth":2918,"text":29},{"id":13710,"depth":2918,"text":13713},{"id":13736,"depth":2918,"text":13739}]