[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fGCo9l1hMtNdUiA6QzdUX5X3kLqaWcC5t2kdz4LrvCvc":3,"module-auth-utils":2856,"versions":13998},[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",{"name":2857,"description":2858,"repo":2859,"npm":2860,"icon":2861,"github":2862,"website":2862,"learn_more":2861,"category":2863,"type":2864,"maintainers":2865,"compatibility":2870,"generatedAt":2873,"contributors":2874,"stats":2972,"readme":2980},"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",[2866],{"name":2867,"github":2868,"twitter":2868,"bluesky":2869},"Sébastien Chopin","atinux","atinux.com",{"nuxt":2871,"requires":2872},">=3.0.0",{},"2026-04-10T12:02:26.794Z",[2875,2878,2882,2886,2890,2894,2898,2901,2904,2907,2910,2914,2917,2920,2923,2926,2929,2932,2935,2938,2941,2944,2948,2951,2954,2957,2960,2963,2966,2969],{"id":2876,"username":2868,"contributions":2877},904724,197,{"id":2879,"username":2880,"contributions":2881},28706372,"danielroe",16,{"id":2883,"username":2884,"contributions":2885},50090595,"ahmedrangel",9,{"id":2887,"username":2888,"contributions":2889},12988935,"Gerbuuun",8,{"id":2891,"username":2892,"contributions":2893},45267552,"Barbapapazes",7,{"id":2895,"username":2896,"contributions":2897},13056429,"sandros94",3,{"id":2899,"username":2900,"contributions":2897},16264115,"Yizack",{"id":2902,"username":2903,"contributions":2897},967369,"acidjazz",{"id":2905,"username":2906,"contributions":2897},15887916,"blumgart",{"id":2908,"username":2909,"contributions":2897},67746033,"justserdar",{"id":2911,"username":2912,"contributions":2913},10636392,"brianacdev",2,{"id":2915,"username":2916,"contributions":2913},67898185,"larsrickert",{"id":2918,"username":2919,"contributions":2913},40021217,"kingyue737",{"id":2921,"username":2922,"contributions":2913},59120414,"cth-latest",{"id":2924,"username":2925,"contributions":2913},19751938,"noook",{"id":2927,"username":2928,"contributions":2913},1409645,"mariosant",{"id":2930,"username":2931,"contributions":2913},24661232,"Jorgagu",{"id":2933,"username":2934,"contributions":2913},5326365,"harlan-zw",{"id":2936,"username":2937,"contributions":2913},61092270,"stranavad",{"id":2939,"username":2940,"contributions":2913},1592441,"mendrinos",{"id":2942,"username":2943,"contributions":2913},376963,"bisand",{"id":2945,"username":2946,"contributions":2947},18315316,"Syrex-o",1,{"id":2949,"username":2950,"contributions":2947},3109921,"silvio-e",{"id":2952,"username":2953,"contributions":2947},18753964,"sifferhans",{"id":2955,"username":2956,"contributions":2947},17186421,"samulefevre",{"id":2958,"username":2959,"contributions":2947},15785987,"samydoesit",{"id":2961,"username":2962,"contributions":2947},31662219,"rudokemper",{"id":2964,"username":2965,"contributions":2947},29805551,"RobertHaba",{"id":2967,"username":2968,"contributions":2947},1231105,"SteinRobert",{"id":2970,"username":2971,"contributions":2947},5472296,"robert-hoffmann",{"version":2973,"downloads":2974,"stars":2975,"watchers":2975,"forks":2976,"defaultBranch":2977,"publishedAt":2978,"createdAt":2979},"0.5.29",223861,1556,185,"main",1771335673386,1699356484873,{"data":2981,"body":2983,"toc":13972},{"title":2982,"description":2861},"Nuxt Auth Utils",{"type":2984,"children":2985},"root",[2986,2993,3039,3043,3077,3083,3182,3196,3202,3214,3226,3237,3243,3259,3301,3323,3358,3370,3378,3384,3389,3396,3938,3947,4450,4472,4478,4491,4497,4874,4894,5073,5085,5091,5096,5116,5137,5164,5342,5347,5368,5376,5383,5626,5639,5645,5656,6061,6073,6086,6091,6121,6247,6260,6371,6382,6538,6544,6549,6554,6562,6596,6609,6688,6693,6698,6703,6710,6742,6754,6833,6838,6843,6857,7177,7317,7347,8275,8310,9147,9181,9694,9699,10538,10556,10562,10591,10602,10608,10613,10895,10901,10920,11146,11170,11175,11195,11200,11208,11227,11315,11341,11347,11364,11451,11469,11479,11491,11496,11749,11761,11773,12146,12174,12180,12193,12211,12314,12334,12684,12698,13198,13203,13230,13241,13411,13416,13562,13582,13685,13703,13709,13729,13735,13966],{"type":2987,"tag":2988,"props":2989,"children":2990},"element","h1",{"id":2860},[2991],{"type":2992,"value":2982},"text",{"type":2987,"tag":2994,"props":2995,"children":2996},"p",{},[2997,3010,3020,3029],{"type":2987,"tag":2998,"props":2999,"children":3003},"a",{"href":3000,"rel":3001},"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fnuxt-auth-utils",[3002],"nofollow",[3004],{"type":2987,"tag":3005,"props":3006,"children":3009},"img",{"alt":3007,"src":3008},"npm version","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fnuxt-auth-utils\u002Flatest.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":2987,"tag":2998,"props":3011,"children":3014},{"href":3012,"rel":3013},"https:\u002F\u002Fnpm.chart.dev\u002Fnuxt-auth-utils",[3002],[3015],{"type":2987,"tag":3005,"props":3016,"children":3019},{"alt":3017,"src":3018},"npm downloads","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":2987,"tag":2998,"props":3021,"children":3023},{"href":3000,"rel":3022},[3002],[3024],{"type":2987,"tag":3005,"props":3025,"children":3028},{"alt":3026,"src":3027},"License","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":2987,"tag":2998,"props":3030,"children":3033},{"href":3031,"rel":3032},"https:\u002F\u002Fnuxt.com",[3002],[3034],{"type":2987,"tag":3005,"props":3035,"children":3038},{"alt":3036,"src":3037},"Nuxt","https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNuxt-020420?logo=nuxt.js",[],{"type":2987,"tag":2994,"props":3040,"children":3041},{},[3042],{"type":2992,"value":2858},{"type":2987,"tag":3044,"props":3045,"children":3046},"ul",{},[3047,3057,3067],{"type":2987,"tag":3048,"props":3049,"children":3050},"li",{},[3051],{"type":2987,"tag":2998,"props":3052,"children":3054},{"href":3053},"\u002FCHANGELOG.md",[3055],{"type":2992,"value":3056},"Release Notes",{"type":2987,"tag":3048,"props":3058,"children":3059},{},[3060],{"type":2987,"tag":2998,"props":3061,"children":3064},{"href":3062,"rel":3063},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fatidone",[3002],[3065],{"type":2992,"value":3066},"Demo with OAuth",{"type":2987,"tag":3048,"props":3068,"children":3069},{},[3070],{"type":2987,"tag":2998,"props":3071,"children":3074},{"href":3072,"rel":3073},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Ftodo-passkeys",[3002],[3075],{"type":2992,"value":3076},"Demo with Passkeys",{"type":2987,"tag":3078,"props":3079,"children":3081},"h2",{"id":3080},"features",[3082],{"type":2992,"value":395},{"type":2987,"tag":3044,"props":3084,"children":3085},{},[3086,3097,3106,3115,3124,3140,3149,3164,3173],{"type":2987,"tag":3048,"props":3087,"children":3088},{},[3089,3095],{"type":2987,"tag":2998,"props":3090,"children":3092},{"href":3091},"#hybrid-rendering",[3093],{"type":2992,"value":3094},"Hybrid Rendering",{"type":2992,"value":3096}," support (SSR \u002F CSR \u002F SWR \u002F Prerendering)",{"type":2987,"tag":3048,"props":3098,"children":3099},{},[3100],{"type":2987,"tag":2998,"props":3101,"children":3103},{"href":3102},"#supported-oauth-providers",[3104],{"type":2992,"value":3105},"40+ OAuth Providers",{"type":2987,"tag":3048,"props":3107,"children":3108},{},[3109],{"type":2987,"tag":2998,"props":3110,"children":3112},{"href":3111},"#password-hashing",[3113],{"type":2992,"value":3114},"Password Hashing",{"type":2987,"tag":3048,"props":3116,"children":3117},{},[3118],{"type":2987,"tag":2998,"props":3119,"children":3121},{"href":3120},"#webauthn-passkey",[3122],{"type":2992,"value":3123},"WebAuthn (passkey)",{"type":2987,"tag":3048,"props":3125,"children":3126},{},[3127],{"type":2987,"tag":2998,"props":3128,"children":3130},{"href":3129},"#vue-composable",[3131,3138],{"type":2987,"tag":3132,"props":3133,"children":3135},"code",{"className":3134},[],[3136],{"type":2992,"value":3137},"useUserSession()",{"type":2992,"value":3139}," Vue composable",{"type":2987,"tag":3048,"props":3141,"children":3142},{},[3143],{"type":2987,"tag":2998,"props":3144,"children":3146},{"href":3145},"#server-utils",[3147],{"type":2992,"value":3148},"Tree-shakable server utils",{"type":2987,"tag":3048,"props":3150,"children":3151},{},[3152],{"type":2987,"tag":2998,"props":3153,"children":3155},{"href":3154},"#authstate-component",[3156,3162],{"type":2987,"tag":3132,"props":3157,"children":3159},{"className":3158},[],[3160],{"type":2992,"value":3161},"\u003CAuthState>",{"type":2992,"value":3163}," component",{"type":2987,"tag":3048,"props":3165,"children":3166},{},[3167],{"type":2987,"tag":2998,"props":3168,"children":3170},{"href":3169},"#extend-session",[3171],{"type":2992,"value":3172},"Extendable with hooks",{"type":2987,"tag":3048,"props":3174,"children":3175},{},[3176],{"type":2987,"tag":2998,"props":3177,"children":3179},{"href":3178},"#websocket-support",[3180],{"type":2992,"value":3181},"WebSocket support",{"type":2987,"tag":2994,"props":3183,"children":3184},{},[3185,3187,3194],{"type":2992,"value":3186},"It has few dependencies (only from ",{"type":2987,"tag":2998,"props":3188,"children":3191},{"href":3189,"rel":3190},"https:\u002F\u002Fgithub.com\u002Funjs",[3002],[3192],{"type":2992,"value":3193},"UnJS",{"type":2992,"value":3195},"), run on multiple JS environments (Node, Deno, Workers) and is fully typed with TypeScript.",{"type":2987,"tag":3078,"props":3197,"children":3199},{"id":3198},"requirements",[3200],{"type":2992,"value":3201},"Requirements",{"type":2987,"tag":2994,"props":3203,"children":3204},{},[3205,3207,3212],{"type":2992,"value":3206},"This module only works with a Nuxt server running as it uses server API routes (",{"type":2987,"tag":3132,"props":3208,"children":3210},{"className":3209},[],[3211],{"type":2992,"value":761},{"type":2992,"value":3213},").",{"type":2987,"tag":2994,"props":3215,"children":3216},{},[3217,3219,3224],{"type":2992,"value":3218},"This means that you cannot use this module with ",{"type":2987,"tag":3132,"props":3220,"children":3222},{"className":3221},[],[3223],{"type":2992,"value":781},{"type":2992,"value":3225},".",{"type":2987,"tag":2994,"props":3227,"children":3228},{},[3229,3231,3235],{"type":2992,"value":3230},"You can anyway use ",{"type":2987,"tag":2998,"props":3232,"children":3233},{"href":3091},[3234],{"type":2992,"value":3094},{"type":2992,"value":3236}," to pre-render pages of your application or disable server-side rendering completely.",{"type":2987,"tag":3078,"props":3238,"children":3240},{"id":3239},"quick-setup",[3241],{"type":2992,"value":3242},"Quick Setup",{"type":2987,"tag":3244,"props":3245,"children":3246},"ol",{},[3247],{"type":2987,"tag":3048,"props":3248,"children":3249},{},[3250,3252,3257],{"type":2992,"value":3251},"Add ",{"type":2987,"tag":3132,"props":3253,"children":3255},{"className":3254},[],[3256],{"type":2992,"value":2860},{"type":2992,"value":3258}," in your Nuxt project",{"type":2987,"tag":3260,"props":3261,"children":3265},"pre",{"className":3262,"code":3263,"language":3264,"meta":2861,"style":2861},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","npx nuxi@latest module add auth-utils\n","bash",[3266],{"type":2987,"tag":3132,"props":3267,"children":3268},{"__ignoreMap":2861},[3269],{"type":2987,"tag":3270,"props":3271,"children":3273},"span",{"class":3272,"line":2947},"line",[3274,3280,3286,3291,3296],{"type":2987,"tag":3270,"props":3275,"children":3277},{"style":3276},"--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B",[3278],{"type":2992,"value":3279},"npx",{"type":2987,"tag":3270,"props":3281,"children":3283},{"style":3282},"--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D",[3284],{"type":2992,"value":3285}," nuxi@latest",{"type":2987,"tag":3270,"props":3287,"children":3288},{"style":3282},[3289],{"type":2992,"value":3290}," module",{"type":2987,"tag":3270,"props":3292,"children":3293},{"style":3282},[3294],{"type":2992,"value":3295}," add",{"type":2987,"tag":3270,"props":3297,"children":3298},{"style":3282},[3299],{"type":2992,"value":3300}," auth-utils\n",{"type":2987,"tag":3244,"props":3302,"children":3303},{"start":2913},[3304],{"type":2987,"tag":3048,"props":3305,"children":3306},{},[3307,3309,3315,3317,3322],{"type":2992,"value":3308},"Add a ",{"type":2987,"tag":3132,"props":3310,"children":3312},{"className":3311},[],[3313],{"type":2992,"value":3314},"NUXT_SESSION_PASSWORD",{"type":2992,"value":3316}," env variable with at least 32 characters in the ",{"type":2987,"tag":3132,"props":3318,"children":3320},{"className":3319},[],[3321],{"type":2992,"value":200},{"type":2992,"value":3225},{"type":2987,"tag":3260,"props":3324,"children":3326},{"className":3262,"code":3325,"language":3264,"meta":2861,"style":2861},"# .env\nNUXT_SESSION_PASSWORD=password-with-at-least-32-characters\n",[3327],{"type":2987,"tag":3132,"props":3328,"children":3329},{"__ignoreMap":2861},[3330,3339],{"type":2987,"tag":3270,"props":3331,"children":3332},{"class":3272,"line":2947},[3333],{"type":2987,"tag":3270,"props":3334,"children":3336},{"style":3335},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[3337],{"type":2992,"value":3338},"# .env\n",{"type":2987,"tag":3270,"props":3340,"children":3341},{"class":3272,"line":2913},[3342,3347,3353],{"type":2987,"tag":3270,"props":3343,"children":3345},{"style":3344},"--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8",[3346],{"type":2992,"value":3314},{"type":2987,"tag":3270,"props":3348,"children":3350},{"style":3349},"--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF",[3351],{"type":2992,"value":3352},"=",{"type":2987,"tag":3270,"props":3354,"children":3355},{"style":3282},[3356],{"type":2992,"value":3357},"password-with-at-least-32-characters\n",{"type":2987,"tag":2994,"props":3359,"children":3360},{},[3361,3363,3368],{"type":2992,"value":3362},"Nuxt Auth Utils generates one for you when running Nuxt in development the first time if no ",{"type":2987,"tag":3132,"props":3364,"children":3366},{"className":3365},[],[3367],{"type":2992,"value":3314},{"type":2992,"value":3369}," is set.",{"type":2987,"tag":3244,"props":3371,"children":3372},{"start":2897},[3373],{"type":2987,"tag":3048,"props":3374,"children":3375},{},[3376],{"type":2992,"value":3377},"That's it! You can now add authentication to your Nuxt app ✨",{"type":2987,"tag":3078,"props":3379,"children":3381},{"id":3380},"vue-composable",[3382],{"type":2992,"value":3383},"Vue Composable",{"type":2987,"tag":2994,"props":3385,"children":3386},{},[3387],{"type":2992,"value":3388},"Nuxt Auth Utils automatically adds some plugins to fetch the current user session to let you access it from your Vue components.",{"type":2987,"tag":3390,"props":3391,"children":3393},"h3",{"id":3392},"user-session",[3394],{"type":2992,"value":3395},"User Session",{"type":2987,"tag":3260,"props":3397,"children":3401},{"className":3398,"code":3399,"language":3400,"meta":2861,"style":2861},"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",[3402],{"type":2987,"tag":3132,"props":3403,"children":3404},{"__ignoreMap":2861},[3405,3430,3515,3531,3540,3557,3598,3632,3664,3719,3736,3757,3790,3845,3854,3907,3922],{"type":2987,"tag":3270,"props":3406,"children":3407},{"class":3272,"line":2947},[3408,3413,3419,3425],{"type":2987,"tag":3270,"props":3409,"children":3410},{"style":3349},[3411],{"type":2992,"value":3412},"\u003C",{"type":2987,"tag":3270,"props":3414,"children":3416},{"style":3415},"--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178",[3417],{"type":2992,"value":3418},"script",{"type":2987,"tag":3270,"props":3420,"children":3422},{"style":3421},"--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA",[3423],{"type":2992,"value":3424}," setup",{"type":2987,"tag":3270,"props":3426,"children":3427},{"style":3349},[3428],{"type":2992,"value":3429},">\n",{"type":2987,"tag":3270,"props":3431,"children":3432},{"class":3272,"line":2913},[3433,3438,3443,3448,3453,3458,3462,3467,3471,3476,3480,3485,3489,3494,3499,3504,3510],{"type":2987,"tag":3270,"props":3434,"children":3435},{"style":3421},[3436],{"type":2992,"value":3437},"const",{"type":2987,"tag":3270,"props":3439,"children":3440},{"style":3349},[3441],{"type":2992,"value":3442}," {",{"type":2987,"tag":3270,"props":3444,"children":3445},{"style":3344},[3446],{"type":2992,"value":3447}," loggedIn",{"type":2987,"tag":3270,"props":3449,"children":3450},{"style":3349},[3451],{"type":2992,"value":3452},",",{"type":2987,"tag":3270,"props":3454,"children":3455},{"style":3344},[3456],{"type":2992,"value":3457}," user",{"type":2987,"tag":3270,"props":3459,"children":3460},{"style":3349},[3461],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":3463,"children":3464},{"style":3344},[3465],{"type":2992,"value":3466}," session",{"type":2987,"tag":3270,"props":3468,"children":3469},{"style":3349},[3470],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":3472,"children":3473},{"style":3344},[3474],{"type":2992,"value":3475}," fetch",{"type":2987,"tag":3270,"props":3477,"children":3478},{"style":3349},[3479],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":3481,"children":3482},{"style":3344},[3483],{"type":2992,"value":3484}," clear",{"type":2987,"tag":3270,"props":3486,"children":3487},{"style":3349},[3488],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":3490,"children":3491},{"style":3344},[3492],{"type":2992,"value":3493}," openInPopup ",{"type":2987,"tag":3270,"props":3495,"children":3496},{"style":3349},[3497],{"type":2992,"value":3498},"}",{"type":2987,"tag":3270,"props":3500,"children":3501},{"style":3349},[3502],{"type":2992,"value":3503}," =",{"type":2987,"tag":3270,"props":3505,"children":3507},{"style":3506},"--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF",[3508],{"type":2992,"value":3509}," useUserSession",{"type":2987,"tag":3270,"props":3511,"children":3512},{"style":3344},[3513],{"type":2992,"value":3514},"()\n",{"type":2987,"tag":3270,"props":3516,"children":3517},{"class":3272,"line":2897},[3518,3523,3527],{"type":2987,"tag":3270,"props":3519,"children":3520},{"style":3349},[3521],{"type":2992,"value":3522},"\u003C\u002F",{"type":2987,"tag":3270,"props":3524,"children":3525},{"style":3415},[3526],{"type":2992,"value":3418},{"type":2987,"tag":3270,"props":3528,"children":3529},{"style":3349},[3530],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":3532,"children":3534},{"class":3272,"line":3533},4,[3535],{"type":2987,"tag":3270,"props":3536,"children":3537},{"emptyLinePlaceholder":1196},[3538],{"type":2992,"value":3539},"\n",{"type":2987,"tag":3270,"props":3541,"children":3543},{"class":3272,"line":3542},5,[3544,3548,3553],{"type":2987,"tag":3270,"props":3545,"children":3546},{"style":3349},[3547],{"type":2992,"value":3412},{"type":2987,"tag":3270,"props":3549,"children":3550},{"style":3415},[3551],{"type":2992,"value":3552},"template",{"type":2987,"tag":3270,"props":3554,"children":3555},{"style":3349},[3556],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":3558,"children":3560},{"class":3272,"line":3559},6,[3561,3566,3571,3576,3580,3585,3590,3594],{"type":2987,"tag":3270,"props":3562,"children":3563},{"style":3349},[3564],{"type":2992,"value":3565},"  \u003C",{"type":2987,"tag":3270,"props":3567,"children":3568},{"style":3415},[3569],{"type":2992,"value":3570},"div",{"type":2987,"tag":3270,"props":3572,"children":3573},{"style":3421},[3574],{"type":2992,"value":3575}," v-if",{"type":2987,"tag":3270,"props":3577,"children":3578},{"style":3349},[3579],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":3581,"children":3582},{"style":3349},[3583],{"type":2992,"value":3584},"\"",{"type":2987,"tag":3270,"props":3586,"children":3587},{"style":3282},[3588],{"type":2992,"value":3589},"loggedIn",{"type":2987,"tag":3270,"props":3591,"children":3592},{"style":3349},[3593],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":3595,"children":3596},{"style":3349},[3597],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":3599,"children":3600},{"class":3272,"line":2893},[3601,3606,3610,3615,3620,3624,3628],{"type":2987,"tag":3270,"props":3602,"children":3603},{"style":3349},[3604],{"type":2992,"value":3605},"    \u003C",{"type":2987,"tag":3270,"props":3607,"children":3608},{"style":3415},[3609],{"type":2992,"value":2988},{"type":2987,"tag":3270,"props":3611,"children":3612},{"style":3349},[3613],{"type":2992,"value":3614},">",{"type":2987,"tag":3270,"props":3616,"children":3617},{"style":3344},[3618],{"type":2992,"value":3619},"Welcome {{ user.login }}!",{"type":2987,"tag":3270,"props":3621,"children":3622},{"style":3349},[3623],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":3625,"children":3626},{"style":3415},[3627],{"type":2992,"value":2988},{"type":2987,"tag":3270,"props":3629,"children":3630},{"style":3349},[3631],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":3633,"children":3634},{"class":3272,"line":2889},[3635,3639,3643,3647,3652,3656,3660],{"type":2987,"tag":3270,"props":3636,"children":3637},{"style":3349},[3638],{"type":2992,"value":3605},{"type":2987,"tag":3270,"props":3640,"children":3641},{"style":3415},[3642],{"type":2992,"value":2994},{"type":2987,"tag":3270,"props":3644,"children":3645},{"style":3349},[3646],{"type":2992,"value":3614},{"type":2987,"tag":3270,"props":3648,"children":3649},{"style":3344},[3650],{"type":2992,"value":3651},"Logged in since {{ session.loggedInAt }}",{"type":2987,"tag":3270,"props":3653,"children":3654},{"style":3349},[3655],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":3657,"children":3658},{"style":3415},[3659],{"type":2992,"value":2994},{"type":2987,"tag":3270,"props":3661,"children":3662},{"style":3349},[3663],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":3665,"children":3666},{"class":3272,"line":2885},[3667,3671,3676,3681,3685,3689,3694,3698,3702,3707,3711,3715],{"type":2987,"tag":3270,"props":3668,"children":3669},{"style":3349},[3670],{"type":2992,"value":3605},{"type":2987,"tag":3270,"props":3672,"children":3673},{"style":3415},[3674],{"type":2992,"value":3675},"button",{"type":2987,"tag":3270,"props":3677,"children":3678},{"style":3421},[3679],{"type":2992,"value":3680}," @click",{"type":2987,"tag":3270,"props":3682,"children":3683},{"style":3349},[3684],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":3686,"children":3687},{"style":3349},[3688],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":3690,"children":3691},{"style":3282},[3692],{"type":2992,"value":3693},"clear",{"type":2987,"tag":3270,"props":3695,"children":3696},{"style":3349},[3697],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":3699,"children":3700},{"style":3349},[3701],{"type":2992,"value":3614},{"type":2987,"tag":3270,"props":3703,"children":3704},{"style":3344},[3705],{"type":2992,"value":3706},"Logout",{"type":2987,"tag":3270,"props":3708,"children":3709},{"style":3349},[3710],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":3712,"children":3713},{"style":3415},[3714],{"type":2992,"value":3675},{"type":2987,"tag":3270,"props":3716,"children":3717},{"style":3349},[3718],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":3720,"children":3722},{"class":3272,"line":3721},10,[3723,3728,3732],{"type":2987,"tag":3270,"props":3724,"children":3725},{"style":3349},[3726],{"type":2992,"value":3727},"  \u003C\u002F",{"type":2987,"tag":3270,"props":3729,"children":3730},{"style":3415},[3731],{"type":2992,"value":3570},{"type":2987,"tag":3270,"props":3733,"children":3734},{"style":3349},[3735],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":3737,"children":3739},{"class":3272,"line":3738},11,[3740,3744,3748,3753],{"type":2987,"tag":3270,"props":3741,"children":3742},{"style":3349},[3743],{"type":2992,"value":3565},{"type":2987,"tag":3270,"props":3745,"children":3746},{"style":3415},[3747],{"type":2992,"value":3570},{"type":2987,"tag":3270,"props":3749,"children":3750},{"style":3421},[3751],{"type":2992,"value":3752}," v-else",{"type":2987,"tag":3270,"props":3754,"children":3755},{"style":3349},[3756],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":3758,"children":3760},{"class":3272,"line":3759},12,[3761,3765,3769,3773,3778,3782,3786],{"type":2987,"tag":3270,"props":3762,"children":3763},{"style":3349},[3764],{"type":2992,"value":3605},{"type":2987,"tag":3270,"props":3766,"children":3767},{"style":3415},[3768],{"type":2992,"value":2988},{"type":2987,"tag":3270,"props":3770,"children":3771},{"style":3349},[3772],{"type":2992,"value":3614},{"type":2987,"tag":3270,"props":3774,"children":3775},{"style":3344},[3776],{"type":2992,"value":3777},"Not logged in",{"type":2987,"tag":3270,"props":3779,"children":3780},{"style":3349},[3781],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":3783,"children":3784},{"style":3415},[3785],{"type":2992,"value":2988},{"type":2987,"tag":3270,"props":3787,"children":3788},{"style":3349},[3789],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":3791,"children":3793},{"class":3272,"line":3792},13,[3794,3798,3802,3807,3811,3815,3820,3824,3828,3833,3837,3841],{"type":2987,"tag":3270,"props":3795,"children":3796},{"style":3349},[3797],{"type":2992,"value":3605},{"type":2987,"tag":3270,"props":3799,"children":3800},{"style":3415},[3801],{"type":2992,"value":2998},{"type":2987,"tag":3270,"props":3803,"children":3804},{"style":3421},[3805],{"type":2992,"value":3806}," href",{"type":2987,"tag":3270,"props":3808,"children":3809},{"style":3349},[3810],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":3812,"children":3813},{"style":3349},[3814],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":3816,"children":3817},{"style":3282},[3818],{"type":2992,"value":3819},"\u002Fauth\u002Fgithub",{"type":2987,"tag":3270,"props":3821,"children":3822},{"style":3349},[3823],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":3825,"children":3826},{"style":3349},[3827],{"type":2992,"value":3614},{"type":2987,"tag":3270,"props":3829,"children":3830},{"style":3344},[3831],{"type":2992,"value":3832},"Login with GitHub",{"type":2987,"tag":3270,"props":3834,"children":3835},{"style":3349},[3836],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":3838,"children":3839},{"style":3415},[3840],{"type":2992,"value":2998},{"type":2987,"tag":3270,"props":3842,"children":3843},{"style":3349},[3844],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":3846,"children":3848},{"class":3272,"line":3847},14,[3849],{"type":2987,"tag":3270,"props":3850,"children":3851},{"style":3335},[3852],{"type":2992,"value":3853},"    \u003C!-- or open the OAuth route in a popup -->\n",{"type":2987,"tag":3270,"props":3855,"children":3857},{"class":3272,"line":3856},15,[3858,3862,3866,3870,3874,3878,3883,3887,3891,3895,3899,3903],{"type":2987,"tag":3270,"props":3859,"children":3860},{"style":3349},[3861],{"type":2992,"value":3605},{"type":2987,"tag":3270,"props":3863,"children":3864},{"style":3415},[3865],{"type":2992,"value":3675},{"type":2987,"tag":3270,"props":3867,"children":3868},{"style":3421},[3869],{"type":2992,"value":3680},{"type":2987,"tag":3270,"props":3871,"children":3872},{"style":3349},[3873],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":3875,"children":3876},{"style":3349},[3877],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":3879,"children":3880},{"style":3282},[3881],{"type":2992,"value":3882},"openInPopup('\u002Fauth\u002Fgithub')",{"type":2987,"tag":3270,"props":3884,"children":3885},{"style":3349},[3886],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":3888,"children":3889},{"style":3349},[3890],{"type":2992,"value":3614},{"type":2987,"tag":3270,"props":3892,"children":3893},{"style":3344},[3894],{"type":2992,"value":3832},{"type":2987,"tag":3270,"props":3896,"children":3897},{"style":3349},[3898],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":3900,"children":3901},{"style":3415},[3902],{"type":2992,"value":3675},{"type":2987,"tag":3270,"props":3904,"children":3905},{"style":3349},[3906],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":3908,"children":3909},{"class":3272,"line":2881},[3910,3914,3918],{"type":2987,"tag":3270,"props":3911,"children":3912},{"style":3349},[3913],{"type":2992,"value":3727},{"type":2987,"tag":3270,"props":3915,"children":3916},{"style":3415},[3917],{"type":2992,"value":3570},{"type":2987,"tag":3270,"props":3919,"children":3920},{"style":3349},[3921],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":3923,"children":3925},{"class":3272,"line":3924},17,[3926,3930,3934],{"type":2987,"tag":3270,"props":3927,"children":3928},{"style":3349},[3929],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":3931,"children":3932},{"style":3415},[3933],{"type":2992,"value":3552},{"type":2987,"tag":3270,"props":3935,"children":3936},{"style":3349},[3937],{"type":2992,"value":3429},{"type":2987,"tag":2994,"props":3939,"children":3940},{},[3941],{"type":2987,"tag":3942,"props":3943,"children":3944},"strong",{},[3945],{"type":2992,"value":3946},"TypeScript Signature:",{"type":2987,"tag":3260,"props":3948,"children":3952},{"className":3949,"code":3950,"language":3951,"meta":2861,"style":2861},"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",[3953],{"type":2987,"tag":3132,"props":3954,"children":3955},{"__ignoreMap":2861},[3956,3974,3982,3990,3998,4029,4036,4044,4051,4079,4086,4094,4101,4140,4147,4155,4162,4192,4200,4209,4217,4258,4266,4275,4283,4320,4328,4337,4345,4441],{"type":2987,"tag":3270,"props":3957,"children":3958},{"class":3272,"line":2947},[3959,3964,3969],{"type":2987,"tag":3270,"props":3960,"children":3961},{"style":3421},[3962],{"type":2992,"value":3963},"interface",{"type":2987,"tag":3270,"props":3965,"children":3966},{"style":3276},[3967],{"type":2992,"value":3968}," UserSessionComposable",{"type":2987,"tag":3270,"props":3970,"children":3971},{"style":3349},[3972],{"type":2992,"value":3973}," {\n",{"type":2987,"tag":3270,"props":3975,"children":3976},{"class":3272,"line":2913},[3977],{"type":2987,"tag":3270,"props":3978,"children":3979},{"style":3335},[3980],{"type":2992,"value":3981},"  \u002F**\n",{"type":2987,"tag":3270,"props":3983,"children":3984},{"class":3272,"line":2897},[3985],{"type":2987,"tag":3270,"props":3986,"children":3987},{"style":3335},[3988],{"type":2992,"value":3989},"   * Computed indicating if the auth session is ready\n",{"type":2987,"tag":3270,"props":3991,"children":3992},{"class":3272,"line":3533},[3993],{"type":2987,"tag":3270,"props":3994,"children":3995},{"style":3335},[3996],{"type":2992,"value":3997},"   *\u002F\n",{"type":2987,"tag":3270,"props":3999,"children":4000},{"class":3272,"line":3542},[4001,4006,4011,4016,4020,4025],{"type":2987,"tag":3270,"props":4002,"children":4003},{"style":3415},[4004],{"type":2992,"value":4005},"  ready",{"type":2987,"tag":3270,"props":4007,"children":4008},{"style":3349},[4009],{"type":2992,"value":4010},":",{"type":2987,"tag":3270,"props":4012,"children":4013},{"style":3276},[4014],{"type":2992,"value":4015}," ComputedRef",{"type":2987,"tag":3270,"props":4017,"children":4018},{"style":3349},[4019],{"type":2992,"value":3412},{"type":2987,"tag":3270,"props":4021,"children":4022},{"style":3276},[4023],{"type":2992,"value":4024},"boolean",{"type":2987,"tag":3270,"props":4026,"children":4027},{"style":3349},[4028],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":4030,"children":4031},{"class":3272,"line":3559},[4032],{"type":2987,"tag":3270,"props":4033,"children":4034},{"style":3335},[4035],{"type":2992,"value":3981},{"type":2987,"tag":3270,"props":4037,"children":4038},{"class":3272,"line":2893},[4039],{"type":2987,"tag":3270,"props":4040,"children":4041},{"style":3335},[4042],{"type":2992,"value":4043},"   * Computed indicating if the user is logged in.\n",{"type":2987,"tag":3270,"props":4045,"children":4046},{"class":3272,"line":2889},[4047],{"type":2987,"tag":3270,"props":4048,"children":4049},{"style":3335},[4050],{"type":2992,"value":3997},{"type":2987,"tag":3270,"props":4052,"children":4053},{"class":3272,"line":2885},[4054,4059,4063,4067,4071,4075],{"type":2987,"tag":3270,"props":4055,"children":4056},{"style":3415},[4057],{"type":2992,"value":4058},"  loggedIn",{"type":2987,"tag":3270,"props":4060,"children":4061},{"style":3349},[4062],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":4064,"children":4065},{"style":3276},[4066],{"type":2992,"value":4015},{"type":2987,"tag":3270,"props":4068,"children":4069},{"style":3349},[4070],{"type":2992,"value":3412},{"type":2987,"tag":3270,"props":4072,"children":4073},{"style":3276},[4074],{"type":2992,"value":4024},{"type":2987,"tag":3270,"props":4076,"children":4077},{"style":3349},[4078],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":4080,"children":4081},{"class":3272,"line":3721},[4082],{"type":2987,"tag":3270,"props":4083,"children":4084},{"style":3335},[4085],{"type":2992,"value":3981},{"type":2987,"tag":3270,"props":4087,"children":4088},{"class":3272,"line":3738},[4089],{"type":2987,"tag":3270,"props":4090,"children":4091},{"style":3335},[4092],{"type":2992,"value":4093},"   * The user object if logged in, null otherwise.\n",{"type":2987,"tag":3270,"props":4095,"children":4096},{"class":3272,"line":3759},[4097],{"type":2987,"tag":3270,"props":4098,"children":4099},{"style":3335},[4100],{"type":2992,"value":3997},{"type":2987,"tag":3270,"props":4102,"children":4103},{"class":3272,"line":3792},[4104,4109,4113,4117,4121,4126,4131,4136],{"type":2987,"tag":3270,"props":4105,"children":4106},{"style":3415},[4107],{"type":2992,"value":4108},"  user",{"type":2987,"tag":3270,"props":4110,"children":4111},{"style":3349},[4112],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":4114,"children":4115},{"style":3276},[4116],{"type":2992,"value":4015},{"type":2987,"tag":3270,"props":4118,"children":4119},{"style":3349},[4120],{"type":2992,"value":3412},{"type":2987,"tag":3270,"props":4122,"children":4123},{"style":3276},[4124],{"type":2992,"value":4125},"User",{"type":2987,"tag":3270,"props":4127,"children":4128},{"style":3349},[4129],{"type":2992,"value":4130}," |",{"type":2987,"tag":3270,"props":4132,"children":4133},{"style":3276},[4134],{"type":2992,"value":4135}," null",{"type":2987,"tag":3270,"props":4137,"children":4138},{"style":3349},[4139],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":4141,"children":4142},{"class":3272,"line":3847},[4143],{"type":2987,"tag":3270,"props":4144,"children":4145},{"style":3335},[4146],{"type":2992,"value":3981},{"type":2987,"tag":3270,"props":4148,"children":4149},{"class":3272,"line":3856},[4150],{"type":2987,"tag":3270,"props":4151,"children":4152},{"style":3335},[4153],{"type":2992,"value":4154},"   * The session object.\n",{"type":2987,"tag":3270,"props":4156,"children":4157},{"class":3272,"line":2881},[4158],{"type":2987,"tag":3270,"props":4159,"children":4160},{"style":3335},[4161],{"type":2992,"value":3997},{"type":2987,"tag":3270,"props":4163,"children":4164},{"class":3272,"line":3924},[4165,4170,4174,4179,4183,4188],{"type":2987,"tag":3270,"props":4166,"children":4167},{"style":3415},[4168],{"type":2992,"value":4169},"  session",{"type":2987,"tag":3270,"props":4171,"children":4172},{"style":3349},[4173],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":4175,"children":4176},{"style":3276},[4177],{"type":2992,"value":4178}," Ref",{"type":2987,"tag":3270,"props":4180,"children":4181},{"style":3349},[4182],{"type":2992,"value":3412},{"type":2987,"tag":3270,"props":4184,"children":4185},{"style":3276},[4186],{"type":2992,"value":4187},"UserSession",{"type":2987,"tag":3270,"props":4189,"children":4190},{"style":3349},[4191],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":4193,"children":4195},{"class":3272,"line":4194},18,[4196],{"type":2987,"tag":3270,"props":4197,"children":4198},{"style":3335},[4199],{"type":2992,"value":3981},{"type":2987,"tag":3270,"props":4201,"children":4203},{"class":3272,"line":4202},19,[4204],{"type":2987,"tag":3270,"props":4205,"children":4206},{"style":3335},[4207],{"type":2992,"value":4208},"   * Fetch the user session from the server.\n",{"type":2987,"tag":3270,"props":4210,"children":4212},{"class":3272,"line":4211},20,[4213],{"type":2987,"tag":3270,"props":4214,"children":4215},{"style":3335},[4216],{"type":2992,"value":3997},{"type":2987,"tag":3270,"props":4218,"children":4220},{"class":3272,"line":4219},21,[4221,4226,4230,4235,4240,4245,4249,4254],{"type":2987,"tag":3270,"props":4222,"children":4223},{"style":3415},[4224],{"type":2992,"value":4225},"  fetch",{"type":2987,"tag":3270,"props":4227,"children":4228},{"style":3349},[4229],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":4231,"children":4232},{"style":3349},[4233],{"type":2992,"value":4234}," ()",{"type":2987,"tag":3270,"props":4236,"children":4237},{"style":3421},[4238],{"type":2992,"value":4239}," =>",{"type":2987,"tag":3270,"props":4241,"children":4242},{"style":3276},[4243],{"type":2992,"value":4244}," Promise",{"type":2987,"tag":3270,"props":4246,"children":4247},{"style":3349},[4248],{"type":2992,"value":3412},{"type":2987,"tag":3270,"props":4250,"children":4251},{"style":3276},[4252],{"type":2992,"value":4253},"void",{"type":2987,"tag":3270,"props":4255,"children":4256},{"style":3349},[4257],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":4259,"children":4261},{"class":3272,"line":4260},22,[4262],{"type":2987,"tag":3270,"props":4263,"children":4264},{"style":3335},[4265],{"type":2992,"value":3981},{"type":2987,"tag":3270,"props":4267,"children":4269},{"class":3272,"line":4268},23,[4270],{"type":2987,"tag":3270,"props":4271,"children":4272},{"style":3335},[4273],{"type":2992,"value":4274},"   * Clear the user session and remove the session cookie.\n",{"type":2987,"tag":3270,"props":4276,"children":4278},{"class":3272,"line":4277},24,[4279],{"type":2987,"tag":3270,"props":4280,"children":4281},{"style":3335},[4282],{"type":2992,"value":3997},{"type":2987,"tag":3270,"props":4284,"children":4286},{"class":3272,"line":4285},25,[4287,4292,4296,4300,4304,4308,4312,4316],{"type":2987,"tag":3270,"props":4288,"children":4289},{"style":3415},[4290],{"type":2992,"value":4291},"  clear",{"type":2987,"tag":3270,"props":4293,"children":4294},{"style":3349},[4295],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":4297,"children":4298},{"style":3349},[4299],{"type":2992,"value":4234},{"type":2987,"tag":3270,"props":4301,"children":4302},{"style":3421},[4303],{"type":2992,"value":4239},{"type":2987,"tag":3270,"props":4305,"children":4306},{"style":3276},[4307],{"type":2992,"value":4244},{"type":2987,"tag":3270,"props":4309,"children":4310},{"style":3349},[4311],{"type":2992,"value":3412},{"type":2987,"tag":3270,"props":4313,"children":4314},{"style":3276},[4315],{"type":2992,"value":4253},{"type":2987,"tag":3270,"props":4317,"children":4318},{"style":3349},[4319],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":4321,"children":4323},{"class":3272,"line":4322},26,[4324],{"type":2987,"tag":3270,"props":4325,"children":4326},{"style":3335},[4327],{"type":2992,"value":3981},{"type":2987,"tag":3270,"props":4329,"children":4331},{"class":3272,"line":4330},27,[4332],{"type":2987,"tag":3270,"props":4333,"children":4334},{"style":3335},[4335],{"type":2992,"value":4336},"   * Open the OAuth route in a popup that auto-closes when successful.\n",{"type":2987,"tag":3270,"props":4338,"children":4340},{"class":3272,"line":4339},28,[4341],{"type":2987,"tag":3270,"props":4342,"children":4343},{"style":3335},[4344],{"type":2992,"value":3997},{"type":2987,"tag":3270,"props":4346,"children":4348},{"class":3272,"line":4347},29,[4349,4354,4358,4363,4369,4373,4378,4382,4387,4392,4396,4401,4405,4410,4414,4419,4423,4427,4432,4436],{"type":2987,"tag":3270,"props":4350,"children":4351},{"style":3415},[4352],{"type":2992,"value":4353},"  openInPopup",{"type":2987,"tag":3270,"props":4355,"children":4356},{"style":3349},[4357],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":4359,"children":4360},{"style":3349},[4361],{"type":2992,"value":4362}," (",{"type":2987,"tag":3270,"props":4364,"children":4366},{"style":4365},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[4367],{"type":2992,"value":4368},"route",{"type":2987,"tag":3270,"props":4370,"children":4371},{"style":3349},[4372],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":4374,"children":4375},{"style":3276},[4376],{"type":2992,"value":4377}," string",{"type":2987,"tag":3270,"props":4379,"children":4380},{"style":3349},[4381],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":4383,"children":4384},{"style":4365},[4385],{"type":2992,"value":4386}," size",{"type":2987,"tag":3270,"props":4388,"children":4389},{"style":3349},[4390],{"type":2992,"value":4391},"?:",{"type":2987,"tag":3270,"props":4393,"children":4394},{"style":3349},[4395],{"type":2992,"value":3442},{"type":2987,"tag":3270,"props":4397,"children":4398},{"style":3415},[4399],{"type":2992,"value":4400}," width",{"type":2987,"tag":3270,"props":4402,"children":4403},{"style":3349},[4404],{"type":2992,"value":4391},{"type":2987,"tag":3270,"props":4406,"children":4407},{"style":3276},[4408],{"type":2992,"value":4409}," number",{"type":2987,"tag":3270,"props":4411,"children":4412},{"style":3349},[4413],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":4415,"children":4416},{"style":3415},[4417],{"type":2992,"value":4418}," height",{"type":2987,"tag":3270,"props":4420,"children":4421},{"style":3349},[4422],{"type":2992,"value":4391},{"type":2987,"tag":3270,"props":4424,"children":4425},{"style":3276},[4426],{"type":2992,"value":4409},{"type":2987,"tag":3270,"props":4428,"children":4429},{"style":3349},[4430],{"type":2992,"value":4431}," })",{"type":2987,"tag":3270,"props":4433,"children":4434},{"style":3421},[4435],{"type":2992,"value":4239},{"type":2987,"tag":3270,"props":4437,"children":4438},{"style":3276},[4439],{"type":2992,"value":4440}," void\n",{"type":2987,"tag":3270,"props":4442,"children":4444},{"class":3272,"line":4443},30,[4445],{"type":2987,"tag":3270,"props":4446,"children":4447},{"style":3349},[4448],{"type":2992,"value":4449},"}\n",{"type":2987,"tag":4451,"props":4452,"children":4453},"blockquote",{},[4454],{"type":2987,"tag":2994,"props":4455,"children":4456},{},[4457,4462,4464,4470],{"type":2987,"tag":3270,"props":4458,"children":4459},{},[4460],{"type":2992,"value":4461},"!IMPORTANT",{"type":2992,"value":4463},"\nNuxt Auth Utils uses the ",{"type":2987,"tag":3132,"props":4465,"children":4467},{"className":4466},[],[4468],{"type":2992,"value":4469},"\u002Fapi\u002F_auth\u002Fsession",{"type":2992,"value":4471}," route for session management. Ensure your API route middleware doesn't interfere with this path.",{"type":2987,"tag":3078,"props":4473,"children":4475},{"id":4474},"server-utils",[4476],{"type":2992,"value":4477},"Server Utils",{"type":2987,"tag":2994,"props":4479,"children":4480},{},[4481,4483,4489],{"type":2992,"value":4482},"The following helpers are auto-imported in your ",{"type":2987,"tag":3132,"props":4484,"children":4486},{"className":4485},[],[4487],{"type":2992,"value":4488},"server\u002F",{"type":2992,"value":4490}," directory.",{"type":2987,"tag":3390,"props":4492,"children":4494},{"id":4493},"session-management",[4495],{"type":2992,"value":4496},"Session Management",{"type":2987,"tag":3260,"props":4498,"children":4500},{"className":3949,"code":4499,"language":3951,"meta":2861,"style":2861},"\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",[4501],{"type":2987,"tag":3132,"props":4502,"children":4503},{"__ignoreMap":2861},[4504,4512,4520,4528,4555,4563,4578,4604,4612,4620,4636,4661,4668,4676,4702,4714,4721,4729,4754,4761,4769,4800,4807,4815,4831,4838,4846],{"type":2987,"tag":3270,"props":4505,"children":4506},{"class":3272,"line":2947},[4507],{"type":2987,"tag":3270,"props":4508,"children":4509},{"style":3335},[4510],{"type":2992,"value":4511},"\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":2987,"tag":3270,"props":4513,"children":4514},{"class":3272,"line":2913},[4515],{"type":2987,"tag":3270,"props":4516,"children":4517},{"style":3335},[4518],{"type":2992,"value":4519},"\u002F\u002F Only store the data that allow you to recognize a user, but do not store sensitive data\n",{"type":2987,"tag":3270,"props":4521,"children":4522},{"class":3272,"line":2897},[4523],{"type":2987,"tag":3270,"props":4524,"children":4525},{"style":3335},[4526],{"type":2992,"value":4527},"\u002F\u002F Merges new data with existing data using unjs\u002Fdefu library\n",{"type":2987,"tag":3270,"props":4529,"children":4530},{"class":3272,"line":3533},[4531,4537,4542,4547,4551],{"type":2987,"tag":3270,"props":4532,"children":4534},{"style":4533},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[4535],{"type":2992,"value":4536},"await",{"type":2987,"tag":3270,"props":4538,"children":4539},{"style":3506},[4540],{"type":2992,"value":4541}," setUserSession",{"type":2987,"tag":3270,"props":4543,"children":4544},{"style":3344},[4545],{"type":2992,"value":4546},"(event",{"type":2987,"tag":3270,"props":4548,"children":4549},{"style":3349},[4550],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":4552,"children":4553},{"style":3349},[4554],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":4556,"children":4557},{"class":3272,"line":3542},[4558],{"type":2987,"tag":3270,"props":4559,"children":4560},{"style":3335},[4561],{"type":2992,"value":4562},"  \u002F\u002F User data\n",{"type":2987,"tag":3270,"props":4564,"children":4565},{"class":3272,"line":3559},[4566,4570,4574],{"type":2987,"tag":3270,"props":4567,"children":4568},{"style":3415},[4569],{"type":2992,"value":4108},{"type":2987,"tag":3270,"props":4571,"children":4572},{"style":3349},[4573],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":4575,"children":4576},{"style":3349},[4577],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":4579,"children":4580},{"class":3272,"line":2893},[4581,4586,4590,4595,4599],{"type":2987,"tag":3270,"props":4582,"children":4583},{"style":3415},[4584],{"type":2992,"value":4585},"    login",{"type":2987,"tag":3270,"props":4587,"children":4588},{"style":3349},[4589],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":4591,"children":4592},{"style":3349},[4593],{"type":2992,"value":4594}," '",{"type":2987,"tag":3270,"props":4596,"children":4597},{"style":3282},[4598],{"type":2992,"value":2868},{"type":2987,"tag":3270,"props":4600,"children":4601},{"style":3349},[4602],{"type":2992,"value":4603},"'\n",{"type":2987,"tag":3270,"props":4605,"children":4606},{"class":3272,"line":2889},[4607],{"type":2987,"tag":3270,"props":4608,"children":4609},{"style":3349},[4610],{"type":2992,"value":4611},"  },\n",{"type":2987,"tag":3270,"props":4613,"children":4614},{"class":3272,"line":2885},[4615],{"type":2987,"tag":3270,"props":4616,"children":4617},{"style":3335},[4618],{"type":2992,"value":4619},"  \u002F\u002F Private data accessible only on server\u002F routes\n",{"type":2987,"tag":3270,"props":4621,"children":4622},{"class":3272,"line":3721},[4623,4628,4632],{"type":2987,"tag":3270,"props":4624,"children":4625},{"style":3415},[4626],{"type":2992,"value":4627},"  secure",{"type":2987,"tag":3270,"props":4629,"children":4630},{"style":3349},[4631],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":4633,"children":4634},{"style":3349},[4635],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":4637,"children":4638},{"class":3272,"line":3738},[4639,4644,4648,4652,4657],{"type":2987,"tag":3270,"props":4640,"children":4641},{"style":3415},[4642],{"type":2992,"value":4643},"    apiToken",{"type":2987,"tag":3270,"props":4645,"children":4646},{"style":3349},[4647],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":4649,"children":4650},{"style":3349},[4651],{"type":2992,"value":4594},{"type":2987,"tag":3270,"props":4653,"children":4654},{"style":3282},[4655],{"type":2992,"value":4656},"1234567890",{"type":2987,"tag":3270,"props":4658,"children":4659},{"style":3349},[4660],{"type":2992,"value":4603},{"type":2987,"tag":3270,"props":4662,"children":4663},{"class":3272,"line":3759},[4664],{"type":2987,"tag":3270,"props":4665,"children":4666},{"style":3349},[4667],{"type":2992,"value":4611},{"type":2987,"tag":3270,"props":4669,"children":4670},{"class":3272,"line":3792},[4671],{"type":2987,"tag":3270,"props":4672,"children":4673},{"style":3335},[4674],{"type":2992,"value":4675},"  \u002F\u002F Any extra fields for the session data\n",{"type":2987,"tag":3270,"props":4677,"children":4678},{"class":3272,"line":3847},[4679,4684,4688,4693,4698],{"type":2987,"tag":3270,"props":4680,"children":4681},{"style":3415},[4682],{"type":2992,"value":4683},"  loggedInAt",{"type":2987,"tag":3270,"props":4685,"children":4686},{"style":3349},[4687],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":4689,"children":4690},{"style":3349},[4691],{"type":2992,"value":4692}," new",{"type":2987,"tag":3270,"props":4694,"children":4695},{"style":3506},[4696],{"type":2992,"value":4697}," Date",{"type":2987,"tag":3270,"props":4699,"children":4700},{"style":3344},[4701],{"type":2992,"value":3514},{"type":2987,"tag":3270,"props":4703,"children":4704},{"class":3272,"line":3856},[4705,4709],{"type":2987,"tag":3270,"props":4706,"children":4707},{"style":3349},[4708],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":4710,"children":4711},{"style":3344},[4712],{"type":2992,"value":4713},")\n",{"type":2987,"tag":3270,"props":4715,"children":4716},{"class":3272,"line":2881},[4717],{"type":2987,"tag":3270,"props":4718,"children":4719},{"emptyLinePlaceholder":1196},[4720],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":4722,"children":4723},{"class":3272,"line":3924},[4724],{"type":2987,"tag":3270,"props":4725,"children":4726},{"style":3335},[4727],{"type":2992,"value":4728},"\u002F\u002F Replace a user session. Same behaviour as setUserSession, except it does not merge data with existing data\n",{"type":2987,"tag":3270,"props":4730,"children":4731},{"class":3272,"line":4194},[4732,4736,4741,4745,4749],{"type":2987,"tag":3270,"props":4733,"children":4734},{"style":4533},[4735],{"type":2992,"value":4536},{"type":2987,"tag":3270,"props":4737,"children":4738},{"style":3506},[4739],{"type":2992,"value":4740}," replaceUserSession",{"type":2987,"tag":3270,"props":4742,"children":4743},{"style":3344},[4744],{"type":2992,"value":4546},{"type":2987,"tag":3270,"props":4746,"children":4747},{"style":3349},[4748],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":4750,"children":4751},{"style":3344},[4752],{"type":2992,"value":4753}," data)\n",{"type":2987,"tag":3270,"props":4755,"children":4756},{"class":3272,"line":4202},[4757],{"type":2987,"tag":3270,"props":4758,"children":4759},{"emptyLinePlaceholder":1196},[4760],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":4762,"children":4763},{"class":3272,"line":4211},[4764],{"type":2987,"tag":3270,"props":4765,"children":4766},{"style":3335},[4767],{"type":2992,"value":4768},"\u002F\u002F Get the current user session\n",{"type":2987,"tag":3270,"props":4770,"children":4771},{"class":3272,"line":4219},[4772,4776,4781,4785,4790,4795],{"type":2987,"tag":3270,"props":4773,"children":4774},{"style":3421},[4775],{"type":2992,"value":3437},{"type":2987,"tag":3270,"props":4777,"children":4778},{"style":3344},[4779],{"type":2992,"value":4780}," session ",{"type":2987,"tag":3270,"props":4782,"children":4783},{"style":3349},[4784],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":4786,"children":4787},{"style":4533},[4788],{"type":2992,"value":4789}," await",{"type":2987,"tag":3270,"props":4791,"children":4792},{"style":3506},[4793],{"type":2992,"value":4794}," getUserSession",{"type":2987,"tag":3270,"props":4796,"children":4797},{"style":3344},[4798],{"type":2992,"value":4799},"(event)\n",{"type":2987,"tag":3270,"props":4801,"children":4802},{"class":3272,"line":4260},[4803],{"type":2987,"tag":3270,"props":4804,"children":4805},{"emptyLinePlaceholder":1196},[4806],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":4808,"children":4809},{"class":3272,"line":4268},[4810],{"type":2987,"tag":3270,"props":4811,"children":4812},{"style":3335},[4813],{"type":2992,"value":4814},"\u002F\u002F Clear the current user session\n",{"type":2987,"tag":3270,"props":4816,"children":4817},{"class":3272,"line":4277},[4818,4822,4827],{"type":2987,"tag":3270,"props":4819,"children":4820},{"style":4533},[4821],{"type":2992,"value":4536},{"type":2987,"tag":3270,"props":4823,"children":4824},{"style":3506},[4825],{"type":2992,"value":4826}," clearUserSession",{"type":2987,"tag":3270,"props":4828,"children":4829},{"style":3344},[4830],{"type":2992,"value":4799},{"type":2987,"tag":3270,"props":4832,"children":4833},{"class":3272,"line":4285},[4834],{"type":2987,"tag":3270,"props":4835,"children":4836},{"emptyLinePlaceholder":1196},[4837],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":4839,"children":4840},{"class":3272,"line":4322},[4841],{"type":2987,"tag":3270,"props":4842,"children":4843},{"style":3335},[4844],{"type":2992,"value":4845},"\u002F\u002F Require a user session (send back 401 if no `user` key in session)\n",{"type":2987,"tag":3270,"props":4847,"children":4848},{"class":3272,"line":4330},[4849,4853,4857,4861,4865,4870],{"type":2987,"tag":3270,"props":4850,"children":4851},{"style":3421},[4852],{"type":2992,"value":3437},{"type":2987,"tag":3270,"props":4854,"children":4855},{"style":3344},[4856],{"type":2992,"value":4780},{"type":2987,"tag":3270,"props":4858,"children":4859},{"style":3349},[4860],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":4862,"children":4863},{"style":4533},[4864],{"type":2992,"value":4789},{"type":2987,"tag":3270,"props":4866,"children":4867},{"style":3506},[4868],{"type":2992,"value":4869}," requireUserSession",{"type":2987,"tag":3270,"props":4871,"children":4872},{"style":3344},[4873],{"type":2992,"value":4799},{"type":2987,"tag":2994,"props":4875,"children":4876},{},[4877,4879,4885,4887,4892],{"type":2992,"value":4878},"You can define the type for your user session by creating a type declaration file (for example, ",{"type":2987,"tag":3132,"props":4880,"children":4882},{"className":4881},[],[4883],{"type":2992,"value":4884},"auth.d.ts",{"type":2992,"value":4886},") in your project to augment the ",{"type":2987,"tag":3132,"props":4888,"children":4890},{"className":4889},[],[4891],{"type":2992,"value":4187},{"type":2992,"value":4893}," type:",{"type":2987,"tag":3260,"props":4895,"children":4897},{"className":3949,"code":4896,"language":3951,"meta":2861,"style":2861},"\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",[4898],{"type":2987,"tag":3132,"props":4899,"children":4900},{"__ignoreMap":2861},[4901,4909,4939,4956,4964,4972,4979,4995,5002,5009,5016,5032,5039,5046,5053,5060],{"type":2987,"tag":3270,"props":4902,"children":4903},{"class":3272,"line":2947},[4904],{"type":2987,"tag":3270,"props":4905,"children":4906},{"style":3335},[4907],{"type":2992,"value":4908},"\u002F\u002F shared\u002Ftypes\u002Fauth.d.ts\n",{"type":2987,"tag":3270,"props":4910,"children":4911},{"class":3272,"line":2913},[4912,4917,4921,4925,4930,4935],{"type":2987,"tag":3270,"props":4913,"children":4914},{"style":3421},[4915],{"type":2992,"value":4916},"declare",{"type":2987,"tag":3270,"props":4918,"children":4919},{"style":3421},[4920],{"type":2992,"value":3290},{"type":2987,"tag":3270,"props":4922,"children":4923},{"style":3349},[4924],{"type":2992,"value":4594},{"type":2987,"tag":3270,"props":4926,"children":4927},{"style":3282},[4928],{"type":2992,"value":4929},"#auth-utils",{"type":2987,"tag":3270,"props":4931,"children":4932},{"style":3349},[4933],{"type":2992,"value":4934},"'",{"type":2987,"tag":3270,"props":4936,"children":4937},{"style":3349},[4938],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":4940,"children":4941},{"class":3272,"line":2897},[4942,4947,4952],{"type":2987,"tag":3270,"props":4943,"children":4944},{"style":3421},[4945],{"type":2992,"value":4946},"  interface",{"type":2987,"tag":3270,"props":4948,"children":4949},{"style":3276},[4950],{"type":2992,"value":4951}," User",{"type":2987,"tag":3270,"props":4953,"children":4954},{"style":3349},[4955],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":4957,"children":4958},{"class":3272,"line":3533},[4959],{"type":2987,"tag":3270,"props":4960,"children":4961},{"style":3335},[4962],{"type":2992,"value":4963},"    \u002F\u002F Add your own fields\n",{"type":2987,"tag":3270,"props":4965,"children":4966},{"class":3272,"line":3542},[4967],{"type":2987,"tag":3270,"props":4968,"children":4969},{"style":3349},[4970],{"type":2992,"value":4971},"  }\n",{"type":2987,"tag":3270,"props":4973,"children":4974},{"class":3272,"line":3559},[4975],{"type":2987,"tag":3270,"props":4976,"children":4977},{"emptyLinePlaceholder":1196},[4978],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":4980,"children":4981},{"class":3272,"line":2893},[4982,4986,4991],{"type":2987,"tag":3270,"props":4983,"children":4984},{"style":3421},[4985],{"type":2992,"value":4946},{"type":2987,"tag":3270,"props":4987,"children":4988},{"style":3276},[4989],{"type":2992,"value":4990}," UserSession",{"type":2987,"tag":3270,"props":4992,"children":4993},{"style":3349},[4994],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":4996,"children":4997},{"class":3272,"line":2889},[4998],{"type":2987,"tag":3270,"props":4999,"children":5000},{"style":3335},[5001],{"type":2992,"value":4963},{"type":2987,"tag":3270,"props":5003,"children":5004},{"class":3272,"line":2885},[5005],{"type":2987,"tag":3270,"props":5006,"children":5007},{"style":3349},[5008],{"type":2992,"value":4971},{"type":2987,"tag":3270,"props":5010,"children":5011},{"class":3272,"line":3721},[5012],{"type":2987,"tag":3270,"props":5013,"children":5014},{"emptyLinePlaceholder":1196},[5015],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":5017,"children":5018},{"class":3272,"line":3738},[5019,5023,5028],{"type":2987,"tag":3270,"props":5020,"children":5021},{"style":3421},[5022],{"type":2992,"value":4946},{"type":2987,"tag":3270,"props":5024,"children":5025},{"style":3276},[5026],{"type":2992,"value":5027}," SecureSessionData",{"type":2987,"tag":3270,"props":5029,"children":5030},{"style":3349},[5031],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":5033,"children":5034},{"class":3272,"line":3759},[5035],{"type":2987,"tag":3270,"props":5036,"children":5037},{"style":3335},[5038],{"type":2992,"value":4963},{"type":2987,"tag":3270,"props":5040,"children":5041},{"class":3272,"line":3792},[5042],{"type":2987,"tag":3270,"props":5043,"children":5044},{"style":3349},[5045],{"type":2992,"value":4971},{"type":2987,"tag":3270,"props":5047,"children":5048},{"class":3272,"line":3847},[5049],{"type":2987,"tag":3270,"props":5050,"children":5051},{"style":3349},[5052],{"type":2992,"value":4449},{"type":2987,"tag":3270,"props":5054,"children":5055},{"class":3272,"line":3856},[5056],{"type":2987,"tag":3270,"props":5057,"children":5058},{"emptyLinePlaceholder":1196},[5059],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":5061,"children":5062},{"class":3272,"line":2881},[5063,5068],{"type":2987,"tag":3270,"props":5064,"children":5065},{"style":4533},[5066],{"type":2992,"value":5067},"export",{"type":2987,"tag":3270,"props":5069,"children":5070},{"style":3349},[5071],{"type":2992,"value":5072}," {}\n",{"type":2987,"tag":4451,"props":5074,"children":5075},{},[5076],{"type":2987,"tag":2994,"props":5077,"children":5078},{},[5079,5083],{"type":2987,"tag":3270,"props":5080,"children":5081},{},[5082],{"type":2992,"value":4461},{"type":2992,"value":5084},"\nSince we encrypt and store session data in cookies, we're constrained by the 4096-byte cookie size limit. Store only essential information.",{"type":2987,"tag":3390,"props":5086,"children":5088},{"id":5087},"oauth-event-handlers",[5089],{"type":2992,"value":5090},"OAuth Event Handlers",{"type":2987,"tag":2994,"props":5092,"children":5093},{},[5094],{"type":2992,"value":5095},"All handlers can be auto-imported and used in your server routes or API routes.",{"type":2987,"tag":2994,"props":5097,"children":5098},{},[5099,5101,5107,5109,5115],{"type":2992,"value":5100},"The pattern is ",{"type":2987,"tag":3132,"props":5102,"children":5104},{"className":5103},[],[5105],{"type":2992,"value":5106},"defineOAuth\u003CProvider>EventHandler({ onSuccess, config?, onError? })",{"type":2992,"value":5108},", example: ",{"type":2987,"tag":3132,"props":5110,"children":5112},{"className":5111},[],[5113],{"type":2992,"value":5114},"defineOAuthGitHubEventHandler",{"type":2992,"value":3225},{"type":2987,"tag":2994,"props":5117,"children":5118},{},[5119,5121,5127,5129,5135],{"type":2992,"value":5120},"The helper returns an event handler that automatically redirects to the provider authorization page and then calls ",{"type":2987,"tag":3132,"props":5122,"children":5124},{"className":5123},[],[5125],{"type":2992,"value":5126},"onSuccess",{"type":2992,"value":5128}," or ",{"type":2987,"tag":3132,"props":5130,"children":5132},{"className":5131},[],[5133],{"type":2992,"value":5134},"onError",{"type":2992,"value":5136}," depending on the result.",{"type":2987,"tag":2994,"props":5138,"children":5139},{},[5140,5142,5148,5150,5156,5158,5163],{"type":2992,"value":5141},"The ",{"type":2987,"tag":3132,"props":5143,"children":5145},{"className":5144},[],[5146],{"type":2992,"value":5147},"config",{"type":2992,"value":5149}," can be defined directly from the ",{"type":2987,"tag":3132,"props":5151,"children":5153},{"className":5152},[],[5154],{"type":2992,"value":5155},"runtimeConfig",{"type":2992,"value":5157}," in your ",{"type":2987,"tag":3132,"props":5159,"children":5161},{"className":5160},[],[5162],{"type":2992,"value":233},{"type":2992,"value":4010},{"type":2987,"tag":3260,"props":5165,"children":5167},{"className":3949,"code":5166,"language":3951,"meta":2861,"style":2861},"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",[5168],{"type":2987,"tag":3132,"props":5169,"children":5170},{"__ignoreMap":2861},[5171,5198,5214,5230,5238,5254,5284,5308,5316,5324,5331],{"type":2987,"tag":3270,"props":5172,"children":5173},{"class":3272,"line":2947},[5174,5178,5183,5188,5193],{"type":2987,"tag":3270,"props":5175,"children":5176},{"style":4533},[5177],{"type":2992,"value":5067},{"type":2987,"tag":3270,"props":5179,"children":5180},{"style":4533},[5181],{"type":2992,"value":5182}," default",{"type":2987,"tag":3270,"props":5184,"children":5185},{"style":3506},[5186],{"type":2992,"value":5187}," defineNuxtConfig",{"type":2987,"tag":3270,"props":5189,"children":5190},{"style":3344},[5191],{"type":2992,"value":5192},"(",{"type":2987,"tag":3270,"props":5194,"children":5195},{"style":3349},[5196],{"type":2992,"value":5197},"{\n",{"type":2987,"tag":3270,"props":5199,"children":5200},{"class":3272,"line":2913},[5201,5206,5210],{"type":2987,"tag":3270,"props":5202,"children":5203},{"style":3415},[5204],{"type":2992,"value":5205},"  runtimeConfig",{"type":2987,"tag":3270,"props":5207,"children":5208},{"style":3349},[5209],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":5211,"children":5212},{"style":3349},[5213],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":5215,"children":5216},{"class":3272,"line":2897},[5217,5222,5226],{"type":2987,"tag":3270,"props":5218,"children":5219},{"style":3415},[5220],{"type":2992,"value":5221},"    oauth",{"type":2987,"tag":3270,"props":5223,"children":5224},{"style":3349},[5225],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":5227,"children":5228},{"style":3349},[5229],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":5231,"children":5232},{"class":3272,"line":3533},[5233],{"type":2987,"tag":3270,"props":5234,"children":5235},{"style":3335},[5236],{"type":2992,"value":5237},"      \u002F\u002F provider in lowercase (github, google, etc.)\n",{"type":2987,"tag":3270,"props":5239,"children":5240},{"class":3272,"line":3542},[5241,5246,5250],{"type":2987,"tag":3270,"props":5242,"children":5243},{"style":3344},[5244],{"type":2992,"value":5245},"      \u003Cprovider>",{"type":2987,"tag":3270,"props":5247,"children":5248},{"style":3349},[5249],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":5251,"children":5252},{"style":3349},[5253],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":5255,"children":5256},{"class":3272,"line":3559},[5257,5262,5266,5270,5275,5279],{"type":2987,"tag":3270,"props":5258,"children":5259},{"style":3415},[5260],{"type":2992,"value":5261},"        clientId",{"type":2987,"tag":3270,"props":5263,"children":5264},{"style":3349},[5265],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":5267,"children":5268},{"style":3349},[5269],{"type":2992,"value":4594},{"type":2987,"tag":3270,"props":5271,"children":5272},{"style":3282},[5273],{"type":2992,"value":5274},"...",{"type":2987,"tag":3270,"props":5276,"children":5277},{"style":3349},[5278],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":5280,"children":5281},{"style":3349},[5282],{"type":2992,"value":5283},",\n",{"type":2987,"tag":3270,"props":5285,"children":5286},{"class":3272,"line":2893},[5287,5292,5296,5300,5304],{"type":2987,"tag":3270,"props":5288,"children":5289},{"style":3415},[5290],{"type":2992,"value":5291},"        clientSecret",{"type":2987,"tag":3270,"props":5293,"children":5294},{"style":3349},[5295],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":5297,"children":5298},{"style":3349},[5299],{"type":2992,"value":4594},{"type":2987,"tag":3270,"props":5301,"children":5302},{"style":3282},[5303],{"type":2992,"value":5274},{"type":2987,"tag":3270,"props":5305,"children":5306},{"style":3349},[5307],{"type":2992,"value":4603},{"type":2987,"tag":3270,"props":5309,"children":5310},{"class":3272,"line":2889},[5311],{"type":2987,"tag":3270,"props":5312,"children":5313},{"style":3349},[5314],{"type":2992,"value":5315},"      }\n",{"type":2987,"tag":3270,"props":5317,"children":5318},{"class":3272,"line":2885},[5319],{"type":2987,"tag":3270,"props":5320,"children":5321},{"style":3349},[5322],{"type":2992,"value":5323},"    }\n",{"type":2987,"tag":3270,"props":5325,"children":5326},{"class":3272,"line":3721},[5327],{"type":2987,"tag":3270,"props":5328,"children":5329},{"style":3349},[5330],{"type":2992,"value":4971},{"type":2987,"tag":3270,"props":5332,"children":5333},{"class":3272,"line":3738},[5334,5338],{"type":2987,"tag":3270,"props":5335,"children":5336},{"style":3349},[5337],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":5339,"children":5340},{"style":3344},[5341],{"type":2992,"value":4713},{"type":2987,"tag":2994,"props":5343,"children":5344},{},[5345],{"type":2992,"value":5346},"It can also be set using environment variables:",{"type":2987,"tag":3044,"props":5348,"children":5349},{},[5350,5359],{"type":2987,"tag":3048,"props":5351,"children":5352},{},[5353],{"type":2987,"tag":3132,"props":5354,"children":5356},{"className":5355},[],[5357],{"type":2992,"value":5358},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_ID",{"type":2987,"tag":3048,"props":5360,"children":5361},{},[5362],{"type":2987,"tag":3132,"props":5363,"children":5365},{"className":5364},[],[5366],{"type":2992,"value":5367},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_SECRET",{"type":2987,"tag":4451,"props":5369,"children":5370},{},[5371],{"type":2987,"tag":2994,"props":5372,"children":5373},{},[5374],{"type":2992,"value":5375},"Provider is in uppercase (GITHUB, GOOGLE, etc.)",{"type":2987,"tag":5377,"props":5378,"children":5380},"h4",{"id":5379},"supported-oauth-providers",[5381],{"type":2992,"value":5382},"Supported OAuth Providers",{"type":2987,"tag":3044,"props":5384,"children":5385},{},[5386,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],{"type":2987,"tag":3048,"props":5387,"children":5388},{},[5389],{"type":2992,"value":5390},"Apple",{"type":2987,"tag":3048,"props":5392,"children":5393},{},[5394],{"type":2992,"value":5395},"Atlassian",{"type":2987,"tag":3048,"props":5397,"children":5398},{},[5399],{"type":2992,"value":5400},"Auth0",{"type":2987,"tag":3048,"props":5402,"children":5403},{},[5404],{"type":2992,"value":5405},"Authentik",{"type":2987,"tag":3048,"props":5407,"children":5408},{},[5409],{"type":2992,"value":5410},"AWS Cognito",{"type":2987,"tag":3048,"props":5412,"children":5413},{},[5414],{"type":2992,"value":5415},"Azure B2C",{"type":2987,"tag":3048,"props":5417,"children":5418},{},[5419],{"type":2992,"value":5420},"Battle.net",{"type":2987,"tag":3048,"props":5422,"children":5423},{},[5424],{"type":2992,"value":5425},"Bluesky (AT Protocol)",{"type":2987,"tag":3048,"props":5427,"children":5428},{},[5429],{"type":2992,"value":5430},"Box.com",{"type":2987,"tag":3048,"props":5432,"children":5433},{},[5434],{"type":2992,"value":5435},"Discord",{"type":2987,"tag":3048,"props":5437,"children":5438},{},[5439],{"type":2992,"value":5440},"Dropbox",{"type":2987,"tag":3048,"props":5442,"children":5443},{},[5444],{"type":2992,"value":5445},"Facebook",{"type":2987,"tag":3048,"props":5447,"children":5448},{},[5449],{"type":2992,"value":5450},"GitHub",{"type":2987,"tag":3048,"props":5452,"children":5453},{},[5454],{"type":2992,"value":5455},"GitLab",{"type":2987,"tag":3048,"props":5457,"children":5458},{},[5459],{"type":2992,"value":5460},"Gitea",{"type":2987,"tag":3048,"props":5462,"children":5463},{},[5464],{"type":2992,"value":5465},"Google",{"type":2987,"tag":3048,"props":5467,"children":5468},{},[5469],{"type":2992,"value":5470},"Heroku",{"type":2987,"tag":3048,"props":5472,"children":5473},{},[5474],{"type":2992,"value":5475},"Hubspot",{"type":2987,"tag":3048,"props":5477,"children":5478},{},[5479],{"type":2992,"value":5480},"Instagram",{"type":2987,"tag":3048,"props":5482,"children":5483},{},[5484],{"type":2992,"value":5485},"Kick",{"type":2987,"tag":3048,"props":5487,"children":5488},{},[5489],{"type":2992,"value":5490},"Keycloak",{"type":2987,"tag":3048,"props":5492,"children":5493},{},[5494],{"type":2992,"value":5495},"Line",{"type":2987,"tag":3048,"props":5497,"children":5498},{},[5499],{"type":2992,"value":5500},"Linear",{"type":2987,"tag":3048,"props":5502,"children":5503},{},[5504],{"type":2992,"value":5505},"LinkedIn",{"type":2987,"tag":3048,"props":5507,"children":5508},{},[5509],{"type":2992,"value":5510},"LiveChat",{"type":2987,"tag":3048,"props":5512,"children":5513},{},[5514],{"type":2992,"value":5515},"Microsoft",{"type":2987,"tag":3048,"props":5517,"children":5518},{},[5519],{"type":2992,"value":5520},"OIDC \u002F OpenID Connect (Generic)",{"type":2987,"tag":3048,"props":5522,"children":5523},{},[5524],{"type":2992,"value":5525},"Okta",{"type":2987,"tag":3048,"props":5527,"children":5528},{},[5529],{"type":2992,"value":5530},"Ory",{"type":2987,"tag":3048,"props":5532,"children":5533},{},[5534],{"type":2992,"value":5535},"osu!",{"type":2987,"tag":3048,"props":5537,"children":5538},{},[5539],{"type":2992,"value":5540},"PayPal",{"type":2987,"tag":3048,"props":5542,"children":5543},{},[5544],{"type":2992,"value":5545},"Polar",{"type":2987,"tag":3048,"props":5547,"children":5548},{},[5549],{"type":2992,"value":5550},"Riot Games",{"type":2987,"tag":3048,"props":5552,"children":5553},{},[5554],{"type":2992,"value":5555},"Salesforce",{"type":2987,"tag":3048,"props":5557,"children":5558},{},[5559],{"type":2992,"value":5560},"Seznam",{"type":2987,"tag":3048,"props":5562,"children":5563},{},[5564],{"type":2992,"value":5565},"Shopify Customer",{"type":2987,"tag":3048,"props":5567,"children":5568},{},[5569],{"type":2992,"value":5570},"Slack",{"type":2987,"tag":3048,"props":5572,"children":5573},{},[5574],{"type":2992,"value":5575},"Spotify",{"type":2987,"tag":3048,"props":5577,"children":5578},{},[5579],{"type":2992,"value":5580},"Steam",{"type":2987,"tag":3048,"props":5582,"children":5583},{},[5584],{"type":2992,"value":5585},"Strava",{"type":2987,"tag":3048,"props":5587,"children":5588},{},[5589],{"type":2992,"value":5590},"TikTok",{"type":2987,"tag":3048,"props":5592,"children":5593},{},[5594],{"type":2992,"value":5595},"Twitch",{"type":2987,"tag":3048,"props":5597,"children":5598},{},[5599],{"type":2992,"value":5600},"VK",{"type":2987,"tag":3048,"props":5602,"children":5603},{},[5604],{"type":2992,"value":5605},"WorkOS",{"type":2987,"tag":3048,"props":5607,"children":5608},{},[5609],{"type":2992,"value":5610},"X (Twitter)",{"type":2987,"tag":3048,"props":5612,"children":5613},{},[5614],{"type":2992,"value":5615},"XSUAA",{"type":2987,"tag":3048,"props":5617,"children":5618},{},[5619],{"type":2992,"value":5620},"Yandex",{"type":2987,"tag":3048,"props":5622,"children":5623},{},[5624],{"type":2992,"value":5625},"Zitadel",{"type":2987,"tag":2994,"props":5627,"children":5628},{},[5629,5631,5638],{"type":2992,"value":5630},"You can add your favorite provider by creating a new file in ",{"type":2987,"tag":2998,"props":5632,"children":5635},{"href":5633,"rel":5634},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Ftree\u002Fmain\u002Fsrc\u002Fruntime\u002Fserver\u002Flib\u002Foauth",[3002],[5636],{"type":2992,"value":5637},"src\u002Fruntime\u002Fserver\u002Flib\u002Foauth\u002F",{"type":2992,"value":3225},{"type":2987,"tag":5377,"props":5640,"children":5642},{"id":5641},"example",[5643],{"type":2992,"value":5644},"Example",{"type":2987,"tag":2994,"props":5646,"children":5647},{},[5648,5650],{"type":2992,"value":5649},"Example: ",{"type":2987,"tag":3132,"props":5651,"children":5653},{"className":5652},[],[5654],{"type":2992,"value":5655},"~\u002Fserver\u002Froutes\u002Fauth\u002Fgithub.get.ts",{"type":2987,"tag":3260,"props":5657,"children":5659},{"className":3949,"code":5658,"language":3951,"meta":2861,"style":2861},"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",[5660],{"type":2987,"tag":3132,"props":5661,"children":5662},{"__ignoreMap":2861},[5663,5687,5703,5721,5728,5779,5807,5823,5848,5855,5867,5909,5916,5924,5958,6004,6043,6050],{"type":2987,"tag":3270,"props":5664,"children":5665},{"class":3272,"line":2947},[5666,5670,5674,5679,5683],{"type":2987,"tag":3270,"props":5667,"children":5668},{"style":4533},[5669],{"type":2992,"value":5067},{"type":2987,"tag":3270,"props":5671,"children":5672},{"style":4533},[5673],{"type":2992,"value":5182},{"type":2987,"tag":3270,"props":5675,"children":5676},{"style":3506},[5677],{"type":2992,"value":5678}," defineOAuthGitHubEventHandler",{"type":2987,"tag":3270,"props":5680,"children":5681},{"style":3344},[5682],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":5684,"children":5685},{"style":3349},[5686],{"type":2992,"value":5197},{"type":2987,"tag":3270,"props":5688,"children":5689},{"class":3272,"line":2913},[5690,5695,5699],{"type":2987,"tag":3270,"props":5691,"children":5692},{"style":3415},[5693],{"type":2992,"value":5694},"  config",{"type":2987,"tag":3270,"props":5696,"children":5697},{"style":3349},[5698],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":5700,"children":5701},{"style":3349},[5702],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":5704,"children":5705},{"class":3272,"line":2897},[5706,5711,5715],{"type":2987,"tag":3270,"props":5707,"children":5708},{"style":3415},[5709],{"type":2992,"value":5710},"    emailRequired",{"type":2987,"tag":3270,"props":5712,"children":5713},{"style":3349},[5714],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":5716,"children":5718},{"style":5717},"--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC",[5719],{"type":2992,"value":5720}," true\n",{"type":2987,"tag":3270,"props":5722,"children":5723},{"class":3272,"line":3533},[5724],{"type":2987,"tag":3270,"props":5725,"children":5726},{"style":3349},[5727],{"type":2992,"value":4611},{"type":2987,"tag":3270,"props":5729,"children":5730},{"class":3272,"line":3542},[5731,5736,5741,5745,5750,5754,5758,5762,5766,5771,5775],{"type":2987,"tag":3270,"props":5732,"children":5733},{"style":3421},[5734],{"type":2992,"value":5735},"  async",{"type":2987,"tag":3270,"props":5737,"children":5738},{"style":3415},[5739],{"type":2992,"value":5740}," onSuccess",{"type":2987,"tag":3270,"props":5742,"children":5743},{"style":3349},[5744],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":5746,"children":5747},{"style":4365},[5748],{"type":2992,"value":5749},"event",{"type":2987,"tag":3270,"props":5751,"children":5752},{"style":3349},[5753],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":5755,"children":5756},{"style":3349},[5757],{"type":2992,"value":3442},{"type":2987,"tag":3270,"props":5759,"children":5760},{"style":4365},[5761],{"type":2992,"value":3457},{"type":2987,"tag":3270,"props":5763,"children":5764},{"style":3349},[5765],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":5767,"children":5768},{"style":4365},[5769],{"type":2992,"value":5770}," tokens",{"type":2987,"tag":3270,"props":5772,"children":5773},{"style":3349},[5774],{"type":2992,"value":4431},{"type":2987,"tag":3270,"props":5776,"children":5777},{"style":3349},[5778],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":5780,"children":5781},{"class":3272,"line":3559},[5782,5787,5791,5795,5799,5803],{"type":2987,"tag":3270,"props":5783,"children":5784},{"style":4533},[5785],{"type":2992,"value":5786},"    await",{"type":2987,"tag":3270,"props":5788,"children":5789},{"style":3506},[5790],{"type":2992,"value":4541},{"type":2987,"tag":3270,"props":5792,"children":5793},{"style":3415},[5794],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":5796,"children":5797},{"style":3344},[5798],{"type":2992,"value":5749},{"type":2987,"tag":3270,"props":5800,"children":5801},{"style":3349},[5802],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":5804,"children":5805},{"style":3349},[5806],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":5808,"children":5809},{"class":3272,"line":2893},[5810,5815,5819],{"type":2987,"tag":3270,"props":5811,"children":5812},{"style":3415},[5813],{"type":2992,"value":5814},"      user",{"type":2987,"tag":3270,"props":5816,"children":5817},{"style":3349},[5818],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":5820,"children":5821},{"style":3349},[5822],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":5824,"children":5825},{"class":3272,"line":2889},[5826,5831,5835,5839,5843],{"type":2987,"tag":3270,"props":5827,"children":5828},{"style":3415},[5829],{"type":2992,"value":5830},"        githubId",{"type":2987,"tag":3270,"props":5832,"children":5833},{"style":3349},[5834],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":5836,"children":5837},{"style":3344},[5838],{"type":2992,"value":3457},{"type":2987,"tag":3270,"props":5840,"children":5841},{"style":3349},[5842],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":5844,"children":5845},{"style":3344},[5846],{"type":2992,"value":5847},"id\n",{"type":2987,"tag":3270,"props":5849,"children":5850},{"class":3272,"line":2885},[5851],{"type":2987,"tag":3270,"props":5852,"children":5853},{"style":3349},[5854],{"type":2992,"value":5315},{"type":2987,"tag":3270,"props":5856,"children":5857},{"class":3272,"line":3721},[5858,5863],{"type":2987,"tag":3270,"props":5859,"children":5860},{"style":3349},[5861],{"type":2992,"value":5862},"    }",{"type":2987,"tag":3270,"props":5864,"children":5865},{"style":3415},[5866],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":5868,"children":5869},{"class":3272,"line":3738},[5870,5875,5880,5884,5888,5892,5896,5901,5905],{"type":2987,"tag":3270,"props":5871,"children":5872},{"style":4533},[5873],{"type":2992,"value":5874},"    return",{"type":2987,"tag":3270,"props":5876,"children":5877},{"style":3506},[5878],{"type":2992,"value":5879}," sendRedirect",{"type":2987,"tag":3270,"props":5881,"children":5882},{"style":3415},[5883],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":5885,"children":5886},{"style":3344},[5887],{"type":2992,"value":5749},{"type":2987,"tag":3270,"props":5889,"children":5890},{"style":3349},[5891],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":5893,"children":5894},{"style":3349},[5895],{"type":2992,"value":4594},{"type":2987,"tag":3270,"props":5897,"children":5898},{"style":3282},[5899],{"type":2992,"value":5900},"\u002F",{"type":2987,"tag":3270,"props":5902,"children":5903},{"style":3349},[5904],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":5906,"children":5907},{"style":3415},[5908],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":5910,"children":5911},{"class":3272,"line":3759},[5912],{"type":2987,"tag":3270,"props":5913,"children":5914},{"style":3349},[5915],{"type":2992,"value":4611},{"type":2987,"tag":3270,"props":5917,"children":5918},{"class":3272,"line":3792},[5919],{"type":2987,"tag":3270,"props":5920,"children":5921},{"style":3335},[5922],{"type":2992,"value":5923},"  \u002F\u002F Optional, will return a json error and 401 status code by default\n",{"type":2987,"tag":3270,"props":5925,"children":5926},{"class":3272,"line":3847},[5927,5932,5936,5940,5944,5949,5954],{"type":2987,"tag":3270,"props":5928,"children":5929},{"style":3415},[5930],{"type":2992,"value":5931},"  onError",{"type":2987,"tag":3270,"props":5933,"children":5934},{"style":3349},[5935],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":5937,"children":5938},{"style":4365},[5939],{"type":2992,"value":5749},{"type":2987,"tag":3270,"props":5941,"children":5942},{"style":3349},[5943],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":5945,"children":5946},{"style":4365},[5947],{"type":2992,"value":5948}," error",{"type":2987,"tag":3270,"props":5950,"children":5951},{"style":3349},[5952],{"type":2992,"value":5953},")",{"type":2987,"tag":3270,"props":5955,"children":5956},{"style":3349},[5957],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":5959,"children":5960},{"class":3272,"line":3856},[5961,5966,5970,5975,5979,5983,5988,5992,5996,6000],{"type":2987,"tag":3270,"props":5962,"children":5963},{"style":3344},[5964],{"type":2992,"value":5965},"    console",{"type":2987,"tag":3270,"props":5967,"children":5968},{"style":3349},[5969],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":5971,"children":5972},{"style":3506},[5973],{"type":2992,"value":5974},"error",{"type":2987,"tag":3270,"props":5976,"children":5977},{"style":3415},[5978],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":5980,"children":5981},{"style":3349},[5982],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":5984,"children":5985},{"style":3282},[5986],{"type":2992,"value":5987},"GitHub OAuth error:",{"type":2987,"tag":3270,"props":5989,"children":5990},{"style":3349},[5991],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":5993,"children":5994},{"style":3349},[5995],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":5997,"children":5998},{"style":3344},[5999],{"type":2992,"value":5948},{"type":2987,"tag":3270,"props":6001,"children":6002},{"style":3415},[6003],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":6005,"children":6006},{"class":3272,"line":2881},[6007,6011,6015,6019,6023,6027,6031,6035,6039],{"type":2987,"tag":3270,"props":6008,"children":6009},{"style":4533},[6010],{"type":2992,"value":5874},{"type":2987,"tag":3270,"props":6012,"children":6013},{"style":3506},[6014],{"type":2992,"value":5879},{"type":2987,"tag":3270,"props":6016,"children":6017},{"style":3415},[6018],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":6020,"children":6021},{"style":3344},[6022],{"type":2992,"value":5749},{"type":2987,"tag":3270,"props":6024,"children":6025},{"style":3349},[6026],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":6028,"children":6029},{"style":3349},[6030],{"type":2992,"value":4594},{"type":2987,"tag":3270,"props":6032,"children":6033},{"style":3282},[6034],{"type":2992,"value":5900},{"type":2987,"tag":3270,"props":6036,"children":6037},{"style":3349},[6038],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":6040,"children":6041},{"style":3415},[6042],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":6044,"children":6045},{"class":3272,"line":3924},[6046],{"type":2987,"tag":3270,"props":6047,"children":6048},{"style":3349},[6049],{"type":2992,"value":4611},{"type":2987,"tag":3270,"props":6051,"children":6052},{"class":3272,"line":4194},[6053,6057],{"type":2987,"tag":3270,"props":6054,"children":6055},{"style":3349},[6056],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":6058,"children":6059},{"style":3344},[6060],{"type":2992,"value":4713},{"type":2987,"tag":2994,"props":6062,"children":6063},{},[6064,6066,6072],{"type":2992,"value":6065},"Make sure to set the callback URL in your OAuth app settings as ",{"type":2987,"tag":3132,"props":6067,"children":6069},{"className":6068},[],[6070],{"type":2992,"value":6071},"\u003Cyour-domain>\u002Fauth\u002Fgithub",{"type":2992,"value":3225},{"type":2987,"tag":2994,"props":6074,"children":6075},{},[6076,6078,6084],{"type":2992,"value":6077},"If the redirect URL mismatch in production, this means that the module cannot guess the right redirect URL. You can set the ",{"type":2987,"tag":3132,"props":6079,"children":6081},{"className":6080},[],[6082],{"type":2992,"value":6083},"NUXT_OAUTH_\u003CPROVIDER>_REDIRECT_URL",{"type":2992,"value":6085}," env variable to overwrite the default one.",{"type":2987,"tag":3390,"props":6087,"children":6089},{"id":6088},"password-hashing",[6090],{"type":2992,"value":3114},{"type":2987,"tag":2994,"props":6092,"children":6093},{},[6094,6096,6102,6104,6110,6112,6119],{"type":2992,"value":6095},"Nuxt Auth Utils provides password hashing utilities like ",{"type":2987,"tag":3132,"props":6097,"children":6099},{"className":6098},[],[6100],{"type":2992,"value":6101},"hashPassword",{"type":2992,"value":6103}," and ",{"type":2987,"tag":3132,"props":6105,"children":6107},{"className":6106},[],[6108],{"type":2992,"value":6109},"verifyPassword",{"type":2992,"value":6111}," to hash and verify passwords by using ",{"type":2987,"tag":2998,"props":6113,"children":6116},{"href":6114,"rel":6115},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FScrypt",[3002],[6117],{"type":2992,"value":6118},"scrypt",{"type":2992,"value":6120}," as it is supported in many JS runtime.",{"type":2987,"tag":3260,"props":6122,"children":6124},{"className":3949,"code":6123,"language":3951,"meta":2861,"style":2861},"const hashedPassword = await hashPassword('user_password')\n\nif (await verifyPassword(hashedPassword, 'user_password')) {\n  \u002F\u002F Password is valid\n}\n",[6125],{"type":2987,"tag":3132,"props":6126,"children":6127},{"__ignoreMap":2861},[6128,6174,6181,6232,6240],{"type":2987,"tag":3270,"props":6129,"children":6130},{"class":3272,"line":2947},[6131,6135,6140,6144,6148,6153,6157,6161,6166,6170],{"type":2987,"tag":3270,"props":6132,"children":6133},{"style":3421},[6134],{"type":2992,"value":3437},{"type":2987,"tag":3270,"props":6136,"children":6137},{"style":3344},[6138],{"type":2992,"value":6139}," hashedPassword ",{"type":2987,"tag":3270,"props":6141,"children":6142},{"style":3349},[6143],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":6145,"children":6146},{"style":4533},[6147],{"type":2992,"value":4789},{"type":2987,"tag":3270,"props":6149,"children":6150},{"style":3506},[6151],{"type":2992,"value":6152}," hashPassword",{"type":2987,"tag":3270,"props":6154,"children":6155},{"style":3344},[6156],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":6158,"children":6159},{"style":3349},[6160],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":6162,"children":6163},{"style":3282},[6164],{"type":2992,"value":6165},"user_password",{"type":2987,"tag":3270,"props":6167,"children":6168},{"style":3349},[6169],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":6171,"children":6172},{"style":3344},[6173],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":6175,"children":6176},{"class":3272,"line":2913},[6177],{"type":2987,"tag":3270,"props":6178,"children":6179},{"emptyLinePlaceholder":1196},[6180],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":6182,"children":6183},{"class":3272,"line":2897},[6184,6189,6193,6197,6202,6207,6211,6215,6219,6223,6228],{"type":2987,"tag":3270,"props":6185,"children":6186},{"style":4533},[6187],{"type":2992,"value":6188},"if",{"type":2987,"tag":3270,"props":6190,"children":6191},{"style":3344},[6192],{"type":2992,"value":4362},{"type":2987,"tag":3270,"props":6194,"children":6195},{"style":4533},[6196],{"type":2992,"value":4536},{"type":2987,"tag":3270,"props":6198,"children":6199},{"style":3506},[6200],{"type":2992,"value":6201}," verifyPassword",{"type":2987,"tag":3270,"props":6203,"children":6204},{"style":3344},[6205],{"type":2992,"value":6206},"(hashedPassword",{"type":2987,"tag":3270,"props":6208,"children":6209},{"style":3349},[6210],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":6212,"children":6213},{"style":3349},[6214],{"type":2992,"value":4594},{"type":2987,"tag":3270,"props":6216,"children":6217},{"style":3282},[6218],{"type":2992,"value":6165},{"type":2987,"tag":3270,"props":6220,"children":6221},{"style":3349},[6222],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":6224,"children":6225},{"style":3344},[6226],{"type":2992,"value":6227},")) ",{"type":2987,"tag":3270,"props":6229,"children":6230},{"style":3349},[6231],{"type":2992,"value":5197},{"type":2987,"tag":3270,"props":6233,"children":6234},{"class":3272,"line":3533},[6235],{"type":2987,"tag":3270,"props":6236,"children":6237},{"style":3335},[6238],{"type":2992,"value":6239},"  \u002F\u002F Password is valid\n",{"type":2987,"tag":3270,"props":6241,"children":6242},{"class":3272,"line":3542},[6243],{"type":2987,"tag":3270,"props":6244,"children":6245},{"style":3349},[6246],{"type":2992,"value":4449},{"type":2987,"tag":2994,"props":6248,"children":6249},{},[6250,6252,6258],{"type":2992,"value":6251},"It also provides a ",{"type":2987,"tag":3132,"props":6253,"children":6255},{"className":6254},[],[6256],{"type":2992,"value":6257},"passwordNeedsRehash",{"type":2992,"value":6259}," 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":2987,"tag":3260,"props":6261,"children":6263},{"className":3949,"code":6262,"language":3951,"meta":2861,"style":2861},"const needsRehash = passwordNeedsRehash(hashedPassword)\n\nif (needsRehash) {\n  \u002F\u002F Password needs to be rehashed\n  hashedPassword = await hashPassword('user_password')\n}\n",[6264],{"type":2987,"tag":3132,"props":6265,"children":6266},{"__ignoreMap":2861},[6267,6293,6300,6316,6324,6364],{"type":2987,"tag":3270,"props":6268,"children":6269},{"class":3272,"line":2947},[6270,6274,6279,6283,6288],{"type":2987,"tag":3270,"props":6271,"children":6272},{"style":3421},[6273],{"type":2992,"value":3437},{"type":2987,"tag":3270,"props":6275,"children":6276},{"style":3344},[6277],{"type":2992,"value":6278}," needsRehash ",{"type":2987,"tag":3270,"props":6280,"children":6281},{"style":3349},[6282],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":6284,"children":6285},{"style":3506},[6286],{"type":2992,"value":6287}," passwordNeedsRehash",{"type":2987,"tag":3270,"props":6289,"children":6290},{"style":3344},[6291],{"type":2992,"value":6292},"(hashedPassword)\n",{"type":2987,"tag":3270,"props":6294,"children":6295},{"class":3272,"line":2913},[6296],{"type":2987,"tag":3270,"props":6297,"children":6298},{"emptyLinePlaceholder":1196},[6299],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":6301,"children":6302},{"class":3272,"line":2897},[6303,6307,6312],{"type":2987,"tag":3270,"props":6304,"children":6305},{"style":4533},[6306],{"type":2992,"value":6188},{"type":2987,"tag":3270,"props":6308,"children":6309},{"style":3344},[6310],{"type":2992,"value":6311}," (needsRehash) ",{"type":2987,"tag":3270,"props":6313,"children":6314},{"style":3349},[6315],{"type":2992,"value":5197},{"type":2987,"tag":3270,"props":6317,"children":6318},{"class":3272,"line":3533},[6319],{"type":2987,"tag":3270,"props":6320,"children":6321},{"style":3335},[6322],{"type":2992,"value":6323},"  \u002F\u002F Password needs to be rehashed\n",{"type":2987,"tag":3270,"props":6325,"children":6326},{"class":3272,"line":3542},[6327,6332,6336,6340,6344,6348,6352,6356,6360],{"type":2987,"tag":3270,"props":6328,"children":6329},{"style":3344},[6330],{"type":2992,"value":6331},"  hashedPassword",{"type":2987,"tag":3270,"props":6333,"children":6334},{"style":3349},[6335],{"type":2992,"value":3503},{"type":2987,"tag":3270,"props":6337,"children":6338},{"style":4533},[6339],{"type":2992,"value":4789},{"type":2987,"tag":3270,"props":6341,"children":6342},{"style":3506},[6343],{"type":2992,"value":6152},{"type":2987,"tag":3270,"props":6345,"children":6346},{"style":3415},[6347],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":6349,"children":6350},{"style":3349},[6351],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":6353,"children":6354},{"style":3282},[6355],{"type":2992,"value":6165},{"type":2987,"tag":3270,"props":6357,"children":6358},{"style":3349},[6359],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":6361,"children":6362},{"style":3415},[6363],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":6365,"children":6366},{"class":3272,"line":3559},[6367],{"type":2987,"tag":3270,"props":6368,"children":6369},{"style":3349},[6370],{"type":2992,"value":4449},{"type":2987,"tag":2994,"props":6372,"children":6373},{},[6374,6376,6381],{"type":2992,"value":6375},"You can configure the scrypt options in your ",{"type":2987,"tag":3132,"props":6377,"children":6379},{"className":6378},[],[6380],{"type":2992,"value":233},{"type":2992,"value":4010},{"type":2987,"tag":3260,"props":6383,"children":6385},{"className":3949,"code":6384,"language":3951,"meta":2861,"style":2861},"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",[6386],{"type":2987,"tag":3132,"props":6387,"children":6388},{"__ignoreMap":2861},[6389,6412,6450,6466,6482,6498,6506,6513,6520,6527],{"type":2987,"tag":3270,"props":6390,"children":6391},{"class":3272,"line":2947},[6392,6396,6400,6404,6408],{"type":2987,"tag":3270,"props":6393,"children":6394},{"style":4533},[6395],{"type":2992,"value":5067},{"type":2987,"tag":3270,"props":6397,"children":6398},{"style":4533},[6399],{"type":2992,"value":5182},{"type":2987,"tag":3270,"props":6401,"children":6402},{"style":3506},[6403],{"type":2992,"value":5187},{"type":2987,"tag":3270,"props":6405,"children":6406},{"style":3344},[6407],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":6409,"children":6410},{"style":3349},[6411],{"type":2992,"value":5197},{"type":2987,"tag":3270,"props":6413,"children":6414},{"class":3272,"line":2913},[6415,6420,6424,6429,6433,6437,6441,6446],{"type":2987,"tag":3270,"props":6416,"children":6417},{"style":3415},[6418],{"type":2992,"value":6419},"  modules",{"type":2987,"tag":3270,"props":6421,"children":6422},{"style":3349},[6423],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":6425,"children":6426},{"style":3344},[6427],{"type":2992,"value":6428}," [",{"type":2987,"tag":3270,"props":6430,"children":6431},{"style":3349},[6432],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":6434,"children":6435},{"style":3282},[6436],{"type":2992,"value":2860},{"type":2987,"tag":3270,"props":6438,"children":6439},{"style":3349},[6440],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":6442,"children":6443},{"style":3344},[6444],{"type":2992,"value":6445},"]",{"type":2987,"tag":3270,"props":6447,"children":6448},{"style":3349},[6449],{"type":2992,"value":5283},{"type":2987,"tag":3270,"props":6451,"children":6452},{"class":3272,"line":2897},[6453,6458,6462],{"type":2987,"tag":3270,"props":6454,"children":6455},{"style":3415},[6456],{"type":2992,"value":6457},"  auth",{"type":2987,"tag":3270,"props":6459,"children":6460},{"style":3349},[6461],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":6463,"children":6464},{"style":3349},[6465],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":6467,"children":6468},{"class":3272,"line":3533},[6469,6474,6478],{"type":2987,"tag":3270,"props":6470,"children":6471},{"style":3415},[6472],{"type":2992,"value":6473},"    hash",{"type":2987,"tag":3270,"props":6475,"children":6476},{"style":3349},[6477],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":6479,"children":6480},{"style":3349},[6481],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":6483,"children":6484},{"class":3272,"line":3542},[6485,6490,6494],{"type":2987,"tag":3270,"props":6486,"children":6487},{"style":3415},[6488],{"type":2992,"value":6489},"      scrypt",{"type":2987,"tag":3270,"props":6491,"children":6492},{"style":3349},[6493],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":6495,"children":6496},{"style":3349},[6497],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":6499,"children":6500},{"class":3272,"line":3559},[6501],{"type":2987,"tag":3270,"props":6502,"children":6503},{"style":3335},[6504],{"type":2992,"value":6505},"        \u002F\u002F See https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fhash\u002Fblob\u002F94637029cd526783ac0a763ec581306d98db2036\u002Fsrc\u002Ftypes.ts#L144\n",{"type":2987,"tag":3270,"props":6507,"children":6508},{"class":3272,"line":2893},[6509],{"type":2987,"tag":3270,"props":6510,"children":6511},{"style":3349},[6512],{"type":2992,"value":5315},{"type":2987,"tag":3270,"props":6514,"children":6515},{"class":3272,"line":2889},[6516],{"type":2987,"tag":3270,"props":6517,"children":6518},{"style":3349},[6519],{"type":2992,"value":5323},{"type":2987,"tag":3270,"props":6521,"children":6522},{"class":3272,"line":2885},[6523],{"type":2987,"tag":3270,"props":6524,"children":6525},{"style":3349},[6526],{"type":2992,"value":4971},{"type":2987,"tag":3270,"props":6528,"children":6529},{"class":3272,"line":3721},[6530,6534],{"type":2987,"tag":3270,"props":6531,"children":6532},{"style":3349},[6533],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":6535,"children":6536},{"style":3344},[6537],{"type":2992,"value":4713},{"type":2987,"tag":3390,"props":6539,"children":6541},{"id":6540},"at-protocol",[6542],{"type":2992,"value":6543},"AT Protocol",{"type":2987,"tag":2994,"props":6545,"children":6546},{},[6547],{"type":2992,"value":6548},"Social networks that rely on AT Protocol (e.g., Bluesky) slightly differ from a regular OAuth flow.",{"type":2987,"tag":2994,"props":6550,"children":6551},{},[6552],{"type":2992,"value":6553},"To enable OAuth with AT Protocol, you need to:",{"type":2987,"tag":3244,"props":6555,"children":6556},{},[6557],{"type":2987,"tag":3048,"props":6558,"children":6559},{},[6560],{"type":2992,"value":6561},"Install the peer dependencies:",{"type":2987,"tag":3260,"props":6563,"children":6565},{"className":3262,"code":6564,"language":3264,"meta":2861,"style":2861},"npx nypm i @atproto\u002Foauth-client-node @atproto\u002Fapi\n",[6566],{"type":2987,"tag":3132,"props":6567,"children":6568},{"__ignoreMap":2861},[6569],{"type":2987,"tag":3270,"props":6570,"children":6571},{"class":3272,"line":2947},[6572,6576,6581,6586,6591],{"type":2987,"tag":3270,"props":6573,"children":6574},{"style":3276},[6575],{"type":2992,"value":3279},{"type":2987,"tag":3270,"props":6577,"children":6578},{"style":3282},[6579],{"type":2992,"value":6580}," nypm",{"type":2987,"tag":3270,"props":6582,"children":6583},{"style":3282},[6584],{"type":2992,"value":6585}," i",{"type":2987,"tag":3270,"props":6587,"children":6588},{"style":3282},[6589],{"type":2992,"value":6590}," @atproto\u002Foauth-client-node",{"type":2987,"tag":3270,"props":6592,"children":6593},{"style":3282},[6594],{"type":2992,"value":6595}," @atproto\u002Fapi\n",{"type":2987,"tag":3244,"props":6597,"children":6598},{"start":2913},[6599],{"type":2987,"tag":3048,"props":6600,"children":6601},{},[6602,6604],{"type":2992,"value":6603},"Enable it in your ",{"type":2987,"tag":3132,"props":6605,"children":6607},{"className":6606},[],[6608],{"type":2992,"value":233},{"type":2987,"tag":3260,"props":6610,"children":6612},{"className":3949,"code":6611,"language":3951,"meta":2861,"style":2861},"export default defineNuxtConfig({\n  auth: {\n    atproto: true\n  }\n})\n",[6613],{"type":2987,"tag":3132,"props":6614,"children":6615},{"__ignoreMap":2861},[6616,6639,6654,6670,6677],{"type":2987,"tag":3270,"props":6617,"children":6618},{"class":3272,"line":2947},[6619,6623,6627,6631,6635],{"type":2987,"tag":3270,"props":6620,"children":6621},{"style":4533},[6622],{"type":2992,"value":5067},{"type":2987,"tag":3270,"props":6624,"children":6625},{"style":4533},[6626],{"type":2992,"value":5182},{"type":2987,"tag":3270,"props":6628,"children":6629},{"style":3506},[6630],{"type":2992,"value":5187},{"type":2987,"tag":3270,"props":6632,"children":6633},{"style":3344},[6634],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":6636,"children":6637},{"style":3349},[6638],{"type":2992,"value":5197},{"type":2987,"tag":3270,"props":6640,"children":6641},{"class":3272,"line":2913},[6642,6646,6650],{"type":2987,"tag":3270,"props":6643,"children":6644},{"style":3415},[6645],{"type":2992,"value":6457},{"type":2987,"tag":3270,"props":6647,"children":6648},{"style":3349},[6649],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":6651,"children":6652},{"style":3349},[6653],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":6655,"children":6656},{"class":3272,"line":2897},[6657,6662,6666],{"type":2987,"tag":3270,"props":6658,"children":6659},{"style":3415},[6660],{"type":2992,"value":6661},"    atproto",{"type":2987,"tag":3270,"props":6663,"children":6664},{"style":3349},[6665],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":6667,"children":6668},{"style":5717},[6669],{"type":2992,"value":5720},{"type":2987,"tag":3270,"props":6671,"children":6672},{"class":3272,"line":3533},[6673],{"type":2987,"tag":3270,"props":6674,"children":6675},{"style":3349},[6676],{"type":2992,"value":4971},{"type":2987,"tag":3270,"props":6678,"children":6679},{"class":3272,"line":3542},[6680,6684],{"type":2987,"tag":3270,"props":6681,"children":6682},{"style":3349},[6683],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":6685,"children":6686},{"style":3344},[6687],{"type":2992,"value":4713},{"type":2987,"tag":3390,"props":6689,"children":6691},{"id":6690},"webauthn-passkey",[6692],{"type":2992,"value":3123},{"type":2987,"tag":2994,"props":6694,"children":6695},{},[6696],{"type":2992,"value":6697},"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":2987,"tag":2994,"props":6699,"children":6700},{},[6701],{"type":2992,"value":6702},"To enable WebAuthn you need to:",{"type":2987,"tag":3244,"props":6704,"children":6705},{},[6706],{"type":2987,"tag":3048,"props":6707,"children":6708},{},[6709],{"type":2992,"value":6561},{"type":2987,"tag":3260,"props":6711,"children":6713},{"className":3262,"code":6712,"language":3264,"meta":2861,"style":2861},"npx nypm i @simplewebauthn\u002Fserver@11 @simplewebauthn\u002Fbrowser@11\n",[6714],{"type":2987,"tag":3132,"props":6715,"children":6716},{"__ignoreMap":2861},[6717],{"type":2987,"tag":3270,"props":6718,"children":6719},{"class":3272,"line":2947},[6720,6724,6728,6732,6737],{"type":2987,"tag":3270,"props":6721,"children":6722},{"style":3276},[6723],{"type":2992,"value":3279},{"type":2987,"tag":3270,"props":6725,"children":6726},{"style":3282},[6727],{"type":2992,"value":6580},{"type":2987,"tag":3270,"props":6729,"children":6730},{"style":3282},[6731],{"type":2992,"value":6585},{"type":2987,"tag":3270,"props":6733,"children":6734},{"style":3282},[6735],{"type":2992,"value":6736}," @simplewebauthn\u002Fserver@11",{"type":2987,"tag":3270,"props":6738,"children":6739},{"style":3282},[6740],{"type":2992,"value":6741}," @simplewebauthn\u002Fbrowser@11\n",{"type":2987,"tag":3244,"props":6743,"children":6744},{"start":2913},[6745],{"type":2987,"tag":3048,"props":6746,"children":6747},{},[6748,6749],{"type":2992,"value":6603},{"type":2987,"tag":3132,"props":6750,"children":6752},{"className":6751},[],[6753],{"type":2992,"value":233},{"type":2987,"tag":3260,"props":6755,"children":6757},{"className":3949,"code":6756,"language":3951,"meta":2861,"style":2861},"export default defineNuxtConfig({\n  auth: {\n    webAuthn: true\n  }\n})\n",[6758],{"type":2987,"tag":3132,"props":6759,"children":6760},{"__ignoreMap":2861},[6761,6784,6799,6815,6822],{"type":2987,"tag":3270,"props":6762,"children":6763},{"class":3272,"line":2947},[6764,6768,6772,6776,6780],{"type":2987,"tag":3270,"props":6765,"children":6766},{"style":4533},[6767],{"type":2992,"value":5067},{"type":2987,"tag":3270,"props":6769,"children":6770},{"style":4533},[6771],{"type":2992,"value":5182},{"type":2987,"tag":3270,"props":6773,"children":6774},{"style":3506},[6775],{"type":2992,"value":5187},{"type":2987,"tag":3270,"props":6777,"children":6778},{"style":3344},[6779],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":6781,"children":6782},{"style":3349},[6783],{"type":2992,"value":5197},{"type":2987,"tag":3270,"props":6785,"children":6786},{"class":3272,"line":2913},[6787,6791,6795],{"type":2987,"tag":3270,"props":6788,"children":6789},{"style":3415},[6790],{"type":2992,"value":6457},{"type":2987,"tag":3270,"props":6792,"children":6793},{"style":3349},[6794],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":6796,"children":6797},{"style":3349},[6798],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":6800,"children":6801},{"class":3272,"line":2897},[6802,6807,6811],{"type":2987,"tag":3270,"props":6803,"children":6804},{"style":3415},[6805],{"type":2992,"value":6806},"    webAuthn",{"type":2987,"tag":3270,"props":6808,"children":6809},{"style":3349},[6810],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":6812,"children":6813},{"style":5717},[6814],{"type":2992,"value":5720},{"type":2987,"tag":3270,"props":6816,"children":6817},{"class":3272,"line":3533},[6818],{"type":2987,"tag":3270,"props":6819,"children":6820},{"style":3349},[6821],{"type":2992,"value":4971},{"type":2987,"tag":3270,"props":6823,"children":6824},{"class":3272,"line":3542},[6825,6829],{"type":2987,"tag":3270,"props":6826,"children":6827},{"style":3349},[6828],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":6830,"children":6831},{"style":3344},[6832],{"type":2992,"value":4713},{"type":2987,"tag":5377,"props":6834,"children":6836},{"id":6835},"example-1",[6837],{"type":2992,"value":5644},{"type":2987,"tag":2994,"props":6839,"children":6840},{},[6841],{"type":2992,"value":6842},"In this example we will implement the very basic steps to register and authenticate a credential.",{"type":2987,"tag":2994,"props":6844,"children":6845},{},[6846,6848,6855],{"type":2992,"value":6847},"The full code can be found in the ",{"type":2987,"tag":2998,"props":6849,"children":6852},{"href":6850,"rel":6851},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn",[3002],[6853],{"type":2992,"value":6854},"playground",{"type":2992,"value":6856},". The example uses a SQLite database with the following minimal tables:",{"type":2987,"tag":3260,"props":6858,"children":6862},{"className":6859,"code":6860,"language":6861,"meta":2861,"style":2861},"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",[6863],{"type":2987,"tag":3132,"props":6864,"children":6865},{"__ignoreMap":2861},[6866,6890,6913,6931,6939,6946,6977,7018,7042,7062,7083,7103,7123,7170],{"type":2987,"tag":3270,"props":6867,"children":6868},{"class":3272,"line":2947},[6869,6875,6880,6885],{"type":2987,"tag":3270,"props":6870,"children":6872},{"style":6871},"--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C",[6873],{"type":2992,"value":6874},"CREATE",{"type":2987,"tag":3270,"props":6876,"children":6877},{"style":6871},[6878],{"type":2992,"value":6879}," TABLE",{"type":2987,"tag":3270,"props":6881,"children":6882},{"style":3506},[6883],{"type":2992,"value":6884}," users",{"type":2987,"tag":3270,"props":6886,"children":6887},{"style":3344},[6888],{"type":2992,"value":6889}," (\n",{"type":2987,"tag":3270,"props":6891,"children":6892},{"class":3272,"line":2913},[6893,6898,6903,6908],{"type":2987,"tag":3270,"props":6894,"children":6895},{"style":3344},[6896],{"type":2992,"value":6897},"  id ",{"type":2987,"tag":3270,"props":6899,"children":6900},{"style":3421},[6901],{"type":2992,"value":6902},"INTEGER",{"type":2987,"tag":3270,"props":6904,"children":6905},{"style":3421},[6906],{"type":2992,"value":6907}," PRIMARY KEY",{"type":2987,"tag":3270,"props":6909,"children":6910},{"style":3344},[6911],{"type":2992,"value":6912}," AUTOINCREMENT,\n",{"type":2987,"tag":3270,"props":6914,"children":6915},{"class":3272,"line":2897},[6916,6921,6926],{"type":2987,"tag":3270,"props":6917,"children":6918},{"style":3344},[6919],{"type":2992,"value":6920},"  email ",{"type":2987,"tag":3270,"props":6922,"children":6923},{"style":3421},[6924],{"type":2992,"value":6925},"TEXT",{"type":2987,"tag":3270,"props":6927,"children":6928},{"style":6871},[6929],{"type":2992,"value":6930}," NOT NULL\n",{"type":2987,"tag":3270,"props":6932,"children":6933},{"class":3272,"line":3533},[6934],{"type":2987,"tag":3270,"props":6935,"children":6936},{"style":3344},[6937],{"type":2992,"value":6938},");\n",{"type":2987,"tag":3270,"props":6940,"children":6941},{"class":3272,"line":3542},[6942],{"type":2987,"tag":3270,"props":6943,"children":6944},{"emptyLinePlaceholder":1196},[6945],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":6947,"children":6948},{"class":3272,"line":3559},[6949,6953,6957,6962,6967,6972],{"type":2987,"tag":3270,"props":6950,"children":6951},{"style":6871},[6952],{"type":2992,"value":6874},{"type":2987,"tag":3270,"props":6954,"children":6955},{"style":6871},[6956],{"type":2992,"value":6879},{"type":2987,"tag":3270,"props":6958,"children":6959},{"style":3506},[6960],{"type":2992,"value":6961}," IF",{"type":2987,"tag":3270,"props":6963,"children":6964},{"style":6871},[6965],{"type":2992,"value":6966}," NOT",{"type":2987,"tag":3270,"props":6968,"children":6969},{"style":6871},[6970],{"type":2992,"value":6971}," EXISTS",{"type":2987,"tag":3270,"props":6973,"children":6974},{"style":3344},[6975],{"type":2992,"value":6976}," credentials (\n",{"type":2987,"tag":3270,"props":6978,"children":6979},{"class":3272,"line":2893},[6980,6985,6989,6994,6999,7004,7009,7014],{"type":2987,"tag":3270,"props":6981,"children":6982},{"style":3344},[6983],{"type":2992,"value":6984},"  userId ",{"type":2987,"tag":3270,"props":6986,"children":6987},{"style":3421},[6988],{"type":2992,"value":6902},{"type":2987,"tag":3270,"props":6990,"children":6991},{"style":6871},[6992],{"type":2992,"value":6993}," NOT NULL",{"type":2987,"tag":3270,"props":6995,"children":6996},{"style":3421},[6997],{"type":2992,"value":6998}," REFERENCES",{"type":2987,"tag":3270,"props":7000,"children":7001},{"style":3344},[7002],{"type":2992,"value":7003}," users(id) ",{"type":2987,"tag":3270,"props":7005,"children":7006},{"style":3421},[7007],{"type":2992,"value":7008},"ON DELETE CASCADE",{"type":2987,"tag":3270,"props":7010,"children":7011},{"style":3421},[7012],{"type":2992,"value":7013}," ON UPDATE CASCADE",{"type":2987,"tag":3270,"props":7015,"children":7016},{"style":3344},[7017],{"type":2992,"value":5283},{"type":2987,"tag":3270,"props":7019,"children":7020},{"class":3272,"line":2889},[7021,7025,7029,7034,7038],{"type":2987,"tag":3270,"props":7022,"children":7023},{"style":3344},[7024],{"type":2992,"value":6897},{"type":2987,"tag":3270,"props":7026,"children":7027},{"style":3421},[7028],{"type":2992,"value":6925},{"type":2987,"tag":3270,"props":7030,"children":7031},{"style":6871},[7032],{"type":2992,"value":7033}," UNIQUE",{"type":2987,"tag":3270,"props":7035,"children":7036},{"style":6871},[7037],{"type":2992,"value":6993},{"type":2987,"tag":3270,"props":7039,"children":7040},{"style":3344},[7041],{"type":2992,"value":5283},{"type":2987,"tag":3270,"props":7043,"children":7044},{"class":3272,"line":2885},[7045,7050,7054,7058],{"type":2987,"tag":3270,"props":7046,"children":7047},{"style":3344},[7048],{"type":2992,"value":7049},"  publicKey ",{"type":2987,"tag":3270,"props":7051,"children":7052},{"style":3421},[7053],{"type":2992,"value":6925},{"type":2987,"tag":3270,"props":7055,"children":7056},{"style":6871},[7057],{"type":2992,"value":6993},{"type":2987,"tag":3270,"props":7059,"children":7060},{"style":3344},[7061],{"type":2992,"value":5283},{"type":2987,"tag":3270,"props":7063,"children":7064},{"class":3272,"line":3721},[7065,7070,7075,7079],{"type":2987,"tag":3270,"props":7066,"children":7067},{"style":6871},[7068],{"type":2992,"value":7069},"  counter",{"type":2987,"tag":3270,"props":7071,"children":7072},{"style":3421},[7073],{"type":2992,"value":7074}," INTEGER",{"type":2987,"tag":3270,"props":7076,"children":7077},{"style":6871},[7078],{"type":2992,"value":6993},{"type":2987,"tag":3270,"props":7080,"children":7081},{"style":3344},[7082],{"type":2992,"value":5283},{"type":2987,"tag":3270,"props":7084,"children":7085},{"class":3272,"line":3738},[7086,7091,7095,7099],{"type":2987,"tag":3270,"props":7087,"children":7088},{"style":3344},[7089],{"type":2992,"value":7090},"  backedUp ",{"type":2987,"tag":3270,"props":7092,"children":7093},{"style":3421},[7094],{"type":2992,"value":6902},{"type":2987,"tag":3270,"props":7096,"children":7097},{"style":6871},[7098],{"type":2992,"value":6993},{"type":2987,"tag":3270,"props":7100,"children":7101},{"style":3344},[7102],{"type":2992,"value":5283},{"type":2987,"tag":3270,"props":7104,"children":7105},{"class":3272,"line":3759},[7106,7111,7115,7119],{"type":2987,"tag":3270,"props":7107,"children":7108},{"style":3344},[7109],{"type":2992,"value":7110},"  transports ",{"type":2987,"tag":3270,"props":7112,"children":7113},{"style":3421},[7114],{"type":2992,"value":6925},{"type":2987,"tag":3270,"props":7116,"children":7117},{"style":6871},[7118],{"type":2992,"value":6993},{"type":2987,"tag":3270,"props":7120,"children":7121},{"style":3344},[7122],{"type":2992,"value":5283},{"type":2987,"tag":3270,"props":7124,"children":7125},{"class":3272,"line":3792},[7126,7131,7135,7139,7144,7148,7153,7157,7162,7166],{"type":2987,"tag":3270,"props":7127,"children":7128},{"style":3421},[7129],{"type":2992,"value":7130},"  PRIMARY KEY",{"type":2987,"tag":3270,"props":7132,"children":7133},{"style":3344},[7134],{"type":2992,"value":4362},{"type":2987,"tag":3270,"props":7136,"children":7137},{"style":3349},[7138],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":7140,"children":7141},{"style":3282},[7142],{"type":2992,"value":7143},"userId",{"type":2987,"tag":3270,"props":7145,"children":7146},{"style":3349},[7147],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":7149,"children":7150},{"style":3344},[7151],{"type":2992,"value":7152},", ",{"type":2987,"tag":3270,"props":7154,"children":7155},{"style":3349},[7156],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":7158,"children":7159},{"style":3282},[7160],{"type":2992,"value":7161},"id",{"type":2987,"tag":3270,"props":7163,"children":7164},{"style":3349},[7165],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":7167,"children":7168},{"style":3344},[7169],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":7171,"children":7172},{"class":3272,"line":3847},[7173],{"type":2987,"tag":3270,"props":7174,"children":7175},{"style":3344},[7176],{"type":2992,"value":6938},{"type":2987,"tag":3044,"props":7178,"children":7179},{},[7180,7193],{"type":2987,"tag":3048,"props":7181,"children":7182},{},[7183,7185,7191],{"type":2992,"value":7184},"For the ",{"type":2987,"tag":3132,"props":7186,"children":7188},{"className":7187},[],[7189],{"type":2992,"value":7190},"users",{"type":2992,"value":7192}," 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":2987,"tag":3048,"props":7194,"children":7195},{},[7196,7197,7203,7205],{"type":2992,"value":5141},{"type":2987,"tag":3132,"props":7198,"children":7200},{"className":7199},[],[7201],{"type":2992,"value":7202},"credentials",{"type":2992,"value":7204}," table stores:\n",{"type":2987,"tag":3044,"props":7206,"children":7207},{},[7208,7226,7238,7248,7277,7298],{"type":2987,"tag":3048,"props":7209,"children":7210},{},[7211,7212,7217,7219,7224],{"type":2992,"value":5141},{"type":2987,"tag":3132,"props":7213,"children":7215},{"className":7214},[],[7216],{"type":2992,"value":7143},{"type":2992,"value":7218}," from the ",{"type":2987,"tag":3132,"props":7220,"children":7222},{"className":7221},[],[7223],{"type":2992,"value":7190},{"type":2992,"value":7225}," table.",{"type":2987,"tag":3048,"props":7227,"children":7228},{},[7229,7231,7236],{"type":2992,"value":7230},"The credential ",{"type":2987,"tag":3132,"props":7232,"children":7234},{"className":7233},[],[7235],{"type":2992,"value":7161},{"type":2992,"value":7237}," (as unique index)",{"type":2987,"tag":3048,"props":7239,"children":7240},{},[7241,7242],{"type":2992,"value":7230},{"type":2987,"tag":3132,"props":7243,"children":7245},{"className":7244},[],[7246],{"type":2992,"value":7247},"publicKey",{"type":2987,"tag":3048,"props":7249,"children":7250},{},[7251,7253,7259,7261,7266,7268,7275],{"type":2992,"value":7252},"A ",{"type":2987,"tag":3132,"props":7254,"children":7256},{"className":7255},[],[7257],{"type":2992,"value":7258},"counter",{"type":2992,"value":7260},". Each time a credential is used, the counter is incremented. We can use this value to perform extra security checks. More about ",{"type":2987,"tag":3132,"props":7262,"children":7264},{"className":7263},[],[7265],{"type":2992,"value":7258},{"type":2992,"value":7267}," can be read ",{"type":2987,"tag":2998,"props":7269,"children":7272},{"href":7270,"rel":7271},"https:\u002F\u002Fsimplewebauthn.dev\u002Fdocs\u002Fpackages\u002Fserver#3-post-registration-responsibilities",[3002],[7273],{"type":2992,"value":7274},"here",{"type":2992,"value":7276},". For this example, we won't be using the counter. But you should update the counter in your database with the new value.",{"type":2987,"tag":3048,"props":7278,"children":7279},{},[7280,7281,7287,7289,7296],{"type":2992,"value":7252},{"type":2987,"tag":3132,"props":7282,"children":7284},{"className":7283},[],[7285],{"type":2992,"value":7286},"backedUp",{"type":2992,"value":7288}," 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":2987,"tag":2998,"props":7290,"children":7293},{"href":7291,"rel":7292},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fugaemxot",[3002],[7294],{"type":2992,"value":7295},"this section",{"type":2992,"value":7297}," for more details.",{"type":2987,"tag":3048,"props":7299,"children":7300},{},[7301,7302,7308,7310,7316],{"type":2992,"value":7230},{"type":2987,"tag":3132,"props":7303,"children":7305},{"className":7304},[],[7306],{"type":2992,"value":7307},"transports",{"type":2992,"value":7309},". 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":2987,"tag":2998,"props":7311,"children":7314},{"href":7312,"rel":7313},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fycxtiorp",[3002],[7315],{"type":2992,"value":7295},{"type":2992,"value":7297},{"type":2987,"tag":2994,"props":7318,"children":7319},{},[7320,7322,7329,7330,7337,7339,7346],{"type":2992,"value":7321},"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":2987,"tag":2998,"props":7323,"children":7326},{"href":7324,"rel":7325},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fregister.post.ts",[3002],[7327],{"type":2992,"value":7328},"registration",{"type":2992,"value":7152},{"type":2987,"tag":2998,"props":7331,"children":7334},{"href":7332,"rel":7333},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts",[3002],[7335],{"type":2992,"value":7336},"authentication",{"type":2992,"value":7338}," and the ",{"type":2987,"tag":2998,"props":7340,"children":7343},{"href":7341,"rel":7342},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fplugins\u002Fdatabase.ts",[3002],[7344],{"type":2992,"value":7345},"database setup",{"type":2992,"value":3225},{"type":2987,"tag":3260,"props":7348,"children":7350},{"className":3949,"code":7349,"language":3951,"meta":2861,"style":2861},"\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",[7351],{"type":2987,"tag":3132,"props":7352,"children":7353},{"__ignoreMap":2861},[7354,7362,7402,7426,7434,7472,7480,7488,7496,7532,7621,7691,7698,7705,7713,7741,7749,7791,7823,7830,7878,7886,7894,7919,7926,7934,7981,8010,8018,8058,8065,8073,8082,8114,8122,8131,8159,8175,8200,8209,8243,8255,8263],{"type":2987,"tag":3270,"props":7355,"children":7356},{"class":3272,"line":2947},[7357],{"type":2987,"tag":3270,"props":7358,"children":7359},{"style":3335},[7360],{"type":2992,"value":7361},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fregister.post.ts\n",{"type":2987,"tag":3270,"props":7363,"children":7364},{"class":3272,"line":2913},[7365,7370,7374,7379,7384,7389,7393,7398],{"type":2987,"tag":3270,"props":7366,"children":7367},{"style":4533},[7368],{"type":2992,"value":7369},"import",{"type":2987,"tag":3270,"props":7371,"children":7372},{"style":3349},[7373],{"type":2992,"value":3442},{"type":2987,"tag":3270,"props":7375,"children":7376},{"style":3344},[7377],{"type":2992,"value":7378}," z",{"type":2987,"tag":3270,"props":7380,"children":7381},{"style":3349},[7382],{"type":2992,"value":7383}," }",{"type":2987,"tag":3270,"props":7385,"children":7386},{"style":4533},[7387],{"type":2992,"value":7388}," from",{"type":2987,"tag":3270,"props":7390,"children":7391},{"style":3349},[7392],{"type":2992,"value":4594},{"type":2987,"tag":3270,"props":7394,"children":7395},{"style":3282},[7396],{"type":2992,"value":7397},"zod",{"type":2987,"tag":3270,"props":7399,"children":7400},{"style":3349},[7401],{"type":2992,"value":4603},{"type":2987,"tag":3270,"props":7403,"children":7404},{"class":3272,"line":2897},[7405,7409,7413,7418,7422],{"type":2987,"tag":3270,"props":7406,"children":7407},{"style":4533},[7408],{"type":2992,"value":5067},{"type":2987,"tag":3270,"props":7410,"children":7411},{"style":4533},[7412],{"type":2992,"value":5182},{"type":2987,"tag":3270,"props":7414,"children":7415},{"style":3506},[7416],{"type":2992,"value":7417}," defineWebAuthnRegisterEventHandler",{"type":2987,"tag":3270,"props":7419,"children":7420},{"style":3344},[7421],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":7423,"children":7424},{"style":3349},[7425],{"type":2992,"value":5197},{"type":2987,"tag":3270,"props":7427,"children":7428},{"class":3272,"line":3533},[7429],{"type":2987,"tag":3270,"props":7430,"children":7431},{"style":3335},[7432],{"type":2992,"value":7433},"  \u002F\u002F optional\n",{"type":2987,"tag":3270,"props":7435,"children":7436},{"class":3272,"line":3542},[7437,7441,7446,7450,7455,7459,7464,7468],{"type":2987,"tag":3270,"props":7438,"children":7439},{"style":3421},[7440],{"type":2992,"value":5735},{"type":2987,"tag":3270,"props":7442,"children":7443},{"style":3415},[7444],{"type":2992,"value":7445}," validateUser",{"type":2987,"tag":3270,"props":7447,"children":7448},{"style":3349},[7449],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":7451,"children":7452},{"style":4365},[7453],{"type":2992,"value":7454},"userBody",{"type":2987,"tag":3270,"props":7456,"children":7457},{"style":3349},[7458],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":7460,"children":7461},{"style":4365},[7462],{"type":2992,"value":7463}," event",{"type":2987,"tag":3270,"props":7465,"children":7466},{"style":3349},[7467],{"type":2992,"value":5953},{"type":2987,"tag":3270,"props":7469,"children":7470},{"style":3349},[7471],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":7473,"children":7474},{"class":3272,"line":3559},[7475],{"type":2987,"tag":3270,"props":7476,"children":7477},{"style":3335},[7478],{"type":2992,"value":7479},"    \u002F\u002F bonus: check if the user is already authenticated to link a credential to his account\n",{"type":2987,"tag":3270,"props":7481,"children":7482},{"class":3272,"line":2893},[7483],{"type":2987,"tag":3270,"props":7484,"children":7485},{"style":3335},[7486],{"type":2992,"value":7487},"    \u002F\u002F We first check if the user is already authenticated by getting the session\n",{"type":2987,"tag":3270,"props":7489,"children":7490},{"class":3272,"line":2889},[7491],{"type":2987,"tag":3270,"props":7492,"children":7493},{"style":3335},[7494],{"type":2992,"value":7495},"    \u002F\u002F And verify that the email is the same as the one in session\n",{"type":2987,"tag":3270,"props":7497,"children":7498},{"class":3272,"line":2885},[7499,7504,7508,7512,7516,7520,7524,7528],{"type":2987,"tag":3270,"props":7500,"children":7501},{"style":3421},[7502],{"type":2992,"value":7503},"    const",{"type":2987,"tag":3270,"props":7505,"children":7506},{"style":3344},[7507],{"type":2992,"value":3466},{"type":2987,"tag":3270,"props":7509,"children":7510},{"style":3349},[7511],{"type":2992,"value":3503},{"type":2987,"tag":3270,"props":7513,"children":7514},{"style":4533},[7515],{"type":2992,"value":4789},{"type":2987,"tag":3270,"props":7517,"children":7518},{"style":3506},[7519],{"type":2992,"value":4794},{"type":2987,"tag":3270,"props":7521,"children":7522},{"style":3415},[7523],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":7525,"children":7526},{"style":3344},[7527],{"type":2992,"value":5749},{"type":2987,"tag":3270,"props":7529,"children":7530},{"style":3415},[7531],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":7533,"children":7534},{"class":3272,"line":3721},[7535,7540,7544,7549,7553,7558,7563,7568,7573,7577,7581,7585,7589,7593,7598,7603,7607,7612,7617],{"type":2987,"tag":3270,"props":7536,"children":7537},{"style":4533},[7538],{"type":2992,"value":7539},"    if",{"type":2987,"tag":3270,"props":7541,"children":7542},{"style":3415},[7543],{"type":2992,"value":4362},{"type":2987,"tag":3270,"props":7545,"children":7546},{"style":3344},[7547],{"type":2992,"value":7548},"session",{"type":2987,"tag":3270,"props":7550,"children":7551},{"style":3349},[7552],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":7554,"children":7555},{"style":3344},[7556],{"type":2992,"value":7557},"user",{"type":2987,"tag":3270,"props":7559,"children":7560},{"style":3349},[7561],{"type":2992,"value":7562},"?.",{"type":2987,"tag":3270,"props":7564,"children":7565},{"style":3344},[7566],{"type":2992,"value":7567},"email",{"type":2987,"tag":3270,"props":7569,"children":7570},{"style":3349},[7571],{"type":2992,"value":7572}," &&",{"type":2987,"tag":3270,"props":7574,"children":7575},{"style":3344},[7576],{"type":2992,"value":3466},{"type":2987,"tag":3270,"props":7578,"children":7579},{"style":3349},[7580],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":7582,"children":7583},{"style":3344},[7584],{"type":2992,"value":7557},{"type":2987,"tag":3270,"props":7586,"children":7587},{"style":3349},[7588],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":7590,"children":7591},{"style":3344},[7592],{"type":2992,"value":7567},{"type":2987,"tag":3270,"props":7594,"children":7595},{"style":3349},[7596],{"type":2992,"value":7597}," !==",{"type":2987,"tag":3270,"props":7599,"children":7600},{"style":3344},[7601],{"type":2992,"value":7602}," userBody",{"type":2987,"tag":3270,"props":7604,"children":7605},{"style":3349},[7606],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":7608,"children":7609},{"style":3344},[7610],{"type":2992,"value":7611},"userName",{"type":2987,"tag":3270,"props":7613,"children":7614},{"style":3415},[7615],{"type":2992,"value":7616},") ",{"type":2987,"tag":3270,"props":7618,"children":7619},{"style":3349},[7620],{"type":2992,"value":5197},{"type":2987,"tag":3270,"props":7622,"children":7623},{"class":3272,"line":3738},[7624,7629,7634,7638,7643,7648,7652,7657,7661,7666,7670,7674,7679,7683,7687],{"type":2987,"tag":3270,"props":7625,"children":7626},{"style":4533},[7627],{"type":2992,"value":7628},"      throw",{"type":2987,"tag":3270,"props":7630,"children":7631},{"style":3506},[7632],{"type":2992,"value":7633}," createError",{"type":2987,"tag":3270,"props":7635,"children":7636},{"style":3415},[7637],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":7639,"children":7640},{"style":3349},[7641],{"type":2992,"value":7642},"{",{"type":2987,"tag":3270,"props":7644,"children":7645},{"style":3415},[7646],{"type":2992,"value":7647}," statusCode",{"type":2987,"tag":3270,"props":7649,"children":7650},{"style":3349},[7651],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":7653,"children":7654},{"style":6871},[7655],{"type":2992,"value":7656}," 400",{"type":2987,"tag":3270,"props":7658,"children":7659},{"style":3349},[7660],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":7662,"children":7663},{"style":3415},[7664],{"type":2992,"value":7665}," message",{"type":2987,"tag":3270,"props":7667,"children":7668},{"style":3349},[7669],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":7671,"children":7672},{"style":3349},[7673],{"type":2992,"value":4594},{"type":2987,"tag":3270,"props":7675,"children":7676},{"style":3282},[7677],{"type":2992,"value":7678},"Email not matching curent session",{"type":2987,"tag":3270,"props":7680,"children":7681},{"style":3349},[7682],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":7684,"children":7685},{"style":3349},[7686],{"type":2992,"value":7383},{"type":2987,"tag":3270,"props":7688,"children":7689},{"style":3415},[7690],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":7692,"children":7693},{"class":3272,"line":3759},[7694],{"type":2987,"tag":3270,"props":7695,"children":7696},{"style":3349},[7697],{"type":2992,"value":5323},{"type":2987,"tag":3270,"props":7699,"children":7700},{"class":3272,"line":3792},[7701],{"type":2987,"tag":3270,"props":7702,"children":7703},{"emptyLinePlaceholder":1196},[7704],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":7706,"children":7707},{"class":3272,"line":3847},[7708],{"type":2987,"tag":3270,"props":7709,"children":7710},{"style":3335},[7711],{"type":2992,"value":7712},"    \u002F\u002F If he registers a new account with credentials\n",{"type":2987,"tag":3270,"props":7714,"children":7715},{"class":3272,"line":3856},[7716,7720,7724,7728,7733,7737],{"type":2987,"tag":3270,"props":7717,"children":7718},{"style":4533},[7719],{"type":2992,"value":5874},{"type":2987,"tag":3270,"props":7721,"children":7722},{"style":3344},[7723],{"type":2992,"value":7378},{"type":2987,"tag":3270,"props":7725,"children":7726},{"style":3349},[7727],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":7729,"children":7730},{"style":3506},[7731],{"type":2992,"value":7732},"object",{"type":2987,"tag":3270,"props":7734,"children":7735},{"style":3415},[7736],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":7738,"children":7739},{"style":3349},[7740],{"type":2992,"value":5197},{"type":2987,"tag":3270,"props":7742,"children":7743},{"class":3272,"line":2881},[7744],{"type":2987,"tag":3270,"props":7745,"children":7746},{"style":3335},[7747],{"type":2992,"value":7748},"      \u002F\u002F we want the userName to be a valid email\n",{"type":2987,"tag":3270,"props":7750,"children":7751},{"class":3272,"line":3924},[7752,7757,7761,7765,7769,7774,7779,7783,7787],{"type":2987,"tag":3270,"props":7753,"children":7754},{"style":3415},[7755],{"type":2992,"value":7756},"      userName",{"type":2987,"tag":3270,"props":7758,"children":7759},{"style":3349},[7760],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":7762,"children":7763},{"style":3344},[7764],{"type":2992,"value":7378},{"type":2987,"tag":3270,"props":7766,"children":7767},{"style":3349},[7768],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":7770,"children":7771},{"style":3506},[7772],{"type":2992,"value":7773},"string",{"type":2987,"tag":3270,"props":7775,"children":7776},{"style":3415},[7777],{"type":2992,"value":7778},"()",{"type":2987,"tag":3270,"props":7780,"children":7781},{"style":3349},[7782],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":7784,"children":7785},{"style":3506},[7786],{"type":2992,"value":7567},{"type":2987,"tag":3270,"props":7788,"children":7789},{"style":3415},[7790],{"type":2992,"value":3514},{"type":2987,"tag":3270,"props":7792,"children":7793},{"class":3272,"line":4194},[7794,7798,7802,7806,7811,7815,7819],{"type":2987,"tag":3270,"props":7795,"children":7796},{"style":3349},[7797],{"type":2992,"value":5862},{"type":2987,"tag":3270,"props":7799,"children":7800},{"style":3415},[7801],{"type":2992,"value":5953},{"type":2987,"tag":3270,"props":7803,"children":7804},{"style":3349},[7805],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":7807,"children":7808},{"style":3506},[7809],{"type":2992,"value":7810},"parse",{"type":2987,"tag":3270,"props":7812,"children":7813},{"style":3415},[7814],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":7816,"children":7817},{"style":3344},[7818],{"type":2992,"value":7454},{"type":2987,"tag":3270,"props":7820,"children":7821},{"style":3415},[7822],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":7824,"children":7825},{"class":3272,"line":4202},[7826],{"type":2987,"tag":3270,"props":7827,"children":7828},{"style":3349},[7829],{"type":2992,"value":4611},{"type":2987,"tag":3270,"props":7831,"children":7832},{"class":3272,"line":4211},[7833,7837,7841,7845,7849,7853,7857,7862,7866,7870,7874],{"type":2987,"tag":3270,"props":7834,"children":7835},{"style":3421},[7836],{"type":2992,"value":5735},{"type":2987,"tag":3270,"props":7838,"children":7839},{"style":3415},[7840],{"type":2992,"value":5740},{"type":2987,"tag":3270,"props":7842,"children":7843},{"style":3349},[7844],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":7846,"children":7847},{"style":4365},[7848],{"type":2992,"value":5749},{"type":2987,"tag":3270,"props":7850,"children":7851},{"style":3349},[7852],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":7854,"children":7855},{"style":3349},[7856],{"type":2992,"value":3442},{"type":2987,"tag":3270,"props":7858,"children":7859},{"style":4365},[7860],{"type":2992,"value":7861}," credential",{"type":2987,"tag":3270,"props":7863,"children":7864},{"style":3349},[7865],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":7867,"children":7868},{"style":4365},[7869],{"type":2992,"value":3457},{"type":2987,"tag":3270,"props":7871,"children":7872},{"style":3349},[7873],{"type":2992,"value":4431},{"type":2987,"tag":3270,"props":7875,"children":7876},{"style":3349},[7877],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":7879,"children":7880},{"class":3272,"line":4219},[7881],{"type":2987,"tag":3270,"props":7882,"children":7883},{"style":3335},[7884],{"type":2992,"value":7885},"    \u002F\u002F The credential creation has been successful\n",{"type":2987,"tag":3270,"props":7887,"children":7888},{"class":3272,"line":4260},[7889],{"type":2987,"tag":3270,"props":7890,"children":7891},{"style":3335},[7892],{"type":2992,"value":7893},"    \u002F\u002F We need to create a user if it does not exist\n",{"type":2987,"tag":3270,"props":7895,"children":7896},{"class":3272,"line":4268},[7897,7901,7906,7910,7915],{"type":2987,"tag":3270,"props":7898,"children":7899},{"style":3421},[7900],{"type":2992,"value":7503},{"type":2987,"tag":3270,"props":7902,"children":7903},{"style":3344},[7904],{"type":2992,"value":7905}," db",{"type":2987,"tag":3270,"props":7907,"children":7908},{"style":3349},[7909],{"type":2992,"value":3503},{"type":2987,"tag":3270,"props":7911,"children":7912},{"style":3506},[7913],{"type":2992,"value":7914}," useDatabase",{"type":2987,"tag":3270,"props":7916,"children":7917},{"style":3415},[7918],{"type":2992,"value":3514},{"type":2987,"tag":3270,"props":7920,"children":7921},{"class":3272,"line":4277},[7922],{"type":2987,"tag":3270,"props":7923,"children":7924},{"emptyLinePlaceholder":1196},[7925],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":7927,"children":7928},{"class":3272,"line":4285},[7929],{"type":2987,"tag":3270,"props":7930,"children":7931},{"style":3335},[7932],{"type":2992,"value":7933},"    \u002F\u002F Get the user from the database\n",{"type":2987,"tag":3270,"props":7935,"children":7936},{"class":3272,"line":4322},[7937,7942,7947,7951,7955,7959,7963,7967,7972,7976],{"type":2987,"tag":3270,"props":7938,"children":7939},{"style":3421},[7940],{"type":2992,"value":7941},"    let",{"type":2987,"tag":3270,"props":7943,"children":7944},{"style":3344},[7945],{"type":2992,"value":7946}," dbUser",{"type":2987,"tag":3270,"props":7948,"children":7949},{"style":3349},[7950],{"type":2992,"value":3503},{"type":2987,"tag":3270,"props":7952,"children":7953},{"style":4533},[7954],{"type":2992,"value":4789},{"type":2987,"tag":3270,"props":7956,"children":7957},{"style":3344},[7958],{"type":2992,"value":7905},{"type":2987,"tag":3270,"props":7960,"children":7961},{"style":3349},[7962],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":7964,"children":7965},{"style":3506},[7966],{"type":2992,"value":6861},{"type":2987,"tag":3270,"props":7968,"children":7969},{"style":3349},[7970],{"type":2992,"value":7971},"`",{"type":2987,"tag":3270,"props":7973,"children":7974},{"style":3282},[7975],{"type":2992,"value":5274},{"type":2987,"tag":3270,"props":7977,"children":7978},{"style":3349},[7979],{"type":2992,"value":7980},"`\n",{"type":2987,"tag":3270,"props":7982,"children":7983},{"class":3272,"line":4330},[7984,7988,7992,7997,8002,8006],{"type":2987,"tag":3270,"props":7985,"children":7986},{"style":4533},[7987],{"type":2992,"value":7539},{"type":2987,"tag":3270,"props":7989,"children":7990},{"style":3415},[7991],{"type":2992,"value":4362},{"type":2987,"tag":3270,"props":7993,"children":7994},{"style":3349},[7995],{"type":2992,"value":7996},"!",{"type":2987,"tag":3270,"props":7998,"children":7999},{"style":3344},[8000],{"type":2992,"value":8001},"dbUser",{"type":2987,"tag":3270,"props":8003,"children":8004},{"style":3415},[8005],{"type":2992,"value":7616},{"type":2987,"tag":3270,"props":8007,"children":8008},{"style":3349},[8009],{"type":2992,"value":5197},{"type":2987,"tag":3270,"props":8011,"children":8012},{"class":3272,"line":4339},[8013],{"type":2987,"tag":3270,"props":8014,"children":8015},{"style":3335},[8016],{"type":2992,"value":8017},"      \u002F\u002F Store new user in database & its credentials\n",{"type":2987,"tag":3270,"props":8019,"children":8020},{"class":3272,"line":4347},[8021,8026,8030,8034,8038,8042,8046,8050,8054],{"type":2987,"tag":3270,"props":8022,"children":8023},{"style":3344},[8024],{"type":2992,"value":8025},"      dbUser",{"type":2987,"tag":3270,"props":8027,"children":8028},{"style":3349},[8029],{"type":2992,"value":3503},{"type":2987,"tag":3270,"props":8031,"children":8032},{"style":4533},[8033],{"type":2992,"value":4789},{"type":2987,"tag":3270,"props":8035,"children":8036},{"style":3344},[8037],{"type":2992,"value":7905},{"type":2987,"tag":3270,"props":8039,"children":8040},{"style":3349},[8041],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":8043,"children":8044},{"style":3506},[8045],{"type":2992,"value":6861},{"type":2987,"tag":3270,"props":8047,"children":8048},{"style":3349},[8049],{"type":2992,"value":7971},{"type":2987,"tag":3270,"props":8051,"children":8052},{"style":3282},[8053],{"type":2992,"value":5274},{"type":2987,"tag":3270,"props":8055,"children":8056},{"style":3349},[8057],{"type":2992,"value":7980},{"type":2987,"tag":3270,"props":8059,"children":8060},{"class":3272,"line":4443},[8061],{"type":2987,"tag":3270,"props":8062,"children":8063},{"style":3349},[8064],{"type":2992,"value":5323},{"type":2987,"tag":3270,"props":8066,"children":8068},{"class":3272,"line":8067},31,[8069],{"type":2987,"tag":3270,"props":8070,"children":8071},{"emptyLinePlaceholder":1196},[8072],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":8074,"children":8076},{"class":3272,"line":8075},32,[8077],{"type":2987,"tag":3270,"props":8078,"children":8079},{"style":3335},[8080],{"type":2992,"value":8081},"    \u002F\u002F we now need to store the credential in our database and link it to the user\n",{"type":2987,"tag":3270,"props":8083,"children":8085},{"class":3272,"line":8084},33,[8086,8090,8094,8098,8102,8106,8110],{"type":2987,"tag":3270,"props":8087,"children":8088},{"style":4533},[8089],{"type":2992,"value":5786},{"type":2987,"tag":3270,"props":8091,"children":8092},{"style":3344},[8093],{"type":2992,"value":7905},{"type":2987,"tag":3270,"props":8095,"children":8096},{"style":3349},[8097],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":8099,"children":8100},{"style":3506},[8101],{"type":2992,"value":6861},{"type":2987,"tag":3270,"props":8103,"children":8104},{"style":3349},[8105],{"type":2992,"value":7971},{"type":2987,"tag":3270,"props":8107,"children":8108},{"style":3282},[8109],{"type":2992,"value":5274},{"type":2987,"tag":3270,"props":8111,"children":8112},{"style":3349},[8113],{"type":2992,"value":7980},{"type":2987,"tag":3270,"props":8115,"children":8117},{"class":3272,"line":8116},34,[8118],{"type":2987,"tag":3270,"props":8119,"children":8120},{"emptyLinePlaceholder":1196},[8121],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":8123,"children":8125},{"class":3272,"line":8124},35,[8126],{"type":2987,"tag":3270,"props":8127,"children":8128},{"style":3335},[8129],{"type":2992,"value":8130},"    \u002F\u002F Set the user session\n",{"type":2987,"tag":3270,"props":8132,"children":8134},{"class":3272,"line":8133},36,[8135,8139,8143,8147,8151,8155],{"type":2987,"tag":3270,"props":8136,"children":8137},{"style":4533},[8138],{"type":2992,"value":5786},{"type":2987,"tag":3270,"props":8140,"children":8141},{"style":3506},[8142],{"type":2992,"value":4541},{"type":2987,"tag":3270,"props":8144,"children":8145},{"style":3415},[8146],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":8148,"children":8149},{"style":3344},[8150],{"type":2992,"value":5749},{"type":2987,"tag":3270,"props":8152,"children":8153},{"style":3349},[8154],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":8156,"children":8157},{"style":3349},[8158],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":8160,"children":8162},{"class":3272,"line":8161},37,[8163,8167,8171],{"type":2987,"tag":3270,"props":8164,"children":8165},{"style":3415},[8166],{"type":2992,"value":5814},{"type":2987,"tag":3270,"props":8168,"children":8169},{"style":3349},[8170],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":8172,"children":8173},{"style":3349},[8174],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":8176,"children":8178},{"class":3272,"line":8177},38,[8179,8184,8188,8192,8196],{"type":2987,"tag":3270,"props":8180,"children":8181},{"style":3415},[8182],{"type":2992,"value":8183},"        id",{"type":2987,"tag":3270,"props":8185,"children":8186},{"style":3349},[8187],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":8189,"children":8190},{"style":3344},[8191],{"type":2992,"value":7946},{"type":2987,"tag":3270,"props":8193,"children":8194},{"style":3349},[8195],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":8197,"children":8198},{"style":3344},[8199],{"type":2992,"value":5847},{"type":2987,"tag":3270,"props":8201,"children":8203},{"class":3272,"line":8202},39,[8204],{"type":2987,"tag":3270,"props":8205,"children":8206},{"style":3349},[8207],{"type":2992,"value":8208},"      },\n",{"type":2987,"tag":3270,"props":8210,"children":8212},{"class":3272,"line":8211},40,[8213,8218,8222,8226,8230,8235,8239],{"type":2987,"tag":3270,"props":8214,"children":8215},{"style":3415},[8216],{"type":2992,"value":8217},"      loggedInAt",{"type":2987,"tag":3270,"props":8219,"children":8220},{"style":3349},[8221],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":8223,"children":8224},{"style":3344},[8225],{"type":2992,"value":4697},{"type":2987,"tag":3270,"props":8227,"children":8228},{"style":3349},[8229],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":8231,"children":8232},{"style":3506},[8233],{"type":2992,"value":8234},"now",{"type":2987,"tag":3270,"props":8236,"children":8237},{"style":3415},[8238],{"type":2992,"value":7778},{"type":2987,"tag":3270,"props":8240,"children":8241},{"style":3349},[8242],{"type":2992,"value":5283},{"type":2987,"tag":3270,"props":8244,"children":8246},{"class":3272,"line":8245},41,[8247,8251],{"type":2987,"tag":3270,"props":8248,"children":8249},{"style":3349},[8250],{"type":2992,"value":5862},{"type":2987,"tag":3270,"props":8252,"children":8253},{"style":3415},[8254],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":8256,"children":8258},{"class":3272,"line":8257},42,[8259],{"type":2987,"tag":3270,"props":8260,"children":8261},{"style":3349},[8262],{"type":2992,"value":4611},{"type":2987,"tag":3270,"props":8264,"children":8266},{"class":3272,"line":8265},43,[8267,8271],{"type":2987,"tag":3270,"props":8268,"children":8269},{"style":3349},[8270],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":8272,"children":8273},{"style":3344},[8274],{"type":2992,"value":4713},{"type":2987,"tag":4451,"props":8276,"children":8277},{},[8278],{"type":2987,"tag":2994,"props":8279,"children":8280},{},[8281,8286,8288,8295,8297,8303,8305],{"type":2987,"tag":3270,"props":8282,"children":8283},{},[8284],{"type":2992,"value":8285},"!TIP",{"type":2992,"value":8287},"\nIf you want to plug in and use the ",{"type":2987,"tag":2998,"props":8289,"children":8292},{"href":8290,"rel":8291},"https:\u002F\u002Fgithub.com\u002Fpasskeydeveloper\u002Fpasskey-authenticator-aaguids",[3002],[8293],{"type":2992,"value":8294},"Community sourced list of AAGUIDS",{"type":2992,"value":8296}," to decorate your display of added passkeys, you can access the the ID via ",{"type":2987,"tag":3132,"props":8298,"children":8300},{"className":8299},[],[8301],{"type":2992,"value":8302},"credential.aaguid",{"type":2992,"value":8304}," inside ",{"type":2987,"tag":3132,"props":8306,"children":8308},{"className":8307},[],[8309],{"type":2992,"value":5126},{"type":2987,"tag":3260,"props":8311,"children":8313},{"className":3949,"code":8312,"language":3951,"meta":2861,"style":2861},"\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",[8314],{"type":2987,"tag":3132,"props":8315,"children":8316},{"__ignoreMap":2861},[8317,8325,8349,8357,8394,8442,8450,8482,8546,8553,8561,8569,8577,8589,8597,8604,8641,8649,8696,8703,8711,8735,8799,8806,8818,8825,8873,8881,8889,8912,8955,8962,8970,9001,9008,9015,9042,9057,9080,9087,9118,9129,9136],{"type":2987,"tag":3270,"props":8318,"children":8319},{"class":3272,"line":2947},[8320],{"type":2987,"tag":3270,"props":8321,"children":8322},{"style":3335},[8323],{"type":2992,"value":8324},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts\n",{"type":2987,"tag":3270,"props":8326,"children":8327},{"class":3272,"line":2913},[8328,8332,8336,8341,8345],{"type":2987,"tag":3270,"props":8329,"children":8330},{"style":4533},[8331],{"type":2992,"value":5067},{"type":2987,"tag":3270,"props":8333,"children":8334},{"style":4533},[8335],{"type":2992,"value":5182},{"type":2987,"tag":3270,"props":8337,"children":8338},{"style":3506},[8339],{"type":2992,"value":8340}," defineWebAuthnAuthenticateEventHandler",{"type":2987,"tag":3270,"props":8342,"children":8343},{"style":3344},[8344],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":8346,"children":8347},{"style":3349},[8348],{"type":2992,"value":5197},{"type":2987,"tag":3270,"props":8350,"children":8351},{"class":3272,"line":2897},[8352],{"type":2987,"tag":3270,"props":8353,"children":8354},{"style":3335},[8355],{"type":2992,"value":8356},"  \u002F\u002F Optionally, we can prefetch the credentials if the user gives their userName during login\n",{"type":2987,"tag":3270,"props":8358,"children":8359},{"class":3272,"line":3533},[8360,8364,8369,8373,8377,8381,8386,8390],{"type":2987,"tag":3270,"props":8361,"children":8362},{"style":3421},[8363],{"type":2992,"value":5735},{"type":2987,"tag":3270,"props":8365,"children":8366},{"style":3415},[8367],{"type":2992,"value":8368}," allowCredentials",{"type":2987,"tag":3270,"props":8370,"children":8371},{"style":3349},[8372],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":8374,"children":8375},{"style":4365},[8376],{"type":2992,"value":5749},{"type":2987,"tag":3270,"props":8378,"children":8379},{"style":3349},[8380],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":8382,"children":8383},{"style":4365},[8384],{"type":2992,"value":8385}," userName",{"type":2987,"tag":3270,"props":8387,"children":8388},{"style":3349},[8389],{"type":2992,"value":5953},{"type":2987,"tag":3270,"props":8391,"children":8392},{"style":3349},[8393],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":8395,"children":8396},{"class":3272,"line":3542},[8397,8401,8406,8410,8414,8418,8422,8426,8430,8434,8438],{"type":2987,"tag":3270,"props":8398,"children":8399},{"style":3421},[8400],{"type":2992,"value":7503},{"type":2987,"tag":3270,"props":8402,"children":8403},{"style":3344},[8404],{"type":2992,"value":8405}," credentials",{"type":2987,"tag":3270,"props":8407,"children":8408},{"style":3349},[8409],{"type":2992,"value":3503},{"type":2987,"tag":3270,"props":8411,"children":8412},{"style":4533},[8413],{"type":2992,"value":4789},{"type":2987,"tag":3270,"props":8415,"children":8416},{"style":3506},[8417],{"type":2992,"value":7914},{"type":2987,"tag":3270,"props":8419,"children":8420},{"style":3415},[8421],{"type":2992,"value":7778},{"type":2987,"tag":3270,"props":8423,"children":8424},{"style":3349},[8425],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":8427,"children":8428},{"style":3506},[8429],{"type":2992,"value":6861},{"type":2987,"tag":3270,"props":8431,"children":8432},{"style":3349},[8433],{"type":2992,"value":7971},{"type":2987,"tag":3270,"props":8435,"children":8436},{"style":3282},[8437],{"type":2992,"value":5274},{"type":2987,"tag":3270,"props":8439,"children":8440},{"style":3349},[8441],{"type":2992,"value":7980},{"type":2987,"tag":3270,"props":8443,"children":8444},{"class":3272,"line":3559},[8445],{"type":2987,"tag":3270,"props":8446,"children":8447},{"style":3335},[8448],{"type":2992,"value":8449},"    \u002F\u002F If no credentials are found, the authentication cannot be completed\n",{"type":2987,"tag":3270,"props":8451,"children":8452},{"class":3272,"line":2893},[8453,8457,8461,8465,8469,8473,8478],{"type":2987,"tag":3270,"props":8454,"children":8455},{"style":4533},[8456],{"type":2992,"value":7539},{"type":2987,"tag":3270,"props":8458,"children":8459},{"style":3415},[8460],{"type":2992,"value":4362},{"type":2987,"tag":3270,"props":8462,"children":8463},{"style":3349},[8464],{"type":2992,"value":7996},{"type":2987,"tag":3270,"props":8466,"children":8467},{"style":3344},[8468],{"type":2992,"value":7202},{"type":2987,"tag":3270,"props":8470,"children":8471},{"style":3349},[8472],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":8474,"children":8475},{"style":3344},[8476],{"type":2992,"value":8477},"length",{"type":2987,"tag":3270,"props":8479,"children":8480},{"style":3415},[8481],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":8483,"children":8484},{"class":3272,"line":2889},[8485,8489,8493,8497,8501,8505,8509,8513,8517,8521,8525,8529,8534,8538,8542],{"type":2987,"tag":3270,"props":8486,"children":8487},{"style":4533},[8488],{"type":2992,"value":7628},{"type":2987,"tag":3270,"props":8490,"children":8491},{"style":3506},[8492],{"type":2992,"value":7633},{"type":2987,"tag":3270,"props":8494,"children":8495},{"style":3415},[8496],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":8498,"children":8499},{"style":3349},[8500],{"type":2992,"value":7642},{"type":2987,"tag":3270,"props":8502,"children":8503},{"style":3415},[8504],{"type":2992,"value":7647},{"type":2987,"tag":3270,"props":8506,"children":8507},{"style":3349},[8508],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":8510,"children":8511},{"style":6871},[8512],{"type":2992,"value":7656},{"type":2987,"tag":3270,"props":8514,"children":8515},{"style":3349},[8516],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":8518,"children":8519},{"style":3415},[8520],{"type":2992,"value":7665},{"type":2987,"tag":3270,"props":8522,"children":8523},{"style":3349},[8524],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":8526,"children":8527},{"style":3349},[8528],{"type":2992,"value":4594},{"type":2987,"tag":3270,"props":8530,"children":8531},{"style":3282},[8532],{"type":2992,"value":8533},"User not found",{"type":2987,"tag":3270,"props":8535,"children":8536},{"style":3349},[8537],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":8539,"children":8540},{"style":3349},[8541],{"type":2992,"value":7383},{"type":2987,"tag":3270,"props":8543,"children":8544},{"style":3415},[8545],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":8547,"children":8548},{"class":3272,"line":2885},[8549],{"type":2987,"tag":3270,"props":8550,"children":8551},{"emptyLinePlaceholder":1196},[8552],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":8554,"children":8555},{"class":3272,"line":3721},[8556],{"type":2987,"tag":3270,"props":8557,"children":8558},{"style":3335},[8559],{"type":2992,"value":8560},"    \u002F\u002F If user is found, only allow credentials that are registered\n",{"type":2987,"tag":3270,"props":8562,"children":8563},{"class":3272,"line":3738},[8564],{"type":2987,"tag":3270,"props":8565,"children":8566},{"style":3335},[8567],{"type":2992,"value":8568},"    \u002F\u002F The browser will automatically try to use the credential that it knows about\n",{"type":2987,"tag":3270,"props":8570,"children":8571},{"class":3272,"line":3759},[8572],{"type":2987,"tag":3270,"props":8573,"children":8574},{"style":3335},[8575],{"type":2992,"value":8576},"    \u002F\u002F Skipping the step for the user to select a credential for a better user experience\n",{"type":2987,"tag":3270,"props":8578,"children":8579},{"class":3272,"line":3792},[8580,8584],{"type":2987,"tag":3270,"props":8581,"children":8582},{"style":4533},[8583],{"type":2992,"value":5874},{"type":2987,"tag":3270,"props":8585,"children":8586},{"style":3344},[8587],{"type":2992,"value":8588}," credentials\n",{"type":2987,"tag":3270,"props":8590,"children":8591},{"class":3272,"line":3847},[8592],{"type":2987,"tag":3270,"props":8593,"children":8594},{"style":3335},[8595],{"type":2992,"value":8596},"    \u002F\u002F example: [{ id: '...' }]\n",{"type":2987,"tag":3270,"props":8598,"children":8599},{"class":3272,"line":3856},[8600],{"type":2987,"tag":3270,"props":8601,"children":8602},{"style":3349},[8603],{"type":2992,"value":4611},{"type":2987,"tag":3270,"props":8605,"children":8606},{"class":3272,"line":2881},[8607,8611,8616,8620,8624,8628,8633,8637],{"type":2987,"tag":3270,"props":8608,"children":8609},{"style":3421},[8610],{"type":2992,"value":5735},{"type":2987,"tag":3270,"props":8612,"children":8613},{"style":3415},[8614],{"type":2992,"value":8615}," getCredential",{"type":2987,"tag":3270,"props":8617,"children":8618},{"style":3349},[8619],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":8621,"children":8622},{"style":4365},[8623],{"type":2992,"value":5749},{"type":2987,"tag":3270,"props":8625,"children":8626},{"style":3349},[8627],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":8629,"children":8630},{"style":4365},[8631],{"type":2992,"value":8632}," credentialId",{"type":2987,"tag":3270,"props":8634,"children":8635},{"style":3349},[8636],{"type":2992,"value":5953},{"type":2987,"tag":3270,"props":8638,"children":8639},{"style":3349},[8640],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":8642,"children":8643},{"class":3272,"line":3924},[8644],{"type":2987,"tag":3270,"props":8645,"children":8646},{"style":3335},[8647],{"type":2992,"value":8648},"    \u002F\u002F Look for the credential in our database\n",{"type":2987,"tag":3270,"props":8650,"children":8651},{"class":3272,"line":4194},[8652,8656,8660,8664,8668,8672,8676,8680,8684,8688,8692],{"type":2987,"tag":3270,"props":8653,"children":8654},{"style":3421},[8655],{"type":2992,"value":7503},{"type":2987,"tag":3270,"props":8657,"children":8658},{"style":3344},[8659],{"type":2992,"value":7861},{"type":2987,"tag":3270,"props":8661,"children":8662},{"style":3349},[8663],{"type":2992,"value":3503},{"type":2987,"tag":3270,"props":8665,"children":8666},{"style":4533},[8667],{"type":2992,"value":4789},{"type":2987,"tag":3270,"props":8669,"children":8670},{"style":3506},[8671],{"type":2992,"value":7914},{"type":2987,"tag":3270,"props":8673,"children":8674},{"style":3415},[8675],{"type":2992,"value":7778},{"type":2987,"tag":3270,"props":8677,"children":8678},{"style":3349},[8679],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":8681,"children":8682},{"style":3506},[8683],{"type":2992,"value":6861},{"type":2987,"tag":3270,"props":8685,"children":8686},{"style":3349},[8687],{"type":2992,"value":7971},{"type":2987,"tag":3270,"props":8689,"children":8690},{"style":3282},[8691],{"type":2992,"value":5274},{"type":2987,"tag":3270,"props":8693,"children":8694},{"style":3349},[8695],{"type":2992,"value":7980},{"type":2987,"tag":3270,"props":8697,"children":8698},{"class":3272,"line":4202},[8699],{"type":2987,"tag":3270,"props":8700,"children":8701},{"emptyLinePlaceholder":1196},[8702],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":8704,"children":8705},{"class":3272,"line":4211},[8706],{"type":2987,"tag":3270,"props":8707,"children":8708},{"style":3335},[8709],{"type":2992,"value":8710},"    \u002F\u002F If the credential is not found, there is no account to log in to\n",{"type":2987,"tag":3270,"props":8712,"children":8713},{"class":3272,"line":4219},[8714,8718,8722,8726,8731],{"type":2987,"tag":3270,"props":8715,"children":8716},{"style":4533},[8717],{"type":2992,"value":7539},{"type":2987,"tag":3270,"props":8719,"children":8720},{"style":3415},[8721],{"type":2992,"value":4362},{"type":2987,"tag":3270,"props":8723,"children":8724},{"style":3349},[8725],{"type":2992,"value":7996},{"type":2987,"tag":3270,"props":8727,"children":8728},{"style":3344},[8729],{"type":2992,"value":8730},"credential",{"type":2987,"tag":3270,"props":8732,"children":8733},{"style":3415},[8734],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":8736,"children":8737},{"class":3272,"line":4260},[8738,8742,8746,8750,8754,8758,8762,8766,8770,8774,8778,8782,8787,8791,8795],{"type":2987,"tag":3270,"props":8739,"children":8740},{"style":4533},[8741],{"type":2992,"value":7628},{"type":2987,"tag":3270,"props":8743,"children":8744},{"style":3506},[8745],{"type":2992,"value":7633},{"type":2987,"tag":3270,"props":8747,"children":8748},{"style":3415},[8749],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":8751,"children":8752},{"style":3349},[8753],{"type":2992,"value":7642},{"type":2987,"tag":3270,"props":8755,"children":8756},{"style":3415},[8757],{"type":2992,"value":7647},{"type":2987,"tag":3270,"props":8759,"children":8760},{"style":3349},[8761],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":8763,"children":8764},{"style":6871},[8765],{"type":2992,"value":7656},{"type":2987,"tag":3270,"props":8767,"children":8768},{"style":3349},[8769],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":8771,"children":8772},{"style":3415},[8773],{"type":2992,"value":7665},{"type":2987,"tag":3270,"props":8775,"children":8776},{"style":3349},[8777],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":8779,"children":8780},{"style":3349},[8781],{"type":2992,"value":4594},{"type":2987,"tag":3270,"props":8783,"children":8784},{"style":3282},[8785],{"type":2992,"value":8786},"Credential not found",{"type":2987,"tag":3270,"props":8788,"children":8789},{"style":3349},[8790],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":8792,"children":8793},{"style":3349},[8794],{"type":2992,"value":7383},{"type":2987,"tag":3270,"props":8796,"children":8797},{"style":3415},[8798],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":8800,"children":8801},{"class":3272,"line":4268},[8802],{"type":2987,"tag":3270,"props":8803,"children":8804},{"emptyLinePlaceholder":1196},[8805],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":8807,"children":8808},{"class":3272,"line":4277},[8809,8813],{"type":2987,"tag":3270,"props":8810,"children":8811},{"style":4533},[8812],{"type":2992,"value":5874},{"type":2987,"tag":3270,"props":8814,"children":8815},{"style":3344},[8816],{"type":2992,"value":8817}," credential\n",{"type":2987,"tag":3270,"props":8819,"children":8820},{"class":3272,"line":4285},[8821],{"type":2987,"tag":3270,"props":8822,"children":8823},{"style":3349},[8824],{"type":2992,"value":4611},{"type":2987,"tag":3270,"props":8826,"children":8827},{"class":3272,"line":4322},[8828,8832,8836,8840,8844,8848,8852,8856,8860,8865,8869],{"type":2987,"tag":3270,"props":8829,"children":8830},{"style":3421},[8831],{"type":2992,"value":5735},{"type":2987,"tag":3270,"props":8833,"children":8834},{"style":3415},[8835],{"type":2992,"value":5740},{"type":2987,"tag":3270,"props":8837,"children":8838},{"style":3349},[8839],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":8841,"children":8842},{"style":4365},[8843],{"type":2992,"value":5749},{"type":2987,"tag":3270,"props":8845,"children":8846},{"style":3349},[8847],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":8849,"children":8850},{"style":3349},[8851],{"type":2992,"value":3442},{"type":2987,"tag":3270,"props":8853,"children":8854},{"style":4365},[8855],{"type":2992,"value":7861},{"type":2987,"tag":3270,"props":8857,"children":8858},{"style":3349},[8859],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":8861,"children":8862},{"style":4365},[8863],{"type":2992,"value":8864}," authenticationInfo",{"type":2987,"tag":3270,"props":8866,"children":8867},{"style":3349},[8868],{"type":2992,"value":4431},{"type":2987,"tag":3270,"props":8870,"children":8871},{"style":3349},[8872],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":8874,"children":8875},{"class":3272,"line":4330},[8876],{"type":2987,"tag":3270,"props":8877,"children":8878},{"style":3335},[8879],{"type":2992,"value":8880},"    \u002F\u002F The credential authentication has been successful\n",{"type":2987,"tag":3270,"props":8882,"children":8883},{"class":3272,"line":4339},[8884],{"type":2987,"tag":3270,"props":8885,"children":8886},{"style":3335},[8887],{"type":2992,"value":8888},"    \u002F\u002F We can look it up in our database and get the corresponding user\n",{"type":2987,"tag":3270,"props":8890,"children":8891},{"class":3272,"line":4347},[8892,8896,8900,8904,8908],{"type":2987,"tag":3270,"props":8893,"children":8894},{"style":3421},[8895],{"type":2992,"value":7503},{"type":2987,"tag":3270,"props":8897,"children":8898},{"style":3344},[8899],{"type":2992,"value":7905},{"type":2987,"tag":3270,"props":8901,"children":8902},{"style":3349},[8903],{"type":2992,"value":3503},{"type":2987,"tag":3270,"props":8905,"children":8906},{"style":3506},[8907],{"type":2992,"value":7914},{"type":2987,"tag":3270,"props":8909,"children":8910},{"style":3415},[8911],{"type":2992,"value":3514},{"type":2987,"tag":3270,"props":8913,"children":8914},{"class":3272,"line":4443},[8915,8919,8923,8927,8931,8935,8939,8943,8947,8951],{"type":2987,"tag":3270,"props":8916,"children":8917},{"style":3421},[8918],{"type":2992,"value":7503},{"type":2987,"tag":3270,"props":8920,"children":8921},{"style":3344},[8922],{"type":2992,"value":3457},{"type":2987,"tag":3270,"props":8924,"children":8925},{"style":3349},[8926],{"type":2992,"value":3503},{"type":2987,"tag":3270,"props":8928,"children":8929},{"style":4533},[8930],{"type":2992,"value":4789},{"type":2987,"tag":3270,"props":8932,"children":8933},{"style":3344},[8934],{"type":2992,"value":7905},{"type":2987,"tag":3270,"props":8936,"children":8937},{"style":3349},[8938],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":8940,"children":8941},{"style":3506},[8942],{"type":2992,"value":6861},{"type":2987,"tag":3270,"props":8944,"children":8945},{"style":3349},[8946],{"type":2992,"value":7971},{"type":2987,"tag":3270,"props":8948,"children":8949},{"style":3282},[8950],{"type":2992,"value":5274},{"type":2987,"tag":3270,"props":8952,"children":8953},{"style":3349},[8954],{"type":2992,"value":7980},{"type":2987,"tag":3270,"props":8956,"children":8957},{"class":3272,"line":8067},[8958],{"type":2987,"tag":3270,"props":8959,"children":8960},{"emptyLinePlaceholder":1196},[8961],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":8963,"children":8964},{"class":3272,"line":8075},[8965],{"type":2987,"tag":3270,"props":8966,"children":8967},{"style":3335},[8968],{"type":2992,"value":8969},"    \u002F\u002F Update the counter in the database (authenticationInfo.newCounter)\n",{"type":2987,"tag":3270,"props":8971,"children":8972},{"class":3272,"line":8084},[8973,8977,8981,8985,8989,8993,8997],{"type":2987,"tag":3270,"props":8974,"children":8975},{"style":4533},[8976],{"type":2992,"value":5786},{"type":2987,"tag":3270,"props":8978,"children":8979},{"style":3344},[8980],{"type":2992,"value":7905},{"type":2987,"tag":3270,"props":8982,"children":8983},{"style":3349},[8984],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":8986,"children":8987},{"style":3506},[8988],{"type":2992,"value":6861},{"type":2987,"tag":3270,"props":8990,"children":8991},{"style":3349},[8992],{"type":2992,"value":7971},{"type":2987,"tag":3270,"props":8994,"children":8995},{"style":3282},[8996],{"type":2992,"value":5274},{"type":2987,"tag":3270,"props":8998,"children":8999},{"style":3349},[9000],{"type":2992,"value":7980},{"type":2987,"tag":3270,"props":9002,"children":9003},{"class":3272,"line":8116},[9004],{"type":2987,"tag":3270,"props":9005,"children":9006},{"emptyLinePlaceholder":1196},[9007],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":9009,"children":9010},{"class":3272,"line":8124},[9011],{"type":2987,"tag":3270,"props":9012,"children":9013},{"style":3335},[9014],{"type":2992,"value":8130},{"type":2987,"tag":3270,"props":9016,"children":9017},{"class":3272,"line":8133},[9018,9022,9026,9030,9034,9038],{"type":2987,"tag":3270,"props":9019,"children":9020},{"style":4533},[9021],{"type":2992,"value":5786},{"type":2987,"tag":3270,"props":9023,"children":9024},{"style":3506},[9025],{"type":2992,"value":4541},{"type":2987,"tag":3270,"props":9027,"children":9028},{"style":3415},[9029],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":9031,"children":9032},{"style":3344},[9033],{"type":2992,"value":5749},{"type":2987,"tag":3270,"props":9035,"children":9036},{"style":3349},[9037],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":9039,"children":9040},{"style":3349},[9041],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":9043,"children":9044},{"class":3272,"line":8161},[9045,9049,9053],{"type":2987,"tag":3270,"props":9046,"children":9047},{"style":3415},[9048],{"type":2992,"value":5814},{"type":2987,"tag":3270,"props":9050,"children":9051},{"style":3349},[9052],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":9054,"children":9055},{"style":3349},[9056],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":9058,"children":9059},{"class":3272,"line":8177},[9060,9064,9068,9072,9076],{"type":2987,"tag":3270,"props":9061,"children":9062},{"style":3415},[9063],{"type":2992,"value":8183},{"type":2987,"tag":3270,"props":9065,"children":9066},{"style":3349},[9067],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":9069,"children":9070},{"style":3344},[9071],{"type":2992,"value":3457},{"type":2987,"tag":3270,"props":9073,"children":9074},{"style":3349},[9075],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":9077,"children":9078},{"style":3344},[9079],{"type":2992,"value":5847},{"type":2987,"tag":3270,"props":9081,"children":9082},{"class":3272,"line":8202},[9083],{"type":2987,"tag":3270,"props":9084,"children":9085},{"style":3349},[9086],{"type":2992,"value":8208},{"type":2987,"tag":3270,"props":9088,"children":9089},{"class":3272,"line":8211},[9090,9094,9098,9102,9106,9110,9114],{"type":2987,"tag":3270,"props":9091,"children":9092},{"style":3415},[9093],{"type":2992,"value":8217},{"type":2987,"tag":3270,"props":9095,"children":9096},{"style":3349},[9097],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":9099,"children":9100},{"style":3344},[9101],{"type":2992,"value":4697},{"type":2987,"tag":3270,"props":9103,"children":9104},{"style":3349},[9105],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":9107,"children":9108},{"style":3506},[9109],{"type":2992,"value":8234},{"type":2987,"tag":3270,"props":9111,"children":9112},{"style":3415},[9113],{"type":2992,"value":7778},{"type":2987,"tag":3270,"props":9115,"children":9116},{"style":3349},[9117],{"type":2992,"value":5283},{"type":2987,"tag":3270,"props":9119,"children":9120},{"class":3272,"line":8245},[9121,9125],{"type":2987,"tag":3270,"props":9122,"children":9123},{"style":3349},[9124],{"type":2992,"value":5862},{"type":2987,"tag":3270,"props":9126,"children":9127},{"style":3415},[9128],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":9130,"children":9131},{"class":3272,"line":8257},[9132],{"type":2987,"tag":3270,"props":9133,"children":9134},{"style":3349},[9135],{"type":2992,"value":4611},{"type":2987,"tag":3270,"props":9137,"children":9138},{"class":3272,"line":8265},[9139,9143],{"type":2987,"tag":3270,"props":9140,"children":9141},{"style":3349},[9142],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":9144,"children":9145},{"style":3344},[9146],{"type":2992,"value":4713},{"type":2987,"tag":4451,"props":9148,"children":9149},{},[9150],{"type":2987,"tag":2994,"props":9151,"children":9152},{},[9153,9157,9159,9164,9166,9172,9173,9179],{"type":2987,"tag":3270,"props":9154,"children":9155},{},[9156],{"type":2992,"value":4461},{"type":2992,"value":9158},"\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":2987,"tag":3942,"props":9160,"children":9161},{},[9162],{"type":2992,"value":9163},"which is highly recommended",{"type":2992,"value":9165},"), the ",{"type":2987,"tag":3132,"props":9167,"children":9169},{"className":9168},[],[9170],{"type":2992,"value":9171},"storeChallenge",{"type":2992,"value":6103},{"type":2987,"tag":3132,"props":9174,"children":9176},{"className":9175},[],[9177],{"type":2992,"value":9178},"getChallenge",{"type":2992,"value":9180}," 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":2987,"tag":4451,"props":9182,"children":9183},{},[9184],{"type":2987,"tag":3260,"props":9185,"children":9187},{"className":3949,"code":9186,"language":3951,"meta":2861,"style":2861},"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",[9188],{"type":2987,"tag":3132,"props":9189,"children":9190},{"__ignoreMap":2861},[9191,9214,9260,9268,9333,9340,9376,9440,9447,9455,9507,9514,9538,9602,9609,9621,9628,9668,9676,9683],{"type":2987,"tag":3270,"props":9192,"children":9193},{"class":3272,"line":2947},[9194,9198,9202,9206,9210],{"type":2987,"tag":3270,"props":9195,"children":9196},{"style":4533},[9197],{"type":2992,"value":5067},{"type":2987,"tag":3270,"props":9199,"children":9200},{"style":4533},[9201],{"type":2992,"value":5182},{"type":2987,"tag":3270,"props":9203,"children":9204},{"style":3506},[9205],{"type":2992,"value":8340},{"type":2987,"tag":3270,"props":9207,"children":9208},{"style":3344},[9209],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":9211,"children":9212},{"style":3349},[9213],{"type":2992,"value":5197},{"type":2987,"tag":3270,"props":9215,"children":9216},{"class":3272,"line":2913},[9217,9221,9226,9230,9234,9238,9243,9247,9252,9256],{"type":2987,"tag":3270,"props":9218,"children":9219},{"style":3421},[9220],{"type":2992,"value":5735},{"type":2987,"tag":3270,"props":9222,"children":9223},{"style":3415},[9224],{"type":2992,"value":9225}," storeChallenge",{"type":2987,"tag":3270,"props":9227,"children":9228},{"style":3349},[9229],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":9231,"children":9232},{"style":4365},[9233],{"type":2992,"value":5749},{"type":2987,"tag":3270,"props":9235,"children":9236},{"style":3349},[9237],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":9239,"children":9240},{"style":4365},[9241],{"type":2992,"value":9242}," challenge",{"type":2987,"tag":3270,"props":9244,"children":9245},{"style":3349},[9246],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":9248,"children":9249},{"style":4365},[9250],{"type":2992,"value":9251}," attemptId",{"type":2987,"tag":3270,"props":9253,"children":9254},{"style":3349},[9255],{"type":2992,"value":5953},{"type":2987,"tag":3270,"props":9257,"children":9258},{"style":3349},[9259],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":9261,"children":9262},{"class":3272,"line":2897},[9263],{"type":2987,"tag":3270,"props":9264,"children":9265},{"style":3335},[9266],{"type":2992,"value":9267},"    \u002F\u002F Store the challenge in a KV store or DB\n",{"type":2987,"tag":3270,"props":9269,"children":9270},{"class":3272,"line":3533},[9271,9275,9280,9284,9288,9293,9297,9301,9306,9311,9316,9321,9325,9329],{"type":2987,"tag":3270,"props":9272,"children":9273},{"style":4533},[9274],{"type":2992,"value":5786},{"type":2987,"tag":3270,"props":9276,"children":9277},{"style":3506},[9278],{"type":2992,"value":9279}," useStorage",{"type":2987,"tag":3270,"props":9281,"children":9282},{"style":3415},[9283],{"type":2992,"value":7778},{"type":2987,"tag":3270,"props":9285,"children":9286},{"style":3349},[9287],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":9289,"children":9290},{"style":3506},[9291],{"type":2992,"value":9292},"setItem",{"type":2987,"tag":3270,"props":9294,"children":9295},{"style":3415},[9296],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":9298,"children":9299},{"style":3349},[9300],{"type":2992,"value":7971},{"type":2987,"tag":3270,"props":9302,"children":9303},{"style":3282},[9304],{"type":2992,"value":9305},"attempt:",{"type":2987,"tag":3270,"props":9307,"children":9308},{"style":3349},[9309],{"type":2992,"value":9310},"${",{"type":2987,"tag":3270,"props":9312,"children":9313},{"style":3344},[9314],{"type":2992,"value":9315},"attemptId",{"type":2987,"tag":3270,"props":9317,"children":9318},{"style":3349},[9319],{"type":2992,"value":9320},"}`",{"type":2987,"tag":3270,"props":9322,"children":9323},{"style":3349},[9324],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":9326,"children":9327},{"style":3344},[9328],{"type":2992,"value":9242},{"type":2987,"tag":3270,"props":9330,"children":9331},{"style":3415},[9332],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":9334,"children":9335},{"class":3272,"line":3542},[9336],{"type":2987,"tag":3270,"props":9337,"children":9338},{"style":3349},[9339],{"type":2992,"value":4611},{"type":2987,"tag":3270,"props":9341,"children":9342},{"class":3272,"line":3559},[9343,9347,9352,9356,9360,9364,9368,9372],{"type":2987,"tag":3270,"props":9344,"children":9345},{"style":3421},[9346],{"type":2992,"value":5735},{"type":2987,"tag":3270,"props":9348,"children":9349},{"style":3415},[9350],{"type":2992,"value":9351}," getChallenge",{"type":2987,"tag":3270,"props":9353,"children":9354},{"style":3349},[9355],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":9357,"children":9358},{"style":4365},[9359],{"type":2992,"value":5749},{"type":2987,"tag":3270,"props":9361,"children":9362},{"style":3349},[9363],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":9365,"children":9366},{"style":4365},[9367],{"type":2992,"value":9251},{"type":2987,"tag":3270,"props":9369,"children":9370},{"style":3349},[9371],{"type":2992,"value":5953},{"type":2987,"tag":3270,"props":9373,"children":9374},{"style":3349},[9375],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":9377,"children":9378},{"class":3272,"line":2893},[9379,9383,9387,9391,9395,9399,9403,9407,9412,9416,9420,9424,9428,9432,9436],{"type":2987,"tag":3270,"props":9380,"children":9381},{"style":3421},[9382],{"type":2992,"value":7503},{"type":2987,"tag":3270,"props":9384,"children":9385},{"style":3344},[9386],{"type":2992,"value":9242},{"type":2987,"tag":3270,"props":9388,"children":9389},{"style":3349},[9390],{"type":2992,"value":3503},{"type":2987,"tag":3270,"props":9392,"children":9393},{"style":4533},[9394],{"type":2992,"value":4789},{"type":2987,"tag":3270,"props":9396,"children":9397},{"style":3506},[9398],{"type":2992,"value":9279},{"type":2987,"tag":3270,"props":9400,"children":9401},{"style":3415},[9402],{"type":2992,"value":7778},{"type":2987,"tag":3270,"props":9404,"children":9405},{"style":3349},[9406],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":9408,"children":9409},{"style":3506},[9410],{"type":2992,"value":9411},"getItem",{"type":2987,"tag":3270,"props":9413,"children":9414},{"style":3415},[9415],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":9417,"children":9418},{"style":3349},[9419],{"type":2992,"value":7971},{"type":2987,"tag":3270,"props":9421,"children":9422},{"style":3282},[9423],{"type":2992,"value":9305},{"type":2987,"tag":3270,"props":9425,"children":9426},{"style":3349},[9427],{"type":2992,"value":9310},{"type":2987,"tag":3270,"props":9429,"children":9430},{"style":3344},[9431],{"type":2992,"value":9315},{"type":2987,"tag":3270,"props":9433,"children":9434},{"style":3349},[9435],{"type":2992,"value":9320},{"type":2987,"tag":3270,"props":9437,"children":9438},{"style":3415},[9439],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":9441,"children":9442},{"class":3272,"line":2889},[9443],{"type":2987,"tag":3270,"props":9444,"children":9445},{"emptyLinePlaceholder":1196},[9446],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":9448,"children":9449},{"class":3272,"line":2885},[9450],{"type":2987,"tag":3270,"props":9451,"children":9452},{"style":3335},[9453],{"type":2992,"value":9454},"    \u002F\u002F Make sure to always remove the attempt because they are single use only!\n",{"type":2987,"tag":3270,"props":9456,"children":9457},{"class":3272,"line":3721},[9458,9462,9466,9470,9474,9479,9483,9487,9491,9495,9499,9503],{"type":2987,"tag":3270,"props":9459,"children":9460},{"style":4533},[9461],{"type":2992,"value":5786},{"type":2987,"tag":3270,"props":9463,"children":9464},{"style":3506},[9465],{"type":2992,"value":9279},{"type":2987,"tag":3270,"props":9467,"children":9468},{"style":3415},[9469],{"type":2992,"value":7778},{"type":2987,"tag":3270,"props":9471,"children":9472},{"style":3349},[9473],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":9475,"children":9476},{"style":3506},[9477],{"type":2992,"value":9478},"removeItem",{"type":2987,"tag":3270,"props":9480,"children":9481},{"style":3415},[9482],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":9484,"children":9485},{"style":3349},[9486],{"type":2992,"value":7971},{"type":2987,"tag":3270,"props":9488,"children":9489},{"style":3282},[9490],{"type":2992,"value":9305},{"type":2987,"tag":3270,"props":9492,"children":9493},{"style":3349},[9494],{"type":2992,"value":9310},{"type":2987,"tag":3270,"props":9496,"children":9497},{"style":3344},[9498],{"type":2992,"value":9315},{"type":2987,"tag":3270,"props":9500,"children":9501},{"style":3349},[9502],{"type":2992,"value":9320},{"type":2987,"tag":3270,"props":9504,"children":9505},{"style":3415},[9506],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":9508,"children":9509},{"class":3272,"line":3738},[9510],{"type":2987,"tag":3270,"props":9511,"children":9512},{"emptyLinePlaceholder":1196},[9513],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":9515,"children":9516},{"class":3272,"line":3759},[9517,9521,9525,9529,9534],{"type":2987,"tag":3270,"props":9518,"children":9519},{"style":4533},[9520],{"type":2992,"value":7539},{"type":2987,"tag":3270,"props":9522,"children":9523},{"style":3415},[9524],{"type":2992,"value":4362},{"type":2987,"tag":3270,"props":9526,"children":9527},{"style":3349},[9528],{"type":2992,"value":7996},{"type":2987,"tag":3270,"props":9530,"children":9531},{"style":3344},[9532],{"type":2992,"value":9533},"challenge",{"type":2987,"tag":3270,"props":9535,"children":9536},{"style":3415},[9537],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":9539,"children":9540},{"class":3272,"line":3792},[9541,9545,9549,9553,9557,9561,9565,9569,9573,9577,9581,9585,9590,9594,9598],{"type":2987,"tag":3270,"props":9542,"children":9543},{"style":4533},[9544],{"type":2992,"value":7628},{"type":2987,"tag":3270,"props":9546,"children":9547},{"style":3506},[9548],{"type":2992,"value":7633},{"type":2987,"tag":3270,"props":9550,"children":9551},{"style":3415},[9552],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":9554,"children":9555},{"style":3349},[9556],{"type":2992,"value":7642},{"type":2987,"tag":3270,"props":9558,"children":9559},{"style":3415},[9560],{"type":2992,"value":7647},{"type":2987,"tag":3270,"props":9562,"children":9563},{"style":3349},[9564],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":9566,"children":9567},{"style":6871},[9568],{"type":2992,"value":7656},{"type":2987,"tag":3270,"props":9570,"children":9571},{"style":3349},[9572],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":9574,"children":9575},{"style":3415},[9576],{"type":2992,"value":7665},{"type":2987,"tag":3270,"props":9578,"children":9579},{"style":3349},[9580],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":9582,"children":9583},{"style":3349},[9584],{"type":2992,"value":4594},{"type":2987,"tag":3270,"props":9586,"children":9587},{"style":3282},[9588],{"type":2992,"value":9589},"Challenge expired",{"type":2987,"tag":3270,"props":9591,"children":9592},{"style":3349},[9593],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":9595,"children":9596},{"style":3349},[9597],{"type":2992,"value":7383},{"type":2987,"tag":3270,"props":9599,"children":9600},{"style":3415},[9601],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":9603,"children":9604},{"class":3272,"line":3847},[9605],{"type":2987,"tag":3270,"props":9606,"children":9607},{"emptyLinePlaceholder":1196},[9608],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":9610,"children":9611},{"class":3272,"line":3856},[9612,9616],{"type":2987,"tag":3270,"props":9613,"children":9614},{"style":4533},[9615],{"type":2992,"value":5874},{"type":2987,"tag":3270,"props":9617,"children":9618},{"style":3344},[9619],{"type":2992,"value":9620}," challenge\n",{"type":2987,"tag":3270,"props":9622,"children":9623},{"class":3272,"line":2881},[9624],{"type":2987,"tag":3270,"props":9625,"children":9626},{"style":3349},[9627],{"type":2992,"value":4611},{"type":2987,"tag":3270,"props":9629,"children":9630},{"class":3272,"line":3924},[9631,9635,9639,9643,9647,9651,9655,9660,9664],{"type":2987,"tag":3270,"props":9632,"children":9633},{"style":3421},[9634],{"type":2992,"value":5735},{"type":2987,"tag":3270,"props":9636,"children":9637},{"style":3415},[9638],{"type":2992,"value":5740},{"type":2987,"tag":3270,"props":9640,"children":9641},{"style":3349},[9642],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":9644,"children":9645},{"style":4365},[9646],{"type":2992,"value":5749},{"type":2987,"tag":3270,"props":9648,"children":9649},{"style":3349},[9650],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":9652,"children":9653},{"style":3349},[9654],{"type":2992,"value":3442},{"type":2987,"tag":3270,"props":9656,"children":9657},{"style":4365},[9658],{"type":2992,"value":9659}," authenticator",{"type":2987,"tag":3270,"props":9661,"children":9662},{"style":3349},[9663],{"type":2992,"value":4431},{"type":2987,"tag":3270,"props":9665,"children":9666},{"style":3349},[9667],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":9669,"children":9670},{"class":3272,"line":4194},[9671],{"type":2987,"tag":3270,"props":9672,"children":9673},{"style":3335},[9674],{"type":2992,"value":9675},"    \u002F\u002F ...\n",{"type":2987,"tag":3270,"props":9677,"children":9678},{"class":3272,"line":4202},[9679],{"type":2987,"tag":3270,"props":9680,"children":9681},{"style":3349},[9682],{"type":2992,"value":4611},{"type":2987,"tag":3270,"props":9684,"children":9685},{"class":3272,"line":4211},[9686,9690],{"type":2987,"tag":3270,"props":9687,"children":9688},{"style":3349},[9689],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":9691,"children":9692},{"style":3344},[9693],{"type":2992,"value":4713},{"type":2987,"tag":2994,"props":9695,"children":9696},{},[9697],{"type":2992,"value":9698},"On the frontend it is as simple as:",{"type":2987,"tag":3260,"props":9700,"children":9702},{"className":3398,"code":9701,"language":3400,"meta":2861,"style":2861},"\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",[9703],{"type":2987,"tag":3132,"props":9704,"children":9705},{"__ignoreMap":2861},[9706,9746,9792,9826,9859,9870,9910,9917,9951,9977,10026,10057,10064,10071,10095,10127,10154,10161,10176,10183,10198,10236,10296,10350,10365,10401,10456,10508,10523],{"type":2987,"tag":3270,"props":9707,"children":9708},{"class":3272,"line":2947},[9709,9713,9717,9721,9726,9730,9734,9738,9742],{"type":2987,"tag":3270,"props":9710,"children":9711},{"style":3349},[9712],{"type":2992,"value":3412},{"type":2987,"tag":3270,"props":9714,"children":9715},{"style":3415},[9716],{"type":2992,"value":3418},{"type":2987,"tag":3270,"props":9718,"children":9719},{"style":3421},[9720],{"type":2992,"value":3424},{"type":2987,"tag":3270,"props":9722,"children":9723},{"style":3421},[9724],{"type":2992,"value":9725}," lang",{"type":2987,"tag":3270,"props":9727,"children":9728},{"style":3349},[9729],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":9731,"children":9732},{"style":3349},[9733],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":9735,"children":9736},{"style":3282},[9737],{"type":2992,"value":3951},{"type":2987,"tag":3270,"props":9739,"children":9740},{"style":3349},[9741],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":9743,"children":9744},{"style":3349},[9745],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":9747,"children":9748},{"class":3272,"line":2913},[9749,9753,9757,9762,9766,9771,9775,9779,9784,9788],{"type":2987,"tag":3270,"props":9750,"children":9751},{"style":3421},[9752],{"type":2992,"value":3437},{"type":2987,"tag":3270,"props":9754,"children":9755},{"style":3349},[9756],{"type":2992,"value":3442},{"type":2987,"tag":3270,"props":9758,"children":9759},{"style":3344},[9760],{"type":2992,"value":9761}," register",{"type":2987,"tag":3270,"props":9763,"children":9764},{"style":3349},[9765],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":9767,"children":9768},{"style":3344},[9769],{"type":2992,"value":9770}," authenticate ",{"type":2987,"tag":3270,"props":9772,"children":9773},{"style":3349},[9774],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":9776,"children":9777},{"style":3349},[9778],{"type":2992,"value":3503},{"type":2987,"tag":3270,"props":9780,"children":9781},{"style":3506},[9782],{"type":2992,"value":9783}," useWebAuthn",{"type":2987,"tag":3270,"props":9785,"children":9786},{"style":3344},[9787],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":9789,"children":9790},{"style":3349},[9791],{"type":2992,"value":5197},{"type":2987,"tag":3270,"props":9793,"children":9794},{"class":3272,"line":2897},[9795,9800,9804,9808,9813,9817,9821],{"type":2987,"tag":3270,"props":9796,"children":9797},{"style":3415},[9798],{"type":2992,"value":9799},"  registerEndpoint",{"type":2987,"tag":3270,"props":9801,"children":9802},{"style":3349},[9803],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":9805,"children":9806},{"style":3349},[9807],{"type":2992,"value":4594},{"type":2987,"tag":3270,"props":9809,"children":9810},{"style":3282},[9811],{"type":2992,"value":9812},"\u002Fapi\u002Fwebauthn\u002Fregister",{"type":2987,"tag":3270,"props":9814,"children":9815},{"style":3349},[9816],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":9818,"children":9819},{"style":3349},[9820],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":9822,"children":9823},{"style":3335},[9824],{"type":2992,"value":9825}," \u002F\u002F Default\n",{"type":2987,"tag":3270,"props":9827,"children":9828},{"class":3272,"line":3533},[9829,9834,9838,9842,9847,9851,9855],{"type":2987,"tag":3270,"props":9830,"children":9831},{"style":3415},[9832],{"type":2992,"value":9833},"  authenticateEndpoint",{"type":2987,"tag":3270,"props":9835,"children":9836},{"style":3349},[9837],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":9839,"children":9840},{"style":3349},[9841],{"type":2992,"value":4594},{"type":2987,"tag":3270,"props":9843,"children":9844},{"style":3282},[9845],{"type":2992,"value":9846},"\u002Fapi\u002Fwebauthn\u002Fauthenticate",{"type":2987,"tag":3270,"props":9848,"children":9849},{"style":3349},[9850],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":9852,"children":9853},{"style":3349},[9854],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":9856,"children":9857},{"style":3335},[9858],{"type":2992,"value":9825},{"type":2987,"tag":3270,"props":9860,"children":9861},{"class":3272,"line":3542},[9862,9866],{"type":2987,"tag":3270,"props":9863,"children":9864},{"style":3349},[9865],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":9867,"children":9868},{"style":3344},[9869],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":9871,"children":9872},{"class":3272,"line":3559},[9873,9877,9881,9885,9889,9894,9898,9902,9906],{"type":2987,"tag":3270,"props":9874,"children":9875},{"style":3421},[9876],{"type":2992,"value":3437},{"type":2987,"tag":3270,"props":9878,"children":9879},{"style":3349},[9880],{"type":2992,"value":3442},{"type":2987,"tag":3270,"props":9882,"children":9883},{"style":3415},[9884],{"type":2992,"value":3475},{"type":2987,"tag":3270,"props":9886,"children":9887},{"style":3349},[9888],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":9890,"children":9891},{"style":3344},[9892],{"type":2992,"value":9893}," fetchUserSession ",{"type":2987,"tag":3270,"props":9895,"children":9896},{"style":3349},[9897],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":9899,"children":9900},{"style":3349},[9901],{"type":2992,"value":3503},{"type":2987,"tag":3270,"props":9903,"children":9904},{"style":3506},[9905],{"type":2992,"value":3509},{"type":2987,"tag":3270,"props":9907,"children":9908},{"style":3344},[9909],{"type":2992,"value":3514},{"type":2987,"tag":3270,"props":9911,"children":9912},{"class":3272,"line":2893},[9913],{"type":2987,"tag":3270,"props":9914,"children":9915},{"emptyLinePlaceholder":1196},[9916],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":9918,"children":9919},{"class":3272,"line":2889},[9920,9924,9929,9933,9938,9942,9947],{"type":2987,"tag":3270,"props":9921,"children":9922},{"style":3421},[9923],{"type":2992,"value":3437},{"type":2987,"tag":3270,"props":9925,"children":9926},{"style":3344},[9927],{"type":2992,"value":9928}," userName ",{"type":2987,"tag":3270,"props":9930,"children":9931},{"style":3349},[9932],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":9934,"children":9935},{"style":3506},[9936],{"type":2992,"value":9937}," ref",{"type":2987,"tag":3270,"props":9939,"children":9940},{"style":3344},[9941],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":9943,"children":9944},{"style":3349},[9945],{"type":2992,"value":9946},"''",{"type":2987,"tag":3270,"props":9948,"children":9949},{"style":3344},[9950],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":9952,"children":9953},{"class":3272,"line":2885},[9954,9959,9964,9969,9973],{"type":2987,"tag":3270,"props":9955,"children":9956},{"style":3421},[9957],{"type":2992,"value":9958},"async",{"type":2987,"tag":3270,"props":9960,"children":9961},{"style":3421},[9962],{"type":2992,"value":9963}," function",{"type":2987,"tag":3270,"props":9965,"children":9966},{"style":3506},[9967],{"type":2992,"value":9968}," signUp",{"type":2987,"tag":3270,"props":9970,"children":9971},{"style":3349},[9972],{"type":2992,"value":7778},{"type":2987,"tag":3270,"props":9974,"children":9975},{"style":3349},[9976],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":9978,"children":9979},{"class":3272,"line":3721},[9980,9985,9989,9993,9997,10001,10005,10009,10013,10018,10022],{"type":2987,"tag":3270,"props":9981,"children":9982},{"style":4533},[9983],{"type":2992,"value":9984},"  await",{"type":2987,"tag":3270,"props":9986,"children":9987},{"style":3506},[9988],{"type":2992,"value":9761},{"type":2987,"tag":3270,"props":9990,"children":9991},{"style":3415},[9992],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":9994,"children":9995},{"style":3349},[9996],{"type":2992,"value":7642},{"type":2987,"tag":3270,"props":9998,"children":9999},{"style":3415},[10000],{"type":2992,"value":8385},{"type":2987,"tag":3270,"props":10002,"children":10003},{"style":3349},[10004],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":10006,"children":10007},{"style":3344},[10008],{"type":2992,"value":8385},{"type":2987,"tag":3270,"props":10010,"children":10011},{"style":3349},[10012],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":10014,"children":10015},{"style":3344},[10016],{"type":2992,"value":10017},"value",{"type":2987,"tag":3270,"props":10019,"children":10020},{"style":3349},[10021],{"type":2992,"value":7383},{"type":2987,"tag":3270,"props":10023,"children":10024},{"style":3415},[10025],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":10027,"children":10028},{"class":3272,"line":3738},[10029,10034,10039,10043,10048,10052],{"type":2987,"tag":3270,"props":10030,"children":10031},{"style":3349},[10032],{"type":2992,"value":10033},"    .",{"type":2987,"tag":3270,"props":10035,"children":10036},{"style":3506},[10037],{"type":2992,"value":10038},"then",{"type":2987,"tag":3270,"props":10040,"children":10041},{"style":3415},[10042],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":10044,"children":10045},{"style":3344},[10046],{"type":2992,"value":10047},"fetchUserSession",{"type":2987,"tag":3270,"props":10049,"children":10050},{"style":3415},[10051],{"type":2992,"value":7616},{"type":2987,"tag":3270,"props":10053,"children":10054},{"style":3335},[10055],{"type":2992,"value":10056},"\u002F\u002F refetch the user session\n",{"type":2987,"tag":3270,"props":10058,"children":10059},{"class":3272,"line":3759},[10060],{"type":2987,"tag":3270,"props":10061,"children":10062},{"style":3349},[10063],{"type":2992,"value":4449},{"type":2987,"tag":3270,"props":10065,"children":10066},{"class":3272,"line":3792},[10067],{"type":2987,"tag":3270,"props":10068,"children":10069},{"emptyLinePlaceholder":1196},[10070],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":10072,"children":10073},{"class":3272,"line":3847},[10074,10078,10082,10087,10091],{"type":2987,"tag":3270,"props":10075,"children":10076},{"style":3421},[10077],{"type":2992,"value":9958},{"type":2987,"tag":3270,"props":10079,"children":10080},{"style":3421},[10081],{"type":2992,"value":9963},{"type":2987,"tag":3270,"props":10083,"children":10084},{"style":3506},[10085],{"type":2992,"value":10086}," signIn",{"type":2987,"tag":3270,"props":10088,"children":10089},{"style":3349},[10090],{"type":2992,"value":7778},{"type":2987,"tag":3270,"props":10092,"children":10093},{"style":3349},[10094],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":10096,"children":10097},{"class":3272,"line":3856},[10098,10102,10107,10111,10115,10119,10123],{"type":2987,"tag":3270,"props":10099,"children":10100},{"style":4533},[10101],{"type":2992,"value":9984},{"type":2987,"tag":3270,"props":10103,"children":10104},{"style":3506},[10105],{"type":2992,"value":10106}," authenticate",{"type":2987,"tag":3270,"props":10108,"children":10109},{"style":3415},[10110],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":10112,"children":10113},{"style":3344},[10114],{"type":2992,"value":7611},{"type":2987,"tag":3270,"props":10116,"children":10117},{"style":3349},[10118],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":10120,"children":10121},{"style":3344},[10122],{"type":2992,"value":10017},{"type":2987,"tag":3270,"props":10124,"children":10125},{"style":3415},[10126],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":10128,"children":10129},{"class":3272,"line":2881},[10130,10134,10138,10142,10146,10150],{"type":2987,"tag":3270,"props":10131,"children":10132},{"style":3349},[10133],{"type":2992,"value":10033},{"type":2987,"tag":3270,"props":10135,"children":10136},{"style":3506},[10137],{"type":2992,"value":10038},{"type":2987,"tag":3270,"props":10139,"children":10140},{"style":3415},[10141],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":10143,"children":10144},{"style":3344},[10145],{"type":2992,"value":10047},{"type":2987,"tag":3270,"props":10147,"children":10148},{"style":3415},[10149],{"type":2992,"value":7616},{"type":2987,"tag":3270,"props":10151,"children":10152},{"style":3335},[10153],{"type":2992,"value":10056},{"type":2987,"tag":3270,"props":10155,"children":10156},{"class":3272,"line":3924},[10157],{"type":2987,"tag":3270,"props":10158,"children":10159},{"style":3349},[10160],{"type":2992,"value":4449},{"type":2987,"tag":3270,"props":10162,"children":10163},{"class":3272,"line":4194},[10164,10168,10172],{"type":2987,"tag":3270,"props":10165,"children":10166},{"style":3349},[10167],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":10169,"children":10170},{"style":3415},[10171],{"type":2992,"value":3418},{"type":2987,"tag":3270,"props":10173,"children":10174},{"style":3349},[10175],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":10177,"children":10178},{"class":3272,"line":4202},[10179],{"type":2987,"tag":3270,"props":10180,"children":10181},{"emptyLinePlaceholder":1196},[10182],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":10184,"children":10185},{"class":3272,"line":4211},[10186,10190,10194],{"type":2987,"tag":3270,"props":10187,"children":10188},{"style":3349},[10189],{"type":2992,"value":3412},{"type":2987,"tag":3270,"props":10191,"children":10192},{"style":3415},[10193],{"type":2992,"value":3552},{"type":2987,"tag":3270,"props":10195,"children":10196},{"style":3349},[10197],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":10199,"children":10200},{"class":3272,"line":4219},[10201,10205,10210,10215,10219,10223,10228,10232],{"type":2987,"tag":3270,"props":10202,"children":10203},{"style":3349},[10204],{"type":2992,"value":3565},{"type":2987,"tag":3270,"props":10206,"children":10207},{"style":3415},[10208],{"type":2992,"value":10209},"form",{"type":2987,"tag":3270,"props":10211,"children":10212},{"style":3421},[10213],{"type":2992,"value":10214}," @submit.prevent",{"type":2987,"tag":3270,"props":10216,"children":10217},{"style":3349},[10218],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":10220,"children":10221},{"style":3349},[10222],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":10224,"children":10225},{"style":3282},[10226],{"type":2992,"value":10227},"signUp",{"type":2987,"tag":3270,"props":10229,"children":10230},{"style":3349},[10231],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":10233,"children":10234},{"style":3349},[10235],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":10237,"children":10238},{"class":3272,"line":4260},[10239,10243,10248,10253,10257,10261,10265,10269,10274,10278,10282,10287,10291],{"type":2987,"tag":3270,"props":10240,"children":10241},{"style":3349},[10242],{"type":2992,"value":3605},{"type":2987,"tag":3270,"props":10244,"children":10245},{"style":3415},[10246],{"type":2992,"value":10247},"input",{"type":2987,"tag":3270,"props":10249,"children":10250},{"style":3421},[10251],{"type":2992,"value":10252}," v-model",{"type":2987,"tag":3270,"props":10254,"children":10255},{"style":3349},[10256],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":10258,"children":10259},{"style":3349},[10260],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":10262,"children":10263},{"style":3282},[10264],{"type":2992,"value":7611},{"type":2987,"tag":3270,"props":10266,"children":10267},{"style":3349},[10268],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":10270,"children":10271},{"style":3421},[10272],{"type":2992,"value":10273}," placeholder",{"type":2987,"tag":3270,"props":10275,"children":10276},{"style":3349},[10277],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":10279,"children":10280},{"style":3349},[10281],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":10283,"children":10284},{"style":3282},[10285],{"type":2992,"value":10286},"Email or username",{"type":2987,"tag":3270,"props":10288,"children":10289},{"style":3349},[10290],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":10292,"children":10293},{"style":3349},[10294],{"type":2992,"value":10295}," \u002F>\n",{"type":2987,"tag":3270,"props":10297,"children":10298},{"class":3272,"line":4268},[10299,10303,10307,10312,10316,10320,10325,10329,10333,10338,10342,10346],{"type":2987,"tag":3270,"props":10300,"children":10301},{"style":3349},[10302],{"type":2992,"value":3605},{"type":2987,"tag":3270,"props":10304,"children":10305},{"style":3415},[10306],{"type":2992,"value":3675},{"type":2987,"tag":3270,"props":10308,"children":10309},{"style":3421},[10310],{"type":2992,"value":10311}," type",{"type":2987,"tag":3270,"props":10313,"children":10314},{"style":3349},[10315],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":10317,"children":10318},{"style":3349},[10319],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":10321,"children":10322},{"style":3282},[10323],{"type":2992,"value":10324},"submit",{"type":2987,"tag":3270,"props":10326,"children":10327},{"style":3349},[10328],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":10330,"children":10331},{"style":3349},[10332],{"type":2992,"value":3614},{"type":2987,"tag":3270,"props":10334,"children":10335},{"style":3344},[10336],{"type":2992,"value":10337},"Sign up",{"type":2987,"tag":3270,"props":10339,"children":10340},{"style":3349},[10341],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":10343,"children":10344},{"style":3415},[10345],{"type":2992,"value":3675},{"type":2987,"tag":3270,"props":10347,"children":10348},{"style":3349},[10349],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":10351,"children":10352},{"class":3272,"line":4277},[10353,10357,10361],{"type":2987,"tag":3270,"props":10354,"children":10355},{"style":3349},[10356],{"type":2992,"value":3727},{"type":2987,"tag":3270,"props":10358,"children":10359},{"style":3415},[10360],{"type":2992,"value":10209},{"type":2987,"tag":3270,"props":10362,"children":10363},{"style":3349},[10364],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":10366,"children":10367},{"class":3272,"line":4285},[10368,10372,10376,10380,10384,10388,10393,10397],{"type":2987,"tag":3270,"props":10369,"children":10370},{"style":3349},[10371],{"type":2992,"value":3565},{"type":2987,"tag":3270,"props":10373,"children":10374},{"style":3415},[10375],{"type":2992,"value":10209},{"type":2987,"tag":3270,"props":10377,"children":10378},{"style":3421},[10379],{"type":2992,"value":10214},{"type":2987,"tag":3270,"props":10381,"children":10382},{"style":3349},[10383],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":10385,"children":10386},{"style":3349},[10387],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":10389,"children":10390},{"style":3282},[10391],{"type":2992,"value":10392},"signIn",{"type":2987,"tag":3270,"props":10394,"children":10395},{"style":3349},[10396],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":10398,"children":10399},{"style":3349},[10400],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":10402,"children":10403},{"class":3272,"line":4322},[10404,10408,10412,10416,10420,10424,10428,10432,10436,10440,10444,10448,10452],{"type":2987,"tag":3270,"props":10405,"children":10406},{"style":3349},[10407],{"type":2992,"value":3605},{"type":2987,"tag":3270,"props":10409,"children":10410},{"style":3415},[10411],{"type":2992,"value":10247},{"type":2987,"tag":3270,"props":10413,"children":10414},{"style":3421},[10415],{"type":2992,"value":10252},{"type":2987,"tag":3270,"props":10417,"children":10418},{"style":3349},[10419],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":10421,"children":10422},{"style":3349},[10423],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":10425,"children":10426},{"style":3282},[10427],{"type":2992,"value":7611},{"type":2987,"tag":3270,"props":10429,"children":10430},{"style":3349},[10431],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":10433,"children":10434},{"style":3421},[10435],{"type":2992,"value":10273},{"type":2987,"tag":3270,"props":10437,"children":10438},{"style":3349},[10439],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":10441,"children":10442},{"style":3349},[10443],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":10445,"children":10446},{"style":3282},[10447],{"type":2992,"value":10286},{"type":2987,"tag":3270,"props":10449,"children":10450},{"style":3349},[10451],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":10453,"children":10454},{"style":3349},[10455],{"type":2992,"value":10295},{"type":2987,"tag":3270,"props":10457,"children":10458},{"class":3272,"line":4330},[10459,10463,10467,10471,10475,10479,10483,10487,10491,10496,10500,10504],{"type":2987,"tag":3270,"props":10460,"children":10461},{"style":3349},[10462],{"type":2992,"value":3605},{"type":2987,"tag":3270,"props":10464,"children":10465},{"style":3415},[10466],{"type":2992,"value":3675},{"type":2987,"tag":3270,"props":10468,"children":10469},{"style":3421},[10470],{"type":2992,"value":10311},{"type":2987,"tag":3270,"props":10472,"children":10473},{"style":3349},[10474],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":10476,"children":10477},{"style":3349},[10478],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":10480,"children":10481},{"style":3282},[10482],{"type":2992,"value":10324},{"type":2987,"tag":3270,"props":10484,"children":10485},{"style":3349},[10486],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":10488,"children":10489},{"style":3349},[10490],{"type":2992,"value":3614},{"type":2987,"tag":3270,"props":10492,"children":10493},{"style":3344},[10494],{"type":2992,"value":10495},"Sign in",{"type":2987,"tag":3270,"props":10497,"children":10498},{"style":3349},[10499],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":10501,"children":10502},{"style":3415},[10503],{"type":2992,"value":3675},{"type":2987,"tag":3270,"props":10505,"children":10506},{"style":3349},[10507],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":10509,"children":10510},{"class":3272,"line":4339},[10511,10515,10519],{"type":2987,"tag":3270,"props":10512,"children":10513},{"style":3349},[10514],{"type":2992,"value":3727},{"type":2987,"tag":3270,"props":10516,"children":10517},{"style":3415},[10518],{"type":2992,"value":10209},{"type":2987,"tag":3270,"props":10520,"children":10521},{"style":3349},[10522],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":10524,"children":10525},{"class":3272,"line":4347},[10526,10530,10534],{"type":2987,"tag":3270,"props":10527,"children":10528},{"style":3349},[10529],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":10531,"children":10532},{"style":3415},[10533],{"type":2992,"value":3552},{"type":2987,"tag":3270,"props":10535,"children":10536},{"style":3349},[10537],{"type":2992,"value":3429},{"type":2987,"tag":2994,"props":10539,"children":10540},{},[10541,10543,10554],{"type":2992,"value":10542},"Take a look at the ",{"type":2987,"tag":2998,"props":10544,"children":10547},{"href":10545,"rel":10546},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fcomponents\u002FWebAuthnModal.vue",[3002],[10548],{"type":2987,"tag":3132,"props":10549,"children":10551},{"className":10550},[],[10552],{"type":2992,"value":10553},"WebAuthnModal.vue",{"type":2992,"value":10555}," for a full example.",{"type":2987,"tag":5377,"props":10557,"children":10559},{"id":10558},"demo",[10560],{"type":2992,"value":10561},"Demo",{"type":2987,"tag":2994,"props":10563,"children":10564},{},[10565,10567,10573,10575,10582,10583,10590],{"type":2992,"value":10566},"A full demo can be found on ",{"type":2987,"tag":2998,"props":10568,"children":10571},{"href":10569,"rel":10570},"https:\u002F\u002Ftodo-passkeys.nuxt.dev",[3002],[10572],{"type":2992,"value":10569},{"type":2992,"value":10574}," using ",{"type":2987,"tag":2998,"props":10576,"children":10579},{"href":10577,"rel":10578},"https:\u002F\u002Form.drizzle.team\u002F",[3002],[10580],{"type":2992,"value":10581},"Drizzle ORM",{"type":2992,"value":6103},{"type":2987,"tag":2998,"props":10584,"children":10587},{"href":10585,"rel":10586},"https:\u002F\u002Fhub.nuxt.com",[3002],[10588],{"type":2992,"value":10589},"NuxtHub",{"type":2992,"value":3225},{"type":2987,"tag":2994,"props":10592,"children":10593},{},[10594,10596,10601],{"type":2992,"value":10595},"The source code of the demo is available on ",{"type":2987,"tag":2998,"props":10597,"children":10599},{"href":3072,"rel":10598},[3002],[10600],{"type":2992,"value":3072},{"type":2992,"value":3225},{"type":2987,"tag":3390,"props":10603,"children":10605},{"id":10604},"extend-session",[10606],{"type":2992,"value":10607},"Extend Session",{"type":2987,"tag":2994,"props":10609,"children":10610},{},[10611],{"type":2992,"value":10612},"We leverage hooks to let you extend the session data with your own data or log when the user clears the session.",{"type":2987,"tag":3260,"props":10614,"children":10616},{"className":3949,"code":10615,"language":3951,"meta":2861,"style":2861},"\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",[10617],{"type":2987,"tag":3132,"props":10618,"children":10619},{"__ignoreMap":2861},[10620,10628,10660,10668,10676,10747,10755,10763,10771,10783,10790,10798,10865,10873,10884],{"type":2987,"tag":3270,"props":10621,"children":10622},{"class":3272,"line":2947},[10623],{"type":2987,"tag":3270,"props":10624,"children":10625},{"style":3335},[10626],{"type":2992,"value":10627},"\u002F\u002F server\u002Fplugins\u002Fsession.ts\n",{"type":2987,"tag":3270,"props":10629,"children":10630},{"class":3272,"line":2913},[10631,10635,10639,10644,10648,10652,10656],{"type":2987,"tag":3270,"props":10632,"children":10633},{"style":4533},[10634],{"type":2992,"value":5067},{"type":2987,"tag":3270,"props":10636,"children":10637},{"style":4533},[10638],{"type":2992,"value":5182},{"type":2987,"tag":3270,"props":10640,"children":10641},{"style":3506},[10642],{"type":2992,"value":10643}," defineNitroPlugin",{"type":2987,"tag":3270,"props":10645,"children":10646},{"style":3344},[10647],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":10649,"children":10650},{"style":3349},[10651],{"type":2992,"value":7778},{"type":2987,"tag":3270,"props":10653,"children":10654},{"style":3421},[10655],{"type":2992,"value":4239},{"type":2987,"tag":3270,"props":10657,"children":10658},{"style":3349},[10659],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":10661,"children":10662},{"class":3272,"line":2897},[10663],{"type":2987,"tag":3270,"props":10664,"children":10665},{"style":3335},[10666],{"type":2992,"value":10667},"  \u002F\u002F Called when the session is fetched during SSR for the Vue composable (\u002Fapi\u002F_auth\u002Fsession)\n",{"type":2987,"tag":3270,"props":10669,"children":10670},{"class":3272,"line":3533},[10671],{"type":2987,"tag":3270,"props":10672,"children":10673},{"style":3335},[10674],{"type":2992,"value":10675},"  \u002F\u002F Or when we call useUserSession().fetch()\n",{"type":2987,"tag":3270,"props":10677,"children":10678},{"class":3272,"line":3542},[10679,10684,10688,10693,10697,10701,10706,10710,10714,10719,10723,10727,10731,10735,10739,10743],{"type":2987,"tag":3270,"props":10680,"children":10681},{"style":3344},[10682],{"type":2992,"value":10683},"  sessionHooks",{"type":2987,"tag":3270,"props":10685,"children":10686},{"style":3349},[10687],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":10689,"children":10690},{"style":3506},[10691],{"type":2992,"value":10692},"hook",{"type":2987,"tag":3270,"props":10694,"children":10695},{"style":3415},[10696],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":10698,"children":10699},{"style":3349},[10700],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":10702,"children":10703},{"style":3282},[10704],{"type":2992,"value":10705},"fetch",{"type":2987,"tag":3270,"props":10707,"children":10708},{"style":3349},[10709],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":10711,"children":10712},{"style":3349},[10713],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":10715,"children":10716},{"style":3421},[10717],{"type":2992,"value":10718}," async",{"type":2987,"tag":3270,"props":10720,"children":10721},{"style":3349},[10722],{"type":2992,"value":4362},{"type":2987,"tag":3270,"props":10724,"children":10725},{"style":4365},[10726],{"type":2992,"value":7548},{"type":2987,"tag":3270,"props":10728,"children":10729},{"style":3349},[10730],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":10732,"children":10733},{"style":4365},[10734],{"type":2992,"value":7463},{"type":2987,"tag":3270,"props":10736,"children":10737},{"style":3349},[10738],{"type":2992,"value":5953},{"type":2987,"tag":3270,"props":10740,"children":10741},{"style":3421},[10742],{"type":2992,"value":4239},{"type":2987,"tag":3270,"props":10744,"children":10745},{"style":3349},[10746],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":10748,"children":10749},{"class":3272,"line":3559},[10750],{"type":2987,"tag":3270,"props":10751,"children":10752},{"style":3335},[10753],{"type":2992,"value":10754},"    \u002F\u002F extend User Session by calling your database\n",{"type":2987,"tag":3270,"props":10756,"children":10757},{"class":3272,"line":2893},[10758],{"type":2987,"tag":3270,"props":10759,"children":10760},{"style":3335},[10761],{"type":2992,"value":10762},"    \u002F\u002F or\n",{"type":2987,"tag":3270,"props":10764,"children":10765},{"class":3272,"line":2889},[10766],{"type":2987,"tag":3270,"props":10767,"children":10768},{"style":3335},[10769],{"type":2992,"value":10770},"    \u002F\u002F throw createError({ ... }) if session is invalid for example\n",{"type":2987,"tag":3270,"props":10772,"children":10773},{"class":3272,"line":2885},[10774,10779],{"type":2987,"tag":3270,"props":10775,"children":10776},{"style":3349},[10777],{"type":2992,"value":10778},"  }",{"type":2987,"tag":3270,"props":10780,"children":10781},{"style":3415},[10782],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":10784,"children":10785},{"class":3272,"line":3721},[10786],{"type":2987,"tag":3270,"props":10787,"children":10788},{"emptyLinePlaceholder":1196},[10789],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":10791,"children":10792},{"class":3272,"line":3738},[10793],{"type":2987,"tag":3270,"props":10794,"children":10795},{"style":3335},[10796],{"type":2992,"value":10797},"  \u002F\u002F Called when we call useUserSession().clear() or clearUserSession(event)\n",{"type":2987,"tag":3270,"props":10799,"children":10800},{"class":3272,"line":3759},[10801,10805,10809,10813,10817,10821,10825,10829,10833,10837,10841,10845,10849,10853,10857,10861],{"type":2987,"tag":3270,"props":10802,"children":10803},{"style":3344},[10804],{"type":2992,"value":10683},{"type":2987,"tag":3270,"props":10806,"children":10807},{"style":3349},[10808],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":10810,"children":10811},{"style":3506},[10812],{"type":2992,"value":10692},{"type":2987,"tag":3270,"props":10814,"children":10815},{"style":3415},[10816],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":10818,"children":10819},{"style":3349},[10820],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":10822,"children":10823},{"style":3282},[10824],{"type":2992,"value":3693},{"type":2987,"tag":3270,"props":10826,"children":10827},{"style":3349},[10828],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":10830,"children":10831},{"style":3349},[10832],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":10834,"children":10835},{"style":3421},[10836],{"type":2992,"value":10718},{"type":2987,"tag":3270,"props":10838,"children":10839},{"style":3349},[10840],{"type":2992,"value":4362},{"type":2987,"tag":3270,"props":10842,"children":10843},{"style":4365},[10844],{"type":2992,"value":7548},{"type":2987,"tag":3270,"props":10846,"children":10847},{"style":3349},[10848],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":10850,"children":10851},{"style":4365},[10852],{"type":2992,"value":7463},{"type":2987,"tag":3270,"props":10854,"children":10855},{"style":3349},[10856],{"type":2992,"value":5953},{"type":2987,"tag":3270,"props":10858,"children":10859},{"style":3421},[10860],{"type":2992,"value":4239},{"type":2987,"tag":3270,"props":10862,"children":10863},{"style":3349},[10864],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":10866,"children":10867},{"class":3272,"line":3792},[10868],{"type":2987,"tag":3270,"props":10869,"children":10870},{"style":3335},[10871],{"type":2992,"value":10872},"    \u002F\u002F Log that user logged out\n",{"type":2987,"tag":3270,"props":10874,"children":10875},{"class":3272,"line":3847},[10876,10880],{"type":2987,"tag":3270,"props":10877,"children":10878},{"style":3349},[10879],{"type":2992,"value":10778},{"type":2987,"tag":3270,"props":10881,"children":10882},{"style":3415},[10883],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":10885,"children":10886},{"class":3272,"line":3856},[10887,10891],{"type":2987,"tag":3270,"props":10888,"children":10889},{"style":3349},[10890],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":10892,"children":10893},{"style":3344},[10894],{"type":2992,"value":4713},{"type":2987,"tag":3078,"props":10896,"children":10898},{"id":10897},"server-side-rendering",[10899],{"type":2992,"value":10900},"Server-Side Rendering",{"type":2987,"tag":2994,"props":10902,"children":10903},{},[10904,10906,10912,10914],{"type":2992,"value":10905},"You can make authenticated requests both from the client and the server. However, you must use ",{"type":2987,"tag":3132,"props":10907,"children":10909},{"className":10908},[],[10910],{"type":2992,"value":10911},"useRequestFetch()",{"type":2992,"value":10913}," to make authenticated requests during SSR if you are not using ",{"type":2987,"tag":3132,"props":10915,"children":10917},{"className":10916},[],[10918],{"type":2992,"value":10919},"useFetch()",{"type":2987,"tag":3260,"props":10921,"children":10923},{"className":3398,"code":10922,"language":3400,"meta":2861,"style":2861},"\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",[10924],{"type":2987,"tag":3132,"props":10925,"children":10926},{"__ignoreMap":2861},[10927,10966,10974,11064,11071,11079,11131],{"type":2987,"tag":3270,"props":10928,"children":10929},{"class":3272,"line":2947},[10930,10934,10938,10942,10946,10950,10954,10958,10962],{"type":2987,"tag":3270,"props":10931,"children":10932},{"style":3349},[10933],{"type":2992,"value":3412},{"type":2987,"tag":3270,"props":10935,"children":10936},{"style":3415},[10937],{"type":2992,"value":3418},{"type":2987,"tag":3270,"props":10939,"children":10940},{"style":3421},[10941],{"type":2992,"value":3424},{"type":2987,"tag":3270,"props":10943,"children":10944},{"style":3421},[10945],{"type":2992,"value":9725},{"type":2987,"tag":3270,"props":10947,"children":10948},{"style":3349},[10949],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":10951,"children":10952},{"style":3349},[10953],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":10955,"children":10956},{"style":3282},[10957],{"type":2992,"value":3951},{"type":2987,"tag":3270,"props":10959,"children":10960},{"style":3349},[10961],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":10963,"children":10964},{"style":3349},[10965],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":10967,"children":10968},{"class":3272,"line":2913},[10969],{"type":2987,"tag":3270,"props":10970,"children":10971},{"style":3335},[10972],{"type":2992,"value":10973},"\u002F\u002F When using useAsyncData\n",{"type":2987,"tag":3270,"props":10975,"children":10976},{"class":3272,"line":2897},[10977,10981,10985,10990,10994,10998,11002,11007,11011,11015,11020,11024,11028,11032,11036,11041,11046,11050,11055,11059],{"type":2987,"tag":3270,"props":10978,"children":10979},{"style":3421},[10980],{"type":2992,"value":3437},{"type":2987,"tag":3270,"props":10982,"children":10983},{"style":3349},[10984],{"type":2992,"value":3442},{"type":2987,"tag":3270,"props":10986,"children":10987},{"style":3344},[10988],{"type":2992,"value":10989}," data ",{"type":2987,"tag":3270,"props":10991,"children":10992},{"style":3349},[10993],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":10995,"children":10996},{"style":3349},[10997],{"type":2992,"value":3503},{"type":2987,"tag":3270,"props":10999,"children":11000},{"style":4533},[11001],{"type":2992,"value":4789},{"type":2987,"tag":3270,"props":11003,"children":11004},{"style":3506},[11005],{"type":2992,"value":11006}," useAsyncData",{"type":2987,"tag":3270,"props":11008,"children":11009},{"style":3344},[11010],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":11012,"children":11013},{"style":3349},[11014],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":11016,"children":11017},{"style":3282},[11018],{"type":2992,"value":11019},"team",{"type":2987,"tag":3270,"props":11021,"children":11022},{"style":3349},[11023],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":11025,"children":11026},{"style":3349},[11027],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":11029,"children":11030},{"style":3349},[11031],{"type":2992,"value":4234},{"type":2987,"tag":3270,"props":11033,"children":11034},{"style":3421},[11035],{"type":2992,"value":4239},{"type":2987,"tag":3270,"props":11037,"children":11038},{"style":3506},[11039],{"type":2992,"value":11040}," useRequestFetch",{"type":2987,"tag":3270,"props":11042,"children":11043},{"style":3344},[11044],{"type":2992,"value":11045},"()(",{"type":2987,"tag":3270,"props":11047,"children":11048},{"style":3349},[11049],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":11051,"children":11052},{"style":3282},[11053],{"type":2992,"value":11054},"\u002Fapi\u002Fprotected-endpoint",{"type":2987,"tag":3270,"props":11056,"children":11057},{"style":3349},[11058],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":11060,"children":11061},{"style":3344},[11062],{"type":2992,"value":11063},"))\n",{"type":2987,"tag":3270,"props":11065,"children":11066},{"class":3272,"line":3533},[11067],{"type":2987,"tag":3270,"props":11068,"children":11069},{"emptyLinePlaceholder":1196},[11070],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":11072,"children":11073},{"class":3272,"line":3542},[11074],{"type":2987,"tag":3270,"props":11075,"children":11076},{"style":3335},[11077],{"type":2992,"value":11078},"\u002F\u002F useFetch will automatically use useRequestFetch during SSR\n",{"type":2987,"tag":3270,"props":11080,"children":11081},{"class":3272,"line":3559},[11082,11086,11090,11094,11098,11102,11106,11111,11115,11119,11123,11127],{"type":2987,"tag":3270,"props":11083,"children":11084},{"style":3421},[11085],{"type":2992,"value":3437},{"type":2987,"tag":3270,"props":11087,"children":11088},{"style":3349},[11089],{"type":2992,"value":3442},{"type":2987,"tag":3270,"props":11091,"children":11092},{"style":3344},[11093],{"type":2992,"value":10989},{"type":2987,"tag":3270,"props":11095,"children":11096},{"style":3349},[11097],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":11099,"children":11100},{"style":3349},[11101],{"type":2992,"value":3503},{"type":2987,"tag":3270,"props":11103,"children":11104},{"style":4533},[11105],{"type":2992,"value":4789},{"type":2987,"tag":3270,"props":11107,"children":11108},{"style":3506},[11109],{"type":2992,"value":11110}," useFetch",{"type":2987,"tag":3270,"props":11112,"children":11113},{"style":3344},[11114],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":11116,"children":11117},{"style":3349},[11118],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":11120,"children":11121},{"style":3282},[11122],{"type":2992,"value":11054},{"type":2987,"tag":3270,"props":11124,"children":11125},{"style":3349},[11126],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":11128,"children":11129},{"style":3344},[11130],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":11132,"children":11133},{"class":3272,"line":2893},[11134,11138,11142],{"type":2987,"tag":3270,"props":11135,"children":11136},{"style":3349},[11137],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":11139,"children":11140},{"style":3415},[11141],{"type":2992,"value":3418},{"type":2987,"tag":3270,"props":11143,"children":11144},{"style":3349},[11145],{"type":2992,"value":3429},{"type":2987,"tag":4451,"props":11147,"children":11148},{},[11149],{"type":2987,"tag":2994,"props":11150,"children":11151},{},[11152,11154,11161,11163,11168],{"type":2992,"value":11153},"There's ",{"type":2987,"tag":2998,"props":11155,"children":11158},{"href":11156,"rel":11157},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F24813",[3002],[11159],{"type":2992,"value":11160},"an open issue",{"type":2992,"value":11162}," to include credentials in ",{"type":2987,"tag":3132,"props":11164,"children":11166},{"className":11165},[],[11167],{"type":2992,"value":630},{"type":2992,"value":11169}," in Nuxt.",{"type":2987,"tag":3078,"props":11171,"children":11173},{"id":11172},"hybrid-rendering",[11174],{"type":2992,"value":3094},{"type":2987,"tag":2994,"props":11176,"children":11177},{},[11178,11180,11193],{"type":2992,"value":11179},"When using ",{"type":2987,"tag":2998,"props":11181,"children":11184},{"href":11182,"rel":11183},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fguide\u002Fconcepts\u002Frendering#hybrid-rendering",[3002],[11185,11187],{"type":2992,"value":11186},"Nuxt ",{"type":2987,"tag":3132,"props":11188,"children":11190},{"className":11189},[],[11191],{"type":2992,"value":11192},"routeRules",{"type":2992,"value":11194}," 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":2987,"tag":2994,"props":11196,"children":11197},{},[11198],{"type":2992,"value":11199},"This is because the user session is stored in a secure cookie and cannot be accessed during prerendering.",{"type":2987,"tag":2994,"props":11201,"children":11202},{},[11203],{"type":2987,"tag":3942,"props":11204,"children":11205},{},[11206],{"type":2992,"value":11207},"This means that you should not rely on the user session during prerendering.",{"type":2987,"tag":2994,"props":11209,"children":11210},{},[11211,11213,11219,11221,11226],{"type":2992,"value":11212},"You may also choose to instruct Nuxt Auth Utils to fetch the user session only on the client side, with the ",{"type":2987,"tag":3132,"props":11214,"children":11216},{"className":11215},[],[11217],{"type":2992,"value":11218},"loadStrategy",{"type":2992,"value":11220}," option in your ",{"type":2987,"tag":3132,"props":11222,"children":11224},{"className":11223},[],[11225],{"type":2992,"value":233},{"type":2992,"value":4010},{"type":2987,"tag":3260,"props":11228,"children":11230},{"className":3949,"code":11229,"language":3951,"meta":2861,"style":2861},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'client-only'\n  }\n})\n",[11231],{"type":2987,"tag":3132,"props":11232,"children":11233},{"__ignoreMap":2861},[11234,11257,11272,11297,11304],{"type":2987,"tag":3270,"props":11235,"children":11236},{"class":3272,"line":2947},[11237,11241,11245,11249,11253],{"type":2987,"tag":3270,"props":11238,"children":11239},{"style":4533},[11240],{"type":2992,"value":5067},{"type":2987,"tag":3270,"props":11242,"children":11243},{"style":4533},[11244],{"type":2992,"value":5182},{"type":2987,"tag":3270,"props":11246,"children":11247},{"style":3506},[11248],{"type":2992,"value":5187},{"type":2987,"tag":3270,"props":11250,"children":11251},{"style":3344},[11252],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":11254,"children":11255},{"style":3349},[11256],{"type":2992,"value":5197},{"type":2987,"tag":3270,"props":11258,"children":11259},{"class":3272,"line":2913},[11260,11264,11268],{"type":2987,"tag":3270,"props":11261,"children":11262},{"style":3415},[11263],{"type":2992,"value":6457},{"type":2987,"tag":3270,"props":11265,"children":11266},{"style":3349},[11267],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":11269,"children":11270},{"style":3349},[11271],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":11273,"children":11274},{"class":3272,"line":2897},[11275,11280,11284,11288,11293],{"type":2987,"tag":3270,"props":11276,"children":11277},{"style":3415},[11278],{"type":2992,"value":11279},"    loadStrategy",{"type":2987,"tag":3270,"props":11281,"children":11282},{"style":3349},[11283],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":11285,"children":11286},{"style":3349},[11287],{"type":2992,"value":4594},{"type":2987,"tag":3270,"props":11289,"children":11290},{"style":3282},[11291],{"type":2992,"value":11292},"client-only",{"type":2987,"tag":3270,"props":11294,"children":11295},{"style":3349},[11296],{"type":2992,"value":4603},{"type":2987,"tag":3270,"props":11298,"children":11299},{"class":3272,"line":3533},[11300],{"type":2987,"tag":3270,"props":11301,"children":11302},{"style":3349},[11303],{"type":2992,"value":4971},{"type":2987,"tag":3270,"props":11305,"children":11306},{"class":3272,"line":3542},[11307,11311],{"type":2987,"tag":3270,"props":11308,"children":11309},{"style":3349},[11310],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":11312,"children":11313},{"style":3344},[11314],{"type":2992,"value":4713},{"type":2987,"tag":2994,"props":11316,"children":11317},{},[11318,11320,11325,11327,11332,11333,11339],{"type":2992,"value":11319},"When using the ",{"type":2987,"tag":3132,"props":11321,"children":11323},{"className":11322},[],[11324],{"type":2992,"value":11292},{"type":2992,"value":11326}," load strategy, the user session can still be manually fetched on the server side by calling ",{"type":2987,"tag":3132,"props":11328,"children":11330},{"className":11329},[],[11331],{"type":2992,"value":10705},{"type":2992,"value":7218},{"type":2987,"tag":3132,"props":11334,"children":11336},{"className":11335},[],[11337],{"type":2992,"value":11338},"useUserSession",{"type":2992,"value":11340}," composable.",{"type":2987,"tag":3390,"props":11342,"children":11344},{"id":11343},"disable-session-loading",[11345],{"type":2992,"value":11346},"Disable session loading",{"type":2987,"tag":2994,"props":11348,"children":11349},{},[11350,11352,11357,11358,11363],{"type":2992,"value":11351},"You may also choose to disable session loading entirely, with the ",{"type":2987,"tag":3132,"props":11353,"children":11355},{"className":11354},[],[11356],{"type":2992,"value":11218},{"type":2992,"value":11220},{"type":2987,"tag":3132,"props":11359,"children":11361},{"className":11360},[],[11362],{"type":2992,"value":233},{"type":2992,"value":4010},{"type":2987,"tag":3260,"props":11365,"children":11367},{"className":3949,"code":11366,"language":3951,"meta":2861,"style":2861},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'none'\n  }\n})\n",[11368],{"type":2987,"tag":3132,"props":11369,"children":11370},{"__ignoreMap":2861},[11371,11394,11409,11433,11440],{"type":2987,"tag":3270,"props":11372,"children":11373},{"class":3272,"line":2947},[11374,11378,11382,11386,11390],{"type":2987,"tag":3270,"props":11375,"children":11376},{"style":4533},[11377],{"type":2992,"value":5067},{"type":2987,"tag":3270,"props":11379,"children":11380},{"style":4533},[11381],{"type":2992,"value":5182},{"type":2987,"tag":3270,"props":11383,"children":11384},{"style":3506},[11385],{"type":2992,"value":5187},{"type":2987,"tag":3270,"props":11387,"children":11388},{"style":3344},[11389],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":11391,"children":11392},{"style":3349},[11393],{"type":2992,"value":5197},{"type":2987,"tag":3270,"props":11395,"children":11396},{"class":3272,"line":2913},[11397,11401,11405],{"type":2987,"tag":3270,"props":11398,"children":11399},{"style":3415},[11400],{"type":2992,"value":6457},{"type":2987,"tag":3270,"props":11402,"children":11403},{"style":3349},[11404],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":11406,"children":11407},{"style":3349},[11408],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":11410,"children":11411},{"class":3272,"line":2897},[11412,11416,11420,11424,11429],{"type":2987,"tag":3270,"props":11413,"children":11414},{"style":3415},[11415],{"type":2992,"value":11279},{"type":2987,"tag":3270,"props":11417,"children":11418},{"style":3349},[11419],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":11421,"children":11422},{"style":3349},[11423],{"type":2992,"value":4594},{"type":2987,"tag":3270,"props":11425,"children":11426},{"style":3282},[11427],{"type":2992,"value":11428},"none",{"type":2987,"tag":3270,"props":11430,"children":11431},{"style":3349},[11432],{"type":2992,"value":4603},{"type":2987,"tag":3270,"props":11434,"children":11435},{"class":3272,"line":3533},[11436],{"type":2987,"tag":3270,"props":11437,"children":11438},{"style":3349},[11439],{"type":2992,"value":4971},{"type":2987,"tag":3270,"props":11441,"children":11442},{"class":3272,"line":3542},[11443,11447],{"type":2987,"tag":3270,"props":11444,"children":11445},{"style":3349},[11446],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":11448,"children":11449},{"style":3344},[11450],{"type":2992,"value":4713},{"type":2987,"tag":2994,"props":11452,"children":11453},{},[11454,11455,11460,11462,11468],{"type":2992,"value":11319},{"type":2987,"tag":3132,"props":11456,"children":11458},{"className":11457},[],[11459],{"type":2992,"value":11428},{"type":2992,"value":11461}," load strategy, the user session can still be manually fetched by calling ",{"type":2987,"tag":3132,"props":11463,"children":11465},{"className":11464},[],[11466],{"type":2992,"value":11467},"useUserSession().fetch()",{"type":2992,"value":3225},{"type":2987,"tag":3390,"props":11470,"children":11472},{"id":11471},"authstate-component",[11473,11478],{"type":2987,"tag":3132,"props":11474,"children":11476},{"className":11475},[],[11477],{"type":2992,"value":3161},{"type":2992,"value":3163},{"type":2987,"tag":2994,"props":11480,"children":11481},{},[11482,11484,11489],{"type":2992,"value":11483},"You can use the ",{"type":2987,"tag":3132,"props":11485,"children":11487},{"className":11486},[],[11488],{"type":2992,"value":3161},{"type":2992,"value":11490}," component to safely display auth-related data in your components without worrying about the rendering mode.",{"type":2987,"tag":2994,"props":11492,"children":11493},{},[11494],{"type":2992,"value":11495},"One common use case if the Login button in the header:",{"type":2987,"tag":3260,"props":11497,"children":11499},{"className":3398,"code":11498,"language":3400,"meta":2861,"style":2861},"\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",[11500],{"type":2987,"tag":3132,"props":11501,"children":11502},{"__ignoreMap":2861},[11503,11518,11534,11572,11644,11703,11719,11734],{"type":2987,"tag":3270,"props":11504,"children":11505},{"class":3272,"line":2947},[11506,11510,11514],{"type":2987,"tag":3270,"props":11507,"children":11508},{"style":3349},[11509],{"type":2992,"value":3412},{"type":2987,"tag":3270,"props":11511,"children":11512},{"style":3415},[11513],{"type":2992,"value":3552},{"type":2987,"tag":3270,"props":11515,"children":11516},{"style":3349},[11517],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":11519,"children":11520},{"class":3272,"line":2913},[11521,11525,11530],{"type":2987,"tag":3270,"props":11522,"children":11523},{"style":3349},[11524],{"type":2992,"value":3565},{"type":2987,"tag":3270,"props":11526,"children":11527},{"style":3415},[11528],{"type":2992,"value":11529},"header",{"type":2987,"tag":3270,"props":11531,"children":11532},{"style":3349},[11533],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":11535,"children":11536},{"class":3272,"line":2897},[11537,11541,11546,11551,11555,11559,11564,11568],{"type":2987,"tag":3270,"props":11538,"children":11539},{"style":3349},[11540],{"type":2992,"value":3605},{"type":2987,"tag":3270,"props":11542,"children":11543},{"style":3415},[11544],{"type":2992,"value":11545},"AuthState",{"type":2987,"tag":3270,"props":11547,"children":11548},{"style":3421},[11549],{"type":2992,"value":11550}," v-slot",{"type":2987,"tag":3270,"props":11552,"children":11553},{"style":3349},[11554],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":11556,"children":11557},{"style":3349},[11558],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":11560,"children":11561},{"style":3282},[11562],{"type":2992,"value":11563},"{ loggedIn, clear }",{"type":2987,"tag":3270,"props":11565,"children":11566},{"style":3349},[11567],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":11569,"children":11570},{"style":3349},[11571],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":11573,"children":11574},{"class":3272,"line":3533},[11575,11580,11584,11588,11592,11596,11600,11604,11608,11612,11616,11620,11624,11628,11632,11636,11640],{"type":2987,"tag":3270,"props":11576,"children":11577},{"style":3349},[11578],{"type":2992,"value":11579},"      \u003C",{"type":2987,"tag":3270,"props":11581,"children":11582},{"style":3415},[11583],{"type":2992,"value":3675},{"type":2987,"tag":3270,"props":11585,"children":11586},{"style":3421},[11587],{"type":2992,"value":3575},{"type":2987,"tag":3270,"props":11589,"children":11590},{"style":3349},[11591],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":11593,"children":11594},{"style":3349},[11595],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":11597,"children":11598},{"style":3282},[11599],{"type":2992,"value":3589},{"type":2987,"tag":3270,"props":11601,"children":11602},{"style":3349},[11603],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":11605,"children":11606},{"style":3421},[11607],{"type":2992,"value":3680},{"type":2987,"tag":3270,"props":11609,"children":11610},{"style":3349},[11611],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":11613,"children":11614},{"style":3349},[11615],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":11617,"children":11618},{"style":3282},[11619],{"type":2992,"value":3693},{"type":2987,"tag":3270,"props":11621,"children":11622},{"style":3349},[11623],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":11625,"children":11626},{"style":3349},[11627],{"type":2992,"value":3614},{"type":2987,"tag":3270,"props":11629,"children":11630},{"style":3344},[11631],{"type":2992,"value":3706},{"type":2987,"tag":3270,"props":11633,"children":11634},{"style":3349},[11635],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":11637,"children":11638},{"style":3415},[11639],{"type":2992,"value":3675},{"type":2987,"tag":3270,"props":11641,"children":11642},{"style":3349},[11643],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":11645,"children":11646},{"class":3272,"line":3542},[11647,11651,11656,11660,11665,11669,11673,11678,11682,11686,11691,11695,11699],{"type":2987,"tag":3270,"props":11648,"children":11649},{"style":3349},[11650],{"type":2992,"value":11579},{"type":2987,"tag":3270,"props":11652,"children":11653},{"style":3415},[11654],{"type":2992,"value":11655},"NuxtLink",{"type":2987,"tag":3270,"props":11657,"children":11658},{"style":3421},[11659],{"type":2992,"value":3752},{"type":2987,"tag":3270,"props":11661,"children":11662},{"style":3421},[11663],{"type":2992,"value":11664}," to",{"type":2987,"tag":3270,"props":11666,"children":11667},{"style":3349},[11668],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":11670,"children":11671},{"style":3349},[11672],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":11674,"children":11675},{"style":3282},[11676],{"type":2992,"value":11677},"\u002Flogin",{"type":2987,"tag":3270,"props":11679,"children":11680},{"style":3349},[11681],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":11683,"children":11684},{"style":3349},[11685],{"type":2992,"value":3614},{"type":2987,"tag":3270,"props":11687,"children":11688},{"style":3344},[11689],{"type":2992,"value":11690},"Login",{"type":2987,"tag":3270,"props":11692,"children":11693},{"style":3349},[11694],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":11696,"children":11697},{"style":3415},[11698],{"type":2992,"value":11655},{"type":2987,"tag":3270,"props":11700,"children":11701},{"style":3349},[11702],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":11704,"children":11705},{"class":3272,"line":3559},[11706,11711,11715],{"type":2987,"tag":3270,"props":11707,"children":11708},{"style":3349},[11709],{"type":2992,"value":11710},"    \u003C\u002F",{"type":2987,"tag":3270,"props":11712,"children":11713},{"style":3415},[11714],{"type":2992,"value":11545},{"type":2987,"tag":3270,"props":11716,"children":11717},{"style":3349},[11718],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":11720,"children":11721},{"class":3272,"line":2893},[11722,11726,11730],{"type":2987,"tag":3270,"props":11723,"children":11724},{"style":3349},[11725],{"type":2992,"value":3727},{"type":2987,"tag":3270,"props":11727,"children":11728},{"style":3415},[11729],{"type":2992,"value":11529},{"type":2987,"tag":3270,"props":11731,"children":11732},{"style":3349},[11733],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":11735,"children":11736},{"class":3272,"line":2889},[11737,11741,11745],{"type":2987,"tag":3270,"props":11738,"children":11739},{"style":3349},[11740],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":11742,"children":11743},{"style":3415},[11744],{"type":2992,"value":3552},{"type":2987,"tag":3270,"props":11746,"children":11747},{"style":3349},[11748],{"type":2992,"value":3429},{"type":2987,"tag":2994,"props":11750,"children":11751},{},[11752,11754,11759],{"type":2992,"value":11753},"If the page is cached or prerendered or the load strategy set as ",{"type":2987,"tag":3132,"props":11755,"children":11757},{"className":11756},[],[11758],{"type":2992,"value":11292},{"type":2992,"value":11760},", nothing will be rendered until the user session is fetched on the client-side.",{"type":2987,"tag":2994,"props":11762,"children":11763},{},[11764,11765,11771],{"type":2992,"value":11483},{"type":2987,"tag":3132,"props":11766,"children":11768},{"className":11767},[],[11769],{"type":2992,"value":11770},"placeholder",{"type":2992,"value":11772}," slot to show a placeholder on server-side and while the user session is being fetched on client-side for the prerendered pages:",{"type":2987,"tag":3260,"props":11774,"children":11776},{"className":3398,"code":11775,"language":3400,"meta":2861,"style":2861},"\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",[11777],{"type":2987,"tag":3132,"props":11778,"children":11779},{"__ignoreMap":2861},[11780,11795,11810,11825,11883,11955,12010,12026,12049,12086,12101,12116,12131],{"type":2987,"tag":3270,"props":11781,"children":11782},{"class":3272,"line":2947},[11783,11787,11791],{"type":2987,"tag":3270,"props":11784,"children":11785},{"style":3349},[11786],{"type":2992,"value":3412},{"type":2987,"tag":3270,"props":11788,"children":11789},{"style":3415},[11790],{"type":2992,"value":3552},{"type":2987,"tag":3270,"props":11792,"children":11793},{"style":3349},[11794],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":11796,"children":11797},{"class":3272,"line":2913},[11798,11802,11806],{"type":2987,"tag":3270,"props":11799,"children":11800},{"style":3349},[11801],{"type":2992,"value":3565},{"type":2987,"tag":3270,"props":11803,"children":11804},{"style":3415},[11805],{"type":2992,"value":11529},{"type":2987,"tag":3270,"props":11807,"children":11808},{"style":3349},[11809],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":11811,"children":11812},{"class":3272,"line":2897},[11813,11817,11821],{"type":2987,"tag":3270,"props":11814,"children":11815},{"style":3349},[11816],{"type":2992,"value":3605},{"type":2987,"tag":3270,"props":11818,"children":11819},{"style":3415},[11820],{"type":2992,"value":11545},{"type":2987,"tag":3270,"props":11822,"children":11823},{"style":3349},[11824],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":11826,"children":11827},{"class":3272,"line":3533},[11828,11832,11836,11841,11846,11850,11854,11858,11862,11866,11871,11875,11879],{"type":2987,"tag":3270,"props":11829,"children":11830},{"style":3349},[11831],{"type":2992,"value":11579},{"type":2987,"tag":3270,"props":11833,"children":11834},{"style":3415},[11835],{"type":2992,"value":3552},{"type":2987,"tag":3270,"props":11837,"children":11838},{"style":3349},[11839],{"type":2992,"value":11840}," #",{"type":2987,"tag":3270,"props":11842,"children":11843},{"style":3421},[11844],{"type":2992,"value":11845},"default",{"type":2987,"tag":3270,"props":11847,"children":11848},{"style":3349},[11849],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":11851,"children":11852},{"style":3349},[11853],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":11855,"children":11856},{"style":3349},[11857],{"type":2992,"value":7642},{"type":2987,"tag":3270,"props":11859,"children":11860},{"style":3344},[11861],{"type":2992,"value":3447},{"type":2987,"tag":3270,"props":11863,"children":11864},{"style":3349},[11865],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":11867,"children":11868},{"style":3344},[11869],{"type":2992,"value":11870}," clear ",{"type":2987,"tag":3270,"props":11872,"children":11873},{"style":3349},[11874],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":11876,"children":11877},{"style":3349},[11878],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":11880,"children":11881},{"style":3349},[11882],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":11884,"children":11885},{"class":3272,"line":3542},[11886,11891,11895,11899,11903,11907,11911,11915,11919,11923,11927,11931,11935,11939,11943,11947,11951],{"type":2987,"tag":3270,"props":11887,"children":11888},{"style":3349},[11889],{"type":2992,"value":11890},"        \u003C",{"type":2987,"tag":3270,"props":11892,"children":11893},{"style":3415},[11894],{"type":2992,"value":3675},{"type":2987,"tag":3270,"props":11896,"children":11897},{"style":3421},[11898],{"type":2992,"value":3575},{"type":2987,"tag":3270,"props":11900,"children":11901},{"style":3349},[11902],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":11904,"children":11905},{"style":3349},[11906],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":11908,"children":11909},{"style":3282},[11910],{"type":2992,"value":3589},{"type":2987,"tag":3270,"props":11912,"children":11913},{"style":3349},[11914],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":11916,"children":11917},{"style":3421},[11918],{"type":2992,"value":3680},{"type":2987,"tag":3270,"props":11920,"children":11921},{"style":3349},[11922],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":11924,"children":11925},{"style":3349},[11926],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":11928,"children":11929},{"style":3282},[11930],{"type":2992,"value":3693},{"type":2987,"tag":3270,"props":11932,"children":11933},{"style":3349},[11934],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":11936,"children":11937},{"style":3349},[11938],{"type":2992,"value":3614},{"type":2987,"tag":3270,"props":11940,"children":11941},{"style":3344},[11942],{"type":2992,"value":3706},{"type":2987,"tag":3270,"props":11944,"children":11945},{"style":3349},[11946],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":11948,"children":11949},{"style":3415},[11950],{"type":2992,"value":3675},{"type":2987,"tag":3270,"props":11952,"children":11953},{"style":3349},[11954],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":11956,"children":11957},{"class":3272,"line":3559},[11958,11962,11966,11970,11974,11978,11982,11986,11990,11994,11998,12002,12006],{"type":2987,"tag":3270,"props":11959,"children":11960},{"style":3349},[11961],{"type":2992,"value":11890},{"type":2987,"tag":3270,"props":11963,"children":11964},{"style":3415},[11965],{"type":2992,"value":11655},{"type":2987,"tag":3270,"props":11967,"children":11968},{"style":3421},[11969],{"type":2992,"value":3752},{"type":2987,"tag":3270,"props":11971,"children":11972},{"style":3421},[11973],{"type":2992,"value":11664},{"type":2987,"tag":3270,"props":11975,"children":11976},{"style":3349},[11977],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":11979,"children":11980},{"style":3349},[11981],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":11983,"children":11984},{"style":3282},[11985],{"type":2992,"value":11677},{"type":2987,"tag":3270,"props":11987,"children":11988},{"style":3349},[11989],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":11991,"children":11992},{"style":3349},[11993],{"type":2992,"value":3614},{"type":2987,"tag":3270,"props":11995,"children":11996},{"style":3344},[11997],{"type":2992,"value":11690},{"type":2987,"tag":3270,"props":11999,"children":12000},{"style":3349},[12001],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":12003,"children":12004},{"style":3415},[12005],{"type":2992,"value":11655},{"type":2987,"tag":3270,"props":12007,"children":12008},{"style":3349},[12009],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":12011,"children":12012},{"class":3272,"line":2893},[12013,12018,12022],{"type":2987,"tag":3270,"props":12014,"children":12015},{"style":3349},[12016],{"type":2992,"value":12017},"      \u003C\u002F",{"type":2987,"tag":3270,"props":12019,"children":12020},{"style":3415},[12021],{"type":2992,"value":3552},{"type":2987,"tag":3270,"props":12023,"children":12024},{"style":3349},[12025],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":12027,"children":12028},{"class":3272,"line":2889},[12029,12033,12037,12041,12045],{"type":2987,"tag":3270,"props":12030,"children":12031},{"style":3349},[12032],{"type":2992,"value":11579},{"type":2987,"tag":3270,"props":12034,"children":12035},{"style":3415},[12036],{"type":2992,"value":3552},{"type":2987,"tag":3270,"props":12038,"children":12039},{"style":3349},[12040],{"type":2992,"value":11840},{"type":2987,"tag":3270,"props":12042,"children":12043},{"style":3421},[12044],{"type":2992,"value":11770},{"type":2987,"tag":3270,"props":12046,"children":12047},{"style":3349},[12048],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":12050,"children":12051},{"class":3272,"line":2885},[12052,12056,12060,12065,12069,12074,12078,12082],{"type":2987,"tag":3270,"props":12053,"children":12054},{"style":3349},[12055],{"type":2992,"value":11890},{"type":2987,"tag":3270,"props":12057,"children":12058},{"style":3415},[12059],{"type":2992,"value":3675},{"type":2987,"tag":3270,"props":12061,"children":12062},{"style":3421},[12063],{"type":2992,"value":12064}," disabled",{"type":2987,"tag":3270,"props":12066,"children":12067},{"style":3349},[12068],{"type":2992,"value":3614},{"type":2987,"tag":3270,"props":12070,"children":12071},{"style":3344},[12072],{"type":2992,"value":12073},"Loading...",{"type":2987,"tag":3270,"props":12075,"children":12076},{"style":3349},[12077],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":12079,"children":12080},{"style":3415},[12081],{"type":2992,"value":3675},{"type":2987,"tag":3270,"props":12083,"children":12084},{"style":3349},[12085],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":12087,"children":12088},{"class":3272,"line":3721},[12089,12093,12097],{"type":2987,"tag":3270,"props":12090,"children":12091},{"style":3349},[12092],{"type":2992,"value":12017},{"type":2987,"tag":3270,"props":12094,"children":12095},{"style":3415},[12096],{"type":2992,"value":3552},{"type":2987,"tag":3270,"props":12098,"children":12099},{"style":3349},[12100],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":12102,"children":12103},{"class":3272,"line":3738},[12104,12108,12112],{"type":2987,"tag":3270,"props":12105,"children":12106},{"style":3349},[12107],{"type":2992,"value":11710},{"type":2987,"tag":3270,"props":12109,"children":12110},{"style":3415},[12111],{"type":2992,"value":11545},{"type":2987,"tag":3270,"props":12113,"children":12114},{"style":3349},[12115],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":12117,"children":12118},{"class":3272,"line":3759},[12119,12123,12127],{"type":2987,"tag":3270,"props":12120,"children":12121},{"style":3349},[12122],{"type":2992,"value":3727},{"type":2987,"tag":3270,"props":12124,"children":12125},{"style":3415},[12126],{"type":2992,"value":11529},{"type":2987,"tag":3270,"props":12128,"children":12129},{"style":3349},[12130],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":12132,"children":12133},{"class":3272,"line":3792},[12134,12138,12142],{"type":2987,"tag":3270,"props":12135,"children":12136},{"style":3349},[12137],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":12139,"children":12140},{"style":3415},[12141],{"type":2992,"value":3552},{"type":2987,"tag":3270,"props":12143,"children":12144},{"style":3349},[12145],{"type":2992,"value":3429},{"type":2987,"tag":2994,"props":12147,"children":12148},{},[12149,12151,12156,12158,12164,12166,12172],{"type":2992,"value":12150},"If you are caching your routes with ",{"type":2987,"tag":3132,"props":12152,"children":12154},{"className":12153},[],[12155],{"type":2992,"value":11192},{"type":2992,"value":12157},", please make sure to use ",{"type":2987,"tag":2998,"props":12159,"children":12162},{"href":12160,"rel":12161},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fnitro",[3002],[12163],{"type":2992,"value":833},{"type":2992,"value":12165}," >= ",{"type":2987,"tag":3132,"props":12167,"children":12169},{"className":12168},[],[12170],{"type":2992,"value":12171},"2.9.7",{"type":2992,"value":12173}," to support the client-side fetching of the user session.",{"type":2987,"tag":3078,"props":12175,"children":12177},{"id":12176},"websocket-support",[12178],{"type":2992,"value":12179},"WebSocket Support",{"type":2987,"tag":2994,"props":12181,"children":12182},{},[12183,12185,12192],{"type":2992,"value":12184},"Nuxt Auth Utils is compatible with ",{"type":2987,"tag":2998,"props":12186,"children":12189},{"href":12187,"rel":12188},"https:\u002F\u002Fnitro.build\u002Fguide\u002Fwebsocket",[3002],[12190],{"type":2992,"value":12191},"Nitro WebSockets",{"type":2992,"value":3225},{"type":2987,"tag":2994,"props":12194,"children":12195},{},[12196,12198,12204,12205,12210],{"type":2992,"value":12197},"Make sure to enable the ",{"type":2987,"tag":3132,"props":12199,"children":12201},{"className":12200},[],[12202],{"type":2992,"value":12203},"experimental.websocket",{"type":2992,"value":11220},{"type":2987,"tag":3132,"props":12206,"children":12208},{"className":12207},[],[12209],{"type":2992,"value":233},{"type":2992,"value":4010},{"type":2987,"tag":3260,"props":12212,"children":12214},{"className":3949,"code":12213,"language":3951,"meta":2861,"style":2861},"export default defineNuxtConfig({\n  nitro: {\n    experimental: {\n      websocket: true\n    }\n  }\n})\n",[12215],{"type":2987,"tag":3132,"props":12216,"children":12217},{"__ignoreMap":2861},[12218,12241,12257,12273,12289,12296,12303],{"type":2987,"tag":3270,"props":12219,"children":12220},{"class":3272,"line":2947},[12221,12225,12229,12233,12237],{"type":2987,"tag":3270,"props":12222,"children":12223},{"style":4533},[12224],{"type":2992,"value":5067},{"type":2987,"tag":3270,"props":12226,"children":12227},{"style":4533},[12228],{"type":2992,"value":5182},{"type":2987,"tag":3270,"props":12230,"children":12231},{"style":3506},[12232],{"type":2992,"value":5187},{"type":2987,"tag":3270,"props":12234,"children":12235},{"style":3344},[12236],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":12238,"children":12239},{"style":3349},[12240],{"type":2992,"value":5197},{"type":2987,"tag":3270,"props":12242,"children":12243},{"class":3272,"line":2913},[12244,12249,12253],{"type":2987,"tag":3270,"props":12245,"children":12246},{"style":3415},[12247],{"type":2992,"value":12248},"  nitro",{"type":2987,"tag":3270,"props":12250,"children":12251},{"style":3349},[12252],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":12254,"children":12255},{"style":3349},[12256],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":12258,"children":12259},{"class":3272,"line":2897},[12260,12265,12269],{"type":2987,"tag":3270,"props":12261,"children":12262},{"style":3415},[12263],{"type":2992,"value":12264},"    experimental",{"type":2987,"tag":3270,"props":12266,"children":12267},{"style":3349},[12268],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":12270,"children":12271},{"style":3349},[12272],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":12274,"children":12275},{"class":3272,"line":3533},[12276,12281,12285],{"type":2987,"tag":3270,"props":12277,"children":12278},{"style":3415},[12279],{"type":2992,"value":12280},"      websocket",{"type":2987,"tag":3270,"props":12282,"children":12283},{"style":3349},[12284],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":12286,"children":12287},{"style":5717},[12288],{"type":2992,"value":5720},{"type":2987,"tag":3270,"props":12290,"children":12291},{"class":3272,"line":3542},[12292],{"type":2987,"tag":3270,"props":12293,"children":12294},{"style":3349},[12295],{"type":2992,"value":5323},{"type":2987,"tag":3270,"props":12297,"children":12298},{"class":3272,"line":3559},[12299],{"type":2987,"tag":3270,"props":12300,"children":12301},{"style":3349},[12302],{"type":2992,"value":4971},{"type":2987,"tag":3270,"props":12304,"children":12305},{"class":3272,"line":2893},[12306,12310],{"type":2987,"tag":3270,"props":12307,"children":12308},{"style":3349},[12309],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":12311,"children":12312},{"style":3344},[12313],{"type":2992,"value":4713},{"type":2987,"tag":2994,"props":12315,"children":12316},{},[12317,12318,12324,12326,12332],{"type":2992,"value":11483},{"type":2987,"tag":3132,"props":12319,"children":12321},{"className":12320},[],[12322],{"type":2992,"value":12323},"requireUserSession",{"type":2992,"value":12325}," function in the ",{"type":2987,"tag":3132,"props":12327,"children":12329},{"className":12328},[],[12330],{"type":2992,"value":12331},"upgrade",{"type":2992,"value":12333}," function to check if the user is authenticated before upgrading the WebSocket connection.",{"type":2987,"tag":3260,"props":12335,"children":12337},{"className":3949,"code":12336,"language":3951,"meta":2861,"style":2861},"\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",[12338],{"type":2987,"tag":3132,"props":12339,"children":12340},{"__ignoreMap":2861},[12341,12349,12373,12402,12410,12433,12440,12469,12512,12519,12582,12589,12621,12666,12673],{"type":2987,"tag":3270,"props":12342,"children":12343},{"class":3272,"line":2947},[12344],{"type":2987,"tag":3270,"props":12345,"children":12346},{"style":3335},[12347],{"type":2992,"value":12348},"\u002F\u002F server\u002Froutes\u002Fws.ts\n",{"type":2987,"tag":3270,"props":12350,"children":12351},{"class":3272,"line":2913},[12352,12356,12360,12365,12369],{"type":2987,"tag":3270,"props":12353,"children":12354},{"style":4533},[12355],{"type":2992,"value":5067},{"type":2987,"tag":3270,"props":12357,"children":12358},{"style":4533},[12359],{"type":2992,"value":5182},{"type":2987,"tag":3270,"props":12361,"children":12362},{"style":3506},[12363],{"type":2992,"value":12364}," defineWebSocketHandler",{"type":2987,"tag":3270,"props":12366,"children":12367},{"style":3344},[12368],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":12370,"children":12371},{"style":3349},[12372],{"type":2992,"value":5197},{"type":2987,"tag":3270,"props":12374,"children":12375},{"class":3272,"line":2897},[12376,12380,12385,12389,12394,12398],{"type":2987,"tag":3270,"props":12377,"children":12378},{"style":3421},[12379],{"type":2992,"value":5735},{"type":2987,"tag":3270,"props":12381,"children":12382},{"style":3415},[12383],{"type":2992,"value":12384}," upgrade",{"type":2987,"tag":3270,"props":12386,"children":12387},{"style":3349},[12388],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":12390,"children":12391},{"style":4365},[12392],{"type":2992,"value":12393},"request",{"type":2987,"tag":3270,"props":12395,"children":12396},{"style":3349},[12397],{"type":2992,"value":5953},{"type":2987,"tag":3270,"props":12399,"children":12400},{"style":3349},[12401],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":12403,"children":12404},{"class":3272,"line":3533},[12405],{"type":2987,"tag":3270,"props":12406,"children":12407},{"style":3335},[12408],{"type":2992,"value":12409},"    \u002F\u002F Make sure the user is authenticated before upgrading the WebSocket connection\n",{"type":2987,"tag":3270,"props":12411,"children":12412},{"class":3272,"line":3542},[12413,12417,12421,12425,12429],{"type":2987,"tag":3270,"props":12414,"children":12415},{"style":4533},[12416],{"type":2992,"value":5786},{"type":2987,"tag":3270,"props":12418,"children":12419},{"style":3506},[12420],{"type":2992,"value":4869},{"type":2987,"tag":3270,"props":12422,"children":12423},{"style":3415},[12424],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":12426,"children":12427},{"style":3344},[12428],{"type":2992,"value":12393},{"type":2987,"tag":3270,"props":12430,"children":12431},{"style":3415},[12432],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":12434,"children":12435},{"class":3272,"line":3559},[12436],{"type":2987,"tag":3270,"props":12437,"children":12438},{"style":3349},[12439],{"type":2992,"value":4611},{"type":2987,"tag":3270,"props":12441,"children":12442},{"class":3272,"line":2893},[12443,12447,12452,12456,12461,12465],{"type":2987,"tag":3270,"props":12444,"children":12445},{"style":3421},[12446],{"type":2992,"value":5735},{"type":2987,"tag":3270,"props":12448,"children":12449},{"style":3415},[12450],{"type":2992,"value":12451}," open",{"type":2987,"tag":3270,"props":12453,"children":12454},{"style":3349},[12455],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":12457,"children":12458},{"style":4365},[12459],{"type":2992,"value":12460},"peer",{"type":2987,"tag":3270,"props":12462,"children":12463},{"style":3349},[12464],{"type":2992,"value":5953},{"type":2987,"tag":3270,"props":12466,"children":12467},{"style":3349},[12468],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":12470,"children":12471},{"class":3272,"line":2889},[12472,12476,12480,12484,12488,12492,12496,12500,12504,12508],{"type":2987,"tag":3270,"props":12473,"children":12474},{"style":3421},[12475],{"type":2992,"value":7503},{"type":2987,"tag":3270,"props":12477,"children":12478},{"style":3349},[12479],{"type":2992,"value":3442},{"type":2987,"tag":3270,"props":12481,"children":12482},{"style":3344},[12483],{"type":2992,"value":3457},{"type":2987,"tag":3270,"props":12485,"children":12486},{"style":3349},[12487],{"type":2992,"value":7383},{"type":2987,"tag":3270,"props":12489,"children":12490},{"style":3349},[12491],{"type":2992,"value":3503},{"type":2987,"tag":3270,"props":12493,"children":12494},{"style":4533},[12495],{"type":2992,"value":4789},{"type":2987,"tag":3270,"props":12497,"children":12498},{"style":3506},[12499],{"type":2992,"value":4869},{"type":2987,"tag":3270,"props":12501,"children":12502},{"style":3415},[12503],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":12505,"children":12506},{"style":3344},[12507],{"type":2992,"value":12460},{"type":2987,"tag":3270,"props":12509,"children":12510},{"style":3415},[12511],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":12513,"children":12514},{"class":3272,"line":2885},[12515],{"type":2987,"tag":3270,"props":12516,"children":12517},{"emptyLinePlaceholder":1196},[12518],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":12520,"children":12521},{"class":3272,"line":3721},[12522,12527,12531,12536,12540,12544,12549,12553,12557,12561,12566,12570,12574,12578],{"type":2987,"tag":3270,"props":12523,"children":12524},{"style":3344},[12525],{"type":2992,"value":12526},"    peer",{"type":2987,"tag":3270,"props":12528,"children":12529},{"style":3349},[12530],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":12532,"children":12533},{"style":3506},[12534],{"type":2992,"value":12535},"send",{"type":2987,"tag":3270,"props":12537,"children":12538},{"style":3415},[12539],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":12541,"children":12542},{"style":3349},[12543],{"type":2992,"value":7971},{"type":2987,"tag":3270,"props":12545,"children":12546},{"style":3282},[12547],{"type":2992,"value":12548},"Hello, ",{"type":2987,"tag":3270,"props":12550,"children":12551},{"style":3349},[12552],{"type":2992,"value":9310},{"type":2987,"tag":3270,"props":12554,"children":12555},{"style":3344},[12556],{"type":2992,"value":7557},{"type":2987,"tag":3270,"props":12558,"children":12559},{"style":3349},[12560],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":12562,"children":12563},{"style":3344},[12564],{"type":2992,"value":12565},"name",{"type":2987,"tag":3270,"props":12567,"children":12568},{"style":3349},[12569],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":12571,"children":12572},{"style":3282},[12573],{"type":2992,"value":7996},{"type":2987,"tag":3270,"props":12575,"children":12576},{"style":3349},[12577],{"type":2992,"value":7971},{"type":2987,"tag":3270,"props":12579,"children":12580},{"style":3415},[12581],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":12583,"children":12584},{"class":3272,"line":3738},[12585],{"type":2987,"tag":3270,"props":12586,"children":12587},{"style":3349},[12588],{"type":2992,"value":4611},{"type":2987,"tag":3270,"props":12590,"children":12591},{"class":3272,"line":3759},[12592,12597,12601,12605,12609,12613,12617],{"type":2987,"tag":3270,"props":12593,"children":12594},{"style":3415},[12595],{"type":2992,"value":12596},"  message",{"type":2987,"tag":3270,"props":12598,"children":12599},{"style":3349},[12600],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":12602,"children":12603},{"style":4365},[12604],{"type":2992,"value":12460},{"type":2987,"tag":3270,"props":12606,"children":12607},{"style":3349},[12608],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":12610,"children":12611},{"style":4365},[12612],{"type":2992,"value":7665},{"type":2987,"tag":3270,"props":12614,"children":12615},{"style":3349},[12616],{"type":2992,"value":5953},{"type":2987,"tag":3270,"props":12618,"children":12619},{"style":3349},[12620],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":12622,"children":12623},{"class":3272,"line":3792},[12624,12628,12632,12636,12640,12644,12649,12653,12658,12662],{"type":2987,"tag":3270,"props":12625,"children":12626},{"style":3344},[12627],{"type":2992,"value":12526},{"type":2987,"tag":3270,"props":12629,"children":12630},{"style":3349},[12631],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":12633,"children":12634},{"style":3506},[12635],{"type":2992,"value":12535},{"type":2987,"tag":3270,"props":12637,"children":12638},{"style":3415},[12639],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":12641,"children":12642},{"style":3349},[12643],{"type":2992,"value":7971},{"type":2987,"tag":3270,"props":12645,"children":12646},{"style":3282},[12647],{"type":2992,"value":12648},"Echo: ",{"type":2987,"tag":3270,"props":12650,"children":12651},{"style":3349},[12652],{"type":2992,"value":9310},{"type":2987,"tag":3270,"props":12654,"children":12655},{"style":3344},[12656],{"type":2992,"value":12657},"message",{"type":2987,"tag":3270,"props":12659,"children":12660},{"style":3349},[12661],{"type":2992,"value":9320},{"type":2987,"tag":3270,"props":12663,"children":12664},{"style":3415},[12665],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":12667,"children":12668},{"class":3272,"line":3847},[12669],{"type":2987,"tag":3270,"props":12670,"children":12671},{"style":3349},[12672],{"type":2992,"value":4611},{"type":2987,"tag":3270,"props":12674,"children":12675},{"class":3272,"line":3856},[12676,12680],{"type":2987,"tag":3270,"props":12677,"children":12678},{"style":3349},[12679],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":12681,"children":12682},{"style":3344},[12683],{"type":2992,"value":4713},{"type":2987,"tag":2994,"props":12685,"children":12686},{},[12687,12689,12696],{"type":2992,"value":12688},"Then, in your application, you can use the ",{"type":2987,"tag":2998,"props":12690,"children":12693},{"href":12691,"rel":12692},"https:\u002F\u002Fvueuse.org\u002Fcore\u002FuseWebSocket\u002F",[3002],[12694],{"type":2992,"value":12695},"useWebSocket",{"type":2992,"value":12697}," composable to connect to the WebSocket:",{"type":2987,"tag":3260,"props":12699,"children":12701},{"className":3398,"code":12700,"language":3400,"meta":2861,"style":2861},"\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",[12702],{"type":2987,"tag":3132,"props":12703,"children":12704},{"__ignoreMap":2861},[12705,12724,12835,12842,12850,12863,12878,12885,12900,12915,12947,12979,12994,13047,13100,13153,13168,13183],{"type":2987,"tag":3270,"props":12706,"children":12707},{"class":3272,"line":2947},[12708,12712,12716,12720],{"type":2987,"tag":3270,"props":12709,"children":12710},{"style":3349},[12711],{"type":2992,"value":3412},{"type":2987,"tag":3270,"props":12713,"children":12714},{"style":3415},[12715],{"type":2992,"value":3418},{"type":2987,"tag":3270,"props":12717,"children":12718},{"style":3421},[12719],{"type":2992,"value":3424},{"type":2987,"tag":3270,"props":12721,"children":12722},{"style":3349},[12723],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":12725,"children":12726},{"class":3272,"line":2913},[12727,12731,12735,12740,12744,12749,12753,12758,12762,12766,12770,12775,12779,12783,12788,12792,12796,12801,12805,12809,12813,12818,12822,12827,12831],{"type":2987,"tag":3270,"props":12728,"children":12729},{"style":3421},[12730],{"type":2992,"value":3437},{"type":2987,"tag":3270,"props":12732,"children":12733},{"style":3349},[12734],{"type":2992,"value":3442},{"type":2987,"tag":3270,"props":12736,"children":12737},{"style":3344},[12738],{"type":2992,"value":12739}," status",{"type":2987,"tag":3270,"props":12741,"children":12742},{"style":3349},[12743],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":12745,"children":12746},{"style":3344},[12747],{"type":2992,"value":12748}," data",{"type":2987,"tag":3270,"props":12750,"children":12751},{"style":3349},[12752],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":12754,"children":12755},{"style":3344},[12756],{"type":2992,"value":12757}," send",{"type":2987,"tag":3270,"props":12759,"children":12760},{"style":3349},[12761],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":12763,"children":12764},{"style":3344},[12765],{"type":2992,"value":12451},{"type":2987,"tag":3270,"props":12767,"children":12768},{"style":3349},[12769],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":12771,"children":12772},{"style":3344},[12773],{"type":2992,"value":12774}," close ",{"type":2987,"tag":3270,"props":12776,"children":12777},{"style":3349},[12778],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":12780,"children":12781},{"style":3349},[12782],{"type":2992,"value":3503},{"type":2987,"tag":3270,"props":12784,"children":12785},{"style":3506},[12786],{"type":2992,"value":12787}," useWebSocket",{"type":2987,"tag":3270,"props":12789,"children":12790},{"style":3344},[12791],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":12793,"children":12794},{"style":3349},[12795],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":12797,"children":12798},{"style":3282},[12799],{"type":2992,"value":12800},"\u002Fws",{"type":2987,"tag":3270,"props":12802,"children":12803},{"style":3349},[12804],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":12806,"children":12807},{"style":3349},[12808],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":12810,"children":12811},{"style":3349},[12812],{"type":2992,"value":3442},{"type":2987,"tag":3270,"props":12814,"children":12815},{"style":3415},[12816],{"type":2992,"value":12817}," immediate",{"type":2987,"tag":3270,"props":12819,"children":12820},{"style":3349},[12821],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":12823,"children":12824},{"style":5717},[12825],{"type":2992,"value":12826}," false",{"type":2987,"tag":3270,"props":12828,"children":12829},{"style":3349},[12830],{"type":2992,"value":7383},{"type":2987,"tag":3270,"props":12832,"children":12833},{"style":3344},[12834],{"type":2992,"value":4713},{"type":2987,"tag":3270,"props":12836,"children":12837},{"class":3272,"line":2897},[12838],{"type":2987,"tag":3270,"props":12839,"children":12840},{"emptyLinePlaceholder":1196},[12841],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":12843,"children":12844},{"class":3272,"line":3533},[12845],{"type":2987,"tag":3270,"props":12846,"children":12847},{"style":3335},[12848],{"type":2992,"value":12849},"\u002F\u002F Only open the websocket after the page is hydrated (client-only)\n",{"type":2987,"tag":3270,"props":12851,"children":12852},{"class":3272,"line":3542},[12853,12858],{"type":2987,"tag":3270,"props":12854,"children":12855},{"style":3506},[12856],{"type":2992,"value":12857},"onMounted",{"type":2987,"tag":3270,"props":12859,"children":12860},{"style":3344},[12861],{"type":2992,"value":12862},"(open)\n",{"type":2987,"tag":3270,"props":12864,"children":12865},{"class":3272,"line":3559},[12866,12870,12874],{"type":2987,"tag":3270,"props":12867,"children":12868},{"style":3349},[12869],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":12871,"children":12872},{"style":3415},[12873],{"type":2992,"value":3418},{"type":2987,"tag":3270,"props":12875,"children":12876},{"style":3349},[12877],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":12879,"children":12880},{"class":3272,"line":2893},[12881],{"type":2987,"tag":3270,"props":12882,"children":12883},{"emptyLinePlaceholder":1196},[12884],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":12886,"children":12887},{"class":3272,"line":2889},[12888,12892,12896],{"type":2987,"tag":3270,"props":12889,"children":12890},{"style":3349},[12891],{"type":2992,"value":3412},{"type":2987,"tag":3270,"props":12893,"children":12894},{"style":3415},[12895],{"type":2992,"value":3552},{"type":2987,"tag":3270,"props":12897,"children":12898},{"style":3349},[12899],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":12901,"children":12902},{"class":3272,"line":2885},[12903,12907,12911],{"type":2987,"tag":3270,"props":12904,"children":12905},{"style":3349},[12906],{"type":2992,"value":3565},{"type":2987,"tag":3270,"props":12908,"children":12909},{"style":3415},[12910],{"type":2992,"value":3570},{"type":2987,"tag":3270,"props":12912,"children":12913},{"style":3349},[12914],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":12916,"children":12917},{"class":3272,"line":3721},[12918,12922,12926,12930,12935,12939,12943],{"type":2987,"tag":3270,"props":12919,"children":12920},{"style":3349},[12921],{"type":2992,"value":3605},{"type":2987,"tag":3270,"props":12923,"children":12924},{"style":3415},[12925],{"type":2992,"value":2994},{"type":2987,"tag":3270,"props":12927,"children":12928},{"style":3349},[12929],{"type":2992,"value":3614},{"type":2987,"tag":3270,"props":12931,"children":12932},{"style":3344},[12933],{"type":2992,"value":12934},"Status: {{ status }}",{"type":2987,"tag":3270,"props":12936,"children":12937},{"style":3349},[12938],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":12940,"children":12941},{"style":3415},[12942],{"type":2992,"value":2994},{"type":2987,"tag":3270,"props":12944,"children":12945},{"style":3349},[12946],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":12948,"children":12949},{"class":3272,"line":3738},[12950,12954,12958,12962,12967,12971,12975],{"type":2987,"tag":3270,"props":12951,"children":12952},{"style":3349},[12953],{"type":2992,"value":3605},{"type":2987,"tag":3270,"props":12955,"children":12956},{"style":3415},[12957],{"type":2992,"value":2994},{"type":2987,"tag":3270,"props":12959,"children":12960},{"style":3349},[12961],{"type":2992,"value":3614},{"type":2987,"tag":3270,"props":12963,"children":12964},{"style":3344},[12965],{"type":2992,"value":12966},"Data: {{ data }}",{"type":2987,"tag":3270,"props":12968,"children":12969},{"style":3349},[12970],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":12972,"children":12973},{"style":3415},[12974],{"type":2992,"value":2994},{"type":2987,"tag":3270,"props":12976,"children":12977},{"style":3349},[12978],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":12980,"children":12981},{"class":3272,"line":3759},[12982,12986,12990],{"type":2987,"tag":3270,"props":12983,"children":12984},{"style":3349},[12985],{"type":2992,"value":3605},{"type":2987,"tag":3270,"props":12987,"children":12988},{"style":3415},[12989],{"type":2992,"value":2994},{"type":2987,"tag":3270,"props":12991,"children":12992},{"style":3349},[12993],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":12995,"children":12996},{"class":3272,"line":3792},[12997,13001,13005,13009,13013,13017,13022,13026,13030,13035,13039,13043],{"type":2987,"tag":3270,"props":12998,"children":12999},{"style":3349},[13000],{"type":2992,"value":11579},{"type":2987,"tag":3270,"props":13002,"children":13003},{"style":3415},[13004],{"type":2992,"value":3675},{"type":2987,"tag":3270,"props":13006,"children":13007},{"style":3421},[13008],{"type":2992,"value":3680},{"type":2987,"tag":3270,"props":13010,"children":13011},{"style":3349},[13012],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":13014,"children":13015},{"style":3349},[13016],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":13018,"children":13019},{"style":3282},[13020],{"type":2992,"value":13021},"open",{"type":2987,"tag":3270,"props":13023,"children":13024},{"style":3349},[13025],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":13027,"children":13028},{"style":3349},[13029],{"type":2992,"value":3614},{"type":2987,"tag":3270,"props":13031,"children":13032},{"style":3344},[13033],{"type":2992,"value":13034},"Open",{"type":2987,"tag":3270,"props":13036,"children":13037},{"style":3349},[13038],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":13040,"children":13041},{"style":3415},[13042],{"type":2992,"value":3675},{"type":2987,"tag":3270,"props":13044,"children":13045},{"style":3349},[13046],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":13048,"children":13049},{"class":3272,"line":3847},[13050,13054,13058,13062,13066,13070,13075,13079,13083,13088,13092,13096],{"type":2987,"tag":3270,"props":13051,"children":13052},{"style":3349},[13053],{"type":2992,"value":11579},{"type":2987,"tag":3270,"props":13055,"children":13056},{"style":3415},[13057],{"type":2992,"value":3675},{"type":2987,"tag":3270,"props":13059,"children":13060},{"style":3421},[13061],{"type":2992,"value":3680},{"type":2987,"tag":3270,"props":13063,"children":13064},{"style":3349},[13065],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":13067,"children":13068},{"style":3349},[13069],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":13071,"children":13072},{"style":3282},[13073],{"type":2992,"value":13074},"close(1000, 'Closing')",{"type":2987,"tag":3270,"props":13076,"children":13077},{"style":3349},[13078],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":13080,"children":13081},{"style":3349},[13082],{"type":2992,"value":3614},{"type":2987,"tag":3270,"props":13084,"children":13085},{"style":3344},[13086],{"type":2992,"value":13087},"Close",{"type":2987,"tag":3270,"props":13089,"children":13090},{"style":3349},[13091],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":13093,"children":13094},{"style":3415},[13095],{"type":2992,"value":3675},{"type":2987,"tag":3270,"props":13097,"children":13098},{"style":3349},[13099],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":13101,"children":13102},{"class":3272,"line":3856},[13103,13107,13111,13115,13119,13123,13128,13132,13136,13141,13145,13149],{"type":2987,"tag":3270,"props":13104,"children":13105},{"style":3349},[13106],{"type":2992,"value":11579},{"type":2987,"tag":3270,"props":13108,"children":13109},{"style":3415},[13110],{"type":2992,"value":3675},{"type":2987,"tag":3270,"props":13112,"children":13113},{"style":3421},[13114],{"type":2992,"value":3680},{"type":2987,"tag":3270,"props":13116,"children":13117},{"style":3349},[13118],{"type":2992,"value":3352},{"type":2987,"tag":3270,"props":13120,"children":13121},{"style":3349},[13122],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":13124,"children":13125},{"style":3282},[13126],{"type":2992,"value":13127},"send('hello')",{"type":2987,"tag":3270,"props":13129,"children":13130},{"style":3349},[13131],{"type":2992,"value":3584},{"type":2987,"tag":3270,"props":13133,"children":13134},{"style":3349},[13135],{"type":2992,"value":3614},{"type":2987,"tag":3270,"props":13137,"children":13138},{"style":3344},[13139],{"type":2992,"value":13140},"Send hello",{"type":2987,"tag":3270,"props":13142,"children":13143},{"style":3349},[13144],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":13146,"children":13147},{"style":3415},[13148],{"type":2992,"value":3675},{"type":2987,"tag":3270,"props":13150,"children":13151},{"style":3349},[13152],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":13154,"children":13155},{"class":3272,"line":2881},[13156,13160,13164],{"type":2987,"tag":3270,"props":13157,"children":13158},{"style":3349},[13159],{"type":2992,"value":11710},{"type":2987,"tag":3270,"props":13161,"children":13162},{"style":3415},[13163],{"type":2992,"value":2994},{"type":2987,"tag":3270,"props":13165,"children":13166},{"style":3349},[13167],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":13169,"children":13170},{"class":3272,"line":3924},[13171,13175,13179],{"type":2987,"tag":3270,"props":13172,"children":13173},{"style":3349},[13174],{"type":2992,"value":3727},{"type":2987,"tag":3270,"props":13176,"children":13177},{"style":3415},[13178],{"type":2992,"value":3570},{"type":2987,"tag":3270,"props":13180,"children":13181},{"style":3349},[13182],{"type":2992,"value":3429},{"type":2987,"tag":3270,"props":13184,"children":13185},{"class":3272,"line":4194},[13186,13190,13194],{"type":2987,"tag":3270,"props":13187,"children":13188},{"style":3349},[13189],{"type":2992,"value":3522},{"type":2987,"tag":3270,"props":13191,"children":13192},{"style":3415},[13193],{"type":2992,"value":3552},{"type":2987,"tag":3270,"props":13195,"children":13196},{"style":3349},[13197],{"type":2992,"value":3429},{"type":2987,"tag":3078,"props":13199,"children":13201},{"id":13200},"configuration",[13202],{"type":2992,"value":29},{"type":2987,"tag":2994,"props":13204,"children":13205},{},[13206,13208,13214,13216,13229],{"type":2992,"value":13207},"We leverage ",{"type":2987,"tag":3132,"props":13209,"children":13211},{"className":13210},[],[13212],{"type":2992,"value":13213},"runtimeConfig.session",{"type":2992,"value":13215}," to give the defaults option to ",{"type":2987,"tag":2998,"props":13217,"children":13220},{"href":13218,"rel":13219},"https:\u002F\u002Fh3.unjs.io\u002Fexamples\u002Fhandle-session",[3002],[13221,13223],{"type":2992,"value":13222},"h3 ",{"type":2987,"tag":3132,"props":13224,"children":13226},{"className":13225},[],[13227],{"type":2992,"value":13228},"useSession",{"type":2992,"value":3225},{"type":2987,"tag":2994,"props":13231,"children":13232},{},[13233,13235,13240],{"type":2992,"value":13234},"You can overwrite the options in your ",{"type":2987,"tag":3132,"props":13236,"children":13238},{"className":13237},[],[13239],{"type":2992,"value":233},{"type":2992,"value":4010},{"type":2987,"tag":3260,"props":13242,"children":13244},{"className":3949,"code":13243,"language":3951,"meta":2861,"style":2861},"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",[13245],{"type":2987,"tag":3132,"props":13246,"children":13247},{"__ignoreMap":2861},[13248,13271,13306,13321,13337,13386,13393,13400],{"type":2987,"tag":3270,"props":13249,"children":13250},{"class":3272,"line":2947},[13251,13255,13259,13263,13267],{"type":2987,"tag":3270,"props":13252,"children":13253},{"style":4533},[13254],{"type":2992,"value":5067},{"type":2987,"tag":3270,"props":13256,"children":13257},{"style":4533},[13258],{"type":2992,"value":5182},{"type":2987,"tag":3270,"props":13260,"children":13261},{"style":3506},[13262],{"type":2992,"value":5187},{"type":2987,"tag":3270,"props":13264,"children":13265},{"style":3344},[13266],{"type":2992,"value":5192},{"type":2987,"tag":3270,"props":13268,"children":13269},{"style":3349},[13270],{"type":2992,"value":5197},{"type":2987,"tag":3270,"props":13272,"children":13273},{"class":3272,"line":2913},[13274,13278,13282,13286,13290,13294,13298,13302],{"type":2987,"tag":3270,"props":13275,"children":13276},{"style":3415},[13277],{"type":2992,"value":6419},{"type":2987,"tag":3270,"props":13279,"children":13280},{"style":3349},[13281],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":13283,"children":13284},{"style":3344},[13285],{"type":2992,"value":6428},{"type":2987,"tag":3270,"props":13287,"children":13288},{"style":3349},[13289],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":13291,"children":13292},{"style":3282},[13293],{"type":2992,"value":2860},{"type":2987,"tag":3270,"props":13295,"children":13296},{"style":3349},[13297],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":13299,"children":13300},{"style":3344},[13301],{"type":2992,"value":6445},{"type":2987,"tag":3270,"props":13303,"children":13304},{"style":3349},[13305],{"type":2992,"value":5283},{"type":2987,"tag":3270,"props":13307,"children":13308},{"class":3272,"line":2897},[13309,13313,13317],{"type":2987,"tag":3270,"props":13310,"children":13311},{"style":3415},[13312],{"type":2992,"value":5205},{"type":2987,"tag":3270,"props":13314,"children":13315},{"style":3349},[13316],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":13318,"children":13319},{"style":3349},[13320],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":13322,"children":13323},{"class":3272,"line":3533},[13324,13329,13333],{"type":2987,"tag":3270,"props":13325,"children":13326},{"style":3415},[13327],{"type":2992,"value":13328},"    session",{"type":2987,"tag":3270,"props":13330,"children":13331},{"style":3349},[13332],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":13334,"children":13335},{"style":3349},[13336],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":13338,"children":13339},{"class":3272,"line":3542},[13340,13345,13349,13354,13359,13363,13367,13372,13376,13381],{"type":2987,"tag":3270,"props":13341,"children":13342},{"style":3415},[13343],{"type":2992,"value":13344},"      maxAge",{"type":2987,"tag":3270,"props":13346,"children":13347},{"style":3349},[13348],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":13350,"children":13351},{"style":6871},[13352],{"type":2992,"value":13353}," 60",{"type":2987,"tag":3270,"props":13355,"children":13356},{"style":3349},[13357],{"type":2992,"value":13358}," *",{"type":2987,"tag":3270,"props":13360,"children":13361},{"style":6871},[13362],{"type":2992,"value":13353},{"type":2987,"tag":3270,"props":13364,"children":13365},{"style":3349},[13366],{"type":2992,"value":13358},{"type":2987,"tag":3270,"props":13368,"children":13369},{"style":6871},[13370],{"type":2992,"value":13371}," 24",{"type":2987,"tag":3270,"props":13373,"children":13374},{"style":3349},[13375],{"type":2992,"value":13358},{"type":2987,"tag":3270,"props":13377,"children":13378},{"style":6871},[13379],{"type":2992,"value":13380}," 7",{"type":2987,"tag":3270,"props":13382,"children":13383},{"style":3335},[13384],{"type":2992,"value":13385}," \u002F\u002F 1 week\n",{"type":2987,"tag":3270,"props":13387,"children":13388},{"class":3272,"line":3559},[13389],{"type":2987,"tag":3270,"props":13390,"children":13391},{"style":3349},[13392],{"type":2992,"value":5323},{"type":2987,"tag":3270,"props":13394,"children":13395},{"class":3272,"line":2893},[13396],{"type":2987,"tag":3270,"props":13397,"children":13398},{"style":3349},[13399],{"type":2992,"value":4971},{"type":2987,"tag":3270,"props":13401,"children":13402},{"class":3272,"line":2889},[13403,13407],{"type":2987,"tag":3270,"props":13404,"children":13405},{"style":3349},[13406],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":13408,"children":13409},{"style":3344},[13410],{"type":2992,"value":4713},{"type":2987,"tag":2994,"props":13412,"children":13413},{},[13414],{"type":2992,"value":13415},"Our defaults are:",{"type":2987,"tag":3260,"props":13417,"children":13419},{"className":3949,"code":13418,"language":3951,"meta":2861,"style":2861},"{\n  name: 'nuxt-session',\n  password: process.env.NUXT_SESSION_PASSWORD || '',\n  cookie: {\n    sameSite: 'lax'\n  }\n}\n",[13420],{"type":2987,"tag":3132,"props":13421,"children":13422},{"__ignoreMap":2861},[13423,13430,13459,13507,13523,13548,13555],{"type":2987,"tag":3270,"props":13424,"children":13425},{"class":3272,"line":2947},[13426],{"type":2987,"tag":3270,"props":13427,"children":13428},{"style":3349},[13429],{"type":2992,"value":5197},{"type":2987,"tag":3270,"props":13431,"children":13432},{"class":3272,"line":2913},[13433,13438,13442,13446,13451,13455],{"type":2987,"tag":3270,"props":13434,"children":13435},{"style":3276},[13436],{"type":2992,"value":13437},"  name",{"type":2987,"tag":3270,"props":13439,"children":13440},{"style":3349},[13441],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":13443,"children":13444},{"style":3349},[13445],{"type":2992,"value":4594},{"type":2987,"tag":3270,"props":13447,"children":13448},{"style":3282},[13449],{"type":2992,"value":13450},"nuxt-session",{"type":2987,"tag":3270,"props":13452,"children":13453},{"style":3349},[13454],{"type":2992,"value":4934},{"type":2987,"tag":3270,"props":13456,"children":13457},{"style":3349},[13458],{"type":2992,"value":5283},{"type":2987,"tag":3270,"props":13460,"children":13461},{"class":3272,"line":2897},[13462,13467,13471,13476,13480,13485,13489,13493,13498,13503],{"type":2987,"tag":3270,"props":13463,"children":13464},{"style":3276},[13465],{"type":2992,"value":13466},"  password",{"type":2987,"tag":3270,"props":13468,"children":13469},{"style":3349},[13470],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":13472,"children":13473},{"style":3344},[13474],{"type":2992,"value":13475}," process",{"type":2987,"tag":3270,"props":13477,"children":13478},{"style":3349},[13479],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":13481,"children":13482},{"style":3344},[13483],{"type":2992,"value":13484},"env",{"type":2987,"tag":3270,"props":13486,"children":13487},{"style":3349},[13488],{"type":2992,"value":3225},{"type":2987,"tag":3270,"props":13490,"children":13491},{"style":3344},[13492],{"type":2992,"value":3314},{"type":2987,"tag":3270,"props":13494,"children":13495},{"style":3349},[13496],{"type":2992,"value":13497}," ||",{"type":2987,"tag":3270,"props":13499,"children":13500},{"style":3349},[13501],{"type":2992,"value":13502}," ''",{"type":2987,"tag":3270,"props":13504,"children":13505},{"style":3349},[13506],{"type":2992,"value":5283},{"type":2987,"tag":3270,"props":13508,"children":13509},{"class":3272,"line":3533},[13510,13515,13519],{"type":2987,"tag":3270,"props":13511,"children":13512},{"style":3276},[13513],{"type":2992,"value":13514},"  cookie",{"type":2987,"tag":3270,"props":13516,"children":13517},{"style":3349},[13518],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":13520,"children":13521},{"style":3349},[13522],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":13524,"children":13525},{"class":3272,"line":3542},[13526,13531,13535,13539,13544],{"type":2987,"tag":3270,"props":13527,"children":13528},{"style":3276},[13529],{"type":2992,"value":13530},"    sameSite",{"type":2987,"tag":3270,"props":13532,"children":13533},{"style":3349},[13534],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":13536,"children":13537},{"style":3349},[13538],{"type":2992,"value":4594},{"type":2987,"tag":3270,"props":13540,"children":13541},{"style":3282},[13542],{"type":2992,"value":13543},"lax",{"type":2987,"tag":3270,"props":13545,"children":13546},{"style":3349},[13547],{"type":2992,"value":4603},{"type":2987,"tag":3270,"props":13549,"children":13550},{"class":3272,"line":3559},[13551],{"type":2987,"tag":3270,"props":13552,"children":13553},{"style":3349},[13554],{"type":2992,"value":4971},{"type":2987,"tag":3270,"props":13556,"children":13557},{"class":3272,"line":2893},[13558],{"type":2987,"tag":3270,"props":13559,"children":13560},{"style":3349},[13561],{"type":2992,"value":4449},{"type":2987,"tag":2994,"props":13563,"children":13564},{},[13565,13567,13573,13574,13580],{"type":2992,"value":13566},"You can also overwrite the session config by passing it as 3rd argument of the ",{"type":2987,"tag":3132,"props":13568,"children":13570},{"className":13569},[],[13571],{"type":2992,"value":13572},"setUserSession",{"type":2992,"value":6103},{"type":2987,"tag":3132,"props":13575,"children":13577},{"className":13576},[],[13578],{"type":2992,"value":13579},"replaceUserSession",{"type":2992,"value":13581}," functions:",{"type":2987,"tag":3260,"props":13583,"children":13585},{"className":3949,"code":13584,"language":3951,"meta":2861,"style":2861},"await setUserSession(event, { ... } , {\n  maxAge: 60 * 60 * 24 * 7 \u002F\u002F 1 week\n})\n",[13586],{"type":2987,"tag":3132,"props":13587,"children":13588},{"__ignoreMap":2861},[13589,13630,13674],{"type":2987,"tag":3270,"props":13590,"children":13591},{"class":3272,"line":2947},[13592,13596,13600,13604,13608,13612,13617,13621,13626],{"type":2987,"tag":3270,"props":13593,"children":13594},{"style":4533},[13595],{"type":2992,"value":4536},{"type":2987,"tag":3270,"props":13597,"children":13598},{"style":3506},[13599],{"type":2992,"value":4541},{"type":2987,"tag":3270,"props":13601,"children":13602},{"style":3344},[13603],{"type":2992,"value":4546},{"type":2987,"tag":3270,"props":13605,"children":13606},{"style":3349},[13607],{"type":2992,"value":3452},{"type":2987,"tag":3270,"props":13609,"children":13610},{"style":3349},[13611],{"type":2992,"value":3442},{"type":2987,"tag":3270,"props":13613,"children":13614},{"style":3349},[13615],{"type":2992,"value":13616}," ...",{"type":2987,"tag":3270,"props":13618,"children":13619},{"style":3349},[13620],{"type":2992,"value":7383},{"type":2987,"tag":3270,"props":13622,"children":13623},{"style":3349},[13624],{"type":2992,"value":13625}," ,",{"type":2987,"tag":3270,"props":13627,"children":13628},{"style":3349},[13629],{"type":2992,"value":3973},{"type":2987,"tag":3270,"props":13631,"children":13632},{"class":3272,"line":2913},[13633,13638,13642,13646,13650,13654,13658,13662,13666,13670],{"type":2987,"tag":3270,"props":13634,"children":13635},{"style":3415},[13636],{"type":2992,"value":13637},"  maxAge",{"type":2987,"tag":3270,"props":13639,"children":13640},{"style":3349},[13641],{"type":2992,"value":4010},{"type":2987,"tag":3270,"props":13643,"children":13644},{"style":6871},[13645],{"type":2992,"value":13353},{"type":2987,"tag":3270,"props":13647,"children":13648},{"style":3349},[13649],{"type":2992,"value":13358},{"type":2987,"tag":3270,"props":13651,"children":13652},{"style":6871},[13653],{"type":2992,"value":13353},{"type":2987,"tag":3270,"props":13655,"children":13656},{"style":3349},[13657],{"type":2992,"value":13358},{"type":2987,"tag":3270,"props":13659,"children":13660},{"style":6871},[13661],{"type":2992,"value":13371},{"type":2987,"tag":3270,"props":13663,"children":13664},{"style":3349},[13665],{"type":2992,"value":13358},{"type":2987,"tag":3270,"props":13667,"children":13668},{"style":6871},[13669],{"type":2992,"value":13380},{"type":2987,"tag":3270,"props":13671,"children":13672},{"style":3335},[13673],{"type":2992,"value":13385},{"type":2987,"tag":3270,"props":13675,"children":13676},{"class":3272,"line":2897},[13677,13681],{"type":2987,"tag":3270,"props":13678,"children":13679},{"style":3349},[13680],{"type":2992,"value":3498},{"type":2987,"tag":3270,"props":13682,"children":13683},{"style":3344},[13684],{"type":2992,"value":4713},{"type":2987,"tag":2994,"props":13686,"children":13687},{},[13688,13690,13701],{"type":2992,"value":13689},"Checkout the ",{"type":2987,"tag":2998,"props":13691,"children":13694},{"href":13692,"rel":13693},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fh3\u002Fblob\u002Fc04c458810e34eb15c1647e1369e7d7ef19f567d\u002Fsrc\u002Futils\u002Fsession.ts#L20",[3002],[13695],{"type":2987,"tag":3132,"props":13696,"children":13698},{"className":13697},[],[13699],{"type":2992,"value":13700},"SessionConfig",{"type":2992,"value":13702}," for all options.",{"type":2987,"tag":3078,"props":13704,"children":13706},{"id":13705},"more",[13707],{"type":2992,"value":13708},"More",{"type":2987,"tag":3044,"props":13710,"children":13711},{},[13712],{"type":2987,"tag":3048,"props":13713,"children":13714},{},[13715,13722,13724],{"type":2987,"tag":2998,"props":13716,"children":13719},{"href":13717,"rel":13718},"https:\u002F\u002Fgithub.com\u002Fbarbapapazes\u002Fnuxt-authorization",[3002],[13720],{"type":2992,"value":13721},"nuxt-authorization",{"type":2992,"value":13723},": Authorization module for managing permissions inside a Nuxt app, compatible with ",{"type":2987,"tag":3132,"props":13725,"children":13727},{"className":13726},[],[13728],{"type":2992,"value":2860},{"type":2987,"tag":3078,"props":13730,"children":13732},{"id":13731},"development",[13733],{"type":2992,"value":13734},"Development",{"type":2987,"tag":3260,"props":13736,"children":13738},{"className":3262,"code":13737,"language":3264,"meta":2861,"style":2861},"# 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",[13739],{"type":2987,"tag":3132,"props":13740,"children":13741},{"__ignoreMap":2861},[13742,13750,13763,13770,13778,13795,13802,13810,13826,13833,13841,13857,13864,13872,13888,13895,13903,13919,13935,13942,13950],{"type":2987,"tag":3270,"props":13743,"children":13744},{"class":3272,"line":2947},[13745],{"type":2987,"tag":3270,"props":13746,"children":13747},{"style":3335},[13748],{"type":2992,"value":13749},"# Install dependencies\n",{"type":2987,"tag":3270,"props":13751,"children":13752},{"class":3272,"line":2913},[13753,13758],{"type":2987,"tag":3270,"props":13754,"children":13755},{"style":3276},[13756],{"type":2992,"value":13757},"pnpm",{"type":2987,"tag":3270,"props":13759,"children":13760},{"style":3282},[13761],{"type":2992,"value":13762}," install\n",{"type":2987,"tag":3270,"props":13764,"children":13765},{"class":3272,"line":2897},[13766],{"type":2987,"tag":3270,"props":13767,"children":13768},{"emptyLinePlaceholder":1196},[13769],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":13771,"children":13772},{"class":3272,"line":3533},[13773],{"type":2987,"tag":3270,"props":13774,"children":13775},{"style":3335},[13776],{"type":2992,"value":13777},"# Generate type stubs\n",{"type":2987,"tag":3270,"props":13779,"children":13780},{"class":3272,"line":3542},[13781,13785,13790],{"type":2987,"tag":3270,"props":13782,"children":13783},{"style":3276},[13784],{"type":2992,"value":13757},{"type":2987,"tag":3270,"props":13786,"children":13787},{"style":3282},[13788],{"type":2992,"value":13789}," run",{"type":2987,"tag":3270,"props":13791,"children":13792},{"style":3282},[13793],{"type":2992,"value":13794}," dev:prepare\n",{"type":2987,"tag":3270,"props":13796,"children":13797},{"class":3272,"line":3559},[13798],{"type":2987,"tag":3270,"props":13799,"children":13800},{"emptyLinePlaceholder":1196},[13801],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":13803,"children":13804},{"class":3272,"line":2893},[13805],{"type":2987,"tag":3270,"props":13806,"children":13807},{"style":3335},[13808],{"type":2992,"value":13809},"# Develop with the playground\n",{"type":2987,"tag":3270,"props":13811,"children":13812},{"class":3272,"line":2889},[13813,13817,13821],{"type":2987,"tag":3270,"props":13814,"children":13815},{"style":3276},[13816],{"type":2992,"value":13757},{"type":2987,"tag":3270,"props":13818,"children":13819},{"style":3282},[13820],{"type":2992,"value":13789},{"type":2987,"tag":3270,"props":13822,"children":13823},{"style":3282},[13824],{"type":2992,"value":13825}," dev\n",{"type":2987,"tag":3270,"props":13827,"children":13828},{"class":3272,"line":2885},[13829],{"type":2987,"tag":3270,"props":13830,"children":13831},{"emptyLinePlaceholder":1196},[13832],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":13834,"children":13835},{"class":3272,"line":3721},[13836],{"type":2987,"tag":3270,"props":13837,"children":13838},{"style":3335},[13839],{"type":2992,"value":13840},"# Build the playground\n",{"type":2987,"tag":3270,"props":13842,"children":13843},{"class":3272,"line":3738},[13844,13848,13852],{"type":2987,"tag":3270,"props":13845,"children":13846},{"style":3276},[13847],{"type":2992,"value":13757},{"type":2987,"tag":3270,"props":13849,"children":13850},{"style":3282},[13851],{"type":2992,"value":13789},{"type":2987,"tag":3270,"props":13853,"children":13854},{"style":3282},[13855],{"type":2992,"value":13856}," dev:build\n",{"type":2987,"tag":3270,"props":13858,"children":13859},{"class":3272,"line":3759},[13860],{"type":2987,"tag":3270,"props":13861,"children":13862},{"emptyLinePlaceholder":1196},[13863],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":13865,"children":13866},{"class":3272,"line":3792},[13867],{"type":2987,"tag":3270,"props":13868,"children":13869},{"style":3335},[13870],{"type":2992,"value":13871},"# Run ESLint\n",{"type":2987,"tag":3270,"props":13873,"children":13874},{"class":3272,"line":3847},[13875,13879,13883],{"type":2987,"tag":3270,"props":13876,"children":13877},{"style":3276},[13878],{"type":2992,"value":13757},{"type":2987,"tag":3270,"props":13880,"children":13881},{"style":3282},[13882],{"type":2992,"value":13789},{"type":2987,"tag":3270,"props":13884,"children":13885},{"style":3282},[13886],{"type":2992,"value":13887}," lint\n",{"type":2987,"tag":3270,"props":13889,"children":13890},{"class":3272,"line":3856},[13891],{"type":2987,"tag":3270,"props":13892,"children":13893},{"emptyLinePlaceholder":1196},[13894],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":13896,"children":13897},{"class":3272,"line":2881},[13898],{"type":2987,"tag":3270,"props":13899,"children":13900},{"style":3335},[13901],{"type":2992,"value":13902},"# Run Vitest\n",{"type":2987,"tag":3270,"props":13904,"children":13905},{"class":3272,"line":3924},[13906,13910,13914],{"type":2987,"tag":3270,"props":13907,"children":13908},{"style":3276},[13909],{"type":2992,"value":13757},{"type":2987,"tag":3270,"props":13911,"children":13912},{"style":3282},[13913],{"type":2992,"value":13789},{"type":2987,"tag":3270,"props":13915,"children":13916},{"style":3282},[13917],{"type":2992,"value":13918}," test\n",{"type":2987,"tag":3270,"props":13920,"children":13921},{"class":3272,"line":4194},[13922,13926,13930],{"type":2987,"tag":3270,"props":13923,"children":13924},{"style":3276},[13925],{"type":2992,"value":13757},{"type":2987,"tag":3270,"props":13927,"children":13928},{"style":3282},[13929],{"type":2992,"value":13789},{"type":2987,"tag":3270,"props":13931,"children":13932},{"style":3282},[13933],{"type":2992,"value":13934}," test:watch\n",{"type":2987,"tag":3270,"props":13936,"children":13937},{"class":3272,"line":4202},[13938],{"type":2987,"tag":3270,"props":13939,"children":13940},{"emptyLinePlaceholder":1196},[13941],{"type":2992,"value":3539},{"type":2987,"tag":3270,"props":13943,"children":13944},{"class":3272,"line":4211},[13945],{"type":2987,"tag":3270,"props":13946,"children":13947},{"style":3335},[13948],{"type":2992,"value":13949},"# Release new version\n",{"type":2987,"tag":3270,"props":13951,"children":13952},{"class":3272,"line":4219},[13953,13957,13961],{"type":2987,"tag":3270,"props":13954,"children":13955},{"style":3276},[13956],{"type":2992,"value":13757},{"type":2987,"tag":3270,"props":13958,"children":13959},{"style":3282},[13960],{"type":2992,"value":13789},{"type":2987,"tag":3270,"props":13962,"children":13963},{"style":3282},[13964],{"type":2992,"value":13965}," release\n",{"type":2987,"tag":13967,"props":13968,"children":13969},"style",{},[13970],{"type":2992,"value":13971},"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":2861,"searchDepth":2913,"depth":2913,"links":13973},[13974,13975,13976,13977,13980,13988,13989,13994,13995,13996,13997],{"id":3080,"depth":2913,"text":395},{"id":3198,"depth":2913,"text":3201},{"id":3239,"depth":2913,"text":3242},{"id":3380,"depth":2913,"text":3383,"children":13978},[13979],{"id":3392,"depth":2897,"text":3395},{"id":4474,"depth":2913,"text":4477,"children":13981},[13982,13983,13984,13985,13986,13987],{"id":4493,"depth":2897,"text":4496},{"id":5087,"depth":2897,"text":5090},{"id":6088,"depth":2897,"text":3114},{"id":6540,"depth":2897,"text":6543},{"id":6690,"depth":2897,"text":3123},{"id":10604,"depth":2897,"text":10607},{"id":10897,"depth":2913,"text":10900},{"id":11172,"depth":2913,"text":3094,"children":13990},[13991,13992],{"id":11343,"depth":2897,"text":11346},{"id":11471,"depth":2897,"text":13993},"\u003CAuthState> component",{"id":12176,"depth":2913,"text":12179},{"id":13200,"depth":2913,"text":29},{"id":13705,"depth":2913,"text":13708},{"id":13731,"depth":2913,"text":13734},{"v5":13999,"v4":14000,"v3":14001,"v2":14002},"5 (nightly)","4.4.2","3.21.2","2.18.1"]