[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fGCo9l1hMtNdUiA6QzdUX5X3kLqaWcC5t2kdz4LrvCvc":3,"versions":2960,"module-auth-utils":2965},[4,1120,1948,2767],{"title":5,"titleTemplate":6,"icon":7,"path":8,"stem":9,"children":10,"page":108},"Docs",null,"i-lucide-book-marked","\u002Fdocs\u002F3.x","docs\u002F3.x",[11,109,246,426,907,999,1036,1078],{"title":12,"titleTemplate":13,"icon":14,"path":15,"stem":16,"children":17,"page":108},"Get Started","%s · Get Started with Nuxt","i-lucide-rocket","\u002Fdocs\u002F3.x\u002Fgetting-started","docs\u002F3.x\u002F1.getting-started",[18,23,28,33,38,43,48,53,58,63,68,73,78,83,88,93,98,103],{"title":19,"path":20,"stem":21,"titleTemplate":6,"icon":22},"Introduction","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fintroduction","docs\u002F3.x\u002F1.getting-started\u002F01.introduction","i-lucide-info",{"title":24,"path":25,"stem":26,"titleTemplate":6,"icon":27},"Installation","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Finstallation","docs\u002F3.x\u002F1.getting-started\u002F02.installation","i-lucide-play",{"title":29,"path":30,"stem":31,"titleTemplate":6,"icon":32},"Configuration","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fconfiguration","docs\u002F3.x\u002F1.getting-started\u002F03.configuration","i-lucide-cog",{"title":34,"path":35,"stem":36,"titleTemplate":6,"icon":37},"Views","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fviews","docs\u002F3.x\u002F1.getting-started\u002F04.views","i-lucide-panels-top-left",{"title":39,"path":40,"stem":41,"titleTemplate":6,"icon":42},"Assets","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fassets","docs\u002F3.x\u002F1.getting-started\u002F05.assets","i-lucide-image",{"title":44,"path":45,"stem":46,"titleTemplate":6,"icon":47},"Styling","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fstyling","docs\u002F3.x\u002F1.getting-started\u002F06.styling","i-lucide-palette",{"title":49,"path":50,"stem":51,"titleTemplate":6,"icon":52},"Routing","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Frouting","docs\u002F3.x\u002F1.getting-started\u002F07.routing","i-lucide-milestone",{"title":54,"path":55,"stem":56,"titleTemplate":6,"icon":57},"SEO and Meta","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fseo-meta","docs\u002F3.x\u002F1.getting-started\u002F08.seo-meta","i-lucide-file-search",{"title":59,"path":60,"stem":61,"titleTemplate":6,"icon":62},"Transitions","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ftransitions","docs\u002F3.x\u002F1.getting-started\u002F09.transitions","i-lucide-toggle-right",{"title":64,"path":65,"stem":66,"titleTemplate":6,"icon":67},"Data Fetching","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F3.x\u002F1.getting-started\u002F10.data-fetching","i-lucide-cable",{"title":69,"path":70,"stem":71,"titleTemplate":6,"icon":72},"State Management","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fstate-management","docs\u002F3.x\u002F1.getting-started\u002F11.state-management","i-lucide-database",{"title":74,"path":75,"stem":76,"titleTemplate":6,"icon":77},"Error Handling","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ferror-handling","docs\u002F3.x\u002F1.getting-started\u002F12.error-handling","i-lucide-bug-off",{"title":79,"path":80,"stem":81,"titleTemplate":6,"icon":82},"Server","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fserver","docs\u002F3.x\u002F1.getting-started\u002F13.server","i-lucide-pc-case",{"title":84,"path":85,"stem":86,"titleTemplate":6,"icon":87},"Layers","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Flayers","docs\u002F3.x\u002F1.getting-started\u002F14.layers","i-lucide-layers",{"title":89,"path":90,"stem":91,"titleTemplate":6,"icon":92},"Prerendering","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fprerendering","docs\u002F3.x\u002F1.getting-started\u002F15.prerendering","i-lucide-file-code-2",{"title":94,"path":95,"stem":96,"titleTemplate":6,"icon":97},"Deployment","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fdeployment","docs\u002F3.x\u002F1.getting-started\u002F16.deployment","i-lucide-cloud",{"title":99,"path":100,"stem":101,"titleTemplate":6,"icon":102},"Testing","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ftesting","docs\u002F3.x\u002F1.getting-started\u002F17.testing","i-lucide-circle-check",{"title":104,"path":105,"stem":106,"titleTemplate":6,"icon":107},"Upgrade Guide","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fupgrade","docs\u002F3.x\u002F1.getting-started\u002F18.upgrade","i-lucide-circle-arrow-up",false,{"title":110,"titleTemplate":111,"icon":112,"path":113,"stem":114,"children":115,"page":108},"Directory Structure","%s · Nuxt Directory Structure","i-vscode-icons-default-folder","\u002Fdocs\u002F3.x\u002Fdirectory-structure","docs\u002F3.x\u002F2.directory-structure",[116,121,126,131,136,141,146,151,156,161,165,170,174,179,184,189,194,199,204,209,214,218,223,228,232,236,241],{"title":117,"path":118,"stem":119,"titleTemplate":6,"icon":120},".nuxt","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F3.x\u002F2.directory-structure\u002F0.nuxt","i-vscode-icons-folder-type-temp",{"title":122,"path":123,"stem":124,"titleTemplate":6,"icon":125},".output","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Foutput","docs\u002F3.x\u002F2.directory-structure\u002F0.output","i-vscode-icons-folder-type-package",{"title":127,"path":128,"stem":129,"titleTemplate":6,"icon":130},"assets","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fassets","docs\u002F3.x\u002F2.directory-structure\u002F1.assets","i-vscode-icons-folder-type-asset",{"title":132,"path":133,"stem":134,"titleTemplate":6,"icon":135},"components","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcomponents","docs\u002F3.x\u002F2.directory-structure\u002F1.components","i-vscode-icons-folder-type-component",{"title":137,"path":138,"stem":139,"titleTemplate":6,"icon":140},"composables","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcomposables","docs\u002F3.x\u002F2.directory-structure\u002F1.composables","i-vscode-icons-folder-type-src",{"title":142,"path":143,"stem":144,"titleTemplate":6,"icon":145},"content","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcontent","docs\u002F3.x\u002F2.directory-structure\u002F1.content","i-vscode-icons-folder-type-log",{"title":147,"path":148,"stem":149,"titleTemplate":6,"icon":150},"layers","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Flayers","docs\u002F3.x\u002F2.directory-structure\u002F1.layers","i-vscode-icons-folder-type-nuxt",{"title":152,"path":153,"stem":154,"titleTemplate":6,"icon":155},"layouts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Flayouts","docs\u002F3.x\u002F2.directory-structure\u002F1.layouts","i-vscode-icons-folder-type-view",{"title":157,"path":158,"stem":159,"titleTemplate":6,"icon":160},"middleware","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fmiddleware","docs\u002F3.x\u002F2.directory-structure\u002F1.middleware","i-vscode-icons-folder-type-middleware",{"title":162,"path":163,"stem":164,"titleTemplate":6,"icon":150},"modules","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fmodules","docs\u002F3.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":167,"stem":168,"titleTemplate":6,"icon":169},"node_modules","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F3.x\u002F2.directory-structure\u002F1.node_modules","i-vscode-icons-folder-type-node",{"title":171,"path":172,"stem":173,"titleTemplate":6,"icon":155},"pages","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpages","docs\u002F3.x\u002F2.directory-structure\u002F1.pages",{"title":175,"path":176,"stem":177,"titleTemplate":6,"icon":178},"plugins","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fplugins","docs\u002F3.x\u002F2.directory-structure\u002F1.plugins","i-vscode-icons-folder-type-plugin",{"title":180,"path":181,"stem":182,"titleTemplate":6,"icon":183},"public","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpublic","docs\u002F3.x\u002F2.directory-structure\u002F1.public","i-vscode-icons-folder-type-public",{"title":185,"path":186,"stem":187,"titleTemplate":6,"icon":188},"server","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fserver","docs\u002F3.x\u002F2.directory-structure\u002F1.server","i-vscode-icons-folder-type-server",{"title":190,"path":191,"stem":192,"titleTemplate":6,"icon":193},"shared","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fshared","docs\u002F3.x\u002F2.directory-structure\u002F1.shared","i-vscode-icons-folder-type-shared",{"title":195,"path":196,"stem":197,"titleTemplate":6,"icon":198},"utils","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Futils","docs\u002F3.x\u002F2.directory-structure\u002F1.utils","i-vscode-icons-folder-type-tools",{"title":200,"path":201,"stem":202,"titleTemplate":6,"icon":203},".env","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fenv","docs\u002F3.x\u002F2.directory-structure\u002F2.env","i-vscode-icons-file-type-dotenv",{"title":205,"path":206,"stem":207,"titleTemplate":6,"icon":208},".gitignore","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F3.x\u002F2.directory-structure\u002F2.gitignore","i-vscode-icons-file-type-git",{"title":210,"path":211,"stem":212,"titleTemplate":6,"icon":213},".nuxtignore","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F3.x\u002F2.directory-structure\u002F2.nuxtignore","i-vscode-icons-file-type-nuxt",{"title":215,"path":216,"stem":217,"titleTemplate":6,"icon":213},".nuxtrc","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F3.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":219,"path":220,"stem":221,"titleTemplate":6,"icon":222},"app.vue","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fapp","docs\u002F3.x\u002F2.directory-structure\u002F3.app","i-vscode-icons-file-type-vue",{"title":224,"path":225,"stem":226,"titleTemplate":6,"icon":227},"app.config.ts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fapp-config","docs\u002F3.x\u002F2.directory-structure\u002F3.app-config","i-vscode-icons-file-type-light-config",{"title":229,"path":230,"stem":231,"titleTemplate":6,"icon":222},"error.vue","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Ferror","docs\u002F3.x\u002F2.directory-structure\u002F3.error",{"title":233,"path":234,"stem":235,"titleTemplate":6,"icon":213},"nuxt.config.ts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F3.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":238,"stem":239,"titleTemplate":6,"icon":240},"package.json","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpackage","docs\u002F3.x\u002F2.directory-structure\u002F3.package","i-vscode-icons-file-type-npm",{"title":242,"path":243,"stem":244,"titleTemplate":6,"icon":245},"tsconfig.json","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Ftsconfig","docs\u002F3.x\u002F2.directory-structure\u002F3.tsconfig","i-vscode-icons-file-type-tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":249,"stem":250,"children":251,"page":108},"Guide","i-lucide-book-open","\u002Fdocs\u002F3.x\u002Fguide","docs\u002F3.x\u002F3.guide",[252,287,306,321,356,379],{"title":253,"titleTemplate":254,"icon":255,"path":256,"stem":257,"children":258,"page":108},"Key Concepts","%s · Nuxt Concepts","i-lucide-medal","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts","docs\u002F3.x\u002F3.guide\u002F1.concepts",[259,263,267,271,275,279,283],{"title":260,"path":261,"stem":262,"titleTemplate":6},"Rendering Modes","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":265,"stem":266,"titleTemplate":6},"Nuxt Lifecycle","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":269,"stem":270,"titleTemplate":6},"Auto-imports","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":273,"stem":274,"titleTemplate":6},"Server Engine","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":277,"stem":278,"titleTemplate":6},"Modules","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":281,"stem":282,"titleTemplate":6},"TypeScript","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":285,"stem":286,"titleTemplate":6},"Code Style","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fcode-style","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":291,"stem":292,"children":293,"page":108},"Best Practices","%s · Best Practices","i-lucide-square-check","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices","docs\u002F3.x\u002F3.guide\u002F2.best-practices",[294,298,302],{"title":295,"path":296,"stem":297,"titleTemplate":6},"Nuxt and hydration","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":300,"stem":301,"titleTemplate":6},"Nuxt Performance","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":304,"stem":305,"titleTemplate":6},"Nuxt Plugins","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fplugins","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fplugins",{"title":307,"titleTemplate":308,"icon":309,"path":310,"stem":311,"children":312,"page":108},"Working with AI","Working with AI: %s","i-lucide-bot","\u002Fdocs\u002F3.x\u002Fguide\u002Fai","docs\u002F3.x\u002F3.guide\u002F3.ai",[313,317],{"title":314,"path":315,"stem":316,"titleTemplate":6},"MCP Server","\u002Fdocs\u002F3.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F3.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":319,"stem":320,"titleTemplate":6},"LLMs.txt","\u002Fdocs\u002F3.x\u002Fguide\u002Fai\u002Fllms-txt","docs\u002F3.x\u002F3.guide\u002F3.ai\u002F2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":325,"stem":326,"children":327,"page":108},"Module Author Guide","%s · Nuxt Modules Author Guide","i-lucide-box","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules","docs\u002F3.x\u002F3.guide\u002F4.modules",[328,332,336,340,344,348,352],{"title":329,"path":330,"stem":331,"titleTemplate":6},"Create Your First Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":334,"stem":335,"titleTemplate":6},"Understand Module Structure","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":338,"stem":339,"titleTemplate":6},"Add Plugins, Components & More","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":342,"stem":343,"titleTemplate":6},"Use Hooks & Extend Types","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F4.recipes-advanced",{"title":345,"path":346,"stem":347,"titleTemplate":6},"Test Your Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F5.testing",{"title":349,"path":350,"stem":351,"titleTemplate":6},"Follow Best Practices","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F6.best-practices",{"title":353,"path":354,"stem":355,"titleTemplate":6},"Publish & Share Your Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":360,"stem":361,"children":362,"page":108},"Recipes","%s · Recipes","i-lucide-cooking-pot","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes","docs\u002F3.x\u002F3.guide\u002F5.recipes",[363,367,371,375],{"title":364,"path":365,"stem":366,"titleTemplate":6},"Custom Routing","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":368,"path":369,"stem":370,"titleTemplate":6},"Vite Plugins","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":372,"path":373,"stem":374,"titleTemplate":6},"Custom useFetch","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":376,"path":377,"stem":378,"titleTemplate":6},"Sessions and Authentication","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":383,"stem":384,"children":385,"page":108},"Going Further","%s · Nuxt Advanced","i-lucide-star","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further","docs\u002F3.x\u002F3.guide\u002F6.going-further",[386,390,394,398,402,406,410,414,418,422],{"title":387,"path":388,"stem":389,"titleTemplate":6},"Custom Events","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":391,"path":392,"stem":393,"titleTemplate":6},"Experimental Features","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":395,"path":396,"stem":397,"titleTemplate":6},"Features","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":399,"path":400,"stem":401,"titleTemplate":6},"Runtime Config","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":403,"path":404,"stem":405,"titleTemplate":6},"Nightly Release Channel","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":407,"path":408,"stem":409,"titleTemplate":6},"Lifecycle Hooks","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":411,"path":412,"stem":413,"titleTemplate":6},"Nuxt Kit","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":415,"path":416,"stem":417,"titleTemplate":6},"NuxtApp","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":419,"path":420,"stem":421,"titleTemplate":6},"Authoring Nuxt Layers","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":423,"path":424,"stem":425,"titleTemplate":6},"Debugging","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":430,"stem":431,"children":432,"page":108},"API","%s · Nuxt API","i-lucide-code-xml","\u002Fdocs\u002F3.x\u002Fapi","docs\u002F3.x\u002F4.api",[433,499,622,745,816,889,902],{"title":434,"titleTemplate":435,"icon":324,"path":436,"stem":437,"children":438,"page":108},"Components","%s · Nuxt Components","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents","docs\u002F3.x\u002F4.api\u002F1.components",[439,443,447,451,455,459,463,467,471,475,479,483,487,491,495],{"title":440,"path":441,"stem":442,"titleTemplate":6},"\u003CClientOnly>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":444,"path":445,"stem":446,"titleTemplate":6},"\u003CDevOnly>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":448,"path":449,"stem":450,"titleTemplate":6},"\u003CNuxtClientFallback>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":452,"path":453,"stem":454,"titleTemplate":6},"\u003CNuxtPicture>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F3.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":456,"path":457,"stem":458,"titleTemplate":6},"\u003CTeleport>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F3.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":460,"path":461,"stem":462,"titleTemplate":6},"\u003CNuxtRouteAnnouncer>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F3.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":464,"path":465,"stem":466,"titleTemplate":6},"\u003CNuxtTime>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F3.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":468,"path":469,"stem":470,"titleTemplate":6},"\u003CNuxtPage>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F3.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":472,"path":473,"stem":474,"titleTemplate":6},"\u003CNuxtLayout>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F3.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":476,"path":477,"stem":478,"titleTemplate":6},"\u003CNuxtLink>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F3.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":480,"path":481,"stem":482,"titleTemplate":6},"\u003CNuxtLoadingIndicator>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F3.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":484,"path":485,"stem":486,"titleTemplate":6},"\u003CNuxtErrorBoundary>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F3.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":488,"path":489,"stem":490,"titleTemplate":6},"\u003CNuxtWelcome>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F3.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":492,"path":493,"stem":494,"titleTemplate":6},"\u003CNuxtIsland>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F3.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":496,"path":497,"stem":498,"titleTemplate":6},"\u003CNuxtImg>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F3.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":503,"stem":504,"children":505,"page":108},"Composables","%s · Nuxt Composables","i-lucide-arrow-left-right","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables","docs\u002F3.x\u002F4.api\u002F2.composables",[506,510,514,518,522,526,530,534,538,542,546,550,554,558,562,566,570,574,578,582,586,590,594,598,602,606,610,614,618],{"title":507,"path":508,"stem":509,"titleTemplate":6},"onPrehydrate","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":511,"path":512,"stem":513,"titleTemplate":6},"useAppConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":515,"path":516,"stem":517,"titleTemplate":6},"useAsyncData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":519,"path":520,"stem":521,"titleTemplate":6},"useCookie","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":523,"path":524,"stem":525,"titleTemplate":6},"useError","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":527,"path":528,"stem":529,"titleTemplate":6},"useFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":531,"path":532,"stem":533,"titleTemplate":6},"useHead","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":535,"path":536,"stem":537,"titleTemplate":6},"useHeadSafe","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":539,"path":540,"stem":541,"titleTemplate":6},"useHydration","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":543,"path":544,"stem":545,"titleTemplate":6},"useLazyAsyncData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":547,"path":548,"stem":549,"titleTemplate":6},"useLazyFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":551,"path":552,"stem":553,"titleTemplate":6},"useLoadingIndicator","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":555,"path":556,"stem":557,"titleTemplate":6},"useNuxtApp","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":559,"path":560,"stem":561,"titleTemplate":6},"useNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":563,"path":564,"stem":565,"titleTemplate":6},"usePreviewMode","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":567,"path":568,"stem":569,"titleTemplate":6},"useRequestEvent","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":571,"path":572,"stem":573,"titleTemplate":6},"useRequestFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":575,"path":576,"stem":577,"titleTemplate":6},"useRequestHeader","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":579,"path":580,"stem":581,"titleTemplate":6},"useRequestHeaders","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":583,"path":584,"stem":585,"titleTemplate":6},"useRequestURL","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":587,"path":588,"stem":589,"titleTemplate":6},"useResponseHeader","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":591,"path":592,"stem":593,"titleTemplate":6},"useRoute","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":595,"path":596,"stem":597,"titleTemplate":6},"useRouteAnnouncer","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":599,"path":600,"stem":601,"titleTemplate":6},"useRouter","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":603,"path":604,"stem":605,"titleTemplate":6},"useRuntimeConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":607,"path":608,"stem":609,"titleTemplate":6},"useRuntimeHook","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":611,"path":612,"stem":613,"titleTemplate":6},"useSeoMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":615,"path":616,"stem":617,"titleTemplate":6},"useServerSeoMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":619,"path":620,"stem":621,"titleTemplate":6},"useState","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":623,"titleTemplate":624,"icon":625,"path":626,"stem":627,"children":628,"page":108},"Utils","%s · Nuxt Utils","i-lucide-square-function","\u002Fdocs\u002F3.x\u002Fapi\u002Futils","docs\u002F3.x\u002F4.api\u002F3.utils",[629,633,637,641,645,649,653,657,661,665,669,673,677,681,685,689,693,697,701,705,709,713,717,721,725,729,733,737,741],{"title":630,"path":631,"stem":632,"titleTemplate":6},"$fetch","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F3.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":634,"path":635,"stem":636,"titleTemplate":6},"abortNavigation","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":638,"path":639,"stem":640,"titleTemplate":6},"addRouteMiddleware","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":642,"path":643,"stem":644,"titleTemplate":6},"callOnce","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":646,"path":647,"stem":648,"titleTemplate":6},"clearError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":650,"path":651,"stem":652,"titleTemplate":6},"clearNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":654,"path":655,"stem":656,"titleTemplate":6},"clearNuxtState","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":658,"path":659,"stem":660,"titleTemplate":6},"createError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":662,"path":663,"stem":664,"titleTemplate":6},"defineLazyHydrationComponent","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":666,"path":667,"stem":668,"titleTemplate":6},"defineNuxtComponent","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":670,"path":671,"stem":672,"titleTemplate":6},"defineNuxtPlugin","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":674,"path":675,"stem":676,"titleTemplate":6},"defineNuxtRouteMiddleware","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":678,"path":679,"stem":680,"titleTemplate":6},"definePageMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":682,"path":683,"stem":684,"titleTemplate":6},"defineRouteRules","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":686,"path":687,"stem":688,"titleTemplate":6},"navigateTo","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":690,"path":691,"stem":692,"titleTemplate":6},"onBeforeRouteLeave","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":694,"path":695,"stem":696,"titleTemplate":6},"onBeforeRouteUpdate","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":698,"path":699,"stem":700,"titleTemplate":6},"onNuxtReady","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":702,"path":703,"stem":704,"titleTemplate":6},"prefetchComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":706,"path":707,"stem":708,"titleTemplate":6},"preloadComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":710,"path":711,"stem":712,"titleTemplate":6},"preloadRouteComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":714,"path":715,"stem":716,"titleTemplate":6},"prerenderRoutes","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":718,"path":719,"stem":720,"titleTemplate":6},"refreshCookie","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F3.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":722,"path":723,"stem":724,"titleTemplate":6},"refreshNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F3.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":726,"path":727,"stem":728,"titleTemplate":6},"reloadNuxtApp","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F3.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":730,"path":731,"stem":732,"titleTemplate":6},"setPageLayout","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":734,"path":735,"stem":736,"titleTemplate":6},"setResponseStatus","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":738,"path":739,"stem":740,"titleTemplate":6},"showError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":742,"path":743,"stem":744,"titleTemplate":6},"updateAppConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":749,"stem":750,"children":751,"page":108},"Commands","%s · Nuxt Commands","i-lucide-square-terminal","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands","docs\u002F3.x\u002F4.api\u002F4.commands",[752,756,760,764,768,772,776,780,784,788,792,796,800,804,808,812],{"title":753,"path":754,"stem":755,"titleTemplate":6},"nuxt add","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fadd",{"title":757,"path":758,"stem":759,"titleTemplate":6},"nuxt analyze","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":761,"path":762,"stem":763,"titleTemplate":6},"nuxt build","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":765,"path":766,"stem":767,"titleTemplate":6},"nuxt build-module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":769,"path":770,"stem":771,"titleTemplate":6},"nuxt cleanup","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":773,"path":774,"stem":775,"titleTemplate":6},"nuxt dev","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdev",{"title":777,"path":778,"stem":779,"titleTemplate":6},"nuxt devtools","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":781,"path":782,"stem":783,"titleTemplate":6},"nuxt generate","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":785,"path":786,"stem":787,"titleTemplate":6},"nuxt info","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finfo",{"title":789,"path":790,"stem":791,"titleTemplate":6},"create nuxt","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finit",{"title":793,"path":794,"stem":795,"titleTemplate":6},"nuxt module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":797,"path":798,"stem":799,"titleTemplate":6},"nuxt prepare","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":801,"path":802,"stem":803,"titleTemplate":6},"nuxt preview","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":805,"path":806,"stem":807,"titleTemplate":6},"nuxt test","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftest",{"title":809,"path":810,"stem":811,"titleTemplate":6},"nuxt typecheck","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":813,"path":814,"stem":815,"titleTemplate":6},"nuxt upgrade","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":411,"titleTemplate":817,"icon":818,"path":819,"stem":820,"children":821,"page":108},"%s · Nuxt Kit","i-lucide-package","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit","docs\u002F3.x\u002F4.api\u002F5.kit",[822,825,828,832,836,840,844,848,852,855,859,863,866,869,873,877,881,885],{"title":276,"path":823,"stem":824,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F3.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":399,"path":826,"stem":827,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":829,"path":830,"stem":831,"titleTemplate":6},"Templates","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":833,"path":834,"stem":835,"titleTemplate":6},"Nitro","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F3.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":837,"path":838,"stem":839,"titleTemplate":6},"Resolving","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F3.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":841,"path":842,"stem":843,"titleTemplate":6},"Logging","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F3.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":845,"path":846,"stem":847,"titleTemplate":6},"Builder","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F3.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":849,"path":850,"stem":851,"titleTemplate":6},"Examples","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F3.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":853,"stem":854,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F3.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":856,"path":857,"stem":858,"titleTemplate":6},"Programmatic Usage","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F3.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":860,"path":861,"stem":862,"titleTemplate":6},"Compatibility","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F3.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":864,"stem":865,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F3.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":434,"path":867,"stem":868,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F3.x\u002F4.api\u002F5.kit\u002F5.components",{"title":870,"path":871,"stem":872,"titleTemplate":6},"Context","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F3.x\u002F4.api\u002F5.kit\u002F6.context",{"title":874,"path":875,"stem":876,"titleTemplate":6},"Pages","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F3.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":878,"path":879,"stem":880,"titleTemplate":6},"Layout","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F3.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":882,"path":883,"stem":884,"titleTemplate":6},"Head","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.head",{"title":886,"path":887,"stem":888,"titleTemplate":6},"Plugins","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":892,"stem":893,"children":894,"page":108},"Advanced","i-lucide-brain","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced","docs\u002F3.x\u002F4.api\u002F6.advanced",[895,898],{"title":407,"path":896,"stem":897,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":899,"path":900,"stem":901,"titleTemplate":6},"Import meta","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":903,"path":904,"stem":905,"titleTemplate":906,"icon":32},"Nuxt Configuration","\u002Fdocs\u002F3.x\u002Fapi\u002Fnuxt-config","docs\u002F3.x\u002F4.api\u002F6.nuxt-config","%s",{"title":849,"titleTemplate":908,"icon":909,"path":910,"stem":911,"children":912,"page":108},"%s · Nuxt Examples","i-lucide-app-window-mac","\u002Fdocs\u002F3.x\u002Fexamples","docs\u002F3.x\u002F4.examples",[913,917,939,954,990],{"title":914,"path":915,"stem":916,"titleTemplate":6},"Hello World","\u002Fdocs\u002F3.x\u002Fexamples\u002Fhello-world","docs\u002F3.x\u002F4.examples\u002F0.hello-world",{"title":395,"path":918,"stem":919,"children":920,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures","docs\u002F3.x\u002F4.examples\u002F1.features",[921,925,928,931,935],{"title":922,"path":923,"stem":924,"titleTemplate":6},"Auto Imports","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F3.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":926,"stem":927,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F3.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":929,"stem":930,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F3.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":932,"path":933,"stem":934,"titleTemplate":6},"Meta Tags","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F3.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":936,"path":937,"stem":938,"titleTemplate":6},"Layouts","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F3.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":940,"stem":941,"children":942,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting","docs\u002F3.x\u002F4.examples\u002F2.routing",[943,947,950],{"title":944,"path":945,"stem":946,"titleTemplate":6},"Middleware","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":874,"path":948,"stem":949,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":951,"path":952,"stem":953,"titleTemplate":6},"Universal Router","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":890,"path":955,"stem":956,"children":957,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced","docs\u002F3.x\u002F4.examples\u002F4.advanced",[958,961,964,968,972,976,980,983,986],{"title":84,"path":959,"stem":960,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":962,"stem":963,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":965,"path":966,"stem":967,"titleTemplate":6},"JSX \u002F TSX","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":969,"path":970,"stem":971,"titleTemplate":6},"Locale","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":973,"path":974,"stem":975,"titleTemplate":6},"Module Extend Pages","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":977,"path":978,"stem":979,"titleTemplate":6},"Teleport","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":981,"stem":982,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":519,"path":984,"stem":985,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":987,"path":988,"stem":989,"titleTemplate":6},"Use Custom Fetch Composable","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":991,"path":992,"stem":993,"children":994,"page":108},"Experimental","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental","docs\u002F3.x\u002F4.examples\u002F7.experimental",[995],{"title":996,"path":997,"stem":998,"titleTemplate":6},"WASM","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F3.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":1003,"stem":1004,"children":1005,"page":108},"Community","%s · Nuxt Community","i-lucide-messages-square","\u002Fdocs\u002F3.x\u002Fcommunity","docs\u002F3.x\u002F5.community",[1006,1011,1016,1021,1026,1031],{"title":1007,"path":1008,"stem":1009,"titleTemplate":6,"icon":1010},"Getting Help","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fgetting-help","docs\u002F3.x\u002F5.community\u002F2.getting-help","i-lucide-life-buoy",{"title":1012,"path":1013,"stem":1014,"titleTemplate":6,"icon":1015},"Reporting Bugs","\u002Fdocs\u002F3.x\u002Fcommunity\u002Freporting-bugs","docs\u002F3.x\u002F5.community\u002F3.reporting-bugs","i-lucide-bug",{"title":1017,"path":1018,"stem":1019,"titleTemplate":6,"icon":1020},"Contribution","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fcontribution","docs\u002F3.x\u002F5.community\u002F4.contribution","i-lucide-git-pull-request",{"title":1022,"path":1023,"stem":1024,"titleTemplate":6,"icon":1025},"Framework","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fframework-contribution","docs\u002F3.x\u002F5.community\u002F5.framework-contribution","i-lucide-github",{"title":1027,"path":1028,"stem":1029,"titleTemplate":6,"icon":1030},"Roadmap","\u002Fdocs\u002F3.x\u002Fcommunity\u002Froadmap","docs\u002F3.x\u002F5.community\u002F6.roadmap","i-lucide-map",{"title":1032,"path":1033,"stem":1034,"titleTemplate":6,"icon":1035},"Releases","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fchangelog","docs\u002F3.x\u002F5.community\u002F7.changelog","i-lucide-bell-dot",{"title":1037,"titleTemplate":1038,"icon":1039,"path":1040,"stem":1041,"children":1042,"page":108},"Migrate to Nuxt Bridge","Migrate to Nuxt Bridge: %s","i-lucide-ship","\u002Fdocs\u002F3.x\u002Fbridge","docs\u002F3.x\u002F6.bridge",[1043,1047,1050,1053,1057,1061,1065,1068,1071,1074],{"title":1044,"path":1045,"stem":1046,"titleTemplate":6},"Overview","\u002Fdocs\u002F3.x\u002Fbridge\u002Foverview","docs\u002F3.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1048,"stem":1049,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fconfiguration","docs\u002F3.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1051,"stem":1052,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Ftypescript","docs\u002F3.x\u002F6.bridge\u002F2.typescript",{"title":1054,"path":1055,"stem":1056,"titleTemplate":6},"Legacy Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F3.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1058,"path":1059,"stem":1060,"titleTemplate":6},"Plugins and Middleware","\u002Fdocs\u002F3.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F3.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1062,"path":1063,"stem":1064,"titleTemplate":6},"New Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F3.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":932,"path":1066,"stem":1067,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fmeta","docs\u002F3.x\u002F6.bridge\u002F6.meta",{"title":399,"path":1069,"stem":1070,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fruntime-config","docs\u002F3.x\u002F6.bridge\u002F7.runtime-config",{"title":833,"path":1072,"stem":1073,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fnitro","docs\u002F3.x\u002F6.bridge\u002F8.nitro",{"title":1075,"path":1076,"stem":1077,"titleTemplate":6},"Vite","\u002Fdocs\u002F3.x\u002Fbridge\u002Fvite","docs\u002F3.x\u002F6.bridge\u002F9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":1081,"stem":1082,"children":1083,"page":108},"Migrate to Nuxt 3","Migrate to Nuxt 3: %s","\u002Fdocs\u002F3.x\u002Fmigration","docs\u002F3.x\u002F7.migration",[1084,1087,1091,1094,1097,1100,1103,1106,1109,1113,1117],{"title":1044,"path":1085,"stem":1086,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Foverview","docs\u002F3.x\u002F7.migration\u002F1.overview",{"title":1088,"path":1089,"stem":1090,"titleTemplate":6},"Build Tooling","\u002Fdocs\u002F3.x\u002Fmigration\u002Fbundling","docs\u002F3.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1092,"stem":1093,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fserver","docs\u002F3.x\u002F7.migration\u002F11.server",{"title":29,"path":1095,"stem":1096,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fconfiguration","docs\u002F3.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1098,"stem":1099,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmodule-authors","docs\u002F3.x\u002F7.migration\u002F20.module-authors",{"title":922,"path":1101,"stem":1102,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fauto-imports","docs\u002F3.x\u002F7.migration\u002F3.auto-imports",{"title":932,"path":1104,"stem":1105,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmeta","docs\u002F3.x\u002F7.migration\u002F4.meta",{"title":1058,"path":1107,"stem":1108,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F3.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1110,"path":1111,"stem":1112,"titleTemplate":6},"Pages and Layouts","\u002Fdocs\u002F3.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F3.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1114,"path":1115,"stem":1116,"titleTemplate":6},"Component Options","\u002Fdocs\u002F3.x\u002Fmigration\u002Fcomponent-options","docs\u002F3.x\u002F7.migration\u002F7.component-options",{"title":399,"path":1118,"stem":1119,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fruntime-config","docs\u002F3.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1121,"stem":1122,"children":1123,"page":108},"\u002Fdocs\u002F4.x","docs\u002F4.x",[1124,1182,1276,1404,1778,1855,1877,1911],{"title":12,"titleTemplate":13,"icon":14,"path":1125,"stem":1126,"children":1127,"page":108},"\u002Fdocs\u002F4.x\u002Fgetting-started","docs\u002F4.x\u002F1.getting-started",[1128,1131,1134,1137,1140,1143,1146,1149,1152,1155,1158,1161,1164,1167,1170,1173,1176,1179],{"title":19,"path":1129,"stem":1130,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fintroduction","docs\u002F4.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1132,"stem":1133,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Finstallation","docs\u002F4.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1135,"stem":1136,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fconfiguration","docs\u002F4.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":1138,"stem":1139,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fviews","docs\u002F4.x\u002F1.getting-started\u002F04.views",{"title":39,"path":1141,"stem":1142,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fassets","docs\u002F4.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":1144,"stem":1145,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstyling","docs\u002F4.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":1147,"stem":1148,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Frouting","docs\u002F4.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":1150,"stem":1151,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fseo-meta","docs\u002F4.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":1153,"stem":1154,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftransitions","docs\u002F4.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":1156,"stem":1157,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F4.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":1159,"stem":1160,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstate-management","docs\u002F4.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":1162,"stem":1163,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ferror-handling","docs\u002F4.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":1165,"stem":1166,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fserver","docs\u002F4.x\u002F1.getting-started\u002F13.server",{"title":84,"path":1168,"stem":1169,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Flayers","docs\u002F4.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":1171,"stem":1172,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fprerendering","docs\u002F4.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":1174,"stem":1175,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdeployment","docs\u002F4.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":1177,"stem":1178,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftesting","docs\u002F4.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":1180,"stem":1181,"titleTemplate":6,"icon":107},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fupgrade","docs\u002F4.x\u002F1.getting-started\u002F18.upgrade",{"title":110,"titleTemplate":111,"icon":112,"path":1183,"stem":1184,"children":1185,"page":108},"\u002Fdocs\u002F4.x\u002Fdirectory-structure","docs\u002F4.x\u002F2.directory-structure",[1186,1189,1192,1234,1237,1240,1243,1246,1249,1252,1255,1258,1261,1264,1267,1270,1273],{"title":117,"path":1187,"stem":1188,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F4.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":1190,"stem":1191,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Foutput","docs\u002F4.x\u002F2.directory-structure\u002F0.output",{"title":1193,"titleTemplate":111,"head":1194,"defaultOpen":1196,"icon":1197,"path":1198,"stem":1199,"children":1200,"page":108},"app",{"title":1195},"app\u002F",true,"i-vscode-icons-folder-type-app","\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app",[1201,1204,1207,1210,1213,1216,1219,1222,1225,1228,1231],{"title":127,"path":1202,"stem":1203,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":1205,"stem":1206,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":1208,"stem":1209,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":1211,"stem":1212,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":1214,"stem":1215,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":1217,"stem":1218,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":1220,"stem":1221,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":1223,"stem":1224,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":1226,"stem":1227,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":1229,"stem":1230,"titleTemplate":6,"icon":227},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp-config","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.app-config",{"title":229,"path":1232,"stem":1233,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":1235,"stem":1236,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fcontent","docs\u002F4.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":1238,"stem":1239,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Flayers","docs\u002F4.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":1241,"stem":1242,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fmodules","docs\u002F4.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":1244,"stem":1245,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F4.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":1247,"stem":1248,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpublic","docs\u002F4.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":1250,"stem":1251,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fserver","docs\u002F4.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":1253,"stem":1254,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fshared","docs\u002F4.x\u002F2.directory-structure\u002F1.shared",{"title":200,"path":1256,"stem":1257,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fenv","docs\u002F4.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":1259,"stem":1260,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F4.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":1262,"stem":1263,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":1265,"stem":1266,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":1268,"stem":1269,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F4.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":1271,"stem":1272,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpackage","docs\u002F4.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":1274,"stem":1275,"titleTemplate":6,"icon":245},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Ftsconfig","docs\u002F4.x\u002F2.directory-structure\u002F3.tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":1277,"stem":1278,"children":1279,"page":108},"\u002Fdocs\u002F4.x\u002Fguide","docs\u002F4.x\u002F3.guide",[1280,1305,1319,1329,1354,1370],{"title":253,"titleTemplate":254,"icon":255,"path":1281,"stem":1282,"children":1283,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts","docs\u002F4.x\u002F3.guide\u002F1.concepts",[1284,1287,1290,1293,1296,1299,1302],{"title":260,"path":1285,"stem":1286,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":1288,"stem":1289,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":1291,"stem":1292,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":1294,"stem":1295,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":1297,"stem":1298,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":1300,"stem":1301,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":1303,"stem":1304,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fcode-style","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":1306,"stem":1307,"children":1308,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F2.best-practices",[1309,1313,1316],{"title":1310,"path":1311,"stem":1312,"titleTemplate":6},"Nuxt and Hydration","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":1314,"stem":1315,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":1317,"stem":1318,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fplugins","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fplugins",{"title":307,"titleTemplate":308,"icon":309,"path":1320,"stem":1321,"children":1322,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai","docs\u002F4.x\u002F3.guide\u002F3.ai",[1323,1326],{"title":314,"path":1324,"stem":1325,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F4.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":1327,"stem":1328,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fllms-txt","docs\u002F4.x\u002F3.guide\u002F3.ai\u002F2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":1330,"stem":1331,"children":1332,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F4.modules",[1333,1336,1339,1342,1345,1348,1351],{"title":329,"path":1334,"stem":1335,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":1337,"stem":1338,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":1340,"stem":1341,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":1343,"stem":1344,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F4.recipes-advanced",{"title":345,"path":1346,"stem":1347,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F5.testing",{"title":349,"path":1349,"stem":1350,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F6.best-practices",{"title":353,"path":1352,"stem":1353,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":1355,"stem":1356,"children":1357,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes","docs\u002F4.x\u002F3.guide\u002F5.recipes",[1358,1361,1364,1367],{"title":364,"path":1359,"stem":1360,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":368,"path":1362,"stem":1363,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":372,"path":1365,"stem":1366,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":376,"path":1368,"stem":1369,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":1371,"stem":1372,"children":1373,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further","docs\u002F4.x\u002F3.guide\u002F6.going-further",[1374,1377,1380,1383,1386,1389,1392,1395,1398,1401],{"title":387,"path":1375,"stem":1376,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":391,"path":1378,"stem":1379,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":395,"path":1381,"stem":1382,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":399,"path":1384,"stem":1385,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":403,"path":1387,"stem":1388,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":407,"path":1390,"stem":1391,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":411,"path":1393,"stem":1394,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":415,"path":1396,"stem":1397,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":419,"path":1399,"stem":1400,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":423,"path":1402,"stem":1403,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":1405,"stem":1406,"children":1407,"page":108},"\u002Fdocs\u002F4.x\u002Fapi","docs\u002F4.x\u002F4.api",[1408,1461,1564,1655,1707,1765,1775],{"title":434,"titleTemplate":435,"icon":324,"path":1409,"stem":1410,"children":1411,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F1.components",[1412,1415,1418,1421,1424,1427,1430,1433,1437,1440,1443,1446,1449,1452,1455,1458],{"title":440,"path":1413,"stem":1414,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":444,"path":1416,"stem":1417,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":448,"path":1419,"stem":1420,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":452,"path":1422,"stem":1423,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F4.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":456,"path":1425,"stem":1426,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F4.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":460,"path":1428,"stem":1429,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":464,"path":1431,"stem":1432,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F4.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1434,"path":1435,"stem":1436,"titleTemplate":6},"\u003CNuxtAnnouncer>","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":468,"path":1438,"stem":1439,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F4.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":472,"path":1441,"stem":1442,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F4.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":476,"path":1444,"stem":1445,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F4.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":480,"path":1447,"stem":1448,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F4.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":484,"path":1450,"stem":1451,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F4.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":488,"path":1453,"stem":1454,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F4.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":492,"path":1456,"stem":1457,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F4.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":496,"path":1459,"stem":1460,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F4.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":1462,"stem":1463,"children":1464,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables","docs\u002F4.x\u002F4.api\u002F2.composables",[1465,1469,1473,1476,1480,1483,1486,1489,1492,1495,1498,1501,1504,1507,1510,1513,1516,1519,1522,1525,1528,1531,1534,1537,1540,1543,1546,1549,1552,1555,1558,1561],{"title":1466,"path":1467,"stem":1468,"titleTemplate":6},"createUseAsyncData","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1470,"path":1471,"stem":1472,"titleTemplate":6},"createUseFetch","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":507,"path":1474,"stem":1475,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1477,"path":1478,"stem":1479,"titleTemplate":6},"useAnnouncer","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":511,"path":1481,"stem":1482,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":515,"path":1484,"stem":1485,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":519,"path":1487,"stem":1488,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":523,"path":1490,"stem":1491,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":527,"path":1493,"stem":1494,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":531,"path":1496,"stem":1497,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":535,"path":1499,"stem":1500,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":539,"path":1502,"stem":1503,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":543,"path":1505,"stem":1506,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":547,"path":1508,"stem":1509,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":551,"path":1511,"stem":1512,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":555,"path":1514,"stem":1515,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":559,"path":1517,"stem":1518,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":563,"path":1520,"stem":1521,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":567,"path":1523,"stem":1524,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":571,"path":1526,"stem":1527,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":575,"path":1529,"stem":1530,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":579,"path":1532,"stem":1533,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":583,"path":1535,"stem":1536,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":587,"path":1538,"stem":1539,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":591,"path":1541,"stem":1542,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":595,"path":1544,"stem":1545,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":599,"path":1547,"stem":1548,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":603,"path":1550,"stem":1551,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":607,"path":1553,"stem":1554,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":611,"path":1556,"stem":1557,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":615,"path":1559,"stem":1560,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":619,"path":1562,"stem":1563,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":623,"titleTemplate":624,"icon":625,"path":1565,"stem":1566,"children":1567,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils","docs\u002F4.x\u002F4.api\u002F3.utils",[1568,1571,1574,1577,1580,1583,1586,1589,1592,1595,1598,1601,1604,1607,1610,1613,1616,1619,1622,1625,1628,1631,1634,1637,1640,1643,1646,1649,1652],{"title":630,"path":1569,"stem":1570,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F4.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":634,"path":1572,"stem":1573,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":638,"path":1575,"stem":1576,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":642,"path":1578,"stem":1579,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":646,"path":1581,"stem":1582,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":650,"path":1584,"stem":1585,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":654,"path":1587,"stem":1588,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":658,"path":1590,"stem":1591,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":662,"path":1593,"stem":1594,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":666,"path":1596,"stem":1597,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":670,"path":1599,"stem":1600,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":674,"path":1602,"stem":1603,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":678,"path":1605,"stem":1606,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":682,"path":1608,"stem":1609,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":686,"path":1611,"stem":1612,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":690,"path":1614,"stem":1615,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":694,"path":1617,"stem":1618,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":698,"path":1620,"stem":1621,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":702,"path":1623,"stem":1624,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":706,"path":1626,"stem":1627,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":710,"path":1629,"stem":1630,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":714,"path":1632,"stem":1633,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":718,"path":1635,"stem":1636,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":722,"path":1638,"stem":1639,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":726,"path":1641,"stem":1642,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F4.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":730,"path":1644,"stem":1645,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":734,"path":1647,"stem":1648,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":738,"path":1650,"stem":1651,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":742,"path":1653,"stem":1654,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":1656,"stem":1657,"children":1658,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands","docs\u002F4.x\u002F4.api\u002F4.commands",[1659,1662,1665,1668,1671,1674,1677,1680,1683,1686,1689,1692,1695,1698,1701,1704],{"title":753,"path":1660,"stem":1661,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fadd",{"title":757,"path":1663,"stem":1664,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":761,"path":1666,"stem":1667,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":765,"path":1669,"stem":1670,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":769,"path":1672,"stem":1673,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":773,"path":1675,"stem":1676,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdev",{"title":777,"path":1678,"stem":1679,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":781,"path":1681,"stem":1682,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":785,"path":1684,"stem":1685,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finfo",{"title":789,"path":1687,"stem":1688,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finit",{"title":793,"path":1690,"stem":1691,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":797,"path":1693,"stem":1694,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":801,"path":1696,"stem":1697,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":805,"path":1699,"stem":1700,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftest",{"title":809,"path":1702,"stem":1703,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":813,"path":1705,"stem":1706,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":411,"titleTemplate":817,"icon":818,"path":1708,"stem":1709,"children":1710,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit","docs\u002F4.x\u002F4.api\u002F5.kit",[1711,1714,1717,1720,1723,1726,1729,1732,1735,1738,1741,1744,1747,1750,1753,1756,1759,1762],{"title":276,"path":1712,"stem":1713,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F4.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":399,"path":1715,"stem":1716,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":829,"path":1718,"stem":1719,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":833,"path":1721,"stem":1722,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F4.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":837,"path":1724,"stem":1725,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F4.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":841,"path":1727,"stem":1728,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F4.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":845,"path":1730,"stem":1731,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F4.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":849,"path":1733,"stem":1734,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F4.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":1736,"stem":1737,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F4.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":856,"path":1739,"stem":1740,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F4.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":860,"path":1742,"stem":1743,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F4.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":1745,"stem":1746,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F4.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":434,"path":1748,"stem":1749,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F5.kit\u002F5.components",{"title":870,"path":1751,"stem":1752,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F4.x\u002F4.api\u002F5.kit\u002F6.context",{"title":874,"path":1754,"stem":1755,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F4.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":878,"path":1757,"stem":1758,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F4.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":882,"path":1760,"stem":1761,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.head",{"title":886,"path":1763,"stem":1764,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":1766,"stem":1767,"children":1768,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced","docs\u002F4.x\u002F4.api\u002F6.advanced",[1769,1772],{"title":407,"path":1770,"stem":1771,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":899,"path":1773,"stem":1774,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":903,"path":1776,"stem":1777,"titleTemplate":906,"icon":32},"\u002Fdocs\u002F4.x\u002Fapi\u002Fnuxt-config","docs\u002F4.x\u002F4.api\u002F6.nuxt-config",{"title":849,"titleTemplate":908,"icon":909,"path":1779,"stem":1780,"children":1781,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples","docs\u002F4.x\u002F4.examples",[1782,1785,1804,1817,1848],{"title":914,"path":1783,"stem":1784,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fhello-world","docs\u002F4.x\u002F4.examples\u002F0.hello-world",{"title":395,"path":1786,"stem":1787,"children":1788,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures","docs\u002F4.x\u002F4.examples\u002F1.features",[1789,1792,1795,1798,1801],{"title":922,"path":1790,"stem":1791,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F4.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":1793,"stem":1794,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F4.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":1796,"stem":1797,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F4.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":932,"path":1799,"stem":1800,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F4.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":936,"path":1802,"stem":1803,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F4.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":1805,"stem":1806,"children":1807,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting","docs\u002F4.x\u002F4.examples\u002F2.routing",[1808,1811,1814],{"title":944,"path":1809,"stem":1810,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":874,"path":1812,"stem":1813,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":951,"path":1815,"stem":1816,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":890,"path":1818,"stem":1819,"children":1820,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced","docs\u002F4.x\u002F4.examples\u002F4.advanced",[1821,1824,1827,1830,1833,1836,1839,1842,1845],{"title":84,"path":1822,"stem":1823,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":1825,"stem":1826,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":965,"path":1828,"stem":1829,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":969,"path":1831,"stem":1832,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":973,"path":1834,"stem":1835,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":977,"path":1837,"stem":1838,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":1840,"stem":1841,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":519,"path":1843,"stem":1844,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":987,"path":1846,"stem":1847,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":991,"path":1849,"stem":1850,"children":1851,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental","docs\u002F4.x\u002F4.examples\u002F7.experimental",[1852],{"title":996,"path":1853,"stem":1854,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F4.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":1856,"stem":1857,"children":1858,"page":108},"\u002Fdocs\u002F4.x\u002Fcommunity","docs\u002F4.x\u002F5.community",[1859,1862,1865,1868,1871,1874],{"title":1007,"path":1860,"stem":1861,"titleTemplate":6,"icon":1010},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fgetting-help","docs\u002F4.x\u002F5.community\u002F2.getting-help",{"title":1012,"path":1863,"stem":1864,"titleTemplate":6,"icon":1015},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Freporting-bugs","docs\u002F4.x\u002F5.community\u002F3.reporting-bugs",{"title":1017,"path":1866,"stem":1867,"titleTemplate":6,"icon":1020},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fcontribution","docs\u002F4.x\u002F5.community\u002F4.contribution",{"title":1022,"path":1869,"stem":1870,"titleTemplate":6,"icon":1025},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fframework-contribution","docs\u002F4.x\u002F5.community\u002F5.framework-contribution",{"title":1027,"path":1872,"stem":1873,"titleTemplate":6,"icon":1030},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Froadmap","docs\u002F4.x\u002F5.community\u002F6.roadmap",{"title":1032,"path":1875,"stem":1876,"titleTemplate":6,"icon":1035},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fchangelog","docs\u002F4.x\u002F5.community\u002F7.changelog",{"title":1037,"titleTemplate":1038,"icon":1039,"path":1878,"stem":1879,"children":1880,"page":108},"\u002Fdocs\u002F4.x\u002Fbridge","docs\u002F4.x\u002F6.bridge",[1881,1884,1887,1890,1893,1896,1899,1902,1905,1908],{"title":1044,"path":1882,"stem":1883,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Foverview","docs\u002F4.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1885,"stem":1886,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fconfiguration","docs\u002F4.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1888,"stem":1889,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Ftypescript","docs\u002F4.x\u002F6.bridge\u002F2.typescript",{"title":1054,"path":1891,"stem":1892,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F4.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1058,"path":1894,"stem":1895,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F4.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1062,"path":1897,"stem":1898,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F4.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":932,"path":1900,"stem":1901,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fmeta","docs\u002F4.x\u002F6.bridge\u002F6.meta",{"title":399,"path":1903,"stem":1904,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fruntime-config","docs\u002F4.x\u002F6.bridge\u002F7.runtime-config",{"title":833,"path":1906,"stem":1907,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnitro","docs\u002F4.x\u002F6.bridge\u002F8.nitro",{"title":1075,"path":1909,"stem":1910,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fvite","docs\u002F4.x\u002F6.bridge\u002F9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":1912,"stem":1913,"children":1914,"page":108},"\u002Fdocs\u002F4.x\u002Fmigration","docs\u002F4.x\u002F7.migration",[1915,1918,1921,1924,1927,1930,1933,1936,1939,1942,1945],{"title":1044,"path":1916,"stem":1917,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Foverview","docs\u002F4.x\u002F7.migration\u002F1.overview",{"title":1088,"path":1919,"stem":1920,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fbundling","docs\u002F4.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1922,"stem":1923,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fserver","docs\u002F4.x\u002F7.migration\u002F11.server",{"title":29,"path":1925,"stem":1926,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fconfiguration","docs\u002F4.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1928,"stem":1929,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmodule-authors","docs\u002F4.x\u002F7.migration\u002F20.module-authors",{"title":922,"path":1931,"stem":1932,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fauto-imports","docs\u002F4.x\u002F7.migration\u002F3.auto-imports",{"title":932,"path":1934,"stem":1935,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmeta","docs\u002F4.x\u002F7.migration\u002F4.meta",{"title":1058,"path":1937,"stem":1938,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F4.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1110,"path":1940,"stem":1941,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F4.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1114,"path":1943,"stem":1944,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fcomponent-options","docs\u002F4.x\u002F7.migration\u002F7.component-options",{"title":399,"path":1946,"stem":1947,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fruntime-config","docs\u002F4.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1949,"stem":1950,"children":1951,"page":108},"\u002Fdocs\u002F5.x","docs\u002F5.x",[1952,2010,2100,2227,2597,2674,2696,2730],{"title":12,"titleTemplate":13,"icon":14,"path":1953,"stem":1954,"children":1955,"page":108},"\u002Fdocs\u002F5.x\u002Fgetting-started","docs\u002F5.x\u002F1.getting-started",[1956,1959,1962,1965,1968,1971,1974,1977,1980,1983,1986,1989,1992,1995,1998,2001,2004,2007],{"title":19,"path":1957,"stem":1958,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fintroduction","docs\u002F5.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1960,"stem":1961,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Finstallation","docs\u002F5.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1963,"stem":1964,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fconfiguration","docs\u002F5.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":1966,"stem":1967,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fviews","docs\u002F5.x\u002F1.getting-started\u002F04.views",{"title":39,"path":1969,"stem":1970,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fassets","docs\u002F5.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":1972,"stem":1973,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstyling","docs\u002F5.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":1975,"stem":1976,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Frouting","docs\u002F5.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":1978,"stem":1979,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fseo-meta","docs\u002F5.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":1981,"stem":1982,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftransitions","docs\u002F5.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":1984,"stem":1985,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F5.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":1987,"stem":1988,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstate-management","docs\u002F5.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":1990,"stem":1991,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ferror-handling","docs\u002F5.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":1993,"stem":1994,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fserver","docs\u002F5.x\u002F1.getting-started\u002F13.server",{"title":84,"path":1996,"stem":1997,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Flayers","docs\u002F5.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":1999,"stem":2000,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fprerendering","docs\u002F5.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":2002,"stem":2003,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdeployment","docs\u002F5.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":2005,"stem":2006,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftesting","docs\u002F5.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":2008,"stem":2009,"titleTemplate":6,"icon":107},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fupgrade","docs\u002F5.x\u002F1.getting-started\u002F18.upgrade",{"title":110,"titleTemplate":111,"icon":112,"path":2011,"stem":2012,"children":2013,"page":108},"\u002Fdocs\u002F5.x\u002Fdirectory-structure","docs\u002F5.x\u002F2.directory-structure",[2014,2017,2020,2058,2061,2064,2067,2070,2073,2076,2079,2082,2085,2088,2091,2094,2097],{"title":117,"path":2015,"stem":2016,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F5.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":2018,"stem":2019,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Foutput","docs\u002F5.x\u002F2.directory-structure\u002F0.output",{"title":1193,"titleTemplate":111,"head":2021,"defaultOpen":1196,"icon":1197,"path":2022,"stem":2023,"children":2024,"page":108},{"title":1195},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app",[2025,2028,2031,2034,2037,2040,2043,2046,2049,2052,2055],{"title":127,"path":2026,"stem":2027,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":2029,"stem":2030,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":2032,"stem":2033,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":2035,"stem":2036,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":2038,"stem":2039,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":2041,"stem":2042,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":2044,"stem":2045,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":2047,"stem":2048,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":2050,"stem":2051,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":2053,"stem":2054,"titleTemplate":6,"icon":227},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp-config","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.app-config",{"title":229,"path":2056,"stem":2057,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":2059,"stem":2060,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fcontent","docs\u002F5.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":2062,"stem":2063,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Flayers","docs\u002F5.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":2065,"stem":2066,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fmodules","docs\u002F5.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":2068,"stem":2069,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F5.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":2071,"stem":2072,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpublic","docs\u002F5.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":2074,"stem":2075,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fserver","docs\u002F5.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":2077,"stem":2078,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fshared","docs\u002F5.x\u002F2.directory-structure\u002F1.shared",{"title":200,"path":2080,"stem":2081,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fenv","docs\u002F5.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":2083,"stem":2084,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F5.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":2086,"stem":2087,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":2089,"stem":2090,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":2092,"stem":2093,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F5.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":2095,"stem":2096,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpackage","docs\u002F5.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":2098,"stem":2099,"titleTemplate":6,"icon":245},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Ftsconfig","docs\u002F5.x\u002F2.directory-structure\u002F3.tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":2101,"stem":2102,"children":2103,"page":108},"\u002Fdocs\u002F5.x\u002Fguide","docs\u002F5.x\u002F3.guide",[2104,2129,2142,2152,2177,2193],{"title":253,"titleTemplate":254,"icon":255,"path":2105,"stem":2106,"children":2107,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts","docs\u002F5.x\u002F3.guide\u002F1.concepts",[2108,2111,2114,2117,2120,2123,2126],{"title":260,"path":2109,"stem":2110,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":2112,"stem":2113,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":2115,"stem":2116,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":2118,"stem":2119,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":2121,"stem":2122,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":2124,"stem":2125,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":2127,"stem":2128,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fcode-style","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":2130,"stem":2131,"children":2132,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F2.best-practices",[2133,2136,2139],{"title":1310,"path":2134,"stem":2135,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":2137,"stem":2138,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":2140,"stem":2141,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fplugins","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fplugins",{"title":307,"titleTemplate":308,"icon":309,"path":2143,"stem":2144,"children":2145,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai","docs\u002F5.x\u002F3.guide\u002F3.ai",[2146,2149],{"title":314,"path":2147,"stem":2148,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F5.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":2150,"stem":2151,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fllms-txt","docs\u002F5.x\u002F3.guide\u002F3.ai\u002F2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":2153,"stem":2154,"children":2155,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F4.modules",[2156,2159,2162,2165,2168,2171,2174],{"title":329,"path":2157,"stem":2158,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":2160,"stem":2161,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":2163,"stem":2164,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":2166,"stem":2167,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F4.recipes-advanced",{"title":345,"path":2169,"stem":2170,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F5.testing",{"title":349,"path":2172,"stem":2173,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F6.best-practices",{"title":353,"path":2175,"stem":2176,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F7.ecosystem",{"title":357,"titleTemplate":358,"icon":359,"path":2178,"stem":2179,"children":2180,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes","docs\u002F5.x\u002F3.guide\u002F5.recipes",[2181,2184,2187,2190],{"title":364,"path":2182,"stem":2183,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":368,"path":2185,"stem":2186,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":372,"path":2188,"stem":2189,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":376,"path":2191,"stem":2192,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":380,"titleTemplate":381,"icon":382,"path":2194,"stem":2195,"children":2196,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further","docs\u002F5.x\u002F3.guide\u002F6.going-further",[2197,2200,2203,2206,2209,2212,2215,2218,2221,2224],{"title":387,"path":2198,"stem":2199,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":391,"path":2201,"stem":2202,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":395,"path":2204,"stem":2205,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":399,"path":2207,"stem":2208,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":403,"path":2210,"stem":2211,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":407,"path":2213,"stem":2214,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":411,"path":2216,"stem":2217,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":415,"path":2219,"stem":2220,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":419,"path":2222,"stem":2223,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":423,"path":2225,"stem":2226,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":427,"titleTemplate":428,"icon":429,"path":2228,"stem":2229,"children":2230,"page":108},"\u002Fdocs\u002F5.x\u002Fapi","docs\u002F5.x\u002F4.api",[2231,2283,2383,2474,2526,2584,2594],{"title":434,"titleTemplate":435,"icon":324,"path":2232,"stem":2233,"children":2234,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F1.components",[2235,2238,2241,2244,2247,2250,2253,2256,2259,2262,2265,2268,2271,2274,2277,2280],{"title":440,"path":2236,"stem":2237,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":444,"path":2239,"stem":2240,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":448,"path":2242,"stem":2243,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":452,"path":2245,"stem":2246,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F5.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":456,"path":2248,"stem":2249,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F5.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":460,"path":2251,"stem":2252,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":464,"path":2254,"stem":2255,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F5.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1434,"path":2257,"stem":2258,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":468,"path":2260,"stem":2261,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F5.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":472,"path":2263,"stem":2264,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F5.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":476,"path":2266,"stem":2267,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F5.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":480,"path":2269,"stem":2270,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F5.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":484,"path":2272,"stem":2273,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F5.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":488,"path":2275,"stem":2276,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F5.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":492,"path":2278,"stem":2279,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F5.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":496,"path":2281,"stem":2282,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F5.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":500,"titleTemplate":501,"icon":502,"path":2284,"stem":2285,"children":2286,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables","docs\u002F5.x\u002F4.api\u002F2.composables",[2287,2290,2293,2296,2299,2302,2305,2308,2311,2314,2317,2320,2323,2326,2329,2332,2335,2338,2341,2344,2347,2350,2353,2356,2359,2362,2365,2368,2371,2374,2377,2380],{"title":1466,"path":2288,"stem":2289,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1470,"path":2291,"stem":2292,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":507,"path":2294,"stem":2295,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1477,"path":2297,"stem":2298,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":511,"path":2300,"stem":2301,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":515,"path":2303,"stem":2304,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":519,"path":2306,"stem":2307,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":523,"path":2309,"stem":2310,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":527,"path":2312,"stem":2313,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":531,"path":2315,"stem":2316,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":535,"path":2318,"stem":2319,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":539,"path":2321,"stem":2322,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":543,"path":2324,"stem":2325,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":547,"path":2327,"stem":2328,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":551,"path":2330,"stem":2331,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":555,"path":2333,"stem":2334,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":559,"path":2336,"stem":2337,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":563,"path":2339,"stem":2340,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":567,"path":2342,"stem":2343,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":571,"path":2345,"stem":2346,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":575,"path":2348,"stem":2349,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":579,"path":2351,"stem":2352,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":583,"path":2354,"stem":2355,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":587,"path":2357,"stem":2358,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":591,"path":2360,"stem":2361,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":595,"path":2363,"stem":2364,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":599,"path":2366,"stem":2367,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":603,"path":2369,"stem":2370,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":607,"path":2372,"stem":2373,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":611,"path":2375,"stem":2376,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":615,"path":2378,"stem":2379,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":619,"path":2381,"stem":2382,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":623,"titleTemplate":624,"icon":625,"path":2384,"stem":2385,"children":2386,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils","docs\u002F5.x\u002F4.api\u002F3.utils",[2387,2390,2393,2396,2399,2402,2405,2408,2411,2414,2417,2420,2423,2426,2429,2432,2435,2438,2441,2444,2447,2450,2453,2456,2459,2462,2465,2468,2471],{"title":630,"path":2388,"stem":2389,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F5.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":634,"path":2391,"stem":2392,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":638,"path":2394,"stem":2395,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":642,"path":2397,"stem":2398,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":646,"path":2400,"stem":2401,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":650,"path":2403,"stem":2404,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":654,"path":2406,"stem":2407,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":658,"path":2409,"stem":2410,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":662,"path":2412,"stem":2413,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":666,"path":2415,"stem":2416,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":670,"path":2418,"stem":2419,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":674,"path":2421,"stem":2422,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":678,"path":2424,"stem":2425,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":682,"path":2427,"stem":2428,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":686,"path":2430,"stem":2431,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":690,"path":2433,"stem":2434,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":694,"path":2436,"stem":2437,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":698,"path":2439,"stem":2440,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":702,"path":2442,"stem":2443,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":706,"path":2445,"stem":2446,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":710,"path":2448,"stem":2449,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":714,"path":2451,"stem":2452,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":718,"path":2454,"stem":2455,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":722,"path":2457,"stem":2458,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":726,"path":2460,"stem":2461,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F5.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":730,"path":2463,"stem":2464,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":734,"path":2466,"stem":2467,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":738,"path":2469,"stem":2470,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":742,"path":2472,"stem":2473,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":746,"titleTemplate":747,"icon":748,"path":2475,"stem":2476,"children":2477,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands","docs\u002F5.x\u002F4.api\u002F4.commands",[2478,2481,2484,2487,2490,2493,2496,2499,2502,2505,2508,2511,2514,2517,2520,2523],{"title":753,"path":2479,"stem":2480,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fadd",{"title":757,"path":2482,"stem":2483,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":761,"path":2485,"stem":2486,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":765,"path":2488,"stem":2489,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":769,"path":2491,"stem":2492,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":773,"path":2494,"stem":2495,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdev",{"title":777,"path":2497,"stem":2498,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":781,"path":2500,"stem":2501,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":785,"path":2503,"stem":2504,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finfo",{"title":789,"path":2506,"stem":2507,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finit",{"title":793,"path":2509,"stem":2510,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":797,"path":2512,"stem":2513,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":801,"path":2515,"stem":2516,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":805,"path":2518,"stem":2519,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftest",{"title":809,"path":2521,"stem":2522,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":813,"path":2524,"stem":2525,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":411,"titleTemplate":817,"icon":818,"path":2527,"stem":2528,"children":2529,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit","docs\u002F5.x\u002F4.api\u002F5.kit",[2530,2533,2536,2539,2542,2545,2548,2551,2554,2557,2560,2563,2566,2569,2572,2575,2578,2581],{"title":276,"path":2531,"stem":2532,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F5.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":399,"path":2534,"stem":2535,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":829,"path":2537,"stem":2538,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":833,"path":2540,"stem":2541,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F5.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":837,"path":2543,"stem":2544,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F5.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":841,"path":2546,"stem":2547,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F5.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":845,"path":2549,"stem":2550,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F5.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":849,"path":2552,"stem":2553,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F5.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":2555,"stem":2556,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F5.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":856,"path":2558,"stem":2559,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F5.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":860,"path":2561,"stem":2562,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F5.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":2564,"stem":2565,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F5.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":434,"path":2567,"stem":2568,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F5.kit\u002F5.components",{"title":870,"path":2570,"stem":2571,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F5.x\u002F4.api\u002F5.kit\u002F6.context",{"title":874,"path":2573,"stem":2574,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F5.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":878,"path":2576,"stem":2577,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F5.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":882,"path":2579,"stem":2580,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.head",{"title":886,"path":2582,"stem":2583,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":890,"titleTemplate":6,"icon":891,"path":2585,"stem":2586,"children":2587,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced","docs\u002F5.x\u002F4.api\u002F6.advanced",[2588,2591],{"title":407,"path":2589,"stem":2590,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":899,"path":2592,"stem":2593,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":903,"path":2595,"stem":2596,"titleTemplate":906,"icon":32},"\u002Fdocs\u002F5.x\u002Fapi\u002Fnuxt-config","docs\u002F5.x\u002F4.api\u002F6.nuxt-config",{"title":849,"titleTemplate":908,"icon":909,"path":2598,"stem":2599,"children":2600,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples","docs\u002F5.x\u002F4.examples",[2601,2604,2623,2636,2667],{"title":914,"path":2602,"stem":2603,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fhello-world","docs\u002F5.x\u002F4.examples\u002F0.hello-world",{"title":395,"path":2605,"stem":2606,"children":2607,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures","docs\u002F5.x\u002F4.examples\u002F1.features",[2608,2611,2614,2617,2620],{"title":922,"path":2609,"stem":2610,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F5.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":2612,"stem":2613,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F5.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":2615,"stem":2616,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F5.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":932,"path":2618,"stem":2619,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F5.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":936,"path":2621,"stem":2622,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F5.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":2624,"stem":2625,"children":2626,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting","docs\u002F5.x\u002F4.examples\u002F2.routing",[2627,2630,2633],{"title":944,"path":2628,"stem":2629,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":874,"path":2631,"stem":2632,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":951,"path":2634,"stem":2635,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":890,"path":2637,"stem":2638,"children":2639,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced","docs\u002F5.x\u002F4.examples\u002F4.advanced",[2640,2643,2646,2649,2652,2655,2658,2661,2664],{"title":84,"path":2641,"stem":2642,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":2644,"stem":2645,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":965,"path":2647,"stem":2648,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":969,"path":2650,"stem":2651,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":973,"path":2653,"stem":2654,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":977,"path":2656,"stem":2657,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":2659,"stem":2660,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":519,"path":2662,"stem":2663,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":987,"path":2665,"stem":2666,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":991,"path":2668,"stem":2669,"children":2670,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental","docs\u002F5.x\u002F4.examples\u002F7.experimental",[2671],{"title":996,"path":2672,"stem":2673,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F5.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1000,"titleTemplate":1001,"icon":1002,"path":2675,"stem":2676,"children":2677,"page":108},"\u002Fdocs\u002F5.x\u002Fcommunity","docs\u002F5.x\u002F5.community",[2678,2681,2684,2687,2690,2693],{"title":1007,"path":2679,"stem":2680,"titleTemplate":6,"icon":1010},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fgetting-help","docs\u002F5.x\u002F5.community\u002F2.getting-help",{"title":1012,"path":2682,"stem":2683,"titleTemplate":6,"icon":1015},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Freporting-bugs","docs\u002F5.x\u002F5.community\u002F3.reporting-bugs",{"title":1017,"path":2685,"stem":2686,"titleTemplate":6,"icon":1020},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fcontribution","docs\u002F5.x\u002F5.community\u002F4.contribution",{"title":1022,"path":2688,"stem":2689,"titleTemplate":6,"icon":1025},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fframework-contribution","docs\u002F5.x\u002F5.community\u002F5.framework-contribution",{"title":1027,"path":2691,"stem":2692,"titleTemplate":6,"icon":1030},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Froadmap","docs\u002F5.x\u002F5.community\u002F6.roadmap",{"title":1032,"path":2694,"stem":2695,"titleTemplate":6,"icon":1035},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fchangelog","docs\u002F5.x\u002F5.community\u002F7.changelog",{"title":1037,"titleTemplate":1038,"icon":1039,"path":2697,"stem":2698,"children":2699,"page":108},"\u002Fdocs\u002F5.x\u002Fbridge","docs\u002F5.x\u002F6.bridge",[2700,2703,2706,2709,2712,2715,2718,2721,2724,2727],{"title":1044,"path":2701,"stem":2702,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Foverview","docs\u002F5.x\u002F6.bridge\u002F1.overview",{"title":29,"path":2704,"stem":2705,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fconfiguration","docs\u002F5.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":2707,"stem":2708,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Ftypescript","docs\u002F5.x\u002F6.bridge\u002F2.typescript",{"title":1054,"path":2710,"stem":2711,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F5.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1058,"path":2713,"stem":2714,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F5.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1062,"path":2716,"stem":2717,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F5.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":932,"path":2719,"stem":2720,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fmeta","docs\u002F5.x\u002F6.bridge\u002F6.meta",{"title":399,"path":2722,"stem":2723,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fruntime-config","docs\u002F5.x\u002F6.bridge\u002F7.runtime-config",{"title":833,"path":2725,"stem":2726,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnitro","docs\u002F5.x\u002F6.bridge\u002F8.nitro",{"title":1075,"path":2728,"stem":2729,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fvite","docs\u002F5.x\u002F6.bridge\u002F9.vite",{"title":1079,"titleTemplate":1080,"icon":107,"path":2731,"stem":2732,"children":2733,"page":108},"\u002Fdocs\u002F5.x\u002Fmigration","docs\u002F5.x\u002F7.migration",[2734,2737,2740,2743,2746,2749,2752,2755,2758,2761,2764],{"title":1044,"path":2735,"stem":2736,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Foverview","docs\u002F5.x\u002F7.migration\u002F1.overview",{"title":1088,"path":2738,"stem":2739,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fbundling","docs\u002F5.x\u002F7.migration\u002F10.bundling",{"title":79,"path":2741,"stem":2742,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fserver","docs\u002F5.x\u002F7.migration\u002F11.server",{"title":29,"path":2744,"stem":2745,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fconfiguration","docs\u002F5.x\u002F7.migration\u002F2.configuration",{"title":276,"path":2747,"stem":2748,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmodule-authors","docs\u002F5.x\u002F7.migration\u002F20.module-authors",{"title":922,"path":2750,"stem":2751,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fauto-imports","docs\u002F5.x\u002F7.migration\u002F3.auto-imports",{"title":932,"path":2753,"stem":2754,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmeta","docs\u002F5.x\u002F7.migration\u002F4.meta",{"title":1058,"path":2756,"stem":2757,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F5.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1110,"path":2759,"stem":2760,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F5.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1114,"path":2762,"stem":2763,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fcomponent-options","docs\u002F5.x\u002F7.migration\u002F7.component-options",{"title":399,"path":2765,"stem":2766,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fruntime-config","docs\u002F5.x\u002F7.migration\u002F8.runtime-config",{"title":2768,"path":2769,"stem":2770,"children":2771,"page":108},"Blog","\u002Fblog","blog",[2772,2776,2780,2784,2788,2792,2796,2800,2804,2808,2812,2816,2820,2824,2828,2832,2836,2840,2844,2848,2852,2856,2860,2864,2868,2872,2876,2880,2884,2888,2892,2896,2900,2904,2908,2912,2916,2920,2924,2928,2932,2936,2940,2944,2948,2952,2956],{"title":2773,"path":2774,"stem":2775},"Announcing 3.0","\u002Fblog\u002Fv3","blog\u002F1.v3",{"title":2777,"path":2778,"stem":2779},"Nuxt 3.3","\u002Fblog\u002Fv3-3","blog\u002F10.v3-3",{"title":2781,"path":2782,"stem":2783},"Nuxt 3.4","\u002Fblog\u002Fv3-4","blog\u002F11.v3-4",{"title":2785,"path":2786,"stem":2787},"Nuxt 3.5","\u002Fblog\u002Fv3-5","blog\u002F12.v3-5",{"title":2789,"path":2790,"stem":2791},"Nuxt 3.6","\u002Fblog\u002Fv3-6","blog\u002F13.v3-6",{"title":2793,"path":2794,"stem":2795},"Nuxt on the Edge","\u002Fblog\u002Fnuxt-on-the-edge","blog\u002F14.nuxt-on-the-edge",{"title":2797,"path":2798,"stem":2799},"Nuxt 3.7","\u002Fblog\u002Fv3-7","blog\u002F15.v3-7",{"title":2801,"path":2802,"stem":2803},"A New Website","\u002Fblog\u002Fnew-website","blog\u002F16.new-website",{"title":2805,"path":2806,"stem":2807},"Nuxt 3.8","\u002Fblog\u002Fv3-8","blog\u002F17.v3-8",{"title":2809,"path":2810,"stem":2811},"Nuxt DevTools v1.0","\u002Fblog\u002Fnuxt-devtools-v1-0","blog\u002F18.nuxt-devtools-v1-0",{"title":2813,"path":2814,"stem":2815},"Nuxt 3.9","\u002Fblog\u002Fv3-9","blog\u002F19.v3-9",{"title":2817,"path":2818,"stem":2819},"Nuxt: A vision for 2023","\u002Fblog\u002Fvision-2023","blog\u002F2.vision-2023",{"title":2821,"path":2822,"stem":2823},"Nuxt 3.10","\u002Fblog\u002Fv3-10","blog\u002F20.v3-10",{"title":2825,"path":2826,"stem":2827},"The Evolution of Shiki v1.0","\u002Fblog\u002Fshiki-v1","blog\u002F21.shiki-v1",{"title":2829,"path":2830,"stem":2831},"Nuxt 3.11","\u002Fblog\u002Fv3-11","blog\u002F22.v3-11",{"title":2833,"path":2834,"stem":2835},"Nuxt: Looking forward","\u002Fblog\u002Flooking-forward-2024","blog\u002F23.looking-forward-2024",{"title":2837,"path":2838,"stem":2839},"Refreshed Nuxt ESLint Integrations","\u002Fblog\u002Feslint-module","blog\u002F24.eslint-module",{"title":2841,"path":2842,"stem":2843},"Nuxt 3.12","\u002Fblog\u002Fv3-12","blog\u002F25.v3-12",{"title":2845,"path":2846,"stem":2847},"Introducing Nuxt Scripts","\u002Fblog\u002Fnuxt-scripts","blog\u002F26.nuxt-scripts",{"title":2849,"path":2850,"stem":2851},"Nuxt 3.13","\u002Fblog\u002Fv3-13","blog\u002F27.v3-13",{"title":2853,"path":2854,"stem":2855},"Nuxt 3.14","\u002Fblog\u002Fv3-14","blog\u002F27.v3-14",{"title":2857,"path":2858,"stem":2859},"Introducing Nuxt Icon v1","\u002Fblog\u002Fnuxt-icon-v1-0","blog\u002F29.nuxt-icon-v1-0",{"title":2861,"path":2862,"stem":2863},"Introducing Nuxt DevTools","\u002Fblog\u002Fintroducing-nuxt-devtools","blog\u002F3.introducing-nuxt-devtools",{"title":2865,"path":2866,"stem":2867},"Announcing Nuxt 3 Release Candidate","\u002Fblog\u002Fnuxt3-rc","blog\u002F3.nuxt3-rc",{"title":2869,"path":2870,"stem":2871},"Nuxt 3.15","\u002Fblog\u002Fv3-15","blog\u002F30.v3-15",{"title":2873,"path":2874,"stem":2875},"Nuxt 3.16","\u002Fblog\u002Fv3-16","blog\u002F31.v3-16",{"title":2877,"path":2878,"stem":2879},"Nuxt UI v3","\u002Fblog\u002Fnuxt-ui-v3","blog\u002F32.nuxt-ui-v3",{"title":2881,"path":2882,"stem":2883},"Nuxt 3.17","\u002Fblog\u002Fv3-17","blog\u002F33.v3-17",{"title":2885,"path":2886,"stem":2887},"Roadmap to v4","\u002Fblog\u002Froadmap-v4","blog\u002F34.roadmap-v4",{"title":2889,"path":2890,"stem":2891},"Building a Privacy-First Feedback Widget","\u002Fblog\u002Fbuilding-a-feedback-widget","blog\u002F35.building-a-feedback-widget",{"title":2893,"path":2894,"stem":2895},"Announcing Nuxt 4.0","\u002Fblog\u002Fv4","blog\u002F36.v4",{"title":2897,"path":2898,"stem":2899},"Nuxt 3.18","\u002Fblog\u002Fv3-18","blog\u002F37.v3-18",{"title":2901,"path":2902,"stem":2903},"Nuxt 4.1","\u002Fblog\u002Fv4-1","blog\u002F38.v4-1",{"title":2905,"path":2906,"stem":2907},"Nuxt UI v4","\u002Fblog\u002Fnuxt-ui-v4","blog\u002F39.nuxt-ui-v4",{"title":2909,"path":2910,"stem":2911},"Nuxt 2 End-of-Life (EOL)","\u002Fblog\u002Fnuxt2-eol","blog\u002F4.nuxt2-eol",{"title":2913,"path":2914,"stem":2915},"Introducing Nuxt 3 Beta","\u002Fblog\u002Fnuxt3-beta","blog\u002F4.nuxt3-beta",{"title":2917,"path":2918,"stem":2919},"Building an MCP Server for Nuxt","\u002Fblog\u002Fbuilding-nuxt-mcp","blog\u002F40.building-nuxt-mcp",{"title":2921,"path":2922,"stem":2923},"Nuxt 4.2","\u002Fblog\u002Fv4-2","blog\u002F40.v4-2",{"title":2925,"path":2926,"stem":2927},"Nuxt Image v2","\u002Fblog\u002Fnuxt-image-v2","blog\u002F41.nuxt-image-v2",{"title":2929,"path":2930,"stem":2931},"Nuxt 4.3","\u002Fblog\u002Fv4-3","blog\u002F42.v4-3",{"title":2933,"path":2934,"stem":2935},"Nuxt 4.4","\u002Fblog\u002Fv4-4","blog\u002F43.v4-4",{"title":2937,"path":2938,"stem":2939},"Introducing the Nuxt Agent","\u002Fblog\u002Fintroducing-nuxt-agent","blog\u002F44.introducing-nuxt-agent",{"title":2941,"path":2942,"stem":2943},"Going Full Static","\u002Fblog\u002Fgoing-full-static","blog\u002F5.going-full-static",{"title":2945,"path":2946,"stem":2947},"Introducing Smart Prefetching","\u002Fblog\u002Fintroducing-smart-prefetching","blog\u002F6.introducing-smart-prefetching",{"title":2949,"path":2950,"stem":2951},"Understanding how fetch works in Nuxt 2.12","\u002Fblog\u002Funderstanding-how-fetch-works-in-nuxt-2-12","blog\u002F7.understanding-how-fetch-works-in-nuxt-2-12",{"title":2953,"path":2954,"stem":2955},"Nuxt 2 Static Improvements","\u002Fblog\u002Fnuxt-static-improvements","blog\u002F8.nuxt-static-improvements",{"title":2957,"path":2958,"stem":2959},"Nuxt 2: From Terminal to Browser","\u002Fblog\u002Fnuxtjs-from-terminal-to-browser","blog\u002F9.nuxtjs-from-terminal-to-browser",{"v5":2961,"v4":2962,"v3":2963,"v2":2964},"5 (nightly)","4.4.4","3.21.4","2.18.1",{"name":2966,"description":2967,"repo":2968,"npm":2969,"icon":2970,"github":2971,"website":2971,"learn_more":2970,"category":2972,"type":2973,"maintainers":2974,"compatibility":2979,"generatedAt":2982,"contributors":2983,"stats":3081,"readme":3090},"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",[2975],{"name":2976,"github":2977,"twitter":2977,"bluesky":2978},"Sébastien Chopin","atinux","atinux.com",{"nuxt":2980,"requires":2981},">=3.0.0",{},"2026-05-09T05:48:54.177Z",[2984,2987,2991,2995,2999,3003,3007,3010,3013,3016,3019,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3057,3060,3063,3066,3069,3072,3075,3078],{"id":2985,"username":2977,"contributions":2986},904724,197,{"id":2988,"username":2989,"contributions":2990},28706372,"danielroe",16,{"id":2992,"username":2993,"contributions":2994},50090595,"ahmedrangel",9,{"id":2996,"username":2997,"contributions":2998},12988935,"Gerbuuun",8,{"id":3000,"username":3001,"contributions":3002},45267552,"Barbapapazes",7,{"id":3004,"username":3005,"contributions":3006},13056429,"sandros94",3,{"id":3008,"username":3009,"contributions":3006},16264115,"Yizack",{"id":3011,"username":3012,"contributions":3006},967369,"acidjazz",{"id":3014,"username":3015,"contributions":3006},15887916,"blumgart",{"id":3017,"username":3018,"contributions":3006},67746033,"justserdar",{"id":3020,"username":3021,"contributions":3022},10636392,"brianacdev",2,{"id":3024,"username":3025,"contributions":3022},67898185,"larsrickert",{"id":3027,"username":3028,"contributions":3022},40021217,"kingyue737",{"id":3030,"username":3031,"contributions":3022},59120414,"cth-latest",{"id":3033,"username":3034,"contributions":3022},19751938,"noook",{"id":3036,"username":3037,"contributions":3022},1409645,"mariosant",{"id":3039,"username":3040,"contributions":3022},24661232,"Jorgagu",{"id":3042,"username":3043,"contributions":3022},5326365,"harlan-zw",{"id":3045,"username":3046,"contributions":3022},61092270,"stranavad",{"id":3048,"username":3049,"contributions":3022},1592441,"mendrinos",{"id":3051,"username":3052,"contributions":3022},376963,"bisand",{"id":3054,"username":3055,"contributions":3056},18315316,"Syrex-o",1,{"id":3058,"username":3059,"contributions":3056},3109921,"silvio-e",{"id":3061,"username":3062,"contributions":3056},18753964,"sifferhans",{"id":3064,"username":3065,"contributions":3056},17186421,"samulefevre",{"id":3067,"username":3068,"contributions":3056},15785987,"samydoesit",{"id":3070,"username":3071,"contributions":3056},31662219,"rudokemper",{"id":3073,"username":3074,"contributions":3056},29805551,"RobertHaba",{"id":3076,"username":3077,"contributions":3056},1231105,"SteinRobert",{"id":3079,"username":3080,"contributions":3056},5472296,"robert-hoffmann",{"version":3082,"downloads":3083,"stars":3084,"watchers":3085,"forks":3086,"defaultBranch":3087,"publishedAt":3088,"createdAt":3089},"0.5.29",280246,1565,11,187,"main",1771335673386,1699356484873,{"data":3091,"body":3093,"toc":14081},{"title":3092,"description":2970},"Nuxt Auth Utils",{"type":3094,"children":3095},"root",[3096,3103,3149,3153,3187,3193,3292,3306,3312,3324,3336,3347,3353,3369,3411,3433,3468,3480,3488,3494,3499,3506,4047,4056,4559,4581,4587,4600,4606,4983,5003,5182,5194,5200,5205,5225,5246,5273,5451,5456,5477,5485,5492,5735,5748,5754,5765,6170,6182,6195,6200,6230,6356,6369,6480,6491,6647,6653,6658,6663,6671,6705,6718,6797,6802,6807,6812,6819,6851,6863,6942,6947,6952,6966,7286,7426,7456,8384,8419,9256,9290,9803,9808,10647,10665,10671,10700,10711,10717,10722,11004,11010,11029,11255,11279,11284,11304,11309,11317,11336,11424,11450,11456,11473,11560,11578,11588,11600,11605,11858,11870,11882,12255,12283,12289,12302,12320,12423,12443,12793,12807,13307,13312,13339,13350,13520,13525,13671,13691,13794,13812,13818,13838,13844,14075],{"type":3097,"tag":3098,"props":3099,"children":3100},"element","h1",{"id":2969},[3101],{"type":3102,"value":3092},"text",{"type":3097,"tag":3104,"props":3105,"children":3106},"p",{},[3107,3120,3130,3139],{"type":3097,"tag":3108,"props":3109,"children":3113},"a",{"href":3110,"rel":3111},"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fnuxt-auth-utils",[3112],"nofollow",[3114],{"type":3097,"tag":3115,"props":3116,"children":3119},"img",{"alt":3117,"src":3118},"npm version","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fnuxt-auth-utils\u002Flatest.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3097,"tag":3108,"props":3121,"children":3124},{"href":3122,"rel":3123},"https:\u002F\u002Fnpm.chart.dev\u002Fnuxt-auth-utils",[3112],[3125],{"type":3097,"tag":3115,"props":3126,"children":3129},{"alt":3127,"src":3128},"npm downloads","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3097,"tag":3108,"props":3131,"children":3133},{"href":3110,"rel":3132},[3112],[3134],{"type":3097,"tag":3115,"props":3135,"children":3138},{"alt":3136,"src":3137},"License","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3097,"tag":3108,"props":3140,"children":3143},{"href":3141,"rel":3142},"https:\u002F\u002Fnuxt.com",[3112],[3144],{"type":3097,"tag":3115,"props":3145,"children":3148},{"alt":3146,"src":3147},"Nuxt","https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNuxt-020420?logo=nuxt.js",[],{"type":3097,"tag":3104,"props":3150,"children":3151},{},[3152],{"type":3102,"value":2967},{"type":3097,"tag":3154,"props":3155,"children":3156},"ul",{},[3157,3167,3177],{"type":3097,"tag":3158,"props":3159,"children":3160},"li",{},[3161],{"type":3097,"tag":3108,"props":3162,"children":3164},{"href":3163},"\u002FCHANGELOG.md",[3165],{"type":3102,"value":3166},"Release Notes",{"type":3097,"tag":3158,"props":3168,"children":3169},{},[3170],{"type":3097,"tag":3108,"props":3171,"children":3174},{"href":3172,"rel":3173},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fatidone",[3112],[3175],{"type":3102,"value":3176},"Demo with OAuth",{"type":3097,"tag":3158,"props":3178,"children":3179},{},[3180],{"type":3097,"tag":3108,"props":3181,"children":3184},{"href":3182,"rel":3183},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Ftodo-passkeys",[3112],[3185],{"type":3102,"value":3186},"Demo with Passkeys",{"type":3097,"tag":3188,"props":3189,"children":3191},"h2",{"id":3190},"features",[3192],{"type":3102,"value":395},{"type":3097,"tag":3154,"props":3194,"children":3195},{},[3196,3207,3216,3225,3234,3250,3259,3274,3283],{"type":3097,"tag":3158,"props":3197,"children":3198},{},[3199,3205],{"type":3097,"tag":3108,"props":3200,"children":3202},{"href":3201},"#hybrid-rendering",[3203],{"type":3102,"value":3204},"Hybrid Rendering",{"type":3102,"value":3206}," support (SSR \u002F CSR \u002F SWR \u002F Prerendering)",{"type":3097,"tag":3158,"props":3208,"children":3209},{},[3210],{"type":3097,"tag":3108,"props":3211,"children":3213},{"href":3212},"#supported-oauth-providers",[3214],{"type":3102,"value":3215},"40+ OAuth Providers",{"type":3097,"tag":3158,"props":3217,"children":3218},{},[3219],{"type":3097,"tag":3108,"props":3220,"children":3222},{"href":3221},"#password-hashing",[3223],{"type":3102,"value":3224},"Password Hashing",{"type":3097,"tag":3158,"props":3226,"children":3227},{},[3228],{"type":3097,"tag":3108,"props":3229,"children":3231},{"href":3230},"#webauthn-passkey",[3232],{"type":3102,"value":3233},"WebAuthn (passkey)",{"type":3097,"tag":3158,"props":3235,"children":3236},{},[3237],{"type":3097,"tag":3108,"props":3238,"children":3240},{"href":3239},"#vue-composable",[3241,3248],{"type":3097,"tag":3242,"props":3243,"children":3245},"code",{"className":3244},[],[3246],{"type":3102,"value":3247},"useUserSession()",{"type":3102,"value":3249}," Vue composable",{"type":3097,"tag":3158,"props":3251,"children":3252},{},[3253],{"type":3097,"tag":3108,"props":3254,"children":3256},{"href":3255},"#server-utils",[3257],{"type":3102,"value":3258},"Tree-shakable server utils",{"type":3097,"tag":3158,"props":3260,"children":3261},{},[3262],{"type":3097,"tag":3108,"props":3263,"children":3265},{"href":3264},"#authstate-component",[3266,3272],{"type":3097,"tag":3242,"props":3267,"children":3269},{"className":3268},[],[3270],{"type":3102,"value":3271},"\u003CAuthState>",{"type":3102,"value":3273}," component",{"type":3097,"tag":3158,"props":3275,"children":3276},{},[3277],{"type":3097,"tag":3108,"props":3278,"children":3280},{"href":3279},"#extend-session",[3281],{"type":3102,"value":3282},"Extendable with hooks",{"type":3097,"tag":3158,"props":3284,"children":3285},{},[3286],{"type":3097,"tag":3108,"props":3287,"children":3289},{"href":3288},"#websocket-support",[3290],{"type":3102,"value":3291},"WebSocket support",{"type":3097,"tag":3104,"props":3293,"children":3294},{},[3295,3297,3304],{"type":3102,"value":3296},"It has few dependencies (only from ",{"type":3097,"tag":3108,"props":3298,"children":3301},{"href":3299,"rel":3300},"https:\u002F\u002Fgithub.com\u002Funjs",[3112],[3302],{"type":3102,"value":3303},"UnJS",{"type":3102,"value":3305},"), run on multiple JS environments (Node, Deno, Workers) and is fully typed with TypeScript.",{"type":3097,"tag":3188,"props":3307,"children":3309},{"id":3308},"requirements",[3310],{"type":3102,"value":3311},"Requirements",{"type":3097,"tag":3104,"props":3313,"children":3314},{},[3315,3317,3322],{"type":3102,"value":3316},"This module only works with a Nuxt server running as it uses server API routes (",{"type":3097,"tag":3242,"props":3318,"children":3320},{"className":3319},[],[3321],{"type":3102,"value":761},{"type":3102,"value":3323},").",{"type":3097,"tag":3104,"props":3325,"children":3326},{},[3327,3329,3334],{"type":3102,"value":3328},"This means that you cannot use this module with ",{"type":3097,"tag":3242,"props":3330,"children":3332},{"className":3331},[],[3333],{"type":3102,"value":781},{"type":3102,"value":3335},".",{"type":3097,"tag":3104,"props":3337,"children":3338},{},[3339,3341,3345],{"type":3102,"value":3340},"You can anyway use ",{"type":3097,"tag":3108,"props":3342,"children":3343},{"href":3201},[3344],{"type":3102,"value":3204},{"type":3102,"value":3346}," to pre-render pages of your application or disable server-side rendering completely.",{"type":3097,"tag":3188,"props":3348,"children":3350},{"id":3349},"quick-setup",[3351],{"type":3102,"value":3352},"Quick Setup",{"type":3097,"tag":3354,"props":3355,"children":3356},"ol",{},[3357],{"type":3097,"tag":3158,"props":3358,"children":3359},{},[3360,3362,3367],{"type":3102,"value":3361},"Add ",{"type":3097,"tag":3242,"props":3363,"children":3365},{"className":3364},[],[3366],{"type":3102,"value":2969},{"type":3102,"value":3368}," in your Nuxt project",{"type":3097,"tag":3370,"props":3371,"children":3375},"pre",{"className":3372,"code":3373,"language":3374,"meta":2970,"style":2970},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","npx nuxi@latest module add auth-utils\n","bash",[3376],{"type":3097,"tag":3242,"props":3377,"children":3378},{"__ignoreMap":2970},[3379],{"type":3097,"tag":3380,"props":3381,"children":3383},"span",{"class":3382,"line":3056},"line",[3384,3390,3396,3401,3406],{"type":3097,"tag":3380,"props":3385,"children":3387},{"style":3386},"--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B",[3388],{"type":3102,"value":3389},"npx",{"type":3097,"tag":3380,"props":3391,"children":3393},{"style":3392},"--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D",[3394],{"type":3102,"value":3395}," nuxi@latest",{"type":3097,"tag":3380,"props":3397,"children":3398},{"style":3392},[3399],{"type":3102,"value":3400}," module",{"type":3097,"tag":3380,"props":3402,"children":3403},{"style":3392},[3404],{"type":3102,"value":3405}," add",{"type":3097,"tag":3380,"props":3407,"children":3408},{"style":3392},[3409],{"type":3102,"value":3410}," auth-utils\n",{"type":3097,"tag":3354,"props":3412,"children":3413},{"start":3022},[3414],{"type":3097,"tag":3158,"props":3415,"children":3416},{},[3417,3419,3425,3427,3432],{"type":3102,"value":3418},"Add a ",{"type":3097,"tag":3242,"props":3420,"children":3422},{"className":3421},[],[3423],{"type":3102,"value":3424},"NUXT_SESSION_PASSWORD",{"type":3102,"value":3426}," env variable with at least 32 characters in the ",{"type":3097,"tag":3242,"props":3428,"children":3430},{"className":3429},[],[3431],{"type":3102,"value":200},{"type":3102,"value":3335},{"type":3097,"tag":3370,"props":3434,"children":3436},{"className":3372,"code":3435,"language":3374,"meta":2970,"style":2970},"# .env\nNUXT_SESSION_PASSWORD=password-with-at-least-32-characters\n",[3437],{"type":3097,"tag":3242,"props":3438,"children":3439},{"__ignoreMap":2970},[3440,3449],{"type":3097,"tag":3380,"props":3441,"children":3442},{"class":3382,"line":3056},[3443],{"type":3097,"tag":3380,"props":3444,"children":3446},{"style":3445},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[3447],{"type":3102,"value":3448},"# .env\n",{"type":3097,"tag":3380,"props":3450,"children":3451},{"class":3382,"line":3022},[3452,3457,3463],{"type":3097,"tag":3380,"props":3453,"children":3455},{"style":3454},"--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8",[3456],{"type":3102,"value":3424},{"type":3097,"tag":3380,"props":3458,"children":3460},{"style":3459},"--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF",[3461],{"type":3102,"value":3462},"=",{"type":3097,"tag":3380,"props":3464,"children":3465},{"style":3392},[3466],{"type":3102,"value":3467},"password-with-at-least-32-characters\n",{"type":3097,"tag":3104,"props":3469,"children":3470},{},[3471,3473,3478],{"type":3102,"value":3472},"Nuxt Auth Utils generates one for you when running Nuxt in development the first time if no ",{"type":3097,"tag":3242,"props":3474,"children":3476},{"className":3475},[],[3477],{"type":3102,"value":3424},{"type":3102,"value":3479}," is set.",{"type":3097,"tag":3354,"props":3481,"children":3482},{"start":3006},[3483],{"type":3097,"tag":3158,"props":3484,"children":3485},{},[3486],{"type":3102,"value":3487},"That's it! You can now add authentication to your Nuxt app ✨",{"type":3097,"tag":3188,"props":3489,"children":3491},{"id":3490},"vue-composable",[3492],{"type":3102,"value":3493},"Vue Composable",{"type":3097,"tag":3104,"props":3495,"children":3496},{},[3497],{"type":3102,"value":3498},"Nuxt Auth Utils automatically adds some plugins to fetch the current user session to let you access it from your Vue components.",{"type":3097,"tag":3500,"props":3501,"children":3503},"h3",{"id":3502},"user-session",[3504],{"type":3102,"value":3505},"User Session",{"type":3097,"tag":3370,"props":3507,"children":3511},{"className":3508,"code":3509,"language":3510,"meta":2970,"style":2970},"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",[3512],{"type":3097,"tag":3242,"props":3513,"children":3514},{"__ignoreMap":2970},[3515,3540,3625,3641,3650,3667,3708,3742,3774,3829,3846,3866,3899,3954,3963,4016,4031],{"type":3097,"tag":3380,"props":3516,"children":3517},{"class":3382,"line":3056},[3518,3523,3529,3535],{"type":3097,"tag":3380,"props":3519,"children":3520},{"style":3459},[3521],{"type":3102,"value":3522},"\u003C",{"type":3097,"tag":3380,"props":3524,"children":3526},{"style":3525},"--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178",[3527],{"type":3102,"value":3528},"script",{"type":3097,"tag":3380,"props":3530,"children":3532},{"style":3531},"--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA",[3533],{"type":3102,"value":3534}," setup",{"type":3097,"tag":3380,"props":3536,"children":3537},{"style":3459},[3538],{"type":3102,"value":3539},">\n",{"type":3097,"tag":3380,"props":3541,"children":3542},{"class":3382,"line":3022},[3543,3548,3553,3558,3563,3568,3572,3577,3581,3586,3590,3595,3599,3604,3609,3614,3620],{"type":3097,"tag":3380,"props":3544,"children":3545},{"style":3531},[3546],{"type":3102,"value":3547},"const",{"type":3097,"tag":3380,"props":3549,"children":3550},{"style":3459},[3551],{"type":3102,"value":3552}," {",{"type":3097,"tag":3380,"props":3554,"children":3555},{"style":3454},[3556],{"type":3102,"value":3557}," loggedIn",{"type":3097,"tag":3380,"props":3559,"children":3560},{"style":3459},[3561],{"type":3102,"value":3562},",",{"type":3097,"tag":3380,"props":3564,"children":3565},{"style":3454},[3566],{"type":3102,"value":3567}," user",{"type":3097,"tag":3380,"props":3569,"children":3570},{"style":3459},[3571],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":3573,"children":3574},{"style":3454},[3575],{"type":3102,"value":3576}," session",{"type":3097,"tag":3380,"props":3578,"children":3579},{"style":3459},[3580],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":3582,"children":3583},{"style":3454},[3584],{"type":3102,"value":3585}," fetch",{"type":3097,"tag":3380,"props":3587,"children":3588},{"style":3459},[3589],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":3591,"children":3592},{"style":3454},[3593],{"type":3102,"value":3594}," clear",{"type":3097,"tag":3380,"props":3596,"children":3597},{"style":3459},[3598],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":3600,"children":3601},{"style":3454},[3602],{"type":3102,"value":3603}," openInPopup ",{"type":3097,"tag":3380,"props":3605,"children":3606},{"style":3459},[3607],{"type":3102,"value":3608},"}",{"type":3097,"tag":3380,"props":3610,"children":3611},{"style":3459},[3612],{"type":3102,"value":3613}," =",{"type":3097,"tag":3380,"props":3615,"children":3617},{"style":3616},"--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF",[3618],{"type":3102,"value":3619}," useUserSession",{"type":3097,"tag":3380,"props":3621,"children":3622},{"style":3454},[3623],{"type":3102,"value":3624},"()\n",{"type":3097,"tag":3380,"props":3626,"children":3627},{"class":3382,"line":3006},[3628,3633,3637],{"type":3097,"tag":3380,"props":3629,"children":3630},{"style":3459},[3631],{"type":3102,"value":3632},"\u003C\u002F",{"type":3097,"tag":3380,"props":3634,"children":3635},{"style":3525},[3636],{"type":3102,"value":3528},{"type":3097,"tag":3380,"props":3638,"children":3639},{"style":3459},[3640],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":3642,"children":3644},{"class":3382,"line":3643},4,[3645],{"type":3097,"tag":3380,"props":3646,"children":3647},{"emptyLinePlaceholder":1196},[3648],{"type":3102,"value":3649},"\n",{"type":3097,"tag":3380,"props":3651,"children":3653},{"class":3382,"line":3652},5,[3654,3658,3663],{"type":3097,"tag":3380,"props":3655,"children":3656},{"style":3459},[3657],{"type":3102,"value":3522},{"type":3097,"tag":3380,"props":3659,"children":3660},{"style":3525},[3661],{"type":3102,"value":3662},"template",{"type":3097,"tag":3380,"props":3664,"children":3665},{"style":3459},[3666],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":3668,"children":3670},{"class":3382,"line":3669},6,[3671,3676,3681,3686,3690,3695,3700,3704],{"type":3097,"tag":3380,"props":3672,"children":3673},{"style":3459},[3674],{"type":3102,"value":3675},"  \u003C",{"type":3097,"tag":3380,"props":3677,"children":3678},{"style":3525},[3679],{"type":3102,"value":3680},"div",{"type":3097,"tag":3380,"props":3682,"children":3683},{"style":3531},[3684],{"type":3102,"value":3685}," v-if",{"type":3097,"tag":3380,"props":3687,"children":3688},{"style":3459},[3689],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":3691,"children":3692},{"style":3459},[3693],{"type":3102,"value":3694},"\"",{"type":3097,"tag":3380,"props":3696,"children":3697},{"style":3392},[3698],{"type":3102,"value":3699},"loggedIn",{"type":3097,"tag":3380,"props":3701,"children":3702},{"style":3459},[3703],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":3705,"children":3706},{"style":3459},[3707],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":3709,"children":3710},{"class":3382,"line":3002},[3711,3716,3720,3725,3730,3734,3738],{"type":3097,"tag":3380,"props":3712,"children":3713},{"style":3459},[3714],{"type":3102,"value":3715},"    \u003C",{"type":3097,"tag":3380,"props":3717,"children":3718},{"style":3525},[3719],{"type":3102,"value":3098},{"type":3097,"tag":3380,"props":3721,"children":3722},{"style":3459},[3723],{"type":3102,"value":3724},">",{"type":3097,"tag":3380,"props":3726,"children":3727},{"style":3454},[3728],{"type":3102,"value":3729},"Welcome {{ user.login }}!",{"type":3097,"tag":3380,"props":3731,"children":3732},{"style":3459},[3733],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":3735,"children":3736},{"style":3525},[3737],{"type":3102,"value":3098},{"type":3097,"tag":3380,"props":3739,"children":3740},{"style":3459},[3741],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":3743,"children":3744},{"class":3382,"line":2998},[3745,3749,3753,3757,3762,3766,3770],{"type":3097,"tag":3380,"props":3746,"children":3747},{"style":3459},[3748],{"type":3102,"value":3715},{"type":3097,"tag":3380,"props":3750,"children":3751},{"style":3525},[3752],{"type":3102,"value":3104},{"type":3097,"tag":3380,"props":3754,"children":3755},{"style":3459},[3756],{"type":3102,"value":3724},{"type":3097,"tag":3380,"props":3758,"children":3759},{"style":3454},[3760],{"type":3102,"value":3761},"Logged in since {{ session.loggedInAt }}",{"type":3097,"tag":3380,"props":3763,"children":3764},{"style":3459},[3765],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":3767,"children":3768},{"style":3525},[3769],{"type":3102,"value":3104},{"type":3097,"tag":3380,"props":3771,"children":3772},{"style":3459},[3773],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":3775,"children":3776},{"class":3382,"line":2994},[3777,3781,3786,3791,3795,3799,3804,3808,3812,3817,3821,3825],{"type":3097,"tag":3380,"props":3778,"children":3779},{"style":3459},[3780],{"type":3102,"value":3715},{"type":3097,"tag":3380,"props":3782,"children":3783},{"style":3525},[3784],{"type":3102,"value":3785},"button",{"type":3097,"tag":3380,"props":3787,"children":3788},{"style":3531},[3789],{"type":3102,"value":3790}," @click",{"type":3097,"tag":3380,"props":3792,"children":3793},{"style":3459},[3794],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":3796,"children":3797},{"style":3459},[3798],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":3800,"children":3801},{"style":3392},[3802],{"type":3102,"value":3803},"clear",{"type":3097,"tag":3380,"props":3805,"children":3806},{"style":3459},[3807],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":3809,"children":3810},{"style":3459},[3811],{"type":3102,"value":3724},{"type":3097,"tag":3380,"props":3813,"children":3814},{"style":3454},[3815],{"type":3102,"value":3816},"Logout",{"type":3097,"tag":3380,"props":3818,"children":3819},{"style":3459},[3820],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":3822,"children":3823},{"style":3525},[3824],{"type":3102,"value":3785},{"type":3097,"tag":3380,"props":3826,"children":3827},{"style":3459},[3828],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":3830,"children":3832},{"class":3382,"line":3831},10,[3833,3838,3842],{"type":3097,"tag":3380,"props":3834,"children":3835},{"style":3459},[3836],{"type":3102,"value":3837},"  \u003C\u002F",{"type":3097,"tag":3380,"props":3839,"children":3840},{"style":3525},[3841],{"type":3102,"value":3680},{"type":3097,"tag":3380,"props":3843,"children":3844},{"style":3459},[3845],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":3847,"children":3848},{"class":3382,"line":3085},[3849,3853,3857,3862],{"type":3097,"tag":3380,"props":3850,"children":3851},{"style":3459},[3852],{"type":3102,"value":3675},{"type":3097,"tag":3380,"props":3854,"children":3855},{"style":3525},[3856],{"type":3102,"value":3680},{"type":3097,"tag":3380,"props":3858,"children":3859},{"style":3531},[3860],{"type":3102,"value":3861}," v-else",{"type":3097,"tag":3380,"props":3863,"children":3864},{"style":3459},[3865],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":3867,"children":3869},{"class":3382,"line":3868},12,[3870,3874,3878,3882,3887,3891,3895],{"type":3097,"tag":3380,"props":3871,"children":3872},{"style":3459},[3873],{"type":3102,"value":3715},{"type":3097,"tag":3380,"props":3875,"children":3876},{"style":3525},[3877],{"type":3102,"value":3098},{"type":3097,"tag":3380,"props":3879,"children":3880},{"style":3459},[3881],{"type":3102,"value":3724},{"type":3097,"tag":3380,"props":3883,"children":3884},{"style":3454},[3885],{"type":3102,"value":3886},"Not logged in",{"type":3097,"tag":3380,"props":3888,"children":3889},{"style":3459},[3890],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":3892,"children":3893},{"style":3525},[3894],{"type":3102,"value":3098},{"type":3097,"tag":3380,"props":3896,"children":3897},{"style":3459},[3898],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":3900,"children":3902},{"class":3382,"line":3901},13,[3903,3907,3911,3916,3920,3924,3929,3933,3937,3942,3946,3950],{"type":3097,"tag":3380,"props":3904,"children":3905},{"style":3459},[3906],{"type":3102,"value":3715},{"type":3097,"tag":3380,"props":3908,"children":3909},{"style":3525},[3910],{"type":3102,"value":3108},{"type":3097,"tag":3380,"props":3912,"children":3913},{"style":3531},[3914],{"type":3102,"value":3915}," href",{"type":3097,"tag":3380,"props":3917,"children":3918},{"style":3459},[3919],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":3921,"children":3922},{"style":3459},[3923],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":3925,"children":3926},{"style":3392},[3927],{"type":3102,"value":3928},"\u002Fauth\u002Fgithub",{"type":3097,"tag":3380,"props":3930,"children":3931},{"style":3459},[3932],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":3934,"children":3935},{"style":3459},[3936],{"type":3102,"value":3724},{"type":3097,"tag":3380,"props":3938,"children":3939},{"style":3454},[3940],{"type":3102,"value":3941},"Login with GitHub",{"type":3097,"tag":3380,"props":3943,"children":3944},{"style":3459},[3945],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":3947,"children":3948},{"style":3525},[3949],{"type":3102,"value":3108},{"type":3097,"tag":3380,"props":3951,"children":3952},{"style":3459},[3953],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":3955,"children":3957},{"class":3382,"line":3956},14,[3958],{"type":3097,"tag":3380,"props":3959,"children":3960},{"style":3445},[3961],{"type":3102,"value":3962},"    \u003C!-- or open the OAuth route in a popup -->\n",{"type":3097,"tag":3380,"props":3964,"children":3966},{"class":3382,"line":3965},15,[3967,3971,3975,3979,3983,3987,3992,3996,4000,4004,4008,4012],{"type":3097,"tag":3380,"props":3968,"children":3969},{"style":3459},[3970],{"type":3102,"value":3715},{"type":3097,"tag":3380,"props":3972,"children":3973},{"style":3525},[3974],{"type":3102,"value":3785},{"type":3097,"tag":3380,"props":3976,"children":3977},{"style":3531},[3978],{"type":3102,"value":3790},{"type":3097,"tag":3380,"props":3980,"children":3981},{"style":3459},[3982],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":3984,"children":3985},{"style":3459},[3986],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":3988,"children":3989},{"style":3392},[3990],{"type":3102,"value":3991},"openInPopup('\u002Fauth\u002Fgithub')",{"type":3097,"tag":3380,"props":3993,"children":3994},{"style":3459},[3995],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":3997,"children":3998},{"style":3459},[3999],{"type":3102,"value":3724},{"type":3097,"tag":3380,"props":4001,"children":4002},{"style":3454},[4003],{"type":3102,"value":3941},{"type":3097,"tag":3380,"props":4005,"children":4006},{"style":3459},[4007],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":4009,"children":4010},{"style":3525},[4011],{"type":3102,"value":3785},{"type":3097,"tag":3380,"props":4013,"children":4014},{"style":3459},[4015],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":4017,"children":4018},{"class":3382,"line":2990},[4019,4023,4027],{"type":3097,"tag":3380,"props":4020,"children":4021},{"style":3459},[4022],{"type":3102,"value":3837},{"type":3097,"tag":3380,"props":4024,"children":4025},{"style":3525},[4026],{"type":3102,"value":3680},{"type":3097,"tag":3380,"props":4028,"children":4029},{"style":3459},[4030],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":4032,"children":4034},{"class":3382,"line":4033},17,[4035,4039,4043],{"type":3097,"tag":3380,"props":4036,"children":4037},{"style":3459},[4038],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":4040,"children":4041},{"style":3525},[4042],{"type":3102,"value":3662},{"type":3097,"tag":3380,"props":4044,"children":4045},{"style":3459},[4046],{"type":3102,"value":3539},{"type":3097,"tag":3104,"props":4048,"children":4049},{},[4050],{"type":3097,"tag":4051,"props":4052,"children":4053},"strong",{},[4054],{"type":3102,"value":4055},"TypeScript Signature:",{"type":3097,"tag":3370,"props":4057,"children":4061},{"className":4058,"code":4059,"language":4060,"meta":2970,"style":2970},"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",[4062],{"type":3097,"tag":3242,"props":4063,"children":4064},{"__ignoreMap":2970},[4065,4083,4091,4099,4107,4138,4145,4153,4160,4188,4195,4203,4210,4249,4256,4264,4271,4301,4309,4318,4326,4367,4375,4384,4392,4429,4437,4446,4454,4550],{"type":3097,"tag":3380,"props":4066,"children":4067},{"class":3382,"line":3056},[4068,4073,4078],{"type":3097,"tag":3380,"props":4069,"children":4070},{"style":3531},[4071],{"type":3102,"value":4072},"interface",{"type":3097,"tag":3380,"props":4074,"children":4075},{"style":3386},[4076],{"type":3102,"value":4077}," UserSessionComposable",{"type":3097,"tag":3380,"props":4079,"children":4080},{"style":3459},[4081],{"type":3102,"value":4082}," {\n",{"type":3097,"tag":3380,"props":4084,"children":4085},{"class":3382,"line":3022},[4086],{"type":3097,"tag":3380,"props":4087,"children":4088},{"style":3445},[4089],{"type":3102,"value":4090},"  \u002F**\n",{"type":3097,"tag":3380,"props":4092,"children":4093},{"class":3382,"line":3006},[4094],{"type":3097,"tag":3380,"props":4095,"children":4096},{"style":3445},[4097],{"type":3102,"value":4098},"   * Computed indicating if the auth session is ready\n",{"type":3097,"tag":3380,"props":4100,"children":4101},{"class":3382,"line":3643},[4102],{"type":3097,"tag":3380,"props":4103,"children":4104},{"style":3445},[4105],{"type":3102,"value":4106},"   *\u002F\n",{"type":3097,"tag":3380,"props":4108,"children":4109},{"class":3382,"line":3652},[4110,4115,4120,4125,4129,4134],{"type":3097,"tag":3380,"props":4111,"children":4112},{"style":3525},[4113],{"type":3102,"value":4114},"  ready",{"type":3097,"tag":3380,"props":4116,"children":4117},{"style":3459},[4118],{"type":3102,"value":4119},":",{"type":3097,"tag":3380,"props":4121,"children":4122},{"style":3386},[4123],{"type":3102,"value":4124}," ComputedRef",{"type":3097,"tag":3380,"props":4126,"children":4127},{"style":3459},[4128],{"type":3102,"value":3522},{"type":3097,"tag":3380,"props":4130,"children":4131},{"style":3386},[4132],{"type":3102,"value":4133},"boolean",{"type":3097,"tag":3380,"props":4135,"children":4136},{"style":3459},[4137],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":4139,"children":4140},{"class":3382,"line":3669},[4141],{"type":3097,"tag":3380,"props":4142,"children":4143},{"style":3445},[4144],{"type":3102,"value":4090},{"type":3097,"tag":3380,"props":4146,"children":4147},{"class":3382,"line":3002},[4148],{"type":3097,"tag":3380,"props":4149,"children":4150},{"style":3445},[4151],{"type":3102,"value":4152},"   * Computed indicating if the user is logged in.\n",{"type":3097,"tag":3380,"props":4154,"children":4155},{"class":3382,"line":2998},[4156],{"type":3097,"tag":3380,"props":4157,"children":4158},{"style":3445},[4159],{"type":3102,"value":4106},{"type":3097,"tag":3380,"props":4161,"children":4162},{"class":3382,"line":2994},[4163,4168,4172,4176,4180,4184],{"type":3097,"tag":3380,"props":4164,"children":4165},{"style":3525},[4166],{"type":3102,"value":4167},"  loggedIn",{"type":3097,"tag":3380,"props":4169,"children":4170},{"style":3459},[4171],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":4173,"children":4174},{"style":3386},[4175],{"type":3102,"value":4124},{"type":3097,"tag":3380,"props":4177,"children":4178},{"style":3459},[4179],{"type":3102,"value":3522},{"type":3097,"tag":3380,"props":4181,"children":4182},{"style":3386},[4183],{"type":3102,"value":4133},{"type":3097,"tag":3380,"props":4185,"children":4186},{"style":3459},[4187],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":4189,"children":4190},{"class":3382,"line":3831},[4191],{"type":3097,"tag":3380,"props":4192,"children":4193},{"style":3445},[4194],{"type":3102,"value":4090},{"type":3097,"tag":3380,"props":4196,"children":4197},{"class":3382,"line":3085},[4198],{"type":3097,"tag":3380,"props":4199,"children":4200},{"style":3445},[4201],{"type":3102,"value":4202},"   * The user object if logged in, null otherwise.\n",{"type":3097,"tag":3380,"props":4204,"children":4205},{"class":3382,"line":3868},[4206],{"type":3097,"tag":3380,"props":4207,"children":4208},{"style":3445},[4209],{"type":3102,"value":4106},{"type":3097,"tag":3380,"props":4211,"children":4212},{"class":3382,"line":3901},[4213,4218,4222,4226,4230,4235,4240,4245],{"type":3097,"tag":3380,"props":4214,"children":4215},{"style":3525},[4216],{"type":3102,"value":4217},"  user",{"type":3097,"tag":3380,"props":4219,"children":4220},{"style":3459},[4221],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":4223,"children":4224},{"style":3386},[4225],{"type":3102,"value":4124},{"type":3097,"tag":3380,"props":4227,"children":4228},{"style":3459},[4229],{"type":3102,"value":3522},{"type":3097,"tag":3380,"props":4231,"children":4232},{"style":3386},[4233],{"type":3102,"value":4234},"User",{"type":3097,"tag":3380,"props":4236,"children":4237},{"style":3459},[4238],{"type":3102,"value":4239}," |",{"type":3097,"tag":3380,"props":4241,"children":4242},{"style":3386},[4243],{"type":3102,"value":4244}," null",{"type":3097,"tag":3380,"props":4246,"children":4247},{"style":3459},[4248],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":4250,"children":4251},{"class":3382,"line":3956},[4252],{"type":3097,"tag":3380,"props":4253,"children":4254},{"style":3445},[4255],{"type":3102,"value":4090},{"type":3097,"tag":3380,"props":4257,"children":4258},{"class":3382,"line":3965},[4259],{"type":3097,"tag":3380,"props":4260,"children":4261},{"style":3445},[4262],{"type":3102,"value":4263},"   * The session object.\n",{"type":3097,"tag":3380,"props":4265,"children":4266},{"class":3382,"line":2990},[4267],{"type":3097,"tag":3380,"props":4268,"children":4269},{"style":3445},[4270],{"type":3102,"value":4106},{"type":3097,"tag":3380,"props":4272,"children":4273},{"class":3382,"line":4033},[4274,4279,4283,4288,4292,4297],{"type":3097,"tag":3380,"props":4275,"children":4276},{"style":3525},[4277],{"type":3102,"value":4278},"  session",{"type":3097,"tag":3380,"props":4280,"children":4281},{"style":3459},[4282],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":4284,"children":4285},{"style":3386},[4286],{"type":3102,"value":4287}," Ref",{"type":3097,"tag":3380,"props":4289,"children":4290},{"style":3459},[4291],{"type":3102,"value":3522},{"type":3097,"tag":3380,"props":4293,"children":4294},{"style":3386},[4295],{"type":3102,"value":4296},"UserSession",{"type":3097,"tag":3380,"props":4298,"children":4299},{"style":3459},[4300],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":4302,"children":4304},{"class":3382,"line":4303},18,[4305],{"type":3097,"tag":3380,"props":4306,"children":4307},{"style":3445},[4308],{"type":3102,"value":4090},{"type":3097,"tag":3380,"props":4310,"children":4312},{"class":3382,"line":4311},19,[4313],{"type":3097,"tag":3380,"props":4314,"children":4315},{"style":3445},[4316],{"type":3102,"value":4317},"   * Fetch the user session from the server.\n",{"type":3097,"tag":3380,"props":4319,"children":4321},{"class":3382,"line":4320},20,[4322],{"type":3097,"tag":3380,"props":4323,"children":4324},{"style":3445},[4325],{"type":3102,"value":4106},{"type":3097,"tag":3380,"props":4327,"children":4329},{"class":3382,"line":4328},21,[4330,4335,4339,4344,4349,4354,4358,4363],{"type":3097,"tag":3380,"props":4331,"children":4332},{"style":3525},[4333],{"type":3102,"value":4334},"  fetch",{"type":3097,"tag":3380,"props":4336,"children":4337},{"style":3459},[4338],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":4340,"children":4341},{"style":3459},[4342],{"type":3102,"value":4343}," ()",{"type":3097,"tag":3380,"props":4345,"children":4346},{"style":3531},[4347],{"type":3102,"value":4348}," =>",{"type":3097,"tag":3380,"props":4350,"children":4351},{"style":3386},[4352],{"type":3102,"value":4353}," Promise",{"type":3097,"tag":3380,"props":4355,"children":4356},{"style":3459},[4357],{"type":3102,"value":3522},{"type":3097,"tag":3380,"props":4359,"children":4360},{"style":3386},[4361],{"type":3102,"value":4362},"void",{"type":3097,"tag":3380,"props":4364,"children":4365},{"style":3459},[4366],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":4368,"children":4370},{"class":3382,"line":4369},22,[4371],{"type":3097,"tag":3380,"props":4372,"children":4373},{"style":3445},[4374],{"type":3102,"value":4090},{"type":3097,"tag":3380,"props":4376,"children":4378},{"class":3382,"line":4377},23,[4379],{"type":3097,"tag":3380,"props":4380,"children":4381},{"style":3445},[4382],{"type":3102,"value":4383},"   * Clear the user session and remove the session cookie.\n",{"type":3097,"tag":3380,"props":4385,"children":4387},{"class":3382,"line":4386},24,[4388],{"type":3097,"tag":3380,"props":4389,"children":4390},{"style":3445},[4391],{"type":3102,"value":4106},{"type":3097,"tag":3380,"props":4393,"children":4395},{"class":3382,"line":4394},25,[4396,4401,4405,4409,4413,4417,4421,4425],{"type":3097,"tag":3380,"props":4397,"children":4398},{"style":3525},[4399],{"type":3102,"value":4400},"  clear",{"type":3097,"tag":3380,"props":4402,"children":4403},{"style":3459},[4404],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":4406,"children":4407},{"style":3459},[4408],{"type":3102,"value":4343},{"type":3097,"tag":3380,"props":4410,"children":4411},{"style":3531},[4412],{"type":3102,"value":4348},{"type":3097,"tag":3380,"props":4414,"children":4415},{"style":3386},[4416],{"type":3102,"value":4353},{"type":3097,"tag":3380,"props":4418,"children":4419},{"style":3459},[4420],{"type":3102,"value":3522},{"type":3097,"tag":3380,"props":4422,"children":4423},{"style":3386},[4424],{"type":3102,"value":4362},{"type":3097,"tag":3380,"props":4426,"children":4427},{"style":3459},[4428],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":4430,"children":4432},{"class":3382,"line":4431},26,[4433],{"type":3097,"tag":3380,"props":4434,"children":4435},{"style":3445},[4436],{"type":3102,"value":4090},{"type":3097,"tag":3380,"props":4438,"children":4440},{"class":3382,"line":4439},27,[4441],{"type":3097,"tag":3380,"props":4442,"children":4443},{"style":3445},[4444],{"type":3102,"value":4445},"   * Open the OAuth route in a popup that auto-closes when successful.\n",{"type":3097,"tag":3380,"props":4447,"children":4449},{"class":3382,"line":4448},28,[4450],{"type":3097,"tag":3380,"props":4451,"children":4452},{"style":3445},[4453],{"type":3102,"value":4106},{"type":3097,"tag":3380,"props":4455,"children":4457},{"class":3382,"line":4456},29,[4458,4463,4467,4472,4478,4482,4487,4491,4496,4501,4505,4510,4514,4519,4523,4528,4532,4536,4541,4545],{"type":3097,"tag":3380,"props":4459,"children":4460},{"style":3525},[4461],{"type":3102,"value":4462},"  openInPopup",{"type":3097,"tag":3380,"props":4464,"children":4465},{"style":3459},[4466],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":4468,"children":4469},{"style":3459},[4470],{"type":3102,"value":4471}," (",{"type":3097,"tag":3380,"props":4473,"children":4475},{"style":4474},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[4476],{"type":3102,"value":4477},"route",{"type":3097,"tag":3380,"props":4479,"children":4480},{"style":3459},[4481],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":4483,"children":4484},{"style":3386},[4485],{"type":3102,"value":4486}," string",{"type":3097,"tag":3380,"props":4488,"children":4489},{"style":3459},[4490],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":4492,"children":4493},{"style":4474},[4494],{"type":3102,"value":4495}," size",{"type":3097,"tag":3380,"props":4497,"children":4498},{"style":3459},[4499],{"type":3102,"value":4500},"?:",{"type":3097,"tag":3380,"props":4502,"children":4503},{"style":3459},[4504],{"type":3102,"value":3552},{"type":3097,"tag":3380,"props":4506,"children":4507},{"style":3525},[4508],{"type":3102,"value":4509}," width",{"type":3097,"tag":3380,"props":4511,"children":4512},{"style":3459},[4513],{"type":3102,"value":4500},{"type":3097,"tag":3380,"props":4515,"children":4516},{"style":3386},[4517],{"type":3102,"value":4518}," number",{"type":3097,"tag":3380,"props":4520,"children":4521},{"style":3459},[4522],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":4524,"children":4525},{"style":3525},[4526],{"type":3102,"value":4527}," height",{"type":3097,"tag":3380,"props":4529,"children":4530},{"style":3459},[4531],{"type":3102,"value":4500},{"type":3097,"tag":3380,"props":4533,"children":4534},{"style":3386},[4535],{"type":3102,"value":4518},{"type":3097,"tag":3380,"props":4537,"children":4538},{"style":3459},[4539],{"type":3102,"value":4540}," })",{"type":3097,"tag":3380,"props":4542,"children":4543},{"style":3531},[4544],{"type":3102,"value":4348},{"type":3097,"tag":3380,"props":4546,"children":4547},{"style":3386},[4548],{"type":3102,"value":4549}," void\n",{"type":3097,"tag":3380,"props":4551,"children":4553},{"class":3382,"line":4552},30,[4554],{"type":3097,"tag":3380,"props":4555,"children":4556},{"style":3459},[4557],{"type":3102,"value":4558},"}\n",{"type":3097,"tag":4560,"props":4561,"children":4562},"blockquote",{},[4563],{"type":3097,"tag":3104,"props":4564,"children":4565},{},[4566,4571,4573,4579],{"type":3097,"tag":3380,"props":4567,"children":4568},{},[4569],{"type":3102,"value":4570},"!IMPORTANT",{"type":3102,"value":4572},"\nNuxt Auth Utils uses the ",{"type":3097,"tag":3242,"props":4574,"children":4576},{"className":4575},[],[4577],{"type":3102,"value":4578},"\u002Fapi\u002F_auth\u002Fsession",{"type":3102,"value":4580}," route for session management. Ensure your API route middleware doesn't interfere with this path.",{"type":3097,"tag":3188,"props":4582,"children":4584},{"id":4583},"server-utils",[4585],{"type":3102,"value":4586},"Server Utils",{"type":3097,"tag":3104,"props":4588,"children":4589},{},[4590,4592,4598],{"type":3102,"value":4591},"The following helpers are auto-imported in your ",{"type":3097,"tag":3242,"props":4593,"children":4595},{"className":4594},[],[4596],{"type":3102,"value":4597},"server\u002F",{"type":3102,"value":4599}," directory.",{"type":3097,"tag":3500,"props":4601,"children":4603},{"id":4602},"session-management",[4604],{"type":3102,"value":4605},"Session Management",{"type":3097,"tag":3370,"props":4607,"children":4609},{"className":4058,"code":4608,"language":4060,"meta":2970,"style":2970},"\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",[4610],{"type":3097,"tag":3242,"props":4611,"children":4612},{"__ignoreMap":2970},[4613,4621,4629,4637,4664,4672,4687,4713,4721,4729,4745,4770,4777,4785,4811,4823,4830,4838,4863,4870,4878,4909,4916,4924,4940,4947,4955],{"type":3097,"tag":3380,"props":4614,"children":4615},{"class":3382,"line":3056},[4616],{"type":3097,"tag":3380,"props":4617,"children":4618},{"style":3445},[4619],{"type":3102,"value":4620},"\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":3097,"tag":3380,"props":4622,"children":4623},{"class":3382,"line":3022},[4624],{"type":3097,"tag":3380,"props":4625,"children":4626},{"style":3445},[4627],{"type":3102,"value":4628},"\u002F\u002F Only store the data that allow you to recognize a user, but do not store sensitive data\n",{"type":3097,"tag":3380,"props":4630,"children":4631},{"class":3382,"line":3006},[4632],{"type":3097,"tag":3380,"props":4633,"children":4634},{"style":3445},[4635],{"type":3102,"value":4636},"\u002F\u002F Merges new data with existing data using unjs\u002Fdefu library\n",{"type":3097,"tag":3380,"props":4638,"children":4639},{"class":3382,"line":3643},[4640,4646,4651,4656,4660],{"type":3097,"tag":3380,"props":4641,"children":4643},{"style":4642},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[4644],{"type":3102,"value":4645},"await",{"type":3097,"tag":3380,"props":4647,"children":4648},{"style":3616},[4649],{"type":3102,"value":4650}," setUserSession",{"type":3097,"tag":3380,"props":4652,"children":4653},{"style":3454},[4654],{"type":3102,"value":4655},"(event",{"type":3097,"tag":3380,"props":4657,"children":4658},{"style":3459},[4659],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":4661,"children":4662},{"style":3459},[4663],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":4665,"children":4666},{"class":3382,"line":3652},[4667],{"type":3097,"tag":3380,"props":4668,"children":4669},{"style":3445},[4670],{"type":3102,"value":4671},"  \u002F\u002F User data\n",{"type":3097,"tag":3380,"props":4673,"children":4674},{"class":3382,"line":3669},[4675,4679,4683],{"type":3097,"tag":3380,"props":4676,"children":4677},{"style":3525},[4678],{"type":3102,"value":4217},{"type":3097,"tag":3380,"props":4680,"children":4681},{"style":3459},[4682],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":4684,"children":4685},{"style":3459},[4686],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":4688,"children":4689},{"class":3382,"line":3002},[4690,4695,4699,4704,4708],{"type":3097,"tag":3380,"props":4691,"children":4692},{"style":3525},[4693],{"type":3102,"value":4694},"    login",{"type":3097,"tag":3380,"props":4696,"children":4697},{"style":3459},[4698],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":4700,"children":4701},{"style":3459},[4702],{"type":3102,"value":4703}," '",{"type":3097,"tag":3380,"props":4705,"children":4706},{"style":3392},[4707],{"type":3102,"value":2977},{"type":3097,"tag":3380,"props":4709,"children":4710},{"style":3459},[4711],{"type":3102,"value":4712},"'\n",{"type":3097,"tag":3380,"props":4714,"children":4715},{"class":3382,"line":2998},[4716],{"type":3097,"tag":3380,"props":4717,"children":4718},{"style":3459},[4719],{"type":3102,"value":4720},"  },\n",{"type":3097,"tag":3380,"props":4722,"children":4723},{"class":3382,"line":2994},[4724],{"type":3097,"tag":3380,"props":4725,"children":4726},{"style":3445},[4727],{"type":3102,"value":4728},"  \u002F\u002F Private data accessible only on server\u002F routes\n",{"type":3097,"tag":3380,"props":4730,"children":4731},{"class":3382,"line":3831},[4732,4737,4741],{"type":3097,"tag":3380,"props":4733,"children":4734},{"style":3525},[4735],{"type":3102,"value":4736},"  secure",{"type":3097,"tag":3380,"props":4738,"children":4739},{"style":3459},[4740],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":4742,"children":4743},{"style":3459},[4744],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":4746,"children":4747},{"class":3382,"line":3085},[4748,4753,4757,4761,4766],{"type":3097,"tag":3380,"props":4749,"children":4750},{"style":3525},[4751],{"type":3102,"value":4752},"    apiToken",{"type":3097,"tag":3380,"props":4754,"children":4755},{"style":3459},[4756],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":4758,"children":4759},{"style":3459},[4760],{"type":3102,"value":4703},{"type":3097,"tag":3380,"props":4762,"children":4763},{"style":3392},[4764],{"type":3102,"value":4765},"1234567890",{"type":3097,"tag":3380,"props":4767,"children":4768},{"style":3459},[4769],{"type":3102,"value":4712},{"type":3097,"tag":3380,"props":4771,"children":4772},{"class":3382,"line":3868},[4773],{"type":3097,"tag":3380,"props":4774,"children":4775},{"style":3459},[4776],{"type":3102,"value":4720},{"type":3097,"tag":3380,"props":4778,"children":4779},{"class":3382,"line":3901},[4780],{"type":3097,"tag":3380,"props":4781,"children":4782},{"style":3445},[4783],{"type":3102,"value":4784},"  \u002F\u002F Any extra fields for the session data\n",{"type":3097,"tag":3380,"props":4786,"children":4787},{"class":3382,"line":3956},[4788,4793,4797,4802,4807],{"type":3097,"tag":3380,"props":4789,"children":4790},{"style":3525},[4791],{"type":3102,"value":4792},"  loggedInAt",{"type":3097,"tag":3380,"props":4794,"children":4795},{"style":3459},[4796],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":4798,"children":4799},{"style":3459},[4800],{"type":3102,"value":4801}," new",{"type":3097,"tag":3380,"props":4803,"children":4804},{"style":3616},[4805],{"type":3102,"value":4806}," Date",{"type":3097,"tag":3380,"props":4808,"children":4809},{"style":3454},[4810],{"type":3102,"value":3624},{"type":3097,"tag":3380,"props":4812,"children":4813},{"class":3382,"line":3965},[4814,4818],{"type":3097,"tag":3380,"props":4815,"children":4816},{"style":3459},[4817],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":4819,"children":4820},{"style":3454},[4821],{"type":3102,"value":4822},")\n",{"type":3097,"tag":3380,"props":4824,"children":4825},{"class":3382,"line":2990},[4826],{"type":3097,"tag":3380,"props":4827,"children":4828},{"emptyLinePlaceholder":1196},[4829],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":4831,"children":4832},{"class":3382,"line":4033},[4833],{"type":3097,"tag":3380,"props":4834,"children":4835},{"style":3445},[4836],{"type":3102,"value":4837},"\u002F\u002F Replace a user session. Same behaviour as setUserSession, except it does not merge data with existing data\n",{"type":3097,"tag":3380,"props":4839,"children":4840},{"class":3382,"line":4303},[4841,4845,4850,4854,4858],{"type":3097,"tag":3380,"props":4842,"children":4843},{"style":4642},[4844],{"type":3102,"value":4645},{"type":3097,"tag":3380,"props":4846,"children":4847},{"style":3616},[4848],{"type":3102,"value":4849}," replaceUserSession",{"type":3097,"tag":3380,"props":4851,"children":4852},{"style":3454},[4853],{"type":3102,"value":4655},{"type":3097,"tag":3380,"props":4855,"children":4856},{"style":3459},[4857],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":4859,"children":4860},{"style":3454},[4861],{"type":3102,"value":4862}," data)\n",{"type":3097,"tag":3380,"props":4864,"children":4865},{"class":3382,"line":4311},[4866],{"type":3097,"tag":3380,"props":4867,"children":4868},{"emptyLinePlaceholder":1196},[4869],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":4871,"children":4872},{"class":3382,"line":4320},[4873],{"type":3097,"tag":3380,"props":4874,"children":4875},{"style":3445},[4876],{"type":3102,"value":4877},"\u002F\u002F Get the current user session\n",{"type":3097,"tag":3380,"props":4879,"children":4880},{"class":3382,"line":4328},[4881,4885,4890,4894,4899,4904],{"type":3097,"tag":3380,"props":4882,"children":4883},{"style":3531},[4884],{"type":3102,"value":3547},{"type":3097,"tag":3380,"props":4886,"children":4887},{"style":3454},[4888],{"type":3102,"value":4889}," session ",{"type":3097,"tag":3380,"props":4891,"children":4892},{"style":3459},[4893],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":4895,"children":4896},{"style":4642},[4897],{"type":3102,"value":4898}," await",{"type":3097,"tag":3380,"props":4900,"children":4901},{"style":3616},[4902],{"type":3102,"value":4903}," getUserSession",{"type":3097,"tag":3380,"props":4905,"children":4906},{"style":3454},[4907],{"type":3102,"value":4908},"(event)\n",{"type":3097,"tag":3380,"props":4910,"children":4911},{"class":3382,"line":4369},[4912],{"type":3097,"tag":3380,"props":4913,"children":4914},{"emptyLinePlaceholder":1196},[4915],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":4917,"children":4918},{"class":3382,"line":4377},[4919],{"type":3097,"tag":3380,"props":4920,"children":4921},{"style":3445},[4922],{"type":3102,"value":4923},"\u002F\u002F Clear the current user session\n",{"type":3097,"tag":3380,"props":4925,"children":4926},{"class":3382,"line":4386},[4927,4931,4936],{"type":3097,"tag":3380,"props":4928,"children":4929},{"style":4642},[4930],{"type":3102,"value":4645},{"type":3097,"tag":3380,"props":4932,"children":4933},{"style":3616},[4934],{"type":3102,"value":4935}," clearUserSession",{"type":3097,"tag":3380,"props":4937,"children":4938},{"style":3454},[4939],{"type":3102,"value":4908},{"type":3097,"tag":3380,"props":4941,"children":4942},{"class":3382,"line":4394},[4943],{"type":3097,"tag":3380,"props":4944,"children":4945},{"emptyLinePlaceholder":1196},[4946],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":4948,"children":4949},{"class":3382,"line":4431},[4950],{"type":3097,"tag":3380,"props":4951,"children":4952},{"style":3445},[4953],{"type":3102,"value":4954},"\u002F\u002F Require a user session (send back 401 if no `user` key in session)\n",{"type":3097,"tag":3380,"props":4956,"children":4957},{"class":3382,"line":4439},[4958,4962,4966,4970,4974,4979],{"type":3097,"tag":3380,"props":4959,"children":4960},{"style":3531},[4961],{"type":3102,"value":3547},{"type":3097,"tag":3380,"props":4963,"children":4964},{"style":3454},[4965],{"type":3102,"value":4889},{"type":3097,"tag":3380,"props":4967,"children":4968},{"style":3459},[4969],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":4971,"children":4972},{"style":4642},[4973],{"type":3102,"value":4898},{"type":3097,"tag":3380,"props":4975,"children":4976},{"style":3616},[4977],{"type":3102,"value":4978}," requireUserSession",{"type":3097,"tag":3380,"props":4980,"children":4981},{"style":3454},[4982],{"type":3102,"value":4908},{"type":3097,"tag":3104,"props":4984,"children":4985},{},[4986,4988,4994,4996,5001],{"type":3102,"value":4987},"You can define the type for your user session by creating a type declaration file (for example, ",{"type":3097,"tag":3242,"props":4989,"children":4991},{"className":4990},[],[4992],{"type":3102,"value":4993},"auth.d.ts",{"type":3102,"value":4995},") in your project to augment the ",{"type":3097,"tag":3242,"props":4997,"children":4999},{"className":4998},[],[5000],{"type":3102,"value":4296},{"type":3102,"value":5002}," type:",{"type":3097,"tag":3370,"props":5004,"children":5006},{"className":4058,"code":5005,"language":4060,"meta":2970,"style":2970},"\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",[5007],{"type":3097,"tag":3242,"props":5008,"children":5009},{"__ignoreMap":2970},[5010,5018,5048,5065,5073,5081,5088,5104,5111,5118,5125,5141,5148,5155,5162,5169],{"type":3097,"tag":3380,"props":5011,"children":5012},{"class":3382,"line":3056},[5013],{"type":3097,"tag":3380,"props":5014,"children":5015},{"style":3445},[5016],{"type":3102,"value":5017},"\u002F\u002F shared\u002Ftypes\u002Fauth.d.ts\n",{"type":3097,"tag":3380,"props":5019,"children":5020},{"class":3382,"line":3022},[5021,5026,5030,5034,5039,5044],{"type":3097,"tag":3380,"props":5022,"children":5023},{"style":3531},[5024],{"type":3102,"value":5025},"declare",{"type":3097,"tag":3380,"props":5027,"children":5028},{"style":3531},[5029],{"type":3102,"value":3400},{"type":3097,"tag":3380,"props":5031,"children":5032},{"style":3459},[5033],{"type":3102,"value":4703},{"type":3097,"tag":3380,"props":5035,"children":5036},{"style":3392},[5037],{"type":3102,"value":5038},"#auth-utils",{"type":3097,"tag":3380,"props":5040,"children":5041},{"style":3459},[5042],{"type":3102,"value":5043},"'",{"type":3097,"tag":3380,"props":5045,"children":5046},{"style":3459},[5047],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":5049,"children":5050},{"class":3382,"line":3006},[5051,5056,5061],{"type":3097,"tag":3380,"props":5052,"children":5053},{"style":3531},[5054],{"type":3102,"value":5055},"  interface",{"type":3097,"tag":3380,"props":5057,"children":5058},{"style":3386},[5059],{"type":3102,"value":5060}," User",{"type":3097,"tag":3380,"props":5062,"children":5063},{"style":3459},[5064],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":5066,"children":5067},{"class":3382,"line":3643},[5068],{"type":3097,"tag":3380,"props":5069,"children":5070},{"style":3445},[5071],{"type":3102,"value":5072},"    \u002F\u002F Add your own fields\n",{"type":3097,"tag":3380,"props":5074,"children":5075},{"class":3382,"line":3652},[5076],{"type":3097,"tag":3380,"props":5077,"children":5078},{"style":3459},[5079],{"type":3102,"value":5080},"  }\n",{"type":3097,"tag":3380,"props":5082,"children":5083},{"class":3382,"line":3669},[5084],{"type":3097,"tag":3380,"props":5085,"children":5086},{"emptyLinePlaceholder":1196},[5087],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":5089,"children":5090},{"class":3382,"line":3002},[5091,5095,5100],{"type":3097,"tag":3380,"props":5092,"children":5093},{"style":3531},[5094],{"type":3102,"value":5055},{"type":3097,"tag":3380,"props":5096,"children":5097},{"style":3386},[5098],{"type":3102,"value":5099}," UserSession",{"type":3097,"tag":3380,"props":5101,"children":5102},{"style":3459},[5103],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":5105,"children":5106},{"class":3382,"line":2998},[5107],{"type":3097,"tag":3380,"props":5108,"children":5109},{"style":3445},[5110],{"type":3102,"value":5072},{"type":3097,"tag":3380,"props":5112,"children":5113},{"class":3382,"line":2994},[5114],{"type":3097,"tag":3380,"props":5115,"children":5116},{"style":3459},[5117],{"type":3102,"value":5080},{"type":3097,"tag":3380,"props":5119,"children":5120},{"class":3382,"line":3831},[5121],{"type":3097,"tag":3380,"props":5122,"children":5123},{"emptyLinePlaceholder":1196},[5124],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":5126,"children":5127},{"class":3382,"line":3085},[5128,5132,5137],{"type":3097,"tag":3380,"props":5129,"children":5130},{"style":3531},[5131],{"type":3102,"value":5055},{"type":3097,"tag":3380,"props":5133,"children":5134},{"style":3386},[5135],{"type":3102,"value":5136}," SecureSessionData",{"type":3097,"tag":3380,"props":5138,"children":5139},{"style":3459},[5140],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":5142,"children":5143},{"class":3382,"line":3868},[5144],{"type":3097,"tag":3380,"props":5145,"children":5146},{"style":3445},[5147],{"type":3102,"value":5072},{"type":3097,"tag":3380,"props":5149,"children":5150},{"class":3382,"line":3901},[5151],{"type":3097,"tag":3380,"props":5152,"children":5153},{"style":3459},[5154],{"type":3102,"value":5080},{"type":3097,"tag":3380,"props":5156,"children":5157},{"class":3382,"line":3956},[5158],{"type":3097,"tag":3380,"props":5159,"children":5160},{"style":3459},[5161],{"type":3102,"value":4558},{"type":3097,"tag":3380,"props":5163,"children":5164},{"class":3382,"line":3965},[5165],{"type":3097,"tag":3380,"props":5166,"children":5167},{"emptyLinePlaceholder":1196},[5168],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":5170,"children":5171},{"class":3382,"line":2990},[5172,5177],{"type":3097,"tag":3380,"props":5173,"children":5174},{"style":4642},[5175],{"type":3102,"value":5176},"export",{"type":3097,"tag":3380,"props":5178,"children":5179},{"style":3459},[5180],{"type":3102,"value":5181}," {}\n",{"type":3097,"tag":4560,"props":5183,"children":5184},{},[5185],{"type":3097,"tag":3104,"props":5186,"children":5187},{},[5188,5192],{"type":3097,"tag":3380,"props":5189,"children":5190},{},[5191],{"type":3102,"value":4570},{"type":3102,"value":5193},"\nSince we encrypt and store session data in cookies, we're constrained by the 4096-byte cookie size limit. Store only essential information.",{"type":3097,"tag":3500,"props":5195,"children":5197},{"id":5196},"oauth-event-handlers",[5198],{"type":3102,"value":5199},"OAuth Event Handlers",{"type":3097,"tag":3104,"props":5201,"children":5202},{},[5203],{"type":3102,"value":5204},"All handlers can be auto-imported and used in your server routes or API routes.",{"type":3097,"tag":3104,"props":5206,"children":5207},{},[5208,5210,5216,5218,5224],{"type":3102,"value":5209},"The pattern is ",{"type":3097,"tag":3242,"props":5211,"children":5213},{"className":5212},[],[5214],{"type":3102,"value":5215},"defineOAuth\u003CProvider>EventHandler({ onSuccess, config?, onError? })",{"type":3102,"value":5217},", example: ",{"type":3097,"tag":3242,"props":5219,"children":5221},{"className":5220},[],[5222],{"type":3102,"value":5223},"defineOAuthGitHubEventHandler",{"type":3102,"value":3335},{"type":3097,"tag":3104,"props":5226,"children":5227},{},[5228,5230,5236,5238,5244],{"type":3102,"value":5229},"The helper returns an event handler that automatically redirects to the provider authorization page and then calls ",{"type":3097,"tag":3242,"props":5231,"children":5233},{"className":5232},[],[5234],{"type":3102,"value":5235},"onSuccess",{"type":3102,"value":5237}," or ",{"type":3097,"tag":3242,"props":5239,"children":5241},{"className":5240},[],[5242],{"type":3102,"value":5243},"onError",{"type":3102,"value":5245}," depending on the result.",{"type":3097,"tag":3104,"props":5247,"children":5248},{},[5249,5251,5257,5259,5265,5267,5272],{"type":3102,"value":5250},"The ",{"type":3097,"tag":3242,"props":5252,"children":5254},{"className":5253},[],[5255],{"type":3102,"value":5256},"config",{"type":3102,"value":5258}," can be defined directly from the ",{"type":3097,"tag":3242,"props":5260,"children":5262},{"className":5261},[],[5263],{"type":3102,"value":5264},"runtimeConfig",{"type":3102,"value":5266}," in your ",{"type":3097,"tag":3242,"props":5268,"children":5270},{"className":5269},[],[5271],{"type":3102,"value":233},{"type":3102,"value":4119},{"type":3097,"tag":3370,"props":5274,"children":5276},{"className":4058,"code":5275,"language":4060,"meta":2970,"style":2970},"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",[5277],{"type":3097,"tag":3242,"props":5278,"children":5279},{"__ignoreMap":2970},[5280,5307,5323,5339,5347,5363,5393,5417,5425,5433,5440],{"type":3097,"tag":3380,"props":5281,"children":5282},{"class":3382,"line":3056},[5283,5287,5292,5297,5302],{"type":3097,"tag":3380,"props":5284,"children":5285},{"style":4642},[5286],{"type":3102,"value":5176},{"type":3097,"tag":3380,"props":5288,"children":5289},{"style":4642},[5290],{"type":3102,"value":5291}," default",{"type":3097,"tag":3380,"props":5293,"children":5294},{"style":3616},[5295],{"type":3102,"value":5296}," defineNuxtConfig",{"type":3097,"tag":3380,"props":5298,"children":5299},{"style":3454},[5300],{"type":3102,"value":5301},"(",{"type":3097,"tag":3380,"props":5303,"children":5304},{"style":3459},[5305],{"type":3102,"value":5306},"{\n",{"type":3097,"tag":3380,"props":5308,"children":5309},{"class":3382,"line":3022},[5310,5315,5319],{"type":3097,"tag":3380,"props":5311,"children":5312},{"style":3525},[5313],{"type":3102,"value":5314},"  runtimeConfig",{"type":3097,"tag":3380,"props":5316,"children":5317},{"style":3459},[5318],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":5320,"children":5321},{"style":3459},[5322],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":5324,"children":5325},{"class":3382,"line":3006},[5326,5331,5335],{"type":3097,"tag":3380,"props":5327,"children":5328},{"style":3525},[5329],{"type":3102,"value":5330},"    oauth",{"type":3097,"tag":3380,"props":5332,"children":5333},{"style":3459},[5334],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":5336,"children":5337},{"style":3459},[5338],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":5340,"children":5341},{"class":3382,"line":3643},[5342],{"type":3097,"tag":3380,"props":5343,"children":5344},{"style":3445},[5345],{"type":3102,"value":5346},"      \u002F\u002F provider in lowercase (github, google, etc.)\n",{"type":3097,"tag":3380,"props":5348,"children":5349},{"class":3382,"line":3652},[5350,5355,5359],{"type":3097,"tag":3380,"props":5351,"children":5352},{"style":3454},[5353],{"type":3102,"value":5354},"      \u003Cprovider>",{"type":3097,"tag":3380,"props":5356,"children":5357},{"style":3459},[5358],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":5360,"children":5361},{"style":3459},[5362],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":5364,"children":5365},{"class":3382,"line":3669},[5366,5371,5375,5379,5384,5388],{"type":3097,"tag":3380,"props":5367,"children":5368},{"style":3525},[5369],{"type":3102,"value":5370},"        clientId",{"type":3097,"tag":3380,"props":5372,"children":5373},{"style":3459},[5374],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":5376,"children":5377},{"style":3459},[5378],{"type":3102,"value":4703},{"type":3097,"tag":3380,"props":5380,"children":5381},{"style":3392},[5382],{"type":3102,"value":5383},"...",{"type":3097,"tag":3380,"props":5385,"children":5386},{"style":3459},[5387],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":5389,"children":5390},{"style":3459},[5391],{"type":3102,"value":5392},",\n",{"type":3097,"tag":3380,"props":5394,"children":5395},{"class":3382,"line":3002},[5396,5401,5405,5409,5413],{"type":3097,"tag":3380,"props":5397,"children":5398},{"style":3525},[5399],{"type":3102,"value":5400},"        clientSecret",{"type":3097,"tag":3380,"props":5402,"children":5403},{"style":3459},[5404],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":5406,"children":5407},{"style":3459},[5408],{"type":3102,"value":4703},{"type":3097,"tag":3380,"props":5410,"children":5411},{"style":3392},[5412],{"type":3102,"value":5383},{"type":3097,"tag":3380,"props":5414,"children":5415},{"style":3459},[5416],{"type":3102,"value":4712},{"type":3097,"tag":3380,"props":5418,"children":5419},{"class":3382,"line":2998},[5420],{"type":3097,"tag":3380,"props":5421,"children":5422},{"style":3459},[5423],{"type":3102,"value":5424},"      }\n",{"type":3097,"tag":3380,"props":5426,"children":5427},{"class":3382,"line":2994},[5428],{"type":3097,"tag":3380,"props":5429,"children":5430},{"style":3459},[5431],{"type":3102,"value":5432},"    }\n",{"type":3097,"tag":3380,"props":5434,"children":5435},{"class":3382,"line":3831},[5436],{"type":3097,"tag":3380,"props":5437,"children":5438},{"style":3459},[5439],{"type":3102,"value":5080},{"type":3097,"tag":3380,"props":5441,"children":5442},{"class":3382,"line":3085},[5443,5447],{"type":3097,"tag":3380,"props":5444,"children":5445},{"style":3459},[5446],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":5448,"children":5449},{"style":3454},[5450],{"type":3102,"value":4822},{"type":3097,"tag":3104,"props":5452,"children":5453},{},[5454],{"type":3102,"value":5455},"It can also be set using environment variables:",{"type":3097,"tag":3154,"props":5457,"children":5458},{},[5459,5468],{"type":3097,"tag":3158,"props":5460,"children":5461},{},[5462],{"type":3097,"tag":3242,"props":5463,"children":5465},{"className":5464},[],[5466],{"type":3102,"value":5467},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_ID",{"type":3097,"tag":3158,"props":5469,"children":5470},{},[5471],{"type":3097,"tag":3242,"props":5472,"children":5474},{"className":5473},[],[5475],{"type":3102,"value":5476},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_SECRET",{"type":3097,"tag":4560,"props":5478,"children":5479},{},[5480],{"type":3097,"tag":3104,"props":5481,"children":5482},{},[5483],{"type":3102,"value":5484},"Provider is in uppercase (GITHUB, GOOGLE, etc.)",{"type":3097,"tag":5486,"props":5487,"children":5489},"h4",{"id":5488},"supported-oauth-providers",[5490],{"type":3102,"value":5491},"Supported OAuth Providers",{"type":3097,"tag":3154,"props":5493,"children":5494},{},[5495,5500,5505,5510,5515,5520,5525,5530,5535,5540,5545,5550,5555,5560,5565,5570,5575,5580,5585,5590,5595,5600,5605,5610,5615,5620,5625,5630,5635,5640,5645,5650,5655,5660,5665,5670,5675,5680,5685,5690,5695,5700,5705,5710,5715,5720,5725,5730],{"type":3097,"tag":3158,"props":5496,"children":5497},{},[5498],{"type":3102,"value":5499},"Apple",{"type":3097,"tag":3158,"props":5501,"children":5502},{},[5503],{"type":3102,"value":5504},"Atlassian",{"type":3097,"tag":3158,"props":5506,"children":5507},{},[5508],{"type":3102,"value":5509},"Auth0",{"type":3097,"tag":3158,"props":5511,"children":5512},{},[5513],{"type":3102,"value":5514},"Authentik",{"type":3097,"tag":3158,"props":5516,"children":5517},{},[5518],{"type":3102,"value":5519},"AWS Cognito",{"type":3097,"tag":3158,"props":5521,"children":5522},{},[5523],{"type":3102,"value":5524},"Azure B2C",{"type":3097,"tag":3158,"props":5526,"children":5527},{},[5528],{"type":3102,"value":5529},"Battle.net",{"type":3097,"tag":3158,"props":5531,"children":5532},{},[5533],{"type":3102,"value":5534},"Bluesky (AT Protocol)",{"type":3097,"tag":3158,"props":5536,"children":5537},{},[5538],{"type":3102,"value":5539},"Box.com",{"type":3097,"tag":3158,"props":5541,"children":5542},{},[5543],{"type":3102,"value":5544},"Discord",{"type":3097,"tag":3158,"props":5546,"children":5547},{},[5548],{"type":3102,"value":5549},"Dropbox",{"type":3097,"tag":3158,"props":5551,"children":5552},{},[5553],{"type":3102,"value":5554},"Facebook",{"type":3097,"tag":3158,"props":5556,"children":5557},{},[5558],{"type":3102,"value":5559},"GitHub",{"type":3097,"tag":3158,"props":5561,"children":5562},{},[5563],{"type":3102,"value":5564},"GitLab",{"type":3097,"tag":3158,"props":5566,"children":5567},{},[5568],{"type":3102,"value":5569},"Gitea",{"type":3097,"tag":3158,"props":5571,"children":5572},{},[5573],{"type":3102,"value":5574},"Google",{"type":3097,"tag":3158,"props":5576,"children":5577},{},[5578],{"type":3102,"value":5579},"Heroku",{"type":3097,"tag":3158,"props":5581,"children":5582},{},[5583],{"type":3102,"value":5584},"Hubspot",{"type":3097,"tag":3158,"props":5586,"children":5587},{},[5588],{"type":3102,"value":5589},"Instagram",{"type":3097,"tag":3158,"props":5591,"children":5592},{},[5593],{"type":3102,"value":5594},"Kick",{"type":3097,"tag":3158,"props":5596,"children":5597},{},[5598],{"type":3102,"value":5599},"Keycloak",{"type":3097,"tag":3158,"props":5601,"children":5602},{},[5603],{"type":3102,"value":5604},"Line",{"type":3097,"tag":3158,"props":5606,"children":5607},{},[5608],{"type":3102,"value":5609},"Linear",{"type":3097,"tag":3158,"props":5611,"children":5612},{},[5613],{"type":3102,"value":5614},"LinkedIn",{"type":3097,"tag":3158,"props":5616,"children":5617},{},[5618],{"type":3102,"value":5619},"LiveChat",{"type":3097,"tag":3158,"props":5621,"children":5622},{},[5623],{"type":3102,"value":5624},"Microsoft",{"type":3097,"tag":3158,"props":5626,"children":5627},{},[5628],{"type":3102,"value":5629},"OIDC \u002F OpenID Connect (Generic)",{"type":3097,"tag":3158,"props":5631,"children":5632},{},[5633],{"type":3102,"value":5634},"Okta",{"type":3097,"tag":3158,"props":5636,"children":5637},{},[5638],{"type":3102,"value":5639},"Ory",{"type":3097,"tag":3158,"props":5641,"children":5642},{},[5643],{"type":3102,"value":5644},"osu!",{"type":3097,"tag":3158,"props":5646,"children":5647},{},[5648],{"type":3102,"value":5649},"PayPal",{"type":3097,"tag":3158,"props":5651,"children":5652},{},[5653],{"type":3102,"value":5654},"Polar",{"type":3097,"tag":3158,"props":5656,"children":5657},{},[5658],{"type":3102,"value":5659},"Riot Games",{"type":3097,"tag":3158,"props":5661,"children":5662},{},[5663],{"type":3102,"value":5664},"Salesforce",{"type":3097,"tag":3158,"props":5666,"children":5667},{},[5668],{"type":3102,"value":5669},"Seznam",{"type":3097,"tag":3158,"props":5671,"children":5672},{},[5673],{"type":3102,"value":5674},"Shopify Customer",{"type":3097,"tag":3158,"props":5676,"children":5677},{},[5678],{"type":3102,"value":5679},"Slack",{"type":3097,"tag":3158,"props":5681,"children":5682},{},[5683],{"type":3102,"value":5684},"Spotify",{"type":3097,"tag":3158,"props":5686,"children":5687},{},[5688],{"type":3102,"value":5689},"Steam",{"type":3097,"tag":3158,"props":5691,"children":5692},{},[5693],{"type":3102,"value":5694},"Strava",{"type":3097,"tag":3158,"props":5696,"children":5697},{},[5698],{"type":3102,"value":5699},"TikTok",{"type":3097,"tag":3158,"props":5701,"children":5702},{},[5703],{"type":3102,"value":5704},"Twitch",{"type":3097,"tag":3158,"props":5706,"children":5707},{},[5708],{"type":3102,"value":5709},"VK",{"type":3097,"tag":3158,"props":5711,"children":5712},{},[5713],{"type":3102,"value":5714},"WorkOS",{"type":3097,"tag":3158,"props":5716,"children":5717},{},[5718],{"type":3102,"value":5719},"X (Twitter)",{"type":3097,"tag":3158,"props":5721,"children":5722},{},[5723],{"type":3102,"value":5724},"XSUAA",{"type":3097,"tag":3158,"props":5726,"children":5727},{},[5728],{"type":3102,"value":5729},"Yandex",{"type":3097,"tag":3158,"props":5731,"children":5732},{},[5733],{"type":3102,"value":5734},"Zitadel",{"type":3097,"tag":3104,"props":5736,"children":5737},{},[5738,5740,5747],{"type":3102,"value":5739},"You can add your favorite provider by creating a new file in ",{"type":3097,"tag":3108,"props":5741,"children":5744},{"href":5742,"rel":5743},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Ftree\u002Fmain\u002Fsrc\u002Fruntime\u002Fserver\u002Flib\u002Foauth",[3112],[5745],{"type":3102,"value":5746},"src\u002Fruntime\u002Fserver\u002Flib\u002Foauth\u002F",{"type":3102,"value":3335},{"type":3097,"tag":5486,"props":5749,"children":5751},{"id":5750},"example",[5752],{"type":3102,"value":5753},"Example",{"type":3097,"tag":3104,"props":5755,"children":5756},{},[5757,5759],{"type":3102,"value":5758},"Example: ",{"type":3097,"tag":3242,"props":5760,"children":5762},{"className":5761},[],[5763],{"type":3102,"value":5764},"~\u002Fserver\u002Froutes\u002Fauth\u002Fgithub.get.ts",{"type":3097,"tag":3370,"props":5766,"children":5768},{"className":4058,"code":5767,"language":4060,"meta":2970,"style":2970},"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",[5769],{"type":3097,"tag":3242,"props":5770,"children":5771},{"__ignoreMap":2970},[5772,5796,5812,5830,5837,5888,5916,5932,5957,5964,5976,6018,6025,6033,6067,6113,6152,6159],{"type":3097,"tag":3380,"props":5773,"children":5774},{"class":3382,"line":3056},[5775,5779,5783,5788,5792],{"type":3097,"tag":3380,"props":5776,"children":5777},{"style":4642},[5778],{"type":3102,"value":5176},{"type":3097,"tag":3380,"props":5780,"children":5781},{"style":4642},[5782],{"type":3102,"value":5291},{"type":3097,"tag":3380,"props":5784,"children":5785},{"style":3616},[5786],{"type":3102,"value":5787}," defineOAuthGitHubEventHandler",{"type":3097,"tag":3380,"props":5789,"children":5790},{"style":3454},[5791],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":5793,"children":5794},{"style":3459},[5795],{"type":3102,"value":5306},{"type":3097,"tag":3380,"props":5797,"children":5798},{"class":3382,"line":3022},[5799,5804,5808],{"type":3097,"tag":3380,"props":5800,"children":5801},{"style":3525},[5802],{"type":3102,"value":5803},"  config",{"type":3097,"tag":3380,"props":5805,"children":5806},{"style":3459},[5807],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":5809,"children":5810},{"style":3459},[5811],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":5813,"children":5814},{"class":3382,"line":3006},[5815,5820,5824],{"type":3097,"tag":3380,"props":5816,"children":5817},{"style":3525},[5818],{"type":3102,"value":5819},"    emailRequired",{"type":3097,"tag":3380,"props":5821,"children":5822},{"style":3459},[5823],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":5825,"children":5827},{"style":5826},"--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC",[5828],{"type":3102,"value":5829}," true\n",{"type":3097,"tag":3380,"props":5831,"children":5832},{"class":3382,"line":3643},[5833],{"type":3097,"tag":3380,"props":5834,"children":5835},{"style":3459},[5836],{"type":3102,"value":4720},{"type":3097,"tag":3380,"props":5838,"children":5839},{"class":3382,"line":3652},[5840,5845,5850,5854,5859,5863,5867,5871,5875,5880,5884],{"type":3097,"tag":3380,"props":5841,"children":5842},{"style":3531},[5843],{"type":3102,"value":5844},"  async",{"type":3097,"tag":3380,"props":5846,"children":5847},{"style":3525},[5848],{"type":3102,"value":5849}," onSuccess",{"type":3097,"tag":3380,"props":5851,"children":5852},{"style":3459},[5853],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":5855,"children":5856},{"style":4474},[5857],{"type":3102,"value":5858},"event",{"type":3097,"tag":3380,"props":5860,"children":5861},{"style":3459},[5862],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":5864,"children":5865},{"style":3459},[5866],{"type":3102,"value":3552},{"type":3097,"tag":3380,"props":5868,"children":5869},{"style":4474},[5870],{"type":3102,"value":3567},{"type":3097,"tag":3380,"props":5872,"children":5873},{"style":3459},[5874],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":5876,"children":5877},{"style":4474},[5878],{"type":3102,"value":5879}," tokens",{"type":3097,"tag":3380,"props":5881,"children":5882},{"style":3459},[5883],{"type":3102,"value":4540},{"type":3097,"tag":3380,"props":5885,"children":5886},{"style":3459},[5887],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":5889,"children":5890},{"class":3382,"line":3669},[5891,5896,5900,5904,5908,5912],{"type":3097,"tag":3380,"props":5892,"children":5893},{"style":4642},[5894],{"type":3102,"value":5895},"    await",{"type":3097,"tag":3380,"props":5897,"children":5898},{"style":3616},[5899],{"type":3102,"value":4650},{"type":3097,"tag":3380,"props":5901,"children":5902},{"style":3525},[5903],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":5905,"children":5906},{"style":3454},[5907],{"type":3102,"value":5858},{"type":3097,"tag":3380,"props":5909,"children":5910},{"style":3459},[5911],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":5913,"children":5914},{"style":3459},[5915],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":5917,"children":5918},{"class":3382,"line":3002},[5919,5924,5928],{"type":3097,"tag":3380,"props":5920,"children":5921},{"style":3525},[5922],{"type":3102,"value":5923},"      user",{"type":3097,"tag":3380,"props":5925,"children":5926},{"style":3459},[5927],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":5929,"children":5930},{"style":3459},[5931],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":5933,"children":5934},{"class":3382,"line":2998},[5935,5940,5944,5948,5952],{"type":3097,"tag":3380,"props":5936,"children":5937},{"style":3525},[5938],{"type":3102,"value":5939},"        githubId",{"type":3097,"tag":3380,"props":5941,"children":5942},{"style":3459},[5943],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":5945,"children":5946},{"style":3454},[5947],{"type":3102,"value":3567},{"type":3097,"tag":3380,"props":5949,"children":5950},{"style":3459},[5951],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":5953,"children":5954},{"style":3454},[5955],{"type":3102,"value":5956},"id\n",{"type":3097,"tag":3380,"props":5958,"children":5959},{"class":3382,"line":2994},[5960],{"type":3097,"tag":3380,"props":5961,"children":5962},{"style":3459},[5963],{"type":3102,"value":5424},{"type":3097,"tag":3380,"props":5965,"children":5966},{"class":3382,"line":3831},[5967,5972],{"type":3097,"tag":3380,"props":5968,"children":5969},{"style":3459},[5970],{"type":3102,"value":5971},"    }",{"type":3097,"tag":3380,"props":5973,"children":5974},{"style":3525},[5975],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":5977,"children":5978},{"class":3382,"line":3085},[5979,5984,5989,5993,5997,6001,6005,6010,6014],{"type":3097,"tag":3380,"props":5980,"children":5981},{"style":4642},[5982],{"type":3102,"value":5983},"    return",{"type":3097,"tag":3380,"props":5985,"children":5986},{"style":3616},[5987],{"type":3102,"value":5988}," sendRedirect",{"type":3097,"tag":3380,"props":5990,"children":5991},{"style":3525},[5992],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":5994,"children":5995},{"style":3454},[5996],{"type":3102,"value":5858},{"type":3097,"tag":3380,"props":5998,"children":5999},{"style":3459},[6000],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":6002,"children":6003},{"style":3459},[6004],{"type":3102,"value":4703},{"type":3097,"tag":3380,"props":6006,"children":6007},{"style":3392},[6008],{"type":3102,"value":6009},"\u002F",{"type":3097,"tag":3380,"props":6011,"children":6012},{"style":3459},[6013],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":6015,"children":6016},{"style":3525},[6017],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":6019,"children":6020},{"class":3382,"line":3868},[6021],{"type":3097,"tag":3380,"props":6022,"children":6023},{"style":3459},[6024],{"type":3102,"value":4720},{"type":3097,"tag":3380,"props":6026,"children":6027},{"class":3382,"line":3901},[6028],{"type":3097,"tag":3380,"props":6029,"children":6030},{"style":3445},[6031],{"type":3102,"value":6032},"  \u002F\u002F Optional, will return a json error and 401 status code by default\n",{"type":3097,"tag":3380,"props":6034,"children":6035},{"class":3382,"line":3956},[6036,6041,6045,6049,6053,6058,6063],{"type":3097,"tag":3380,"props":6037,"children":6038},{"style":3525},[6039],{"type":3102,"value":6040},"  onError",{"type":3097,"tag":3380,"props":6042,"children":6043},{"style":3459},[6044],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":6046,"children":6047},{"style":4474},[6048],{"type":3102,"value":5858},{"type":3097,"tag":3380,"props":6050,"children":6051},{"style":3459},[6052],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":6054,"children":6055},{"style":4474},[6056],{"type":3102,"value":6057}," error",{"type":3097,"tag":3380,"props":6059,"children":6060},{"style":3459},[6061],{"type":3102,"value":6062},")",{"type":3097,"tag":3380,"props":6064,"children":6065},{"style":3459},[6066],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":6068,"children":6069},{"class":3382,"line":3965},[6070,6075,6079,6084,6088,6092,6097,6101,6105,6109],{"type":3097,"tag":3380,"props":6071,"children":6072},{"style":3454},[6073],{"type":3102,"value":6074},"    console",{"type":3097,"tag":3380,"props":6076,"children":6077},{"style":3459},[6078],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":6080,"children":6081},{"style":3616},[6082],{"type":3102,"value":6083},"error",{"type":3097,"tag":3380,"props":6085,"children":6086},{"style":3525},[6087],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":6089,"children":6090},{"style":3459},[6091],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":6093,"children":6094},{"style":3392},[6095],{"type":3102,"value":6096},"GitHub OAuth error:",{"type":3097,"tag":3380,"props":6098,"children":6099},{"style":3459},[6100],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":6102,"children":6103},{"style":3459},[6104],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":6106,"children":6107},{"style":3454},[6108],{"type":3102,"value":6057},{"type":3097,"tag":3380,"props":6110,"children":6111},{"style":3525},[6112],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":6114,"children":6115},{"class":3382,"line":2990},[6116,6120,6124,6128,6132,6136,6140,6144,6148],{"type":3097,"tag":3380,"props":6117,"children":6118},{"style":4642},[6119],{"type":3102,"value":5983},{"type":3097,"tag":3380,"props":6121,"children":6122},{"style":3616},[6123],{"type":3102,"value":5988},{"type":3097,"tag":3380,"props":6125,"children":6126},{"style":3525},[6127],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":6129,"children":6130},{"style":3454},[6131],{"type":3102,"value":5858},{"type":3097,"tag":3380,"props":6133,"children":6134},{"style":3459},[6135],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":6137,"children":6138},{"style":3459},[6139],{"type":3102,"value":4703},{"type":3097,"tag":3380,"props":6141,"children":6142},{"style":3392},[6143],{"type":3102,"value":6009},{"type":3097,"tag":3380,"props":6145,"children":6146},{"style":3459},[6147],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":6149,"children":6150},{"style":3525},[6151],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":6153,"children":6154},{"class":3382,"line":4033},[6155],{"type":3097,"tag":3380,"props":6156,"children":6157},{"style":3459},[6158],{"type":3102,"value":4720},{"type":3097,"tag":3380,"props":6160,"children":6161},{"class":3382,"line":4303},[6162,6166],{"type":3097,"tag":3380,"props":6163,"children":6164},{"style":3459},[6165],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":6167,"children":6168},{"style":3454},[6169],{"type":3102,"value":4822},{"type":3097,"tag":3104,"props":6171,"children":6172},{},[6173,6175,6181],{"type":3102,"value":6174},"Make sure to set the callback URL in your OAuth app settings as ",{"type":3097,"tag":3242,"props":6176,"children":6178},{"className":6177},[],[6179],{"type":3102,"value":6180},"\u003Cyour-domain>\u002Fauth\u002Fgithub",{"type":3102,"value":3335},{"type":3097,"tag":3104,"props":6183,"children":6184},{},[6185,6187,6193],{"type":3102,"value":6186},"If the redirect URL mismatch in production, this means that the module cannot guess the right redirect URL. You can set the ",{"type":3097,"tag":3242,"props":6188,"children":6190},{"className":6189},[],[6191],{"type":3102,"value":6192},"NUXT_OAUTH_\u003CPROVIDER>_REDIRECT_URL",{"type":3102,"value":6194}," env variable to overwrite the default one.",{"type":3097,"tag":3500,"props":6196,"children":6198},{"id":6197},"password-hashing",[6199],{"type":3102,"value":3224},{"type":3097,"tag":3104,"props":6201,"children":6202},{},[6203,6205,6211,6213,6219,6221,6228],{"type":3102,"value":6204},"Nuxt Auth Utils provides password hashing utilities like ",{"type":3097,"tag":3242,"props":6206,"children":6208},{"className":6207},[],[6209],{"type":3102,"value":6210},"hashPassword",{"type":3102,"value":6212}," and ",{"type":3097,"tag":3242,"props":6214,"children":6216},{"className":6215},[],[6217],{"type":3102,"value":6218},"verifyPassword",{"type":3102,"value":6220}," to hash and verify passwords by using ",{"type":3097,"tag":3108,"props":6222,"children":6225},{"href":6223,"rel":6224},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FScrypt",[3112],[6226],{"type":3102,"value":6227},"scrypt",{"type":3102,"value":6229}," as it is supported in many JS runtime.",{"type":3097,"tag":3370,"props":6231,"children":6233},{"className":4058,"code":6232,"language":4060,"meta":2970,"style":2970},"const hashedPassword = await hashPassword('user_password')\n\nif (await verifyPassword(hashedPassword, 'user_password')) {\n  \u002F\u002F Password is valid\n}\n",[6234],{"type":3097,"tag":3242,"props":6235,"children":6236},{"__ignoreMap":2970},[6237,6283,6290,6341,6349],{"type":3097,"tag":3380,"props":6238,"children":6239},{"class":3382,"line":3056},[6240,6244,6249,6253,6257,6262,6266,6270,6275,6279],{"type":3097,"tag":3380,"props":6241,"children":6242},{"style":3531},[6243],{"type":3102,"value":3547},{"type":3097,"tag":3380,"props":6245,"children":6246},{"style":3454},[6247],{"type":3102,"value":6248}," hashedPassword ",{"type":3097,"tag":3380,"props":6250,"children":6251},{"style":3459},[6252],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":6254,"children":6255},{"style":4642},[6256],{"type":3102,"value":4898},{"type":3097,"tag":3380,"props":6258,"children":6259},{"style":3616},[6260],{"type":3102,"value":6261}," hashPassword",{"type":3097,"tag":3380,"props":6263,"children":6264},{"style":3454},[6265],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":6267,"children":6268},{"style":3459},[6269],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":6271,"children":6272},{"style":3392},[6273],{"type":3102,"value":6274},"user_password",{"type":3097,"tag":3380,"props":6276,"children":6277},{"style":3459},[6278],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":6280,"children":6281},{"style":3454},[6282],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":6284,"children":6285},{"class":3382,"line":3022},[6286],{"type":3097,"tag":3380,"props":6287,"children":6288},{"emptyLinePlaceholder":1196},[6289],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":6291,"children":6292},{"class":3382,"line":3006},[6293,6298,6302,6306,6311,6316,6320,6324,6328,6332,6337],{"type":3097,"tag":3380,"props":6294,"children":6295},{"style":4642},[6296],{"type":3102,"value":6297},"if",{"type":3097,"tag":3380,"props":6299,"children":6300},{"style":3454},[6301],{"type":3102,"value":4471},{"type":3097,"tag":3380,"props":6303,"children":6304},{"style":4642},[6305],{"type":3102,"value":4645},{"type":3097,"tag":3380,"props":6307,"children":6308},{"style":3616},[6309],{"type":3102,"value":6310}," verifyPassword",{"type":3097,"tag":3380,"props":6312,"children":6313},{"style":3454},[6314],{"type":3102,"value":6315},"(hashedPassword",{"type":3097,"tag":3380,"props":6317,"children":6318},{"style":3459},[6319],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":6321,"children":6322},{"style":3459},[6323],{"type":3102,"value":4703},{"type":3097,"tag":3380,"props":6325,"children":6326},{"style":3392},[6327],{"type":3102,"value":6274},{"type":3097,"tag":3380,"props":6329,"children":6330},{"style":3459},[6331],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":6333,"children":6334},{"style":3454},[6335],{"type":3102,"value":6336},")) ",{"type":3097,"tag":3380,"props":6338,"children":6339},{"style":3459},[6340],{"type":3102,"value":5306},{"type":3097,"tag":3380,"props":6342,"children":6343},{"class":3382,"line":3643},[6344],{"type":3097,"tag":3380,"props":6345,"children":6346},{"style":3445},[6347],{"type":3102,"value":6348},"  \u002F\u002F Password is valid\n",{"type":3097,"tag":3380,"props":6350,"children":6351},{"class":3382,"line":3652},[6352],{"type":3097,"tag":3380,"props":6353,"children":6354},{"style":3459},[6355],{"type":3102,"value":4558},{"type":3097,"tag":3104,"props":6357,"children":6358},{},[6359,6361,6367],{"type":3102,"value":6360},"It also provides a ",{"type":3097,"tag":3242,"props":6362,"children":6364},{"className":6363},[],[6365],{"type":3102,"value":6366},"passwordNeedsRehash",{"type":3102,"value":6368}," 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":3097,"tag":3370,"props":6370,"children":6372},{"className":4058,"code":6371,"language":4060,"meta":2970,"style":2970},"const needsRehash = passwordNeedsRehash(hashedPassword)\n\nif (needsRehash) {\n  \u002F\u002F Password needs to be rehashed\n  hashedPassword = await hashPassword('user_password')\n}\n",[6373],{"type":3097,"tag":3242,"props":6374,"children":6375},{"__ignoreMap":2970},[6376,6402,6409,6425,6433,6473],{"type":3097,"tag":3380,"props":6377,"children":6378},{"class":3382,"line":3056},[6379,6383,6388,6392,6397],{"type":3097,"tag":3380,"props":6380,"children":6381},{"style":3531},[6382],{"type":3102,"value":3547},{"type":3097,"tag":3380,"props":6384,"children":6385},{"style":3454},[6386],{"type":3102,"value":6387}," needsRehash ",{"type":3097,"tag":3380,"props":6389,"children":6390},{"style":3459},[6391],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":6393,"children":6394},{"style":3616},[6395],{"type":3102,"value":6396}," passwordNeedsRehash",{"type":3097,"tag":3380,"props":6398,"children":6399},{"style":3454},[6400],{"type":3102,"value":6401},"(hashedPassword)\n",{"type":3097,"tag":3380,"props":6403,"children":6404},{"class":3382,"line":3022},[6405],{"type":3097,"tag":3380,"props":6406,"children":6407},{"emptyLinePlaceholder":1196},[6408],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":6410,"children":6411},{"class":3382,"line":3006},[6412,6416,6421],{"type":3097,"tag":3380,"props":6413,"children":6414},{"style":4642},[6415],{"type":3102,"value":6297},{"type":3097,"tag":3380,"props":6417,"children":6418},{"style":3454},[6419],{"type":3102,"value":6420}," (needsRehash) ",{"type":3097,"tag":3380,"props":6422,"children":6423},{"style":3459},[6424],{"type":3102,"value":5306},{"type":3097,"tag":3380,"props":6426,"children":6427},{"class":3382,"line":3643},[6428],{"type":3097,"tag":3380,"props":6429,"children":6430},{"style":3445},[6431],{"type":3102,"value":6432},"  \u002F\u002F Password needs to be rehashed\n",{"type":3097,"tag":3380,"props":6434,"children":6435},{"class":3382,"line":3652},[6436,6441,6445,6449,6453,6457,6461,6465,6469],{"type":3097,"tag":3380,"props":6437,"children":6438},{"style":3454},[6439],{"type":3102,"value":6440},"  hashedPassword",{"type":3097,"tag":3380,"props":6442,"children":6443},{"style":3459},[6444],{"type":3102,"value":3613},{"type":3097,"tag":3380,"props":6446,"children":6447},{"style":4642},[6448],{"type":3102,"value":4898},{"type":3097,"tag":3380,"props":6450,"children":6451},{"style":3616},[6452],{"type":3102,"value":6261},{"type":3097,"tag":3380,"props":6454,"children":6455},{"style":3525},[6456],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":6458,"children":6459},{"style":3459},[6460],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":6462,"children":6463},{"style":3392},[6464],{"type":3102,"value":6274},{"type":3097,"tag":3380,"props":6466,"children":6467},{"style":3459},[6468],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":6470,"children":6471},{"style":3525},[6472],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":6474,"children":6475},{"class":3382,"line":3669},[6476],{"type":3097,"tag":3380,"props":6477,"children":6478},{"style":3459},[6479],{"type":3102,"value":4558},{"type":3097,"tag":3104,"props":6481,"children":6482},{},[6483,6485,6490],{"type":3102,"value":6484},"You can configure the scrypt options in your ",{"type":3097,"tag":3242,"props":6486,"children":6488},{"className":6487},[],[6489],{"type":3102,"value":233},{"type":3102,"value":4119},{"type":3097,"tag":3370,"props":6492,"children":6494},{"className":4058,"code":6493,"language":4060,"meta":2970,"style":2970},"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",[6495],{"type":3097,"tag":3242,"props":6496,"children":6497},{"__ignoreMap":2970},[6498,6521,6559,6575,6591,6607,6615,6622,6629,6636],{"type":3097,"tag":3380,"props":6499,"children":6500},{"class":3382,"line":3056},[6501,6505,6509,6513,6517],{"type":3097,"tag":3380,"props":6502,"children":6503},{"style":4642},[6504],{"type":3102,"value":5176},{"type":3097,"tag":3380,"props":6506,"children":6507},{"style":4642},[6508],{"type":3102,"value":5291},{"type":3097,"tag":3380,"props":6510,"children":6511},{"style":3616},[6512],{"type":3102,"value":5296},{"type":3097,"tag":3380,"props":6514,"children":6515},{"style":3454},[6516],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":6518,"children":6519},{"style":3459},[6520],{"type":3102,"value":5306},{"type":3097,"tag":3380,"props":6522,"children":6523},{"class":3382,"line":3022},[6524,6529,6533,6538,6542,6546,6550,6555],{"type":3097,"tag":3380,"props":6525,"children":6526},{"style":3525},[6527],{"type":3102,"value":6528},"  modules",{"type":3097,"tag":3380,"props":6530,"children":6531},{"style":3459},[6532],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":6534,"children":6535},{"style":3454},[6536],{"type":3102,"value":6537}," [",{"type":3097,"tag":3380,"props":6539,"children":6540},{"style":3459},[6541],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":6543,"children":6544},{"style":3392},[6545],{"type":3102,"value":2969},{"type":3097,"tag":3380,"props":6547,"children":6548},{"style":3459},[6549],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":6551,"children":6552},{"style":3454},[6553],{"type":3102,"value":6554},"]",{"type":3097,"tag":3380,"props":6556,"children":6557},{"style":3459},[6558],{"type":3102,"value":5392},{"type":3097,"tag":3380,"props":6560,"children":6561},{"class":3382,"line":3006},[6562,6567,6571],{"type":3097,"tag":3380,"props":6563,"children":6564},{"style":3525},[6565],{"type":3102,"value":6566},"  auth",{"type":3097,"tag":3380,"props":6568,"children":6569},{"style":3459},[6570],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":6572,"children":6573},{"style":3459},[6574],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":6576,"children":6577},{"class":3382,"line":3643},[6578,6583,6587],{"type":3097,"tag":3380,"props":6579,"children":6580},{"style":3525},[6581],{"type":3102,"value":6582},"    hash",{"type":3097,"tag":3380,"props":6584,"children":6585},{"style":3459},[6586],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":6588,"children":6589},{"style":3459},[6590],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":6592,"children":6593},{"class":3382,"line":3652},[6594,6599,6603],{"type":3097,"tag":3380,"props":6595,"children":6596},{"style":3525},[6597],{"type":3102,"value":6598},"      scrypt",{"type":3097,"tag":3380,"props":6600,"children":6601},{"style":3459},[6602],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":6604,"children":6605},{"style":3459},[6606],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":6608,"children":6609},{"class":3382,"line":3669},[6610],{"type":3097,"tag":3380,"props":6611,"children":6612},{"style":3445},[6613],{"type":3102,"value":6614},"        \u002F\u002F See https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fhash\u002Fblob\u002F94637029cd526783ac0a763ec581306d98db2036\u002Fsrc\u002Ftypes.ts#L144\n",{"type":3097,"tag":3380,"props":6616,"children":6617},{"class":3382,"line":3002},[6618],{"type":3097,"tag":3380,"props":6619,"children":6620},{"style":3459},[6621],{"type":3102,"value":5424},{"type":3097,"tag":3380,"props":6623,"children":6624},{"class":3382,"line":2998},[6625],{"type":3097,"tag":3380,"props":6626,"children":6627},{"style":3459},[6628],{"type":3102,"value":5432},{"type":3097,"tag":3380,"props":6630,"children":6631},{"class":3382,"line":2994},[6632],{"type":3097,"tag":3380,"props":6633,"children":6634},{"style":3459},[6635],{"type":3102,"value":5080},{"type":3097,"tag":3380,"props":6637,"children":6638},{"class":3382,"line":3831},[6639,6643],{"type":3097,"tag":3380,"props":6640,"children":6641},{"style":3459},[6642],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":6644,"children":6645},{"style":3454},[6646],{"type":3102,"value":4822},{"type":3097,"tag":3500,"props":6648,"children":6650},{"id":6649},"at-protocol",[6651],{"type":3102,"value":6652},"AT Protocol",{"type":3097,"tag":3104,"props":6654,"children":6655},{},[6656],{"type":3102,"value":6657},"Social networks that rely on AT Protocol (e.g., Bluesky) slightly differ from a regular OAuth flow.",{"type":3097,"tag":3104,"props":6659,"children":6660},{},[6661],{"type":3102,"value":6662},"To enable OAuth with AT Protocol, you need to:",{"type":3097,"tag":3354,"props":6664,"children":6665},{},[6666],{"type":3097,"tag":3158,"props":6667,"children":6668},{},[6669],{"type":3102,"value":6670},"Install the peer dependencies:",{"type":3097,"tag":3370,"props":6672,"children":6674},{"className":3372,"code":6673,"language":3374,"meta":2970,"style":2970},"npx nypm i @atproto\u002Foauth-client-node @atproto\u002Fapi\n",[6675],{"type":3097,"tag":3242,"props":6676,"children":6677},{"__ignoreMap":2970},[6678],{"type":3097,"tag":3380,"props":6679,"children":6680},{"class":3382,"line":3056},[6681,6685,6690,6695,6700],{"type":3097,"tag":3380,"props":6682,"children":6683},{"style":3386},[6684],{"type":3102,"value":3389},{"type":3097,"tag":3380,"props":6686,"children":6687},{"style":3392},[6688],{"type":3102,"value":6689}," nypm",{"type":3097,"tag":3380,"props":6691,"children":6692},{"style":3392},[6693],{"type":3102,"value":6694}," i",{"type":3097,"tag":3380,"props":6696,"children":6697},{"style":3392},[6698],{"type":3102,"value":6699}," @atproto\u002Foauth-client-node",{"type":3097,"tag":3380,"props":6701,"children":6702},{"style":3392},[6703],{"type":3102,"value":6704}," @atproto\u002Fapi\n",{"type":3097,"tag":3354,"props":6706,"children":6707},{"start":3022},[6708],{"type":3097,"tag":3158,"props":6709,"children":6710},{},[6711,6713],{"type":3102,"value":6712},"Enable it in your ",{"type":3097,"tag":3242,"props":6714,"children":6716},{"className":6715},[],[6717],{"type":3102,"value":233},{"type":3097,"tag":3370,"props":6719,"children":6721},{"className":4058,"code":6720,"language":4060,"meta":2970,"style":2970},"export default defineNuxtConfig({\n  auth: {\n    atproto: true\n  }\n})\n",[6722],{"type":3097,"tag":3242,"props":6723,"children":6724},{"__ignoreMap":2970},[6725,6748,6763,6779,6786],{"type":3097,"tag":3380,"props":6726,"children":6727},{"class":3382,"line":3056},[6728,6732,6736,6740,6744],{"type":3097,"tag":3380,"props":6729,"children":6730},{"style":4642},[6731],{"type":3102,"value":5176},{"type":3097,"tag":3380,"props":6733,"children":6734},{"style":4642},[6735],{"type":3102,"value":5291},{"type":3097,"tag":3380,"props":6737,"children":6738},{"style":3616},[6739],{"type":3102,"value":5296},{"type":3097,"tag":3380,"props":6741,"children":6742},{"style":3454},[6743],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":6745,"children":6746},{"style":3459},[6747],{"type":3102,"value":5306},{"type":3097,"tag":3380,"props":6749,"children":6750},{"class":3382,"line":3022},[6751,6755,6759],{"type":3097,"tag":3380,"props":6752,"children":6753},{"style":3525},[6754],{"type":3102,"value":6566},{"type":3097,"tag":3380,"props":6756,"children":6757},{"style":3459},[6758],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":6760,"children":6761},{"style":3459},[6762],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":6764,"children":6765},{"class":3382,"line":3006},[6766,6771,6775],{"type":3097,"tag":3380,"props":6767,"children":6768},{"style":3525},[6769],{"type":3102,"value":6770},"    atproto",{"type":3097,"tag":3380,"props":6772,"children":6773},{"style":3459},[6774],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":6776,"children":6777},{"style":5826},[6778],{"type":3102,"value":5829},{"type":3097,"tag":3380,"props":6780,"children":6781},{"class":3382,"line":3643},[6782],{"type":3097,"tag":3380,"props":6783,"children":6784},{"style":3459},[6785],{"type":3102,"value":5080},{"type":3097,"tag":3380,"props":6787,"children":6788},{"class":3382,"line":3652},[6789,6793],{"type":3097,"tag":3380,"props":6790,"children":6791},{"style":3459},[6792],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":6794,"children":6795},{"style":3454},[6796],{"type":3102,"value":4822},{"type":3097,"tag":3500,"props":6798,"children":6800},{"id":6799},"webauthn-passkey",[6801],{"type":3102,"value":3233},{"type":3097,"tag":3104,"props":6803,"children":6804},{},[6805],{"type":3102,"value":6806},"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":3097,"tag":3104,"props":6808,"children":6809},{},[6810],{"type":3102,"value":6811},"To enable WebAuthn you need to:",{"type":3097,"tag":3354,"props":6813,"children":6814},{},[6815],{"type":3097,"tag":3158,"props":6816,"children":6817},{},[6818],{"type":3102,"value":6670},{"type":3097,"tag":3370,"props":6820,"children":6822},{"className":3372,"code":6821,"language":3374,"meta":2970,"style":2970},"npx nypm i @simplewebauthn\u002Fserver@11 @simplewebauthn\u002Fbrowser@11\n",[6823],{"type":3097,"tag":3242,"props":6824,"children":6825},{"__ignoreMap":2970},[6826],{"type":3097,"tag":3380,"props":6827,"children":6828},{"class":3382,"line":3056},[6829,6833,6837,6841,6846],{"type":3097,"tag":3380,"props":6830,"children":6831},{"style":3386},[6832],{"type":3102,"value":3389},{"type":3097,"tag":3380,"props":6834,"children":6835},{"style":3392},[6836],{"type":3102,"value":6689},{"type":3097,"tag":3380,"props":6838,"children":6839},{"style":3392},[6840],{"type":3102,"value":6694},{"type":3097,"tag":3380,"props":6842,"children":6843},{"style":3392},[6844],{"type":3102,"value":6845}," @simplewebauthn\u002Fserver@11",{"type":3097,"tag":3380,"props":6847,"children":6848},{"style":3392},[6849],{"type":3102,"value":6850}," @simplewebauthn\u002Fbrowser@11\n",{"type":3097,"tag":3354,"props":6852,"children":6853},{"start":3022},[6854],{"type":3097,"tag":3158,"props":6855,"children":6856},{},[6857,6858],{"type":3102,"value":6712},{"type":3097,"tag":3242,"props":6859,"children":6861},{"className":6860},[],[6862],{"type":3102,"value":233},{"type":3097,"tag":3370,"props":6864,"children":6866},{"className":4058,"code":6865,"language":4060,"meta":2970,"style":2970},"export default defineNuxtConfig({\n  auth: {\n    webAuthn: true\n  }\n})\n",[6867],{"type":3097,"tag":3242,"props":6868,"children":6869},{"__ignoreMap":2970},[6870,6893,6908,6924,6931],{"type":3097,"tag":3380,"props":6871,"children":6872},{"class":3382,"line":3056},[6873,6877,6881,6885,6889],{"type":3097,"tag":3380,"props":6874,"children":6875},{"style":4642},[6876],{"type":3102,"value":5176},{"type":3097,"tag":3380,"props":6878,"children":6879},{"style":4642},[6880],{"type":3102,"value":5291},{"type":3097,"tag":3380,"props":6882,"children":6883},{"style":3616},[6884],{"type":3102,"value":5296},{"type":3097,"tag":3380,"props":6886,"children":6887},{"style":3454},[6888],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":6890,"children":6891},{"style":3459},[6892],{"type":3102,"value":5306},{"type":3097,"tag":3380,"props":6894,"children":6895},{"class":3382,"line":3022},[6896,6900,6904],{"type":3097,"tag":3380,"props":6897,"children":6898},{"style":3525},[6899],{"type":3102,"value":6566},{"type":3097,"tag":3380,"props":6901,"children":6902},{"style":3459},[6903],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":6905,"children":6906},{"style":3459},[6907],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":6909,"children":6910},{"class":3382,"line":3006},[6911,6916,6920],{"type":3097,"tag":3380,"props":6912,"children":6913},{"style":3525},[6914],{"type":3102,"value":6915},"    webAuthn",{"type":3097,"tag":3380,"props":6917,"children":6918},{"style":3459},[6919],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":6921,"children":6922},{"style":5826},[6923],{"type":3102,"value":5829},{"type":3097,"tag":3380,"props":6925,"children":6926},{"class":3382,"line":3643},[6927],{"type":3097,"tag":3380,"props":6928,"children":6929},{"style":3459},[6930],{"type":3102,"value":5080},{"type":3097,"tag":3380,"props":6932,"children":6933},{"class":3382,"line":3652},[6934,6938],{"type":3097,"tag":3380,"props":6935,"children":6936},{"style":3459},[6937],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":6939,"children":6940},{"style":3454},[6941],{"type":3102,"value":4822},{"type":3097,"tag":5486,"props":6943,"children":6945},{"id":6944},"example-1",[6946],{"type":3102,"value":5753},{"type":3097,"tag":3104,"props":6948,"children":6949},{},[6950],{"type":3102,"value":6951},"In this example we will implement the very basic steps to register and authenticate a credential.",{"type":3097,"tag":3104,"props":6953,"children":6954},{},[6955,6957,6964],{"type":3102,"value":6956},"The full code can be found in the ",{"type":3097,"tag":3108,"props":6958,"children":6961},{"href":6959,"rel":6960},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn",[3112],[6962],{"type":3102,"value":6963},"playground",{"type":3102,"value":6965},". The example uses a SQLite database with the following minimal tables:",{"type":3097,"tag":3370,"props":6967,"children":6971},{"className":6968,"code":6969,"language":6970,"meta":2970,"style":2970},"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",[6972],{"type":3097,"tag":3242,"props":6973,"children":6974},{"__ignoreMap":2970},[6975,6999,7022,7040,7048,7055,7086,7127,7151,7171,7192,7212,7232,7279],{"type":3097,"tag":3380,"props":6976,"children":6977},{"class":3382,"line":3056},[6978,6984,6989,6994],{"type":3097,"tag":3380,"props":6979,"children":6981},{"style":6980},"--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C",[6982],{"type":3102,"value":6983},"CREATE",{"type":3097,"tag":3380,"props":6985,"children":6986},{"style":6980},[6987],{"type":3102,"value":6988}," TABLE",{"type":3097,"tag":3380,"props":6990,"children":6991},{"style":3616},[6992],{"type":3102,"value":6993}," users",{"type":3097,"tag":3380,"props":6995,"children":6996},{"style":3454},[6997],{"type":3102,"value":6998}," (\n",{"type":3097,"tag":3380,"props":7000,"children":7001},{"class":3382,"line":3022},[7002,7007,7012,7017],{"type":3097,"tag":3380,"props":7003,"children":7004},{"style":3454},[7005],{"type":3102,"value":7006},"  id ",{"type":3097,"tag":3380,"props":7008,"children":7009},{"style":3531},[7010],{"type":3102,"value":7011},"INTEGER",{"type":3097,"tag":3380,"props":7013,"children":7014},{"style":3531},[7015],{"type":3102,"value":7016}," PRIMARY KEY",{"type":3097,"tag":3380,"props":7018,"children":7019},{"style":3454},[7020],{"type":3102,"value":7021}," AUTOINCREMENT,\n",{"type":3097,"tag":3380,"props":7023,"children":7024},{"class":3382,"line":3006},[7025,7030,7035],{"type":3097,"tag":3380,"props":7026,"children":7027},{"style":3454},[7028],{"type":3102,"value":7029},"  email ",{"type":3097,"tag":3380,"props":7031,"children":7032},{"style":3531},[7033],{"type":3102,"value":7034},"TEXT",{"type":3097,"tag":3380,"props":7036,"children":7037},{"style":6980},[7038],{"type":3102,"value":7039}," NOT NULL\n",{"type":3097,"tag":3380,"props":7041,"children":7042},{"class":3382,"line":3643},[7043],{"type":3097,"tag":3380,"props":7044,"children":7045},{"style":3454},[7046],{"type":3102,"value":7047},");\n",{"type":3097,"tag":3380,"props":7049,"children":7050},{"class":3382,"line":3652},[7051],{"type":3097,"tag":3380,"props":7052,"children":7053},{"emptyLinePlaceholder":1196},[7054],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":7056,"children":7057},{"class":3382,"line":3669},[7058,7062,7066,7071,7076,7081],{"type":3097,"tag":3380,"props":7059,"children":7060},{"style":6980},[7061],{"type":3102,"value":6983},{"type":3097,"tag":3380,"props":7063,"children":7064},{"style":6980},[7065],{"type":3102,"value":6988},{"type":3097,"tag":3380,"props":7067,"children":7068},{"style":3616},[7069],{"type":3102,"value":7070}," IF",{"type":3097,"tag":3380,"props":7072,"children":7073},{"style":6980},[7074],{"type":3102,"value":7075}," NOT",{"type":3097,"tag":3380,"props":7077,"children":7078},{"style":6980},[7079],{"type":3102,"value":7080}," EXISTS",{"type":3097,"tag":3380,"props":7082,"children":7083},{"style":3454},[7084],{"type":3102,"value":7085}," credentials (\n",{"type":3097,"tag":3380,"props":7087,"children":7088},{"class":3382,"line":3002},[7089,7094,7098,7103,7108,7113,7118,7123],{"type":3097,"tag":3380,"props":7090,"children":7091},{"style":3454},[7092],{"type":3102,"value":7093},"  userId ",{"type":3097,"tag":3380,"props":7095,"children":7096},{"style":3531},[7097],{"type":3102,"value":7011},{"type":3097,"tag":3380,"props":7099,"children":7100},{"style":6980},[7101],{"type":3102,"value":7102}," NOT NULL",{"type":3097,"tag":3380,"props":7104,"children":7105},{"style":3531},[7106],{"type":3102,"value":7107}," REFERENCES",{"type":3097,"tag":3380,"props":7109,"children":7110},{"style":3454},[7111],{"type":3102,"value":7112}," users(id) ",{"type":3097,"tag":3380,"props":7114,"children":7115},{"style":3531},[7116],{"type":3102,"value":7117},"ON DELETE CASCADE",{"type":3097,"tag":3380,"props":7119,"children":7120},{"style":3531},[7121],{"type":3102,"value":7122}," ON UPDATE CASCADE",{"type":3097,"tag":3380,"props":7124,"children":7125},{"style":3454},[7126],{"type":3102,"value":5392},{"type":3097,"tag":3380,"props":7128,"children":7129},{"class":3382,"line":2998},[7130,7134,7138,7143,7147],{"type":3097,"tag":3380,"props":7131,"children":7132},{"style":3454},[7133],{"type":3102,"value":7006},{"type":3097,"tag":3380,"props":7135,"children":7136},{"style":3531},[7137],{"type":3102,"value":7034},{"type":3097,"tag":3380,"props":7139,"children":7140},{"style":6980},[7141],{"type":3102,"value":7142}," UNIQUE",{"type":3097,"tag":3380,"props":7144,"children":7145},{"style":6980},[7146],{"type":3102,"value":7102},{"type":3097,"tag":3380,"props":7148,"children":7149},{"style":3454},[7150],{"type":3102,"value":5392},{"type":3097,"tag":3380,"props":7152,"children":7153},{"class":3382,"line":2994},[7154,7159,7163,7167],{"type":3097,"tag":3380,"props":7155,"children":7156},{"style":3454},[7157],{"type":3102,"value":7158},"  publicKey ",{"type":3097,"tag":3380,"props":7160,"children":7161},{"style":3531},[7162],{"type":3102,"value":7034},{"type":3097,"tag":3380,"props":7164,"children":7165},{"style":6980},[7166],{"type":3102,"value":7102},{"type":3097,"tag":3380,"props":7168,"children":7169},{"style":3454},[7170],{"type":3102,"value":5392},{"type":3097,"tag":3380,"props":7172,"children":7173},{"class":3382,"line":3831},[7174,7179,7184,7188],{"type":3097,"tag":3380,"props":7175,"children":7176},{"style":6980},[7177],{"type":3102,"value":7178},"  counter",{"type":3097,"tag":3380,"props":7180,"children":7181},{"style":3531},[7182],{"type":3102,"value":7183}," INTEGER",{"type":3097,"tag":3380,"props":7185,"children":7186},{"style":6980},[7187],{"type":3102,"value":7102},{"type":3097,"tag":3380,"props":7189,"children":7190},{"style":3454},[7191],{"type":3102,"value":5392},{"type":3097,"tag":3380,"props":7193,"children":7194},{"class":3382,"line":3085},[7195,7200,7204,7208],{"type":3097,"tag":3380,"props":7196,"children":7197},{"style":3454},[7198],{"type":3102,"value":7199},"  backedUp ",{"type":3097,"tag":3380,"props":7201,"children":7202},{"style":3531},[7203],{"type":3102,"value":7011},{"type":3097,"tag":3380,"props":7205,"children":7206},{"style":6980},[7207],{"type":3102,"value":7102},{"type":3097,"tag":3380,"props":7209,"children":7210},{"style":3454},[7211],{"type":3102,"value":5392},{"type":3097,"tag":3380,"props":7213,"children":7214},{"class":3382,"line":3868},[7215,7220,7224,7228],{"type":3097,"tag":3380,"props":7216,"children":7217},{"style":3454},[7218],{"type":3102,"value":7219},"  transports ",{"type":3097,"tag":3380,"props":7221,"children":7222},{"style":3531},[7223],{"type":3102,"value":7034},{"type":3097,"tag":3380,"props":7225,"children":7226},{"style":6980},[7227],{"type":3102,"value":7102},{"type":3097,"tag":3380,"props":7229,"children":7230},{"style":3454},[7231],{"type":3102,"value":5392},{"type":3097,"tag":3380,"props":7233,"children":7234},{"class":3382,"line":3901},[7235,7240,7244,7248,7253,7257,7262,7266,7271,7275],{"type":3097,"tag":3380,"props":7236,"children":7237},{"style":3531},[7238],{"type":3102,"value":7239},"  PRIMARY KEY",{"type":3097,"tag":3380,"props":7241,"children":7242},{"style":3454},[7243],{"type":3102,"value":4471},{"type":3097,"tag":3380,"props":7245,"children":7246},{"style":3459},[7247],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":7249,"children":7250},{"style":3392},[7251],{"type":3102,"value":7252},"userId",{"type":3097,"tag":3380,"props":7254,"children":7255},{"style":3459},[7256],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":7258,"children":7259},{"style":3454},[7260],{"type":3102,"value":7261},", ",{"type":3097,"tag":3380,"props":7263,"children":7264},{"style":3459},[7265],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":7267,"children":7268},{"style":3392},[7269],{"type":3102,"value":7270},"id",{"type":3097,"tag":3380,"props":7272,"children":7273},{"style":3459},[7274],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":7276,"children":7277},{"style":3454},[7278],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":7280,"children":7281},{"class":3382,"line":3956},[7282],{"type":3097,"tag":3380,"props":7283,"children":7284},{"style":3454},[7285],{"type":3102,"value":7047},{"type":3097,"tag":3154,"props":7287,"children":7288},{},[7289,7302],{"type":3097,"tag":3158,"props":7290,"children":7291},{},[7292,7294,7300],{"type":3102,"value":7293},"For the ",{"type":3097,"tag":3242,"props":7295,"children":7297},{"className":7296},[],[7298],{"type":3102,"value":7299},"users",{"type":3102,"value":7301}," 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":3097,"tag":3158,"props":7303,"children":7304},{},[7305,7306,7312,7314],{"type":3102,"value":5250},{"type":3097,"tag":3242,"props":7307,"children":7309},{"className":7308},[],[7310],{"type":3102,"value":7311},"credentials",{"type":3102,"value":7313}," table stores:\n",{"type":3097,"tag":3154,"props":7315,"children":7316},{},[7317,7335,7347,7357,7386,7407],{"type":3097,"tag":3158,"props":7318,"children":7319},{},[7320,7321,7326,7328,7333],{"type":3102,"value":5250},{"type":3097,"tag":3242,"props":7322,"children":7324},{"className":7323},[],[7325],{"type":3102,"value":7252},{"type":3102,"value":7327}," from the ",{"type":3097,"tag":3242,"props":7329,"children":7331},{"className":7330},[],[7332],{"type":3102,"value":7299},{"type":3102,"value":7334}," table.",{"type":3097,"tag":3158,"props":7336,"children":7337},{},[7338,7340,7345],{"type":3102,"value":7339},"The credential ",{"type":3097,"tag":3242,"props":7341,"children":7343},{"className":7342},[],[7344],{"type":3102,"value":7270},{"type":3102,"value":7346}," (as unique index)",{"type":3097,"tag":3158,"props":7348,"children":7349},{},[7350,7351],{"type":3102,"value":7339},{"type":3097,"tag":3242,"props":7352,"children":7354},{"className":7353},[],[7355],{"type":3102,"value":7356},"publicKey",{"type":3097,"tag":3158,"props":7358,"children":7359},{},[7360,7362,7368,7370,7375,7377,7384],{"type":3102,"value":7361},"A ",{"type":3097,"tag":3242,"props":7363,"children":7365},{"className":7364},[],[7366],{"type":3102,"value":7367},"counter",{"type":3102,"value":7369},". Each time a credential is used, the counter is incremented. We can use this value to perform extra security checks. More about ",{"type":3097,"tag":3242,"props":7371,"children":7373},{"className":7372},[],[7374],{"type":3102,"value":7367},{"type":3102,"value":7376}," can be read ",{"type":3097,"tag":3108,"props":7378,"children":7381},{"href":7379,"rel":7380},"https:\u002F\u002Fsimplewebauthn.dev\u002Fdocs\u002Fpackages\u002Fserver#3-post-registration-responsibilities",[3112],[7382],{"type":3102,"value":7383},"here",{"type":3102,"value":7385},". For this example, we won't be using the counter. But you should update the counter in your database with the new value.",{"type":3097,"tag":3158,"props":7387,"children":7388},{},[7389,7390,7396,7398,7405],{"type":3102,"value":7361},{"type":3097,"tag":3242,"props":7391,"children":7393},{"className":7392},[],[7394],{"type":3102,"value":7395},"backedUp",{"type":3102,"value":7397}," 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":3097,"tag":3108,"props":7399,"children":7402},{"href":7400,"rel":7401},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fugaemxot",[3112],[7403],{"type":3102,"value":7404},"this section",{"type":3102,"value":7406}," for more details.",{"type":3097,"tag":3158,"props":7408,"children":7409},{},[7410,7411,7417,7419,7425],{"type":3102,"value":7339},{"type":3097,"tag":3242,"props":7412,"children":7414},{"className":7413},[],[7415],{"type":3102,"value":7416},"transports",{"type":3102,"value":7418},". 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":3097,"tag":3108,"props":7420,"children":7423},{"href":7421,"rel":7422},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fycxtiorp",[3112],[7424],{"type":3102,"value":7404},{"type":3102,"value":7406},{"type":3097,"tag":3104,"props":7427,"children":7428},{},[7429,7431,7438,7439,7446,7448,7455],{"type":3102,"value":7430},"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":3097,"tag":3108,"props":7432,"children":7435},{"href":7433,"rel":7434},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fregister.post.ts",[3112],[7436],{"type":3102,"value":7437},"registration",{"type":3102,"value":7261},{"type":3097,"tag":3108,"props":7440,"children":7443},{"href":7441,"rel":7442},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts",[3112],[7444],{"type":3102,"value":7445},"authentication",{"type":3102,"value":7447}," and the ",{"type":3097,"tag":3108,"props":7449,"children":7452},{"href":7450,"rel":7451},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fplugins\u002Fdatabase.ts",[3112],[7453],{"type":3102,"value":7454},"database setup",{"type":3102,"value":3335},{"type":3097,"tag":3370,"props":7457,"children":7459},{"className":4058,"code":7458,"language":4060,"meta":2970,"style":2970},"\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",[7460],{"type":3097,"tag":3242,"props":7461,"children":7462},{"__ignoreMap":2970},[7463,7471,7511,7535,7543,7581,7589,7597,7605,7641,7730,7800,7807,7814,7822,7850,7858,7900,7932,7939,7987,7995,8003,8028,8035,8043,8090,8119,8127,8167,8174,8182,8191,8223,8231,8240,8268,8284,8309,8318,8352,8364,8372],{"type":3097,"tag":3380,"props":7464,"children":7465},{"class":3382,"line":3056},[7466],{"type":3097,"tag":3380,"props":7467,"children":7468},{"style":3445},[7469],{"type":3102,"value":7470},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fregister.post.ts\n",{"type":3097,"tag":3380,"props":7472,"children":7473},{"class":3382,"line":3022},[7474,7479,7483,7488,7493,7498,7502,7507],{"type":3097,"tag":3380,"props":7475,"children":7476},{"style":4642},[7477],{"type":3102,"value":7478},"import",{"type":3097,"tag":3380,"props":7480,"children":7481},{"style":3459},[7482],{"type":3102,"value":3552},{"type":3097,"tag":3380,"props":7484,"children":7485},{"style":3454},[7486],{"type":3102,"value":7487}," z",{"type":3097,"tag":3380,"props":7489,"children":7490},{"style":3459},[7491],{"type":3102,"value":7492}," }",{"type":3097,"tag":3380,"props":7494,"children":7495},{"style":4642},[7496],{"type":3102,"value":7497}," from",{"type":3097,"tag":3380,"props":7499,"children":7500},{"style":3459},[7501],{"type":3102,"value":4703},{"type":3097,"tag":3380,"props":7503,"children":7504},{"style":3392},[7505],{"type":3102,"value":7506},"zod",{"type":3097,"tag":3380,"props":7508,"children":7509},{"style":3459},[7510],{"type":3102,"value":4712},{"type":3097,"tag":3380,"props":7512,"children":7513},{"class":3382,"line":3006},[7514,7518,7522,7527,7531],{"type":3097,"tag":3380,"props":7515,"children":7516},{"style":4642},[7517],{"type":3102,"value":5176},{"type":3097,"tag":3380,"props":7519,"children":7520},{"style":4642},[7521],{"type":3102,"value":5291},{"type":3097,"tag":3380,"props":7523,"children":7524},{"style":3616},[7525],{"type":3102,"value":7526}," defineWebAuthnRegisterEventHandler",{"type":3097,"tag":3380,"props":7528,"children":7529},{"style":3454},[7530],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":7532,"children":7533},{"style":3459},[7534],{"type":3102,"value":5306},{"type":3097,"tag":3380,"props":7536,"children":7537},{"class":3382,"line":3643},[7538],{"type":3097,"tag":3380,"props":7539,"children":7540},{"style":3445},[7541],{"type":3102,"value":7542},"  \u002F\u002F optional\n",{"type":3097,"tag":3380,"props":7544,"children":7545},{"class":3382,"line":3652},[7546,7550,7555,7559,7564,7568,7573,7577],{"type":3097,"tag":3380,"props":7547,"children":7548},{"style":3531},[7549],{"type":3102,"value":5844},{"type":3097,"tag":3380,"props":7551,"children":7552},{"style":3525},[7553],{"type":3102,"value":7554}," validateUser",{"type":3097,"tag":3380,"props":7556,"children":7557},{"style":3459},[7558],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":7560,"children":7561},{"style":4474},[7562],{"type":3102,"value":7563},"userBody",{"type":3097,"tag":3380,"props":7565,"children":7566},{"style":3459},[7567],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":7569,"children":7570},{"style":4474},[7571],{"type":3102,"value":7572}," event",{"type":3097,"tag":3380,"props":7574,"children":7575},{"style":3459},[7576],{"type":3102,"value":6062},{"type":3097,"tag":3380,"props":7578,"children":7579},{"style":3459},[7580],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":7582,"children":7583},{"class":3382,"line":3669},[7584],{"type":3097,"tag":3380,"props":7585,"children":7586},{"style":3445},[7587],{"type":3102,"value":7588},"    \u002F\u002F bonus: check if the user is already authenticated to link a credential to his account\n",{"type":3097,"tag":3380,"props":7590,"children":7591},{"class":3382,"line":3002},[7592],{"type":3097,"tag":3380,"props":7593,"children":7594},{"style":3445},[7595],{"type":3102,"value":7596},"    \u002F\u002F We first check if the user is already authenticated by getting the session\n",{"type":3097,"tag":3380,"props":7598,"children":7599},{"class":3382,"line":2998},[7600],{"type":3097,"tag":3380,"props":7601,"children":7602},{"style":3445},[7603],{"type":3102,"value":7604},"    \u002F\u002F And verify that the email is the same as the one in session\n",{"type":3097,"tag":3380,"props":7606,"children":7607},{"class":3382,"line":2994},[7608,7613,7617,7621,7625,7629,7633,7637],{"type":3097,"tag":3380,"props":7609,"children":7610},{"style":3531},[7611],{"type":3102,"value":7612},"    const",{"type":3097,"tag":3380,"props":7614,"children":7615},{"style":3454},[7616],{"type":3102,"value":3576},{"type":3097,"tag":3380,"props":7618,"children":7619},{"style":3459},[7620],{"type":3102,"value":3613},{"type":3097,"tag":3380,"props":7622,"children":7623},{"style":4642},[7624],{"type":3102,"value":4898},{"type":3097,"tag":3380,"props":7626,"children":7627},{"style":3616},[7628],{"type":3102,"value":4903},{"type":3097,"tag":3380,"props":7630,"children":7631},{"style":3525},[7632],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":7634,"children":7635},{"style":3454},[7636],{"type":3102,"value":5858},{"type":3097,"tag":3380,"props":7638,"children":7639},{"style":3525},[7640],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":7642,"children":7643},{"class":3382,"line":3831},[7644,7649,7653,7658,7662,7667,7672,7677,7682,7686,7690,7694,7698,7702,7707,7712,7716,7721,7726],{"type":3097,"tag":3380,"props":7645,"children":7646},{"style":4642},[7647],{"type":3102,"value":7648},"    if",{"type":3097,"tag":3380,"props":7650,"children":7651},{"style":3525},[7652],{"type":3102,"value":4471},{"type":3097,"tag":3380,"props":7654,"children":7655},{"style":3454},[7656],{"type":3102,"value":7657},"session",{"type":3097,"tag":3380,"props":7659,"children":7660},{"style":3459},[7661],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":7663,"children":7664},{"style":3454},[7665],{"type":3102,"value":7666},"user",{"type":3097,"tag":3380,"props":7668,"children":7669},{"style":3459},[7670],{"type":3102,"value":7671},"?.",{"type":3097,"tag":3380,"props":7673,"children":7674},{"style":3454},[7675],{"type":3102,"value":7676},"email",{"type":3097,"tag":3380,"props":7678,"children":7679},{"style":3459},[7680],{"type":3102,"value":7681}," &&",{"type":3097,"tag":3380,"props":7683,"children":7684},{"style":3454},[7685],{"type":3102,"value":3576},{"type":3097,"tag":3380,"props":7687,"children":7688},{"style":3459},[7689],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":7691,"children":7692},{"style":3454},[7693],{"type":3102,"value":7666},{"type":3097,"tag":3380,"props":7695,"children":7696},{"style":3459},[7697],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":7699,"children":7700},{"style":3454},[7701],{"type":3102,"value":7676},{"type":3097,"tag":3380,"props":7703,"children":7704},{"style":3459},[7705],{"type":3102,"value":7706}," !==",{"type":3097,"tag":3380,"props":7708,"children":7709},{"style":3454},[7710],{"type":3102,"value":7711}," userBody",{"type":3097,"tag":3380,"props":7713,"children":7714},{"style":3459},[7715],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":7717,"children":7718},{"style":3454},[7719],{"type":3102,"value":7720},"userName",{"type":3097,"tag":3380,"props":7722,"children":7723},{"style":3525},[7724],{"type":3102,"value":7725},") ",{"type":3097,"tag":3380,"props":7727,"children":7728},{"style":3459},[7729],{"type":3102,"value":5306},{"type":3097,"tag":3380,"props":7731,"children":7732},{"class":3382,"line":3085},[7733,7738,7743,7747,7752,7757,7761,7766,7770,7775,7779,7783,7788,7792,7796],{"type":3097,"tag":3380,"props":7734,"children":7735},{"style":4642},[7736],{"type":3102,"value":7737},"      throw",{"type":3097,"tag":3380,"props":7739,"children":7740},{"style":3616},[7741],{"type":3102,"value":7742}," createError",{"type":3097,"tag":3380,"props":7744,"children":7745},{"style":3525},[7746],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":7748,"children":7749},{"style":3459},[7750],{"type":3102,"value":7751},"{",{"type":3097,"tag":3380,"props":7753,"children":7754},{"style":3525},[7755],{"type":3102,"value":7756}," statusCode",{"type":3097,"tag":3380,"props":7758,"children":7759},{"style":3459},[7760],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":7762,"children":7763},{"style":6980},[7764],{"type":3102,"value":7765}," 400",{"type":3097,"tag":3380,"props":7767,"children":7768},{"style":3459},[7769],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":7771,"children":7772},{"style":3525},[7773],{"type":3102,"value":7774}," message",{"type":3097,"tag":3380,"props":7776,"children":7777},{"style":3459},[7778],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":7780,"children":7781},{"style":3459},[7782],{"type":3102,"value":4703},{"type":3097,"tag":3380,"props":7784,"children":7785},{"style":3392},[7786],{"type":3102,"value":7787},"Email not matching curent session",{"type":3097,"tag":3380,"props":7789,"children":7790},{"style":3459},[7791],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":7793,"children":7794},{"style":3459},[7795],{"type":3102,"value":7492},{"type":3097,"tag":3380,"props":7797,"children":7798},{"style":3525},[7799],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":7801,"children":7802},{"class":3382,"line":3868},[7803],{"type":3097,"tag":3380,"props":7804,"children":7805},{"style":3459},[7806],{"type":3102,"value":5432},{"type":3097,"tag":3380,"props":7808,"children":7809},{"class":3382,"line":3901},[7810],{"type":3097,"tag":3380,"props":7811,"children":7812},{"emptyLinePlaceholder":1196},[7813],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":7815,"children":7816},{"class":3382,"line":3956},[7817],{"type":3097,"tag":3380,"props":7818,"children":7819},{"style":3445},[7820],{"type":3102,"value":7821},"    \u002F\u002F If he registers a new account with credentials\n",{"type":3097,"tag":3380,"props":7823,"children":7824},{"class":3382,"line":3965},[7825,7829,7833,7837,7842,7846],{"type":3097,"tag":3380,"props":7826,"children":7827},{"style":4642},[7828],{"type":3102,"value":5983},{"type":3097,"tag":3380,"props":7830,"children":7831},{"style":3454},[7832],{"type":3102,"value":7487},{"type":3097,"tag":3380,"props":7834,"children":7835},{"style":3459},[7836],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":7838,"children":7839},{"style":3616},[7840],{"type":3102,"value":7841},"object",{"type":3097,"tag":3380,"props":7843,"children":7844},{"style":3525},[7845],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":7847,"children":7848},{"style":3459},[7849],{"type":3102,"value":5306},{"type":3097,"tag":3380,"props":7851,"children":7852},{"class":3382,"line":2990},[7853],{"type":3097,"tag":3380,"props":7854,"children":7855},{"style":3445},[7856],{"type":3102,"value":7857},"      \u002F\u002F we want the userName to be a valid email\n",{"type":3097,"tag":3380,"props":7859,"children":7860},{"class":3382,"line":4033},[7861,7866,7870,7874,7878,7883,7888,7892,7896],{"type":3097,"tag":3380,"props":7862,"children":7863},{"style":3525},[7864],{"type":3102,"value":7865},"      userName",{"type":3097,"tag":3380,"props":7867,"children":7868},{"style":3459},[7869],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":7871,"children":7872},{"style":3454},[7873],{"type":3102,"value":7487},{"type":3097,"tag":3380,"props":7875,"children":7876},{"style":3459},[7877],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":7879,"children":7880},{"style":3616},[7881],{"type":3102,"value":7882},"string",{"type":3097,"tag":3380,"props":7884,"children":7885},{"style":3525},[7886],{"type":3102,"value":7887},"()",{"type":3097,"tag":3380,"props":7889,"children":7890},{"style":3459},[7891],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":7893,"children":7894},{"style":3616},[7895],{"type":3102,"value":7676},{"type":3097,"tag":3380,"props":7897,"children":7898},{"style":3525},[7899],{"type":3102,"value":3624},{"type":3097,"tag":3380,"props":7901,"children":7902},{"class":3382,"line":4303},[7903,7907,7911,7915,7920,7924,7928],{"type":3097,"tag":3380,"props":7904,"children":7905},{"style":3459},[7906],{"type":3102,"value":5971},{"type":3097,"tag":3380,"props":7908,"children":7909},{"style":3525},[7910],{"type":3102,"value":6062},{"type":3097,"tag":3380,"props":7912,"children":7913},{"style":3459},[7914],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":7916,"children":7917},{"style":3616},[7918],{"type":3102,"value":7919},"parse",{"type":3097,"tag":3380,"props":7921,"children":7922},{"style":3525},[7923],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":7925,"children":7926},{"style":3454},[7927],{"type":3102,"value":7563},{"type":3097,"tag":3380,"props":7929,"children":7930},{"style":3525},[7931],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":7933,"children":7934},{"class":3382,"line":4311},[7935],{"type":3097,"tag":3380,"props":7936,"children":7937},{"style":3459},[7938],{"type":3102,"value":4720},{"type":3097,"tag":3380,"props":7940,"children":7941},{"class":3382,"line":4320},[7942,7946,7950,7954,7958,7962,7966,7971,7975,7979,7983],{"type":3097,"tag":3380,"props":7943,"children":7944},{"style":3531},[7945],{"type":3102,"value":5844},{"type":3097,"tag":3380,"props":7947,"children":7948},{"style":3525},[7949],{"type":3102,"value":5849},{"type":3097,"tag":3380,"props":7951,"children":7952},{"style":3459},[7953],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":7955,"children":7956},{"style":4474},[7957],{"type":3102,"value":5858},{"type":3097,"tag":3380,"props":7959,"children":7960},{"style":3459},[7961],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":7963,"children":7964},{"style":3459},[7965],{"type":3102,"value":3552},{"type":3097,"tag":3380,"props":7967,"children":7968},{"style":4474},[7969],{"type":3102,"value":7970}," credential",{"type":3097,"tag":3380,"props":7972,"children":7973},{"style":3459},[7974],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":7976,"children":7977},{"style":4474},[7978],{"type":3102,"value":3567},{"type":3097,"tag":3380,"props":7980,"children":7981},{"style":3459},[7982],{"type":3102,"value":4540},{"type":3097,"tag":3380,"props":7984,"children":7985},{"style":3459},[7986],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":7988,"children":7989},{"class":3382,"line":4328},[7990],{"type":3097,"tag":3380,"props":7991,"children":7992},{"style":3445},[7993],{"type":3102,"value":7994},"    \u002F\u002F The credential creation has been successful\n",{"type":3097,"tag":3380,"props":7996,"children":7997},{"class":3382,"line":4369},[7998],{"type":3097,"tag":3380,"props":7999,"children":8000},{"style":3445},[8001],{"type":3102,"value":8002},"    \u002F\u002F We need to create a user if it does not exist\n",{"type":3097,"tag":3380,"props":8004,"children":8005},{"class":3382,"line":4377},[8006,8010,8015,8019,8024],{"type":3097,"tag":3380,"props":8007,"children":8008},{"style":3531},[8009],{"type":3102,"value":7612},{"type":3097,"tag":3380,"props":8011,"children":8012},{"style":3454},[8013],{"type":3102,"value":8014}," db",{"type":3097,"tag":3380,"props":8016,"children":8017},{"style":3459},[8018],{"type":3102,"value":3613},{"type":3097,"tag":3380,"props":8020,"children":8021},{"style":3616},[8022],{"type":3102,"value":8023}," useDatabase",{"type":3097,"tag":3380,"props":8025,"children":8026},{"style":3525},[8027],{"type":3102,"value":3624},{"type":3097,"tag":3380,"props":8029,"children":8030},{"class":3382,"line":4386},[8031],{"type":3097,"tag":3380,"props":8032,"children":8033},{"emptyLinePlaceholder":1196},[8034],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":8036,"children":8037},{"class":3382,"line":4394},[8038],{"type":3097,"tag":3380,"props":8039,"children":8040},{"style":3445},[8041],{"type":3102,"value":8042},"    \u002F\u002F Get the user from the database\n",{"type":3097,"tag":3380,"props":8044,"children":8045},{"class":3382,"line":4431},[8046,8051,8056,8060,8064,8068,8072,8076,8081,8085],{"type":3097,"tag":3380,"props":8047,"children":8048},{"style":3531},[8049],{"type":3102,"value":8050},"    let",{"type":3097,"tag":3380,"props":8052,"children":8053},{"style":3454},[8054],{"type":3102,"value":8055}," dbUser",{"type":3097,"tag":3380,"props":8057,"children":8058},{"style":3459},[8059],{"type":3102,"value":3613},{"type":3097,"tag":3380,"props":8061,"children":8062},{"style":4642},[8063],{"type":3102,"value":4898},{"type":3097,"tag":3380,"props":8065,"children":8066},{"style":3454},[8067],{"type":3102,"value":8014},{"type":3097,"tag":3380,"props":8069,"children":8070},{"style":3459},[8071],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":8073,"children":8074},{"style":3616},[8075],{"type":3102,"value":6970},{"type":3097,"tag":3380,"props":8077,"children":8078},{"style":3459},[8079],{"type":3102,"value":8080},"`",{"type":3097,"tag":3380,"props":8082,"children":8083},{"style":3392},[8084],{"type":3102,"value":5383},{"type":3097,"tag":3380,"props":8086,"children":8087},{"style":3459},[8088],{"type":3102,"value":8089},"`\n",{"type":3097,"tag":3380,"props":8091,"children":8092},{"class":3382,"line":4439},[8093,8097,8101,8106,8111,8115],{"type":3097,"tag":3380,"props":8094,"children":8095},{"style":4642},[8096],{"type":3102,"value":7648},{"type":3097,"tag":3380,"props":8098,"children":8099},{"style":3525},[8100],{"type":3102,"value":4471},{"type":3097,"tag":3380,"props":8102,"children":8103},{"style":3459},[8104],{"type":3102,"value":8105},"!",{"type":3097,"tag":3380,"props":8107,"children":8108},{"style":3454},[8109],{"type":3102,"value":8110},"dbUser",{"type":3097,"tag":3380,"props":8112,"children":8113},{"style":3525},[8114],{"type":3102,"value":7725},{"type":3097,"tag":3380,"props":8116,"children":8117},{"style":3459},[8118],{"type":3102,"value":5306},{"type":3097,"tag":3380,"props":8120,"children":8121},{"class":3382,"line":4448},[8122],{"type":3097,"tag":3380,"props":8123,"children":8124},{"style":3445},[8125],{"type":3102,"value":8126},"      \u002F\u002F Store new user in database & its credentials\n",{"type":3097,"tag":3380,"props":8128,"children":8129},{"class":3382,"line":4456},[8130,8135,8139,8143,8147,8151,8155,8159,8163],{"type":3097,"tag":3380,"props":8131,"children":8132},{"style":3454},[8133],{"type":3102,"value":8134},"      dbUser",{"type":3097,"tag":3380,"props":8136,"children":8137},{"style":3459},[8138],{"type":3102,"value":3613},{"type":3097,"tag":3380,"props":8140,"children":8141},{"style":4642},[8142],{"type":3102,"value":4898},{"type":3097,"tag":3380,"props":8144,"children":8145},{"style":3454},[8146],{"type":3102,"value":8014},{"type":3097,"tag":3380,"props":8148,"children":8149},{"style":3459},[8150],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":8152,"children":8153},{"style":3616},[8154],{"type":3102,"value":6970},{"type":3097,"tag":3380,"props":8156,"children":8157},{"style":3459},[8158],{"type":3102,"value":8080},{"type":3097,"tag":3380,"props":8160,"children":8161},{"style":3392},[8162],{"type":3102,"value":5383},{"type":3097,"tag":3380,"props":8164,"children":8165},{"style":3459},[8166],{"type":3102,"value":8089},{"type":3097,"tag":3380,"props":8168,"children":8169},{"class":3382,"line":4552},[8170],{"type":3097,"tag":3380,"props":8171,"children":8172},{"style":3459},[8173],{"type":3102,"value":5432},{"type":3097,"tag":3380,"props":8175,"children":8177},{"class":3382,"line":8176},31,[8178],{"type":3097,"tag":3380,"props":8179,"children":8180},{"emptyLinePlaceholder":1196},[8181],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":8183,"children":8185},{"class":3382,"line":8184},32,[8186],{"type":3097,"tag":3380,"props":8187,"children":8188},{"style":3445},[8189],{"type":3102,"value":8190},"    \u002F\u002F we now need to store the credential in our database and link it to the user\n",{"type":3097,"tag":3380,"props":8192,"children":8194},{"class":3382,"line":8193},33,[8195,8199,8203,8207,8211,8215,8219],{"type":3097,"tag":3380,"props":8196,"children":8197},{"style":4642},[8198],{"type":3102,"value":5895},{"type":3097,"tag":3380,"props":8200,"children":8201},{"style":3454},[8202],{"type":3102,"value":8014},{"type":3097,"tag":3380,"props":8204,"children":8205},{"style":3459},[8206],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":8208,"children":8209},{"style":3616},[8210],{"type":3102,"value":6970},{"type":3097,"tag":3380,"props":8212,"children":8213},{"style":3459},[8214],{"type":3102,"value":8080},{"type":3097,"tag":3380,"props":8216,"children":8217},{"style":3392},[8218],{"type":3102,"value":5383},{"type":3097,"tag":3380,"props":8220,"children":8221},{"style":3459},[8222],{"type":3102,"value":8089},{"type":3097,"tag":3380,"props":8224,"children":8226},{"class":3382,"line":8225},34,[8227],{"type":3097,"tag":3380,"props":8228,"children":8229},{"emptyLinePlaceholder":1196},[8230],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":8232,"children":8234},{"class":3382,"line":8233},35,[8235],{"type":3097,"tag":3380,"props":8236,"children":8237},{"style":3445},[8238],{"type":3102,"value":8239},"    \u002F\u002F Set the user session\n",{"type":3097,"tag":3380,"props":8241,"children":8243},{"class":3382,"line":8242},36,[8244,8248,8252,8256,8260,8264],{"type":3097,"tag":3380,"props":8245,"children":8246},{"style":4642},[8247],{"type":3102,"value":5895},{"type":3097,"tag":3380,"props":8249,"children":8250},{"style":3616},[8251],{"type":3102,"value":4650},{"type":3097,"tag":3380,"props":8253,"children":8254},{"style":3525},[8255],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":8257,"children":8258},{"style":3454},[8259],{"type":3102,"value":5858},{"type":3097,"tag":3380,"props":8261,"children":8262},{"style":3459},[8263],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":8265,"children":8266},{"style":3459},[8267],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":8269,"children":8271},{"class":3382,"line":8270},37,[8272,8276,8280],{"type":3097,"tag":3380,"props":8273,"children":8274},{"style":3525},[8275],{"type":3102,"value":5923},{"type":3097,"tag":3380,"props":8277,"children":8278},{"style":3459},[8279],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":8281,"children":8282},{"style":3459},[8283],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":8285,"children":8287},{"class":3382,"line":8286},38,[8288,8293,8297,8301,8305],{"type":3097,"tag":3380,"props":8289,"children":8290},{"style":3525},[8291],{"type":3102,"value":8292},"        id",{"type":3097,"tag":3380,"props":8294,"children":8295},{"style":3459},[8296],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":8298,"children":8299},{"style":3454},[8300],{"type":3102,"value":8055},{"type":3097,"tag":3380,"props":8302,"children":8303},{"style":3459},[8304],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":8306,"children":8307},{"style":3454},[8308],{"type":3102,"value":5956},{"type":3097,"tag":3380,"props":8310,"children":8312},{"class":3382,"line":8311},39,[8313],{"type":3097,"tag":3380,"props":8314,"children":8315},{"style":3459},[8316],{"type":3102,"value":8317},"      },\n",{"type":3097,"tag":3380,"props":8319,"children":8321},{"class":3382,"line":8320},40,[8322,8327,8331,8335,8339,8344,8348],{"type":3097,"tag":3380,"props":8323,"children":8324},{"style":3525},[8325],{"type":3102,"value":8326},"      loggedInAt",{"type":3097,"tag":3380,"props":8328,"children":8329},{"style":3459},[8330],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":8332,"children":8333},{"style":3454},[8334],{"type":3102,"value":4806},{"type":3097,"tag":3380,"props":8336,"children":8337},{"style":3459},[8338],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":8340,"children":8341},{"style":3616},[8342],{"type":3102,"value":8343},"now",{"type":3097,"tag":3380,"props":8345,"children":8346},{"style":3525},[8347],{"type":3102,"value":7887},{"type":3097,"tag":3380,"props":8349,"children":8350},{"style":3459},[8351],{"type":3102,"value":5392},{"type":3097,"tag":3380,"props":8353,"children":8355},{"class":3382,"line":8354},41,[8356,8360],{"type":3097,"tag":3380,"props":8357,"children":8358},{"style":3459},[8359],{"type":3102,"value":5971},{"type":3097,"tag":3380,"props":8361,"children":8362},{"style":3525},[8363],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":8365,"children":8367},{"class":3382,"line":8366},42,[8368],{"type":3097,"tag":3380,"props":8369,"children":8370},{"style":3459},[8371],{"type":3102,"value":4720},{"type":3097,"tag":3380,"props":8373,"children":8375},{"class":3382,"line":8374},43,[8376,8380],{"type":3097,"tag":3380,"props":8377,"children":8378},{"style":3459},[8379],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":8381,"children":8382},{"style":3454},[8383],{"type":3102,"value":4822},{"type":3097,"tag":4560,"props":8385,"children":8386},{},[8387],{"type":3097,"tag":3104,"props":8388,"children":8389},{},[8390,8395,8397,8404,8406,8412,8414],{"type":3097,"tag":3380,"props":8391,"children":8392},{},[8393],{"type":3102,"value":8394},"!TIP",{"type":3102,"value":8396},"\nIf you want to plug in and use the ",{"type":3097,"tag":3108,"props":8398,"children":8401},{"href":8399,"rel":8400},"https:\u002F\u002Fgithub.com\u002Fpasskeydeveloper\u002Fpasskey-authenticator-aaguids",[3112],[8402],{"type":3102,"value":8403},"Community sourced list of AAGUIDS",{"type":3102,"value":8405}," to decorate your display of added passkeys, you can access the the ID via ",{"type":3097,"tag":3242,"props":8407,"children":8409},{"className":8408},[],[8410],{"type":3102,"value":8411},"credential.aaguid",{"type":3102,"value":8413}," inside ",{"type":3097,"tag":3242,"props":8415,"children":8417},{"className":8416},[],[8418],{"type":3102,"value":5235},{"type":3097,"tag":3370,"props":8420,"children":8422},{"className":4058,"code":8421,"language":4060,"meta":2970,"style":2970},"\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",[8423],{"type":3097,"tag":3242,"props":8424,"children":8425},{"__ignoreMap":2970},[8426,8434,8458,8466,8503,8551,8559,8591,8655,8662,8670,8678,8686,8698,8706,8713,8750,8758,8805,8812,8820,8844,8908,8915,8927,8934,8982,8990,8998,9021,9064,9071,9079,9110,9117,9124,9151,9166,9189,9196,9227,9238,9245],{"type":3097,"tag":3380,"props":8427,"children":8428},{"class":3382,"line":3056},[8429],{"type":3097,"tag":3380,"props":8430,"children":8431},{"style":3445},[8432],{"type":3102,"value":8433},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts\n",{"type":3097,"tag":3380,"props":8435,"children":8436},{"class":3382,"line":3022},[8437,8441,8445,8450,8454],{"type":3097,"tag":3380,"props":8438,"children":8439},{"style":4642},[8440],{"type":3102,"value":5176},{"type":3097,"tag":3380,"props":8442,"children":8443},{"style":4642},[8444],{"type":3102,"value":5291},{"type":3097,"tag":3380,"props":8446,"children":8447},{"style":3616},[8448],{"type":3102,"value":8449}," defineWebAuthnAuthenticateEventHandler",{"type":3097,"tag":3380,"props":8451,"children":8452},{"style":3454},[8453],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":8455,"children":8456},{"style":3459},[8457],{"type":3102,"value":5306},{"type":3097,"tag":3380,"props":8459,"children":8460},{"class":3382,"line":3006},[8461],{"type":3097,"tag":3380,"props":8462,"children":8463},{"style":3445},[8464],{"type":3102,"value":8465},"  \u002F\u002F Optionally, we can prefetch the credentials if the user gives their userName during login\n",{"type":3097,"tag":3380,"props":8467,"children":8468},{"class":3382,"line":3643},[8469,8473,8478,8482,8486,8490,8495,8499],{"type":3097,"tag":3380,"props":8470,"children":8471},{"style":3531},[8472],{"type":3102,"value":5844},{"type":3097,"tag":3380,"props":8474,"children":8475},{"style":3525},[8476],{"type":3102,"value":8477}," allowCredentials",{"type":3097,"tag":3380,"props":8479,"children":8480},{"style":3459},[8481],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":8483,"children":8484},{"style":4474},[8485],{"type":3102,"value":5858},{"type":3097,"tag":3380,"props":8487,"children":8488},{"style":3459},[8489],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":8491,"children":8492},{"style":4474},[8493],{"type":3102,"value":8494}," userName",{"type":3097,"tag":3380,"props":8496,"children":8497},{"style":3459},[8498],{"type":3102,"value":6062},{"type":3097,"tag":3380,"props":8500,"children":8501},{"style":3459},[8502],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":8504,"children":8505},{"class":3382,"line":3652},[8506,8510,8515,8519,8523,8527,8531,8535,8539,8543,8547],{"type":3097,"tag":3380,"props":8507,"children":8508},{"style":3531},[8509],{"type":3102,"value":7612},{"type":3097,"tag":3380,"props":8511,"children":8512},{"style":3454},[8513],{"type":3102,"value":8514}," credentials",{"type":3097,"tag":3380,"props":8516,"children":8517},{"style":3459},[8518],{"type":3102,"value":3613},{"type":3097,"tag":3380,"props":8520,"children":8521},{"style":4642},[8522],{"type":3102,"value":4898},{"type":3097,"tag":3380,"props":8524,"children":8525},{"style":3616},[8526],{"type":3102,"value":8023},{"type":3097,"tag":3380,"props":8528,"children":8529},{"style":3525},[8530],{"type":3102,"value":7887},{"type":3097,"tag":3380,"props":8532,"children":8533},{"style":3459},[8534],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":8536,"children":8537},{"style":3616},[8538],{"type":3102,"value":6970},{"type":3097,"tag":3380,"props":8540,"children":8541},{"style":3459},[8542],{"type":3102,"value":8080},{"type":3097,"tag":3380,"props":8544,"children":8545},{"style":3392},[8546],{"type":3102,"value":5383},{"type":3097,"tag":3380,"props":8548,"children":8549},{"style":3459},[8550],{"type":3102,"value":8089},{"type":3097,"tag":3380,"props":8552,"children":8553},{"class":3382,"line":3669},[8554],{"type":3097,"tag":3380,"props":8555,"children":8556},{"style":3445},[8557],{"type":3102,"value":8558},"    \u002F\u002F If no credentials are found, the authentication cannot be completed\n",{"type":3097,"tag":3380,"props":8560,"children":8561},{"class":3382,"line":3002},[8562,8566,8570,8574,8578,8582,8587],{"type":3097,"tag":3380,"props":8563,"children":8564},{"style":4642},[8565],{"type":3102,"value":7648},{"type":3097,"tag":3380,"props":8567,"children":8568},{"style":3525},[8569],{"type":3102,"value":4471},{"type":3097,"tag":3380,"props":8571,"children":8572},{"style":3459},[8573],{"type":3102,"value":8105},{"type":3097,"tag":3380,"props":8575,"children":8576},{"style":3454},[8577],{"type":3102,"value":7311},{"type":3097,"tag":3380,"props":8579,"children":8580},{"style":3459},[8581],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":8583,"children":8584},{"style":3454},[8585],{"type":3102,"value":8586},"length",{"type":3097,"tag":3380,"props":8588,"children":8589},{"style":3525},[8590],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":8592,"children":8593},{"class":3382,"line":2998},[8594,8598,8602,8606,8610,8614,8618,8622,8626,8630,8634,8638,8643,8647,8651],{"type":3097,"tag":3380,"props":8595,"children":8596},{"style":4642},[8597],{"type":3102,"value":7737},{"type":3097,"tag":3380,"props":8599,"children":8600},{"style":3616},[8601],{"type":3102,"value":7742},{"type":3097,"tag":3380,"props":8603,"children":8604},{"style":3525},[8605],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":8607,"children":8608},{"style":3459},[8609],{"type":3102,"value":7751},{"type":3097,"tag":3380,"props":8611,"children":8612},{"style":3525},[8613],{"type":3102,"value":7756},{"type":3097,"tag":3380,"props":8615,"children":8616},{"style":3459},[8617],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":8619,"children":8620},{"style":6980},[8621],{"type":3102,"value":7765},{"type":3097,"tag":3380,"props":8623,"children":8624},{"style":3459},[8625],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":8627,"children":8628},{"style":3525},[8629],{"type":3102,"value":7774},{"type":3097,"tag":3380,"props":8631,"children":8632},{"style":3459},[8633],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":8635,"children":8636},{"style":3459},[8637],{"type":3102,"value":4703},{"type":3097,"tag":3380,"props":8639,"children":8640},{"style":3392},[8641],{"type":3102,"value":8642},"User not found",{"type":3097,"tag":3380,"props":8644,"children":8645},{"style":3459},[8646],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":8648,"children":8649},{"style":3459},[8650],{"type":3102,"value":7492},{"type":3097,"tag":3380,"props":8652,"children":8653},{"style":3525},[8654],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":8656,"children":8657},{"class":3382,"line":2994},[8658],{"type":3097,"tag":3380,"props":8659,"children":8660},{"emptyLinePlaceholder":1196},[8661],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":8663,"children":8664},{"class":3382,"line":3831},[8665],{"type":3097,"tag":3380,"props":8666,"children":8667},{"style":3445},[8668],{"type":3102,"value":8669},"    \u002F\u002F If user is found, only allow credentials that are registered\n",{"type":3097,"tag":3380,"props":8671,"children":8672},{"class":3382,"line":3085},[8673],{"type":3097,"tag":3380,"props":8674,"children":8675},{"style":3445},[8676],{"type":3102,"value":8677},"    \u002F\u002F The browser will automatically try to use the credential that it knows about\n",{"type":3097,"tag":3380,"props":8679,"children":8680},{"class":3382,"line":3868},[8681],{"type":3097,"tag":3380,"props":8682,"children":8683},{"style":3445},[8684],{"type":3102,"value":8685},"    \u002F\u002F Skipping the step for the user to select a credential for a better user experience\n",{"type":3097,"tag":3380,"props":8687,"children":8688},{"class":3382,"line":3901},[8689,8693],{"type":3097,"tag":3380,"props":8690,"children":8691},{"style":4642},[8692],{"type":3102,"value":5983},{"type":3097,"tag":3380,"props":8694,"children":8695},{"style":3454},[8696],{"type":3102,"value":8697}," credentials\n",{"type":3097,"tag":3380,"props":8699,"children":8700},{"class":3382,"line":3956},[8701],{"type":3097,"tag":3380,"props":8702,"children":8703},{"style":3445},[8704],{"type":3102,"value":8705},"    \u002F\u002F example: [{ id: '...' }]\n",{"type":3097,"tag":3380,"props":8707,"children":8708},{"class":3382,"line":3965},[8709],{"type":3097,"tag":3380,"props":8710,"children":8711},{"style":3459},[8712],{"type":3102,"value":4720},{"type":3097,"tag":3380,"props":8714,"children":8715},{"class":3382,"line":2990},[8716,8720,8725,8729,8733,8737,8742,8746],{"type":3097,"tag":3380,"props":8717,"children":8718},{"style":3531},[8719],{"type":3102,"value":5844},{"type":3097,"tag":3380,"props":8721,"children":8722},{"style":3525},[8723],{"type":3102,"value":8724}," getCredential",{"type":3097,"tag":3380,"props":8726,"children":8727},{"style":3459},[8728],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":8730,"children":8731},{"style":4474},[8732],{"type":3102,"value":5858},{"type":3097,"tag":3380,"props":8734,"children":8735},{"style":3459},[8736],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":8738,"children":8739},{"style":4474},[8740],{"type":3102,"value":8741}," credentialId",{"type":3097,"tag":3380,"props":8743,"children":8744},{"style":3459},[8745],{"type":3102,"value":6062},{"type":3097,"tag":3380,"props":8747,"children":8748},{"style":3459},[8749],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":8751,"children":8752},{"class":3382,"line":4033},[8753],{"type":3097,"tag":3380,"props":8754,"children":8755},{"style":3445},[8756],{"type":3102,"value":8757},"    \u002F\u002F Look for the credential in our database\n",{"type":3097,"tag":3380,"props":8759,"children":8760},{"class":3382,"line":4303},[8761,8765,8769,8773,8777,8781,8785,8789,8793,8797,8801],{"type":3097,"tag":3380,"props":8762,"children":8763},{"style":3531},[8764],{"type":3102,"value":7612},{"type":3097,"tag":3380,"props":8766,"children":8767},{"style":3454},[8768],{"type":3102,"value":7970},{"type":3097,"tag":3380,"props":8770,"children":8771},{"style":3459},[8772],{"type":3102,"value":3613},{"type":3097,"tag":3380,"props":8774,"children":8775},{"style":4642},[8776],{"type":3102,"value":4898},{"type":3097,"tag":3380,"props":8778,"children":8779},{"style":3616},[8780],{"type":3102,"value":8023},{"type":3097,"tag":3380,"props":8782,"children":8783},{"style":3525},[8784],{"type":3102,"value":7887},{"type":3097,"tag":3380,"props":8786,"children":8787},{"style":3459},[8788],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":8790,"children":8791},{"style":3616},[8792],{"type":3102,"value":6970},{"type":3097,"tag":3380,"props":8794,"children":8795},{"style":3459},[8796],{"type":3102,"value":8080},{"type":3097,"tag":3380,"props":8798,"children":8799},{"style":3392},[8800],{"type":3102,"value":5383},{"type":3097,"tag":3380,"props":8802,"children":8803},{"style":3459},[8804],{"type":3102,"value":8089},{"type":3097,"tag":3380,"props":8806,"children":8807},{"class":3382,"line":4311},[8808],{"type":3097,"tag":3380,"props":8809,"children":8810},{"emptyLinePlaceholder":1196},[8811],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":8813,"children":8814},{"class":3382,"line":4320},[8815],{"type":3097,"tag":3380,"props":8816,"children":8817},{"style":3445},[8818],{"type":3102,"value":8819},"    \u002F\u002F If the credential is not found, there is no account to log in to\n",{"type":3097,"tag":3380,"props":8821,"children":8822},{"class":3382,"line":4328},[8823,8827,8831,8835,8840],{"type":3097,"tag":3380,"props":8824,"children":8825},{"style":4642},[8826],{"type":3102,"value":7648},{"type":3097,"tag":3380,"props":8828,"children":8829},{"style":3525},[8830],{"type":3102,"value":4471},{"type":3097,"tag":3380,"props":8832,"children":8833},{"style":3459},[8834],{"type":3102,"value":8105},{"type":3097,"tag":3380,"props":8836,"children":8837},{"style":3454},[8838],{"type":3102,"value":8839},"credential",{"type":3097,"tag":3380,"props":8841,"children":8842},{"style":3525},[8843],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":8845,"children":8846},{"class":3382,"line":4369},[8847,8851,8855,8859,8863,8867,8871,8875,8879,8883,8887,8891,8896,8900,8904],{"type":3097,"tag":3380,"props":8848,"children":8849},{"style":4642},[8850],{"type":3102,"value":7737},{"type":3097,"tag":3380,"props":8852,"children":8853},{"style":3616},[8854],{"type":3102,"value":7742},{"type":3097,"tag":3380,"props":8856,"children":8857},{"style":3525},[8858],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":8860,"children":8861},{"style":3459},[8862],{"type":3102,"value":7751},{"type":3097,"tag":3380,"props":8864,"children":8865},{"style":3525},[8866],{"type":3102,"value":7756},{"type":3097,"tag":3380,"props":8868,"children":8869},{"style":3459},[8870],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":8872,"children":8873},{"style":6980},[8874],{"type":3102,"value":7765},{"type":3097,"tag":3380,"props":8876,"children":8877},{"style":3459},[8878],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":8880,"children":8881},{"style":3525},[8882],{"type":3102,"value":7774},{"type":3097,"tag":3380,"props":8884,"children":8885},{"style":3459},[8886],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":8888,"children":8889},{"style":3459},[8890],{"type":3102,"value":4703},{"type":3097,"tag":3380,"props":8892,"children":8893},{"style":3392},[8894],{"type":3102,"value":8895},"Credential not found",{"type":3097,"tag":3380,"props":8897,"children":8898},{"style":3459},[8899],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":8901,"children":8902},{"style":3459},[8903],{"type":3102,"value":7492},{"type":3097,"tag":3380,"props":8905,"children":8906},{"style":3525},[8907],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":8909,"children":8910},{"class":3382,"line":4377},[8911],{"type":3097,"tag":3380,"props":8912,"children":8913},{"emptyLinePlaceholder":1196},[8914],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":8916,"children":8917},{"class":3382,"line":4386},[8918,8922],{"type":3097,"tag":3380,"props":8919,"children":8920},{"style":4642},[8921],{"type":3102,"value":5983},{"type":3097,"tag":3380,"props":8923,"children":8924},{"style":3454},[8925],{"type":3102,"value":8926}," credential\n",{"type":3097,"tag":3380,"props":8928,"children":8929},{"class":3382,"line":4394},[8930],{"type":3097,"tag":3380,"props":8931,"children":8932},{"style":3459},[8933],{"type":3102,"value":4720},{"type":3097,"tag":3380,"props":8935,"children":8936},{"class":3382,"line":4431},[8937,8941,8945,8949,8953,8957,8961,8965,8969,8974,8978],{"type":3097,"tag":3380,"props":8938,"children":8939},{"style":3531},[8940],{"type":3102,"value":5844},{"type":3097,"tag":3380,"props":8942,"children":8943},{"style":3525},[8944],{"type":3102,"value":5849},{"type":3097,"tag":3380,"props":8946,"children":8947},{"style":3459},[8948],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":8950,"children":8951},{"style":4474},[8952],{"type":3102,"value":5858},{"type":3097,"tag":3380,"props":8954,"children":8955},{"style":3459},[8956],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":8958,"children":8959},{"style":3459},[8960],{"type":3102,"value":3552},{"type":3097,"tag":3380,"props":8962,"children":8963},{"style":4474},[8964],{"type":3102,"value":7970},{"type":3097,"tag":3380,"props":8966,"children":8967},{"style":3459},[8968],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":8970,"children":8971},{"style":4474},[8972],{"type":3102,"value":8973}," authenticationInfo",{"type":3097,"tag":3380,"props":8975,"children":8976},{"style":3459},[8977],{"type":3102,"value":4540},{"type":3097,"tag":3380,"props":8979,"children":8980},{"style":3459},[8981],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":8983,"children":8984},{"class":3382,"line":4439},[8985],{"type":3097,"tag":3380,"props":8986,"children":8987},{"style":3445},[8988],{"type":3102,"value":8989},"    \u002F\u002F The credential authentication has been successful\n",{"type":3097,"tag":3380,"props":8991,"children":8992},{"class":3382,"line":4448},[8993],{"type":3097,"tag":3380,"props":8994,"children":8995},{"style":3445},[8996],{"type":3102,"value":8997},"    \u002F\u002F We can look it up in our database and get the corresponding user\n",{"type":3097,"tag":3380,"props":8999,"children":9000},{"class":3382,"line":4456},[9001,9005,9009,9013,9017],{"type":3097,"tag":3380,"props":9002,"children":9003},{"style":3531},[9004],{"type":3102,"value":7612},{"type":3097,"tag":3380,"props":9006,"children":9007},{"style":3454},[9008],{"type":3102,"value":8014},{"type":3097,"tag":3380,"props":9010,"children":9011},{"style":3459},[9012],{"type":3102,"value":3613},{"type":3097,"tag":3380,"props":9014,"children":9015},{"style":3616},[9016],{"type":3102,"value":8023},{"type":3097,"tag":3380,"props":9018,"children":9019},{"style":3525},[9020],{"type":3102,"value":3624},{"type":3097,"tag":3380,"props":9022,"children":9023},{"class":3382,"line":4552},[9024,9028,9032,9036,9040,9044,9048,9052,9056,9060],{"type":3097,"tag":3380,"props":9025,"children":9026},{"style":3531},[9027],{"type":3102,"value":7612},{"type":3097,"tag":3380,"props":9029,"children":9030},{"style":3454},[9031],{"type":3102,"value":3567},{"type":3097,"tag":3380,"props":9033,"children":9034},{"style":3459},[9035],{"type":3102,"value":3613},{"type":3097,"tag":3380,"props":9037,"children":9038},{"style":4642},[9039],{"type":3102,"value":4898},{"type":3097,"tag":3380,"props":9041,"children":9042},{"style":3454},[9043],{"type":3102,"value":8014},{"type":3097,"tag":3380,"props":9045,"children":9046},{"style":3459},[9047],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":9049,"children":9050},{"style":3616},[9051],{"type":3102,"value":6970},{"type":3097,"tag":3380,"props":9053,"children":9054},{"style":3459},[9055],{"type":3102,"value":8080},{"type":3097,"tag":3380,"props":9057,"children":9058},{"style":3392},[9059],{"type":3102,"value":5383},{"type":3097,"tag":3380,"props":9061,"children":9062},{"style":3459},[9063],{"type":3102,"value":8089},{"type":3097,"tag":3380,"props":9065,"children":9066},{"class":3382,"line":8176},[9067],{"type":3097,"tag":3380,"props":9068,"children":9069},{"emptyLinePlaceholder":1196},[9070],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":9072,"children":9073},{"class":3382,"line":8184},[9074],{"type":3097,"tag":3380,"props":9075,"children":9076},{"style":3445},[9077],{"type":3102,"value":9078},"    \u002F\u002F Update the counter in the database (authenticationInfo.newCounter)\n",{"type":3097,"tag":3380,"props":9080,"children":9081},{"class":3382,"line":8193},[9082,9086,9090,9094,9098,9102,9106],{"type":3097,"tag":3380,"props":9083,"children":9084},{"style":4642},[9085],{"type":3102,"value":5895},{"type":3097,"tag":3380,"props":9087,"children":9088},{"style":3454},[9089],{"type":3102,"value":8014},{"type":3097,"tag":3380,"props":9091,"children":9092},{"style":3459},[9093],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":9095,"children":9096},{"style":3616},[9097],{"type":3102,"value":6970},{"type":3097,"tag":3380,"props":9099,"children":9100},{"style":3459},[9101],{"type":3102,"value":8080},{"type":3097,"tag":3380,"props":9103,"children":9104},{"style":3392},[9105],{"type":3102,"value":5383},{"type":3097,"tag":3380,"props":9107,"children":9108},{"style":3459},[9109],{"type":3102,"value":8089},{"type":3097,"tag":3380,"props":9111,"children":9112},{"class":3382,"line":8225},[9113],{"type":3097,"tag":3380,"props":9114,"children":9115},{"emptyLinePlaceholder":1196},[9116],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":9118,"children":9119},{"class":3382,"line":8233},[9120],{"type":3097,"tag":3380,"props":9121,"children":9122},{"style":3445},[9123],{"type":3102,"value":8239},{"type":3097,"tag":3380,"props":9125,"children":9126},{"class":3382,"line":8242},[9127,9131,9135,9139,9143,9147],{"type":3097,"tag":3380,"props":9128,"children":9129},{"style":4642},[9130],{"type":3102,"value":5895},{"type":3097,"tag":3380,"props":9132,"children":9133},{"style":3616},[9134],{"type":3102,"value":4650},{"type":3097,"tag":3380,"props":9136,"children":9137},{"style":3525},[9138],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":9140,"children":9141},{"style":3454},[9142],{"type":3102,"value":5858},{"type":3097,"tag":3380,"props":9144,"children":9145},{"style":3459},[9146],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":9148,"children":9149},{"style":3459},[9150],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":9152,"children":9153},{"class":3382,"line":8270},[9154,9158,9162],{"type":3097,"tag":3380,"props":9155,"children":9156},{"style":3525},[9157],{"type":3102,"value":5923},{"type":3097,"tag":3380,"props":9159,"children":9160},{"style":3459},[9161],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":9163,"children":9164},{"style":3459},[9165],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":9167,"children":9168},{"class":3382,"line":8286},[9169,9173,9177,9181,9185],{"type":3097,"tag":3380,"props":9170,"children":9171},{"style":3525},[9172],{"type":3102,"value":8292},{"type":3097,"tag":3380,"props":9174,"children":9175},{"style":3459},[9176],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":9178,"children":9179},{"style":3454},[9180],{"type":3102,"value":3567},{"type":3097,"tag":3380,"props":9182,"children":9183},{"style":3459},[9184],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":9186,"children":9187},{"style":3454},[9188],{"type":3102,"value":5956},{"type":3097,"tag":3380,"props":9190,"children":9191},{"class":3382,"line":8311},[9192],{"type":3097,"tag":3380,"props":9193,"children":9194},{"style":3459},[9195],{"type":3102,"value":8317},{"type":3097,"tag":3380,"props":9197,"children":9198},{"class":3382,"line":8320},[9199,9203,9207,9211,9215,9219,9223],{"type":3097,"tag":3380,"props":9200,"children":9201},{"style":3525},[9202],{"type":3102,"value":8326},{"type":3097,"tag":3380,"props":9204,"children":9205},{"style":3459},[9206],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":9208,"children":9209},{"style":3454},[9210],{"type":3102,"value":4806},{"type":3097,"tag":3380,"props":9212,"children":9213},{"style":3459},[9214],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":9216,"children":9217},{"style":3616},[9218],{"type":3102,"value":8343},{"type":3097,"tag":3380,"props":9220,"children":9221},{"style":3525},[9222],{"type":3102,"value":7887},{"type":3097,"tag":3380,"props":9224,"children":9225},{"style":3459},[9226],{"type":3102,"value":5392},{"type":3097,"tag":3380,"props":9228,"children":9229},{"class":3382,"line":8354},[9230,9234],{"type":3097,"tag":3380,"props":9231,"children":9232},{"style":3459},[9233],{"type":3102,"value":5971},{"type":3097,"tag":3380,"props":9235,"children":9236},{"style":3525},[9237],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":9239,"children":9240},{"class":3382,"line":8366},[9241],{"type":3097,"tag":3380,"props":9242,"children":9243},{"style":3459},[9244],{"type":3102,"value":4720},{"type":3097,"tag":3380,"props":9246,"children":9247},{"class":3382,"line":8374},[9248,9252],{"type":3097,"tag":3380,"props":9249,"children":9250},{"style":3459},[9251],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":9253,"children":9254},{"style":3454},[9255],{"type":3102,"value":4822},{"type":3097,"tag":4560,"props":9257,"children":9258},{},[9259],{"type":3097,"tag":3104,"props":9260,"children":9261},{},[9262,9266,9268,9273,9275,9281,9282,9288],{"type":3097,"tag":3380,"props":9263,"children":9264},{},[9265],{"type":3102,"value":4570},{"type":3102,"value":9267},"\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":3097,"tag":4051,"props":9269,"children":9270},{},[9271],{"type":3102,"value":9272},"which is highly recommended",{"type":3102,"value":9274},"), the ",{"type":3097,"tag":3242,"props":9276,"children":9278},{"className":9277},[],[9279],{"type":3102,"value":9280},"storeChallenge",{"type":3102,"value":6212},{"type":3097,"tag":3242,"props":9283,"children":9285},{"className":9284},[],[9286],{"type":3102,"value":9287},"getChallenge",{"type":3102,"value":9289}," 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":3097,"tag":4560,"props":9291,"children":9292},{},[9293],{"type":3097,"tag":3370,"props":9294,"children":9296},{"className":4058,"code":9295,"language":4060,"meta":2970,"style":2970},"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",[9297],{"type":3097,"tag":3242,"props":9298,"children":9299},{"__ignoreMap":2970},[9300,9323,9369,9377,9442,9449,9485,9549,9556,9564,9616,9623,9647,9711,9718,9730,9737,9777,9785,9792],{"type":3097,"tag":3380,"props":9301,"children":9302},{"class":3382,"line":3056},[9303,9307,9311,9315,9319],{"type":3097,"tag":3380,"props":9304,"children":9305},{"style":4642},[9306],{"type":3102,"value":5176},{"type":3097,"tag":3380,"props":9308,"children":9309},{"style":4642},[9310],{"type":3102,"value":5291},{"type":3097,"tag":3380,"props":9312,"children":9313},{"style":3616},[9314],{"type":3102,"value":8449},{"type":3097,"tag":3380,"props":9316,"children":9317},{"style":3454},[9318],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":9320,"children":9321},{"style":3459},[9322],{"type":3102,"value":5306},{"type":3097,"tag":3380,"props":9324,"children":9325},{"class":3382,"line":3022},[9326,9330,9335,9339,9343,9347,9352,9356,9361,9365],{"type":3097,"tag":3380,"props":9327,"children":9328},{"style":3531},[9329],{"type":3102,"value":5844},{"type":3097,"tag":3380,"props":9331,"children":9332},{"style":3525},[9333],{"type":3102,"value":9334}," storeChallenge",{"type":3097,"tag":3380,"props":9336,"children":9337},{"style":3459},[9338],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":9340,"children":9341},{"style":4474},[9342],{"type":3102,"value":5858},{"type":3097,"tag":3380,"props":9344,"children":9345},{"style":3459},[9346],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":9348,"children":9349},{"style":4474},[9350],{"type":3102,"value":9351}," challenge",{"type":3097,"tag":3380,"props":9353,"children":9354},{"style":3459},[9355],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":9357,"children":9358},{"style":4474},[9359],{"type":3102,"value":9360}," attemptId",{"type":3097,"tag":3380,"props":9362,"children":9363},{"style":3459},[9364],{"type":3102,"value":6062},{"type":3097,"tag":3380,"props":9366,"children":9367},{"style":3459},[9368],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":9370,"children":9371},{"class":3382,"line":3006},[9372],{"type":3097,"tag":3380,"props":9373,"children":9374},{"style":3445},[9375],{"type":3102,"value":9376},"    \u002F\u002F Store the challenge in a KV store or DB\n",{"type":3097,"tag":3380,"props":9378,"children":9379},{"class":3382,"line":3643},[9380,9384,9389,9393,9397,9402,9406,9410,9415,9420,9425,9430,9434,9438],{"type":3097,"tag":3380,"props":9381,"children":9382},{"style":4642},[9383],{"type":3102,"value":5895},{"type":3097,"tag":3380,"props":9385,"children":9386},{"style":3616},[9387],{"type":3102,"value":9388}," useStorage",{"type":3097,"tag":3380,"props":9390,"children":9391},{"style":3525},[9392],{"type":3102,"value":7887},{"type":3097,"tag":3380,"props":9394,"children":9395},{"style":3459},[9396],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":9398,"children":9399},{"style":3616},[9400],{"type":3102,"value":9401},"setItem",{"type":3097,"tag":3380,"props":9403,"children":9404},{"style":3525},[9405],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":9407,"children":9408},{"style":3459},[9409],{"type":3102,"value":8080},{"type":3097,"tag":3380,"props":9411,"children":9412},{"style":3392},[9413],{"type":3102,"value":9414},"attempt:",{"type":3097,"tag":3380,"props":9416,"children":9417},{"style":3459},[9418],{"type":3102,"value":9419},"${",{"type":3097,"tag":3380,"props":9421,"children":9422},{"style":3454},[9423],{"type":3102,"value":9424},"attemptId",{"type":3097,"tag":3380,"props":9426,"children":9427},{"style":3459},[9428],{"type":3102,"value":9429},"}`",{"type":3097,"tag":3380,"props":9431,"children":9432},{"style":3459},[9433],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":9435,"children":9436},{"style":3454},[9437],{"type":3102,"value":9351},{"type":3097,"tag":3380,"props":9439,"children":9440},{"style":3525},[9441],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":9443,"children":9444},{"class":3382,"line":3652},[9445],{"type":3097,"tag":3380,"props":9446,"children":9447},{"style":3459},[9448],{"type":3102,"value":4720},{"type":3097,"tag":3380,"props":9450,"children":9451},{"class":3382,"line":3669},[9452,9456,9461,9465,9469,9473,9477,9481],{"type":3097,"tag":3380,"props":9453,"children":9454},{"style":3531},[9455],{"type":3102,"value":5844},{"type":3097,"tag":3380,"props":9457,"children":9458},{"style":3525},[9459],{"type":3102,"value":9460}," getChallenge",{"type":3097,"tag":3380,"props":9462,"children":9463},{"style":3459},[9464],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":9466,"children":9467},{"style":4474},[9468],{"type":3102,"value":5858},{"type":3097,"tag":3380,"props":9470,"children":9471},{"style":3459},[9472],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":9474,"children":9475},{"style":4474},[9476],{"type":3102,"value":9360},{"type":3097,"tag":3380,"props":9478,"children":9479},{"style":3459},[9480],{"type":3102,"value":6062},{"type":3097,"tag":3380,"props":9482,"children":9483},{"style":3459},[9484],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":9486,"children":9487},{"class":3382,"line":3002},[9488,9492,9496,9500,9504,9508,9512,9516,9521,9525,9529,9533,9537,9541,9545],{"type":3097,"tag":3380,"props":9489,"children":9490},{"style":3531},[9491],{"type":3102,"value":7612},{"type":3097,"tag":3380,"props":9493,"children":9494},{"style":3454},[9495],{"type":3102,"value":9351},{"type":3097,"tag":3380,"props":9497,"children":9498},{"style":3459},[9499],{"type":3102,"value":3613},{"type":3097,"tag":3380,"props":9501,"children":9502},{"style":4642},[9503],{"type":3102,"value":4898},{"type":3097,"tag":3380,"props":9505,"children":9506},{"style":3616},[9507],{"type":3102,"value":9388},{"type":3097,"tag":3380,"props":9509,"children":9510},{"style":3525},[9511],{"type":3102,"value":7887},{"type":3097,"tag":3380,"props":9513,"children":9514},{"style":3459},[9515],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":9517,"children":9518},{"style":3616},[9519],{"type":3102,"value":9520},"getItem",{"type":3097,"tag":3380,"props":9522,"children":9523},{"style":3525},[9524],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":9526,"children":9527},{"style":3459},[9528],{"type":3102,"value":8080},{"type":3097,"tag":3380,"props":9530,"children":9531},{"style":3392},[9532],{"type":3102,"value":9414},{"type":3097,"tag":3380,"props":9534,"children":9535},{"style":3459},[9536],{"type":3102,"value":9419},{"type":3097,"tag":3380,"props":9538,"children":9539},{"style":3454},[9540],{"type":3102,"value":9424},{"type":3097,"tag":3380,"props":9542,"children":9543},{"style":3459},[9544],{"type":3102,"value":9429},{"type":3097,"tag":3380,"props":9546,"children":9547},{"style":3525},[9548],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":9550,"children":9551},{"class":3382,"line":2998},[9552],{"type":3097,"tag":3380,"props":9553,"children":9554},{"emptyLinePlaceholder":1196},[9555],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":9557,"children":9558},{"class":3382,"line":2994},[9559],{"type":3097,"tag":3380,"props":9560,"children":9561},{"style":3445},[9562],{"type":3102,"value":9563},"    \u002F\u002F Make sure to always remove the attempt because they are single use only!\n",{"type":3097,"tag":3380,"props":9565,"children":9566},{"class":3382,"line":3831},[9567,9571,9575,9579,9583,9588,9592,9596,9600,9604,9608,9612],{"type":3097,"tag":3380,"props":9568,"children":9569},{"style":4642},[9570],{"type":3102,"value":5895},{"type":3097,"tag":3380,"props":9572,"children":9573},{"style":3616},[9574],{"type":3102,"value":9388},{"type":3097,"tag":3380,"props":9576,"children":9577},{"style":3525},[9578],{"type":3102,"value":7887},{"type":3097,"tag":3380,"props":9580,"children":9581},{"style":3459},[9582],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":9584,"children":9585},{"style":3616},[9586],{"type":3102,"value":9587},"removeItem",{"type":3097,"tag":3380,"props":9589,"children":9590},{"style":3525},[9591],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":9593,"children":9594},{"style":3459},[9595],{"type":3102,"value":8080},{"type":3097,"tag":3380,"props":9597,"children":9598},{"style":3392},[9599],{"type":3102,"value":9414},{"type":3097,"tag":3380,"props":9601,"children":9602},{"style":3459},[9603],{"type":3102,"value":9419},{"type":3097,"tag":3380,"props":9605,"children":9606},{"style":3454},[9607],{"type":3102,"value":9424},{"type":3097,"tag":3380,"props":9609,"children":9610},{"style":3459},[9611],{"type":3102,"value":9429},{"type":3097,"tag":3380,"props":9613,"children":9614},{"style":3525},[9615],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":9617,"children":9618},{"class":3382,"line":3085},[9619],{"type":3097,"tag":3380,"props":9620,"children":9621},{"emptyLinePlaceholder":1196},[9622],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":9624,"children":9625},{"class":3382,"line":3868},[9626,9630,9634,9638,9643],{"type":3097,"tag":3380,"props":9627,"children":9628},{"style":4642},[9629],{"type":3102,"value":7648},{"type":3097,"tag":3380,"props":9631,"children":9632},{"style":3525},[9633],{"type":3102,"value":4471},{"type":3097,"tag":3380,"props":9635,"children":9636},{"style":3459},[9637],{"type":3102,"value":8105},{"type":3097,"tag":3380,"props":9639,"children":9640},{"style":3454},[9641],{"type":3102,"value":9642},"challenge",{"type":3097,"tag":3380,"props":9644,"children":9645},{"style":3525},[9646],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":9648,"children":9649},{"class":3382,"line":3901},[9650,9654,9658,9662,9666,9670,9674,9678,9682,9686,9690,9694,9699,9703,9707],{"type":3097,"tag":3380,"props":9651,"children":9652},{"style":4642},[9653],{"type":3102,"value":7737},{"type":3097,"tag":3380,"props":9655,"children":9656},{"style":3616},[9657],{"type":3102,"value":7742},{"type":3097,"tag":3380,"props":9659,"children":9660},{"style":3525},[9661],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":9663,"children":9664},{"style":3459},[9665],{"type":3102,"value":7751},{"type":3097,"tag":3380,"props":9667,"children":9668},{"style":3525},[9669],{"type":3102,"value":7756},{"type":3097,"tag":3380,"props":9671,"children":9672},{"style":3459},[9673],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":9675,"children":9676},{"style":6980},[9677],{"type":3102,"value":7765},{"type":3097,"tag":3380,"props":9679,"children":9680},{"style":3459},[9681],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":9683,"children":9684},{"style":3525},[9685],{"type":3102,"value":7774},{"type":3097,"tag":3380,"props":9687,"children":9688},{"style":3459},[9689],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":9691,"children":9692},{"style":3459},[9693],{"type":3102,"value":4703},{"type":3097,"tag":3380,"props":9695,"children":9696},{"style":3392},[9697],{"type":3102,"value":9698},"Challenge expired",{"type":3097,"tag":3380,"props":9700,"children":9701},{"style":3459},[9702],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":9704,"children":9705},{"style":3459},[9706],{"type":3102,"value":7492},{"type":3097,"tag":3380,"props":9708,"children":9709},{"style":3525},[9710],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":9712,"children":9713},{"class":3382,"line":3956},[9714],{"type":3097,"tag":3380,"props":9715,"children":9716},{"emptyLinePlaceholder":1196},[9717],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":9719,"children":9720},{"class":3382,"line":3965},[9721,9725],{"type":3097,"tag":3380,"props":9722,"children":9723},{"style":4642},[9724],{"type":3102,"value":5983},{"type":3097,"tag":3380,"props":9726,"children":9727},{"style":3454},[9728],{"type":3102,"value":9729}," challenge\n",{"type":3097,"tag":3380,"props":9731,"children":9732},{"class":3382,"line":2990},[9733],{"type":3097,"tag":3380,"props":9734,"children":9735},{"style":3459},[9736],{"type":3102,"value":4720},{"type":3097,"tag":3380,"props":9738,"children":9739},{"class":3382,"line":4033},[9740,9744,9748,9752,9756,9760,9764,9769,9773],{"type":3097,"tag":3380,"props":9741,"children":9742},{"style":3531},[9743],{"type":3102,"value":5844},{"type":3097,"tag":3380,"props":9745,"children":9746},{"style":3525},[9747],{"type":3102,"value":5849},{"type":3097,"tag":3380,"props":9749,"children":9750},{"style":3459},[9751],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":9753,"children":9754},{"style":4474},[9755],{"type":3102,"value":5858},{"type":3097,"tag":3380,"props":9757,"children":9758},{"style":3459},[9759],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":9761,"children":9762},{"style":3459},[9763],{"type":3102,"value":3552},{"type":3097,"tag":3380,"props":9765,"children":9766},{"style":4474},[9767],{"type":3102,"value":9768}," authenticator",{"type":3097,"tag":3380,"props":9770,"children":9771},{"style":3459},[9772],{"type":3102,"value":4540},{"type":3097,"tag":3380,"props":9774,"children":9775},{"style":3459},[9776],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":9778,"children":9779},{"class":3382,"line":4303},[9780],{"type":3097,"tag":3380,"props":9781,"children":9782},{"style":3445},[9783],{"type":3102,"value":9784},"    \u002F\u002F ...\n",{"type":3097,"tag":3380,"props":9786,"children":9787},{"class":3382,"line":4311},[9788],{"type":3097,"tag":3380,"props":9789,"children":9790},{"style":3459},[9791],{"type":3102,"value":4720},{"type":3097,"tag":3380,"props":9793,"children":9794},{"class":3382,"line":4320},[9795,9799],{"type":3097,"tag":3380,"props":9796,"children":9797},{"style":3459},[9798],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":9800,"children":9801},{"style":3454},[9802],{"type":3102,"value":4822},{"type":3097,"tag":3104,"props":9804,"children":9805},{},[9806],{"type":3102,"value":9807},"On the frontend it is as simple as:",{"type":3097,"tag":3370,"props":9809,"children":9811},{"className":3508,"code":9810,"language":3510,"meta":2970,"style":2970},"\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",[9812],{"type":3097,"tag":3242,"props":9813,"children":9814},{"__ignoreMap":2970},[9815,9855,9901,9935,9968,9979,10019,10026,10060,10086,10135,10166,10173,10180,10204,10236,10263,10270,10285,10292,10307,10345,10405,10459,10474,10510,10565,10617,10632],{"type":3097,"tag":3380,"props":9816,"children":9817},{"class":3382,"line":3056},[9818,9822,9826,9830,9835,9839,9843,9847,9851],{"type":3097,"tag":3380,"props":9819,"children":9820},{"style":3459},[9821],{"type":3102,"value":3522},{"type":3097,"tag":3380,"props":9823,"children":9824},{"style":3525},[9825],{"type":3102,"value":3528},{"type":3097,"tag":3380,"props":9827,"children":9828},{"style":3531},[9829],{"type":3102,"value":3534},{"type":3097,"tag":3380,"props":9831,"children":9832},{"style":3531},[9833],{"type":3102,"value":9834}," lang",{"type":3097,"tag":3380,"props":9836,"children":9837},{"style":3459},[9838],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":9840,"children":9841},{"style":3459},[9842],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":9844,"children":9845},{"style":3392},[9846],{"type":3102,"value":4060},{"type":3097,"tag":3380,"props":9848,"children":9849},{"style":3459},[9850],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":9852,"children":9853},{"style":3459},[9854],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":9856,"children":9857},{"class":3382,"line":3022},[9858,9862,9866,9871,9875,9880,9884,9888,9893,9897],{"type":3097,"tag":3380,"props":9859,"children":9860},{"style":3531},[9861],{"type":3102,"value":3547},{"type":3097,"tag":3380,"props":9863,"children":9864},{"style":3459},[9865],{"type":3102,"value":3552},{"type":3097,"tag":3380,"props":9867,"children":9868},{"style":3454},[9869],{"type":3102,"value":9870}," register",{"type":3097,"tag":3380,"props":9872,"children":9873},{"style":3459},[9874],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":9876,"children":9877},{"style":3454},[9878],{"type":3102,"value":9879}," authenticate ",{"type":3097,"tag":3380,"props":9881,"children":9882},{"style":3459},[9883],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":9885,"children":9886},{"style":3459},[9887],{"type":3102,"value":3613},{"type":3097,"tag":3380,"props":9889,"children":9890},{"style":3616},[9891],{"type":3102,"value":9892}," useWebAuthn",{"type":3097,"tag":3380,"props":9894,"children":9895},{"style":3454},[9896],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":9898,"children":9899},{"style":3459},[9900],{"type":3102,"value":5306},{"type":3097,"tag":3380,"props":9902,"children":9903},{"class":3382,"line":3006},[9904,9909,9913,9917,9922,9926,9930],{"type":3097,"tag":3380,"props":9905,"children":9906},{"style":3525},[9907],{"type":3102,"value":9908},"  registerEndpoint",{"type":3097,"tag":3380,"props":9910,"children":9911},{"style":3459},[9912],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":9914,"children":9915},{"style":3459},[9916],{"type":3102,"value":4703},{"type":3097,"tag":3380,"props":9918,"children":9919},{"style":3392},[9920],{"type":3102,"value":9921},"\u002Fapi\u002Fwebauthn\u002Fregister",{"type":3097,"tag":3380,"props":9923,"children":9924},{"style":3459},[9925],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":9927,"children":9928},{"style":3459},[9929],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":9931,"children":9932},{"style":3445},[9933],{"type":3102,"value":9934}," \u002F\u002F Default\n",{"type":3097,"tag":3380,"props":9936,"children":9937},{"class":3382,"line":3643},[9938,9943,9947,9951,9956,9960,9964],{"type":3097,"tag":3380,"props":9939,"children":9940},{"style":3525},[9941],{"type":3102,"value":9942},"  authenticateEndpoint",{"type":3097,"tag":3380,"props":9944,"children":9945},{"style":3459},[9946],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":9948,"children":9949},{"style":3459},[9950],{"type":3102,"value":4703},{"type":3097,"tag":3380,"props":9952,"children":9953},{"style":3392},[9954],{"type":3102,"value":9955},"\u002Fapi\u002Fwebauthn\u002Fauthenticate",{"type":3097,"tag":3380,"props":9957,"children":9958},{"style":3459},[9959],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":9961,"children":9962},{"style":3459},[9963],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":9965,"children":9966},{"style":3445},[9967],{"type":3102,"value":9934},{"type":3097,"tag":3380,"props":9969,"children":9970},{"class":3382,"line":3652},[9971,9975],{"type":3097,"tag":3380,"props":9972,"children":9973},{"style":3459},[9974],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":9976,"children":9977},{"style":3454},[9978],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":9980,"children":9981},{"class":3382,"line":3669},[9982,9986,9990,9994,9998,10003,10007,10011,10015],{"type":3097,"tag":3380,"props":9983,"children":9984},{"style":3531},[9985],{"type":3102,"value":3547},{"type":3097,"tag":3380,"props":9987,"children":9988},{"style":3459},[9989],{"type":3102,"value":3552},{"type":3097,"tag":3380,"props":9991,"children":9992},{"style":3525},[9993],{"type":3102,"value":3585},{"type":3097,"tag":3380,"props":9995,"children":9996},{"style":3459},[9997],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":9999,"children":10000},{"style":3454},[10001],{"type":3102,"value":10002}," fetchUserSession ",{"type":3097,"tag":3380,"props":10004,"children":10005},{"style":3459},[10006],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":10008,"children":10009},{"style":3459},[10010],{"type":3102,"value":3613},{"type":3097,"tag":3380,"props":10012,"children":10013},{"style":3616},[10014],{"type":3102,"value":3619},{"type":3097,"tag":3380,"props":10016,"children":10017},{"style":3454},[10018],{"type":3102,"value":3624},{"type":3097,"tag":3380,"props":10020,"children":10021},{"class":3382,"line":3002},[10022],{"type":3097,"tag":3380,"props":10023,"children":10024},{"emptyLinePlaceholder":1196},[10025],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":10027,"children":10028},{"class":3382,"line":2998},[10029,10033,10038,10042,10047,10051,10056],{"type":3097,"tag":3380,"props":10030,"children":10031},{"style":3531},[10032],{"type":3102,"value":3547},{"type":3097,"tag":3380,"props":10034,"children":10035},{"style":3454},[10036],{"type":3102,"value":10037}," userName ",{"type":3097,"tag":3380,"props":10039,"children":10040},{"style":3459},[10041],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":10043,"children":10044},{"style":3616},[10045],{"type":3102,"value":10046}," ref",{"type":3097,"tag":3380,"props":10048,"children":10049},{"style":3454},[10050],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":10052,"children":10053},{"style":3459},[10054],{"type":3102,"value":10055},"''",{"type":3097,"tag":3380,"props":10057,"children":10058},{"style":3454},[10059],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":10061,"children":10062},{"class":3382,"line":2994},[10063,10068,10073,10078,10082],{"type":3097,"tag":3380,"props":10064,"children":10065},{"style":3531},[10066],{"type":3102,"value":10067},"async",{"type":3097,"tag":3380,"props":10069,"children":10070},{"style":3531},[10071],{"type":3102,"value":10072}," function",{"type":3097,"tag":3380,"props":10074,"children":10075},{"style":3616},[10076],{"type":3102,"value":10077}," signUp",{"type":3097,"tag":3380,"props":10079,"children":10080},{"style":3459},[10081],{"type":3102,"value":7887},{"type":3097,"tag":3380,"props":10083,"children":10084},{"style":3459},[10085],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":10087,"children":10088},{"class":3382,"line":3831},[10089,10094,10098,10102,10106,10110,10114,10118,10122,10127,10131],{"type":3097,"tag":3380,"props":10090,"children":10091},{"style":4642},[10092],{"type":3102,"value":10093},"  await",{"type":3097,"tag":3380,"props":10095,"children":10096},{"style":3616},[10097],{"type":3102,"value":9870},{"type":3097,"tag":3380,"props":10099,"children":10100},{"style":3525},[10101],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":10103,"children":10104},{"style":3459},[10105],{"type":3102,"value":7751},{"type":3097,"tag":3380,"props":10107,"children":10108},{"style":3525},[10109],{"type":3102,"value":8494},{"type":3097,"tag":3380,"props":10111,"children":10112},{"style":3459},[10113],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":10115,"children":10116},{"style":3454},[10117],{"type":3102,"value":8494},{"type":3097,"tag":3380,"props":10119,"children":10120},{"style":3459},[10121],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":10123,"children":10124},{"style":3454},[10125],{"type":3102,"value":10126},"value",{"type":3097,"tag":3380,"props":10128,"children":10129},{"style":3459},[10130],{"type":3102,"value":7492},{"type":3097,"tag":3380,"props":10132,"children":10133},{"style":3525},[10134],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":10136,"children":10137},{"class":3382,"line":3085},[10138,10143,10148,10152,10157,10161],{"type":3097,"tag":3380,"props":10139,"children":10140},{"style":3459},[10141],{"type":3102,"value":10142},"    .",{"type":3097,"tag":3380,"props":10144,"children":10145},{"style":3616},[10146],{"type":3102,"value":10147},"then",{"type":3097,"tag":3380,"props":10149,"children":10150},{"style":3525},[10151],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":10153,"children":10154},{"style":3454},[10155],{"type":3102,"value":10156},"fetchUserSession",{"type":3097,"tag":3380,"props":10158,"children":10159},{"style":3525},[10160],{"type":3102,"value":7725},{"type":3097,"tag":3380,"props":10162,"children":10163},{"style":3445},[10164],{"type":3102,"value":10165},"\u002F\u002F refetch the user session\n",{"type":3097,"tag":3380,"props":10167,"children":10168},{"class":3382,"line":3868},[10169],{"type":3097,"tag":3380,"props":10170,"children":10171},{"style":3459},[10172],{"type":3102,"value":4558},{"type":3097,"tag":3380,"props":10174,"children":10175},{"class":3382,"line":3901},[10176],{"type":3097,"tag":3380,"props":10177,"children":10178},{"emptyLinePlaceholder":1196},[10179],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":10181,"children":10182},{"class":3382,"line":3956},[10183,10187,10191,10196,10200],{"type":3097,"tag":3380,"props":10184,"children":10185},{"style":3531},[10186],{"type":3102,"value":10067},{"type":3097,"tag":3380,"props":10188,"children":10189},{"style":3531},[10190],{"type":3102,"value":10072},{"type":3097,"tag":3380,"props":10192,"children":10193},{"style":3616},[10194],{"type":3102,"value":10195}," signIn",{"type":3097,"tag":3380,"props":10197,"children":10198},{"style":3459},[10199],{"type":3102,"value":7887},{"type":3097,"tag":3380,"props":10201,"children":10202},{"style":3459},[10203],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":10205,"children":10206},{"class":3382,"line":3965},[10207,10211,10216,10220,10224,10228,10232],{"type":3097,"tag":3380,"props":10208,"children":10209},{"style":4642},[10210],{"type":3102,"value":10093},{"type":3097,"tag":3380,"props":10212,"children":10213},{"style":3616},[10214],{"type":3102,"value":10215}," authenticate",{"type":3097,"tag":3380,"props":10217,"children":10218},{"style":3525},[10219],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":10221,"children":10222},{"style":3454},[10223],{"type":3102,"value":7720},{"type":3097,"tag":3380,"props":10225,"children":10226},{"style":3459},[10227],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":10229,"children":10230},{"style":3454},[10231],{"type":3102,"value":10126},{"type":3097,"tag":3380,"props":10233,"children":10234},{"style":3525},[10235],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":10237,"children":10238},{"class":3382,"line":2990},[10239,10243,10247,10251,10255,10259],{"type":3097,"tag":3380,"props":10240,"children":10241},{"style":3459},[10242],{"type":3102,"value":10142},{"type":3097,"tag":3380,"props":10244,"children":10245},{"style":3616},[10246],{"type":3102,"value":10147},{"type":3097,"tag":3380,"props":10248,"children":10249},{"style":3525},[10250],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":10252,"children":10253},{"style":3454},[10254],{"type":3102,"value":10156},{"type":3097,"tag":3380,"props":10256,"children":10257},{"style":3525},[10258],{"type":3102,"value":7725},{"type":3097,"tag":3380,"props":10260,"children":10261},{"style":3445},[10262],{"type":3102,"value":10165},{"type":3097,"tag":3380,"props":10264,"children":10265},{"class":3382,"line":4033},[10266],{"type":3097,"tag":3380,"props":10267,"children":10268},{"style":3459},[10269],{"type":3102,"value":4558},{"type":3097,"tag":3380,"props":10271,"children":10272},{"class":3382,"line":4303},[10273,10277,10281],{"type":3097,"tag":3380,"props":10274,"children":10275},{"style":3459},[10276],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":10278,"children":10279},{"style":3525},[10280],{"type":3102,"value":3528},{"type":3097,"tag":3380,"props":10282,"children":10283},{"style":3459},[10284],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":10286,"children":10287},{"class":3382,"line":4311},[10288],{"type":3097,"tag":3380,"props":10289,"children":10290},{"emptyLinePlaceholder":1196},[10291],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":10293,"children":10294},{"class":3382,"line":4320},[10295,10299,10303],{"type":3097,"tag":3380,"props":10296,"children":10297},{"style":3459},[10298],{"type":3102,"value":3522},{"type":3097,"tag":3380,"props":10300,"children":10301},{"style":3525},[10302],{"type":3102,"value":3662},{"type":3097,"tag":3380,"props":10304,"children":10305},{"style":3459},[10306],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":10308,"children":10309},{"class":3382,"line":4328},[10310,10314,10319,10324,10328,10332,10337,10341],{"type":3097,"tag":3380,"props":10311,"children":10312},{"style":3459},[10313],{"type":3102,"value":3675},{"type":3097,"tag":3380,"props":10315,"children":10316},{"style":3525},[10317],{"type":3102,"value":10318},"form",{"type":3097,"tag":3380,"props":10320,"children":10321},{"style":3531},[10322],{"type":3102,"value":10323}," @submit.prevent",{"type":3097,"tag":3380,"props":10325,"children":10326},{"style":3459},[10327],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":10329,"children":10330},{"style":3459},[10331],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":10333,"children":10334},{"style":3392},[10335],{"type":3102,"value":10336},"signUp",{"type":3097,"tag":3380,"props":10338,"children":10339},{"style":3459},[10340],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":10342,"children":10343},{"style":3459},[10344],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":10346,"children":10347},{"class":3382,"line":4369},[10348,10352,10357,10362,10366,10370,10374,10378,10383,10387,10391,10396,10400],{"type":3097,"tag":3380,"props":10349,"children":10350},{"style":3459},[10351],{"type":3102,"value":3715},{"type":3097,"tag":3380,"props":10353,"children":10354},{"style":3525},[10355],{"type":3102,"value":10356},"input",{"type":3097,"tag":3380,"props":10358,"children":10359},{"style":3531},[10360],{"type":3102,"value":10361}," v-model",{"type":3097,"tag":3380,"props":10363,"children":10364},{"style":3459},[10365],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":10367,"children":10368},{"style":3459},[10369],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":10371,"children":10372},{"style":3392},[10373],{"type":3102,"value":7720},{"type":3097,"tag":3380,"props":10375,"children":10376},{"style":3459},[10377],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":10379,"children":10380},{"style":3531},[10381],{"type":3102,"value":10382}," placeholder",{"type":3097,"tag":3380,"props":10384,"children":10385},{"style":3459},[10386],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":10388,"children":10389},{"style":3459},[10390],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":10392,"children":10393},{"style":3392},[10394],{"type":3102,"value":10395},"Email or username",{"type":3097,"tag":3380,"props":10397,"children":10398},{"style":3459},[10399],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":10401,"children":10402},{"style":3459},[10403],{"type":3102,"value":10404}," \u002F>\n",{"type":3097,"tag":3380,"props":10406,"children":10407},{"class":3382,"line":4377},[10408,10412,10416,10421,10425,10429,10434,10438,10442,10447,10451,10455],{"type":3097,"tag":3380,"props":10409,"children":10410},{"style":3459},[10411],{"type":3102,"value":3715},{"type":3097,"tag":3380,"props":10413,"children":10414},{"style":3525},[10415],{"type":3102,"value":3785},{"type":3097,"tag":3380,"props":10417,"children":10418},{"style":3531},[10419],{"type":3102,"value":10420}," type",{"type":3097,"tag":3380,"props":10422,"children":10423},{"style":3459},[10424],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":10426,"children":10427},{"style":3459},[10428],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":10430,"children":10431},{"style":3392},[10432],{"type":3102,"value":10433},"submit",{"type":3097,"tag":3380,"props":10435,"children":10436},{"style":3459},[10437],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":10439,"children":10440},{"style":3459},[10441],{"type":3102,"value":3724},{"type":3097,"tag":3380,"props":10443,"children":10444},{"style":3454},[10445],{"type":3102,"value":10446},"Sign up",{"type":3097,"tag":3380,"props":10448,"children":10449},{"style":3459},[10450],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":10452,"children":10453},{"style":3525},[10454],{"type":3102,"value":3785},{"type":3097,"tag":3380,"props":10456,"children":10457},{"style":3459},[10458],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":10460,"children":10461},{"class":3382,"line":4386},[10462,10466,10470],{"type":3097,"tag":3380,"props":10463,"children":10464},{"style":3459},[10465],{"type":3102,"value":3837},{"type":3097,"tag":3380,"props":10467,"children":10468},{"style":3525},[10469],{"type":3102,"value":10318},{"type":3097,"tag":3380,"props":10471,"children":10472},{"style":3459},[10473],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":10475,"children":10476},{"class":3382,"line":4394},[10477,10481,10485,10489,10493,10497,10502,10506],{"type":3097,"tag":3380,"props":10478,"children":10479},{"style":3459},[10480],{"type":3102,"value":3675},{"type":3097,"tag":3380,"props":10482,"children":10483},{"style":3525},[10484],{"type":3102,"value":10318},{"type":3097,"tag":3380,"props":10486,"children":10487},{"style":3531},[10488],{"type":3102,"value":10323},{"type":3097,"tag":3380,"props":10490,"children":10491},{"style":3459},[10492],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":10494,"children":10495},{"style":3459},[10496],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":10498,"children":10499},{"style":3392},[10500],{"type":3102,"value":10501},"signIn",{"type":3097,"tag":3380,"props":10503,"children":10504},{"style":3459},[10505],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":10507,"children":10508},{"style":3459},[10509],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":10511,"children":10512},{"class":3382,"line":4431},[10513,10517,10521,10525,10529,10533,10537,10541,10545,10549,10553,10557,10561],{"type":3097,"tag":3380,"props":10514,"children":10515},{"style":3459},[10516],{"type":3102,"value":3715},{"type":3097,"tag":3380,"props":10518,"children":10519},{"style":3525},[10520],{"type":3102,"value":10356},{"type":3097,"tag":3380,"props":10522,"children":10523},{"style":3531},[10524],{"type":3102,"value":10361},{"type":3097,"tag":3380,"props":10526,"children":10527},{"style":3459},[10528],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":10530,"children":10531},{"style":3459},[10532],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":10534,"children":10535},{"style":3392},[10536],{"type":3102,"value":7720},{"type":3097,"tag":3380,"props":10538,"children":10539},{"style":3459},[10540],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":10542,"children":10543},{"style":3531},[10544],{"type":3102,"value":10382},{"type":3097,"tag":3380,"props":10546,"children":10547},{"style":3459},[10548],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":10550,"children":10551},{"style":3459},[10552],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":10554,"children":10555},{"style":3392},[10556],{"type":3102,"value":10395},{"type":3097,"tag":3380,"props":10558,"children":10559},{"style":3459},[10560],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":10562,"children":10563},{"style":3459},[10564],{"type":3102,"value":10404},{"type":3097,"tag":3380,"props":10566,"children":10567},{"class":3382,"line":4439},[10568,10572,10576,10580,10584,10588,10592,10596,10600,10605,10609,10613],{"type":3097,"tag":3380,"props":10569,"children":10570},{"style":3459},[10571],{"type":3102,"value":3715},{"type":3097,"tag":3380,"props":10573,"children":10574},{"style":3525},[10575],{"type":3102,"value":3785},{"type":3097,"tag":3380,"props":10577,"children":10578},{"style":3531},[10579],{"type":3102,"value":10420},{"type":3097,"tag":3380,"props":10581,"children":10582},{"style":3459},[10583],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":10585,"children":10586},{"style":3459},[10587],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":10589,"children":10590},{"style":3392},[10591],{"type":3102,"value":10433},{"type":3097,"tag":3380,"props":10593,"children":10594},{"style":3459},[10595],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":10597,"children":10598},{"style":3459},[10599],{"type":3102,"value":3724},{"type":3097,"tag":3380,"props":10601,"children":10602},{"style":3454},[10603],{"type":3102,"value":10604},"Sign in",{"type":3097,"tag":3380,"props":10606,"children":10607},{"style":3459},[10608],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":10610,"children":10611},{"style":3525},[10612],{"type":3102,"value":3785},{"type":3097,"tag":3380,"props":10614,"children":10615},{"style":3459},[10616],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":10618,"children":10619},{"class":3382,"line":4448},[10620,10624,10628],{"type":3097,"tag":3380,"props":10621,"children":10622},{"style":3459},[10623],{"type":3102,"value":3837},{"type":3097,"tag":3380,"props":10625,"children":10626},{"style":3525},[10627],{"type":3102,"value":10318},{"type":3097,"tag":3380,"props":10629,"children":10630},{"style":3459},[10631],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":10633,"children":10634},{"class":3382,"line":4456},[10635,10639,10643],{"type":3097,"tag":3380,"props":10636,"children":10637},{"style":3459},[10638],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":10640,"children":10641},{"style":3525},[10642],{"type":3102,"value":3662},{"type":3097,"tag":3380,"props":10644,"children":10645},{"style":3459},[10646],{"type":3102,"value":3539},{"type":3097,"tag":3104,"props":10648,"children":10649},{},[10650,10652,10663],{"type":3102,"value":10651},"Take a look at the ",{"type":3097,"tag":3108,"props":10653,"children":10656},{"href":10654,"rel":10655},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fcomponents\u002FWebAuthnModal.vue",[3112],[10657],{"type":3097,"tag":3242,"props":10658,"children":10660},{"className":10659},[],[10661],{"type":3102,"value":10662},"WebAuthnModal.vue",{"type":3102,"value":10664}," for a full example.",{"type":3097,"tag":5486,"props":10666,"children":10668},{"id":10667},"demo",[10669],{"type":3102,"value":10670},"Demo",{"type":3097,"tag":3104,"props":10672,"children":10673},{},[10674,10676,10682,10684,10691,10692,10699],{"type":3102,"value":10675},"A full demo can be found on ",{"type":3097,"tag":3108,"props":10677,"children":10680},{"href":10678,"rel":10679},"https:\u002F\u002Ftodo-passkeys.nuxt.dev",[3112],[10681],{"type":3102,"value":10678},{"type":3102,"value":10683}," using ",{"type":3097,"tag":3108,"props":10685,"children":10688},{"href":10686,"rel":10687},"https:\u002F\u002Form.drizzle.team\u002F",[3112],[10689],{"type":3102,"value":10690},"Drizzle ORM",{"type":3102,"value":6212},{"type":3097,"tag":3108,"props":10693,"children":10696},{"href":10694,"rel":10695},"https:\u002F\u002Fhub.nuxt.com",[3112],[10697],{"type":3102,"value":10698},"NuxtHub",{"type":3102,"value":3335},{"type":3097,"tag":3104,"props":10701,"children":10702},{},[10703,10705,10710],{"type":3102,"value":10704},"The source code of the demo is available on ",{"type":3097,"tag":3108,"props":10706,"children":10708},{"href":3182,"rel":10707},[3112],[10709],{"type":3102,"value":3182},{"type":3102,"value":3335},{"type":3097,"tag":3500,"props":10712,"children":10714},{"id":10713},"extend-session",[10715],{"type":3102,"value":10716},"Extend Session",{"type":3097,"tag":3104,"props":10718,"children":10719},{},[10720],{"type":3102,"value":10721},"We leverage hooks to let you extend the session data with your own data or log when the user clears the session.",{"type":3097,"tag":3370,"props":10723,"children":10725},{"className":4058,"code":10724,"language":4060,"meta":2970,"style":2970},"\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",[10726],{"type":3097,"tag":3242,"props":10727,"children":10728},{"__ignoreMap":2970},[10729,10737,10769,10777,10785,10856,10864,10872,10880,10892,10899,10907,10974,10982,10993],{"type":3097,"tag":3380,"props":10730,"children":10731},{"class":3382,"line":3056},[10732],{"type":3097,"tag":3380,"props":10733,"children":10734},{"style":3445},[10735],{"type":3102,"value":10736},"\u002F\u002F server\u002Fplugins\u002Fsession.ts\n",{"type":3097,"tag":3380,"props":10738,"children":10739},{"class":3382,"line":3022},[10740,10744,10748,10753,10757,10761,10765],{"type":3097,"tag":3380,"props":10741,"children":10742},{"style":4642},[10743],{"type":3102,"value":5176},{"type":3097,"tag":3380,"props":10745,"children":10746},{"style":4642},[10747],{"type":3102,"value":5291},{"type":3097,"tag":3380,"props":10749,"children":10750},{"style":3616},[10751],{"type":3102,"value":10752}," defineNitroPlugin",{"type":3097,"tag":3380,"props":10754,"children":10755},{"style":3454},[10756],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":10758,"children":10759},{"style":3459},[10760],{"type":3102,"value":7887},{"type":3097,"tag":3380,"props":10762,"children":10763},{"style":3531},[10764],{"type":3102,"value":4348},{"type":3097,"tag":3380,"props":10766,"children":10767},{"style":3459},[10768],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":10770,"children":10771},{"class":3382,"line":3006},[10772],{"type":3097,"tag":3380,"props":10773,"children":10774},{"style":3445},[10775],{"type":3102,"value":10776},"  \u002F\u002F Called when the session is fetched during SSR for the Vue composable (\u002Fapi\u002F_auth\u002Fsession)\n",{"type":3097,"tag":3380,"props":10778,"children":10779},{"class":3382,"line":3643},[10780],{"type":3097,"tag":3380,"props":10781,"children":10782},{"style":3445},[10783],{"type":3102,"value":10784},"  \u002F\u002F Or when we call useUserSession().fetch()\n",{"type":3097,"tag":3380,"props":10786,"children":10787},{"class":3382,"line":3652},[10788,10793,10797,10802,10806,10810,10815,10819,10823,10828,10832,10836,10840,10844,10848,10852],{"type":3097,"tag":3380,"props":10789,"children":10790},{"style":3454},[10791],{"type":3102,"value":10792},"  sessionHooks",{"type":3097,"tag":3380,"props":10794,"children":10795},{"style":3459},[10796],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":10798,"children":10799},{"style":3616},[10800],{"type":3102,"value":10801},"hook",{"type":3097,"tag":3380,"props":10803,"children":10804},{"style":3525},[10805],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":10807,"children":10808},{"style":3459},[10809],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":10811,"children":10812},{"style":3392},[10813],{"type":3102,"value":10814},"fetch",{"type":3097,"tag":3380,"props":10816,"children":10817},{"style":3459},[10818],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":10820,"children":10821},{"style":3459},[10822],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":10824,"children":10825},{"style":3531},[10826],{"type":3102,"value":10827}," async",{"type":3097,"tag":3380,"props":10829,"children":10830},{"style":3459},[10831],{"type":3102,"value":4471},{"type":3097,"tag":3380,"props":10833,"children":10834},{"style":4474},[10835],{"type":3102,"value":7657},{"type":3097,"tag":3380,"props":10837,"children":10838},{"style":3459},[10839],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":10841,"children":10842},{"style":4474},[10843],{"type":3102,"value":7572},{"type":3097,"tag":3380,"props":10845,"children":10846},{"style":3459},[10847],{"type":3102,"value":6062},{"type":3097,"tag":3380,"props":10849,"children":10850},{"style":3531},[10851],{"type":3102,"value":4348},{"type":3097,"tag":3380,"props":10853,"children":10854},{"style":3459},[10855],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":10857,"children":10858},{"class":3382,"line":3669},[10859],{"type":3097,"tag":3380,"props":10860,"children":10861},{"style":3445},[10862],{"type":3102,"value":10863},"    \u002F\u002F extend User Session by calling your database\n",{"type":3097,"tag":3380,"props":10865,"children":10866},{"class":3382,"line":3002},[10867],{"type":3097,"tag":3380,"props":10868,"children":10869},{"style":3445},[10870],{"type":3102,"value":10871},"    \u002F\u002F or\n",{"type":3097,"tag":3380,"props":10873,"children":10874},{"class":3382,"line":2998},[10875],{"type":3097,"tag":3380,"props":10876,"children":10877},{"style":3445},[10878],{"type":3102,"value":10879},"    \u002F\u002F throw createError({ ... }) if session is invalid for example\n",{"type":3097,"tag":3380,"props":10881,"children":10882},{"class":3382,"line":2994},[10883,10888],{"type":3097,"tag":3380,"props":10884,"children":10885},{"style":3459},[10886],{"type":3102,"value":10887},"  }",{"type":3097,"tag":3380,"props":10889,"children":10890},{"style":3525},[10891],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":10893,"children":10894},{"class":3382,"line":3831},[10895],{"type":3097,"tag":3380,"props":10896,"children":10897},{"emptyLinePlaceholder":1196},[10898],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":10900,"children":10901},{"class":3382,"line":3085},[10902],{"type":3097,"tag":3380,"props":10903,"children":10904},{"style":3445},[10905],{"type":3102,"value":10906},"  \u002F\u002F Called when we call useUserSession().clear() or clearUserSession(event)\n",{"type":3097,"tag":3380,"props":10908,"children":10909},{"class":3382,"line":3868},[10910,10914,10918,10922,10926,10930,10934,10938,10942,10946,10950,10954,10958,10962,10966,10970],{"type":3097,"tag":3380,"props":10911,"children":10912},{"style":3454},[10913],{"type":3102,"value":10792},{"type":3097,"tag":3380,"props":10915,"children":10916},{"style":3459},[10917],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":10919,"children":10920},{"style":3616},[10921],{"type":3102,"value":10801},{"type":3097,"tag":3380,"props":10923,"children":10924},{"style":3525},[10925],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":10927,"children":10928},{"style":3459},[10929],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":10931,"children":10932},{"style":3392},[10933],{"type":3102,"value":3803},{"type":3097,"tag":3380,"props":10935,"children":10936},{"style":3459},[10937],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":10939,"children":10940},{"style":3459},[10941],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":10943,"children":10944},{"style":3531},[10945],{"type":3102,"value":10827},{"type":3097,"tag":3380,"props":10947,"children":10948},{"style":3459},[10949],{"type":3102,"value":4471},{"type":3097,"tag":3380,"props":10951,"children":10952},{"style":4474},[10953],{"type":3102,"value":7657},{"type":3097,"tag":3380,"props":10955,"children":10956},{"style":3459},[10957],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":10959,"children":10960},{"style":4474},[10961],{"type":3102,"value":7572},{"type":3097,"tag":3380,"props":10963,"children":10964},{"style":3459},[10965],{"type":3102,"value":6062},{"type":3097,"tag":3380,"props":10967,"children":10968},{"style":3531},[10969],{"type":3102,"value":4348},{"type":3097,"tag":3380,"props":10971,"children":10972},{"style":3459},[10973],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":10975,"children":10976},{"class":3382,"line":3901},[10977],{"type":3097,"tag":3380,"props":10978,"children":10979},{"style":3445},[10980],{"type":3102,"value":10981},"    \u002F\u002F Log that user logged out\n",{"type":3097,"tag":3380,"props":10983,"children":10984},{"class":3382,"line":3956},[10985,10989],{"type":3097,"tag":3380,"props":10986,"children":10987},{"style":3459},[10988],{"type":3102,"value":10887},{"type":3097,"tag":3380,"props":10990,"children":10991},{"style":3525},[10992],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":10994,"children":10995},{"class":3382,"line":3965},[10996,11000],{"type":3097,"tag":3380,"props":10997,"children":10998},{"style":3459},[10999],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":11001,"children":11002},{"style":3454},[11003],{"type":3102,"value":4822},{"type":3097,"tag":3188,"props":11005,"children":11007},{"id":11006},"server-side-rendering",[11008],{"type":3102,"value":11009},"Server-Side Rendering",{"type":3097,"tag":3104,"props":11011,"children":11012},{},[11013,11015,11021,11023],{"type":3102,"value":11014},"You can make authenticated requests both from the client and the server. However, you must use ",{"type":3097,"tag":3242,"props":11016,"children":11018},{"className":11017},[],[11019],{"type":3102,"value":11020},"useRequestFetch()",{"type":3102,"value":11022}," to make authenticated requests during SSR if you are not using ",{"type":3097,"tag":3242,"props":11024,"children":11026},{"className":11025},[],[11027],{"type":3102,"value":11028},"useFetch()",{"type":3097,"tag":3370,"props":11030,"children":11032},{"className":3508,"code":11031,"language":3510,"meta":2970,"style":2970},"\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",[11033],{"type":3097,"tag":3242,"props":11034,"children":11035},{"__ignoreMap":2970},[11036,11075,11083,11173,11180,11188,11240],{"type":3097,"tag":3380,"props":11037,"children":11038},{"class":3382,"line":3056},[11039,11043,11047,11051,11055,11059,11063,11067,11071],{"type":3097,"tag":3380,"props":11040,"children":11041},{"style":3459},[11042],{"type":3102,"value":3522},{"type":3097,"tag":3380,"props":11044,"children":11045},{"style":3525},[11046],{"type":3102,"value":3528},{"type":3097,"tag":3380,"props":11048,"children":11049},{"style":3531},[11050],{"type":3102,"value":3534},{"type":3097,"tag":3380,"props":11052,"children":11053},{"style":3531},[11054],{"type":3102,"value":9834},{"type":3097,"tag":3380,"props":11056,"children":11057},{"style":3459},[11058],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":11060,"children":11061},{"style":3459},[11062],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":11064,"children":11065},{"style":3392},[11066],{"type":3102,"value":4060},{"type":3097,"tag":3380,"props":11068,"children":11069},{"style":3459},[11070],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":11072,"children":11073},{"style":3459},[11074],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":11076,"children":11077},{"class":3382,"line":3022},[11078],{"type":3097,"tag":3380,"props":11079,"children":11080},{"style":3445},[11081],{"type":3102,"value":11082},"\u002F\u002F When using useAsyncData\n",{"type":3097,"tag":3380,"props":11084,"children":11085},{"class":3382,"line":3006},[11086,11090,11094,11099,11103,11107,11111,11116,11120,11124,11129,11133,11137,11141,11145,11150,11155,11159,11164,11168],{"type":3097,"tag":3380,"props":11087,"children":11088},{"style":3531},[11089],{"type":3102,"value":3547},{"type":3097,"tag":3380,"props":11091,"children":11092},{"style":3459},[11093],{"type":3102,"value":3552},{"type":3097,"tag":3380,"props":11095,"children":11096},{"style":3454},[11097],{"type":3102,"value":11098}," data ",{"type":3097,"tag":3380,"props":11100,"children":11101},{"style":3459},[11102],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":11104,"children":11105},{"style":3459},[11106],{"type":3102,"value":3613},{"type":3097,"tag":3380,"props":11108,"children":11109},{"style":4642},[11110],{"type":3102,"value":4898},{"type":3097,"tag":3380,"props":11112,"children":11113},{"style":3616},[11114],{"type":3102,"value":11115}," useAsyncData",{"type":3097,"tag":3380,"props":11117,"children":11118},{"style":3454},[11119],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":11121,"children":11122},{"style":3459},[11123],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":11125,"children":11126},{"style":3392},[11127],{"type":3102,"value":11128},"team",{"type":3097,"tag":3380,"props":11130,"children":11131},{"style":3459},[11132],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":11134,"children":11135},{"style":3459},[11136],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":11138,"children":11139},{"style":3459},[11140],{"type":3102,"value":4343},{"type":3097,"tag":3380,"props":11142,"children":11143},{"style":3531},[11144],{"type":3102,"value":4348},{"type":3097,"tag":3380,"props":11146,"children":11147},{"style":3616},[11148],{"type":3102,"value":11149}," useRequestFetch",{"type":3097,"tag":3380,"props":11151,"children":11152},{"style":3454},[11153],{"type":3102,"value":11154},"()(",{"type":3097,"tag":3380,"props":11156,"children":11157},{"style":3459},[11158],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":11160,"children":11161},{"style":3392},[11162],{"type":3102,"value":11163},"\u002Fapi\u002Fprotected-endpoint",{"type":3097,"tag":3380,"props":11165,"children":11166},{"style":3459},[11167],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":11169,"children":11170},{"style":3454},[11171],{"type":3102,"value":11172},"))\n",{"type":3097,"tag":3380,"props":11174,"children":11175},{"class":3382,"line":3643},[11176],{"type":3097,"tag":3380,"props":11177,"children":11178},{"emptyLinePlaceholder":1196},[11179],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":11181,"children":11182},{"class":3382,"line":3652},[11183],{"type":3097,"tag":3380,"props":11184,"children":11185},{"style":3445},[11186],{"type":3102,"value":11187},"\u002F\u002F useFetch will automatically use useRequestFetch during SSR\n",{"type":3097,"tag":3380,"props":11189,"children":11190},{"class":3382,"line":3669},[11191,11195,11199,11203,11207,11211,11215,11220,11224,11228,11232,11236],{"type":3097,"tag":3380,"props":11192,"children":11193},{"style":3531},[11194],{"type":3102,"value":3547},{"type":3097,"tag":3380,"props":11196,"children":11197},{"style":3459},[11198],{"type":3102,"value":3552},{"type":3097,"tag":3380,"props":11200,"children":11201},{"style":3454},[11202],{"type":3102,"value":11098},{"type":3097,"tag":3380,"props":11204,"children":11205},{"style":3459},[11206],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":11208,"children":11209},{"style":3459},[11210],{"type":3102,"value":3613},{"type":3097,"tag":3380,"props":11212,"children":11213},{"style":4642},[11214],{"type":3102,"value":4898},{"type":3097,"tag":3380,"props":11216,"children":11217},{"style":3616},[11218],{"type":3102,"value":11219}," useFetch",{"type":3097,"tag":3380,"props":11221,"children":11222},{"style":3454},[11223],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":11225,"children":11226},{"style":3459},[11227],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":11229,"children":11230},{"style":3392},[11231],{"type":3102,"value":11163},{"type":3097,"tag":3380,"props":11233,"children":11234},{"style":3459},[11235],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":11237,"children":11238},{"style":3454},[11239],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":11241,"children":11242},{"class":3382,"line":3002},[11243,11247,11251],{"type":3097,"tag":3380,"props":11244,"children":11245},{"style":3459},[11246],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":11248,"children":11249},{"style":3525},[11250],{"type":3102,"value":3528},{"type":3097,"tag":3380,"props":11252,"children":11253},{"style":3459},[11254],{"type":3102,"value":3539},{"type":3097,"tag":4560,"props":11256,"children":11257},{},[11258],{"type":3097,"tag":3104,"props":11259,"children":11260},{},[11261,11263,11270,11272,11277],{"type":3102,"value":11262},"There's ",{"type":3097,"tag":3108,"props":11264,"children":11267},{"href":11265,"rel":11266},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F24813",[3112],[11268],{"type":3102,"value":11269},"an open issue",{"type":3102,"value":11271}," to include credentials in ",{"type":3097,"tag":3242,"props":11273,"children":11275},{"className":11274},[],[11276],{"type":3102,"value":630},{"type":3102,"value":11278}," in Nuxt.",{"type":3097,"tag":3188,"props":11280,"children":11282},{"id":11281},"hybrid-rendering",[11283],{"type":3102,"value":3204},{"type":3097,"tag":3104,"props":11285,"children":11286},{},[11287,11289,11302],{"type":3102,"value":11288},"When using ",{"type":3097,"tag":3108,"props":11290,"children":11293},{"href":11291,"rel":11292},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fguide\u002Fconcepts\u002Frendering#hybrid-rendering",[3112],[11294,11296],{"type":3102,"value":11295},"Nuxt ",{"type":3097,"tag":3242,"props":11297,"children":11299},{"className":11298},[],[11300],{"type":3102,"value":11301},"routeRules",{"type":3102,"value":11303}," 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":3097,"tag":3104,"props":11305,"children":11306},{},[11307],{"type":3102,"value":11308},"This is because the user session is stored in a secure cookie and cannot be accessed during prerendering.",{"type":3097,"tag":3104,"props":11310,"children":11311},{},[11312],{"type":3097,"tag":4051,"props":11313,"children":11314},{},[11315],{"type":3102,"value":11316},"This means that you should not rely on the user session during prerendering.",{"type":3097,"tag":3104,"props":11318,"children":11319},{},[11320,11322,11328,11330,11335],{"type":3102,"value":11321},"You may also choose to instruct Nuxt Auth Utils to fetch the user session only on the client side, with the ",{"type":3097,"tag":3242,"props":11323,"children":11325},{"className":11324},[],[11326],{"type":3102,"value":11327},"loadStrategy",{"type":3102,"value":11329}," option in your ",{"type":3097,"tag":3242,"props":11331,"children":11333},{"className":11332},[],[11334],{"type":3102,"value":233},{"type":3102,"value":4119},{"type":3097,"tag":3370,"props":11337,"children":11339},{"className":4058,"code":11338,"language":4060,"meta":2970,"style":2970},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'client-only'\n  }\n})\n",[11340],{"type":3097,"tag":3242,"props":11341,"children":11342},{"__ignoreMap":2970},[11343,11366,11381,11406,11413],{"type":3097,"tag":3380,"props":11344,"children":11345},{"class":3382,"line":3056},[11346,11350,11354,11358,11362],{"type":3097,"tag":3380,"props":11347,"children":11348},{"style":4642},[11349],{"type":3102,"value":5176},{"type":3097,"tag":3380,"props":11351,"children":11352},{"style":4642},[11353],{"type":3102,"value":5291},{"type":3097,"tag":3380,"props":11355,"children":11356},{"style":3616},[11357],{"type":3102,"value":5296},{"type":3097,"tag":3380,"props":11359,"children":11360},{"style":3454},[11361],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":11363,"children":11364},{"style":3459},[11365],{"type":3102,"value":5306},{"type":3097,"tag":3380,"props":11367,"children":11368},{"class":3382,"line":3022},[11369,11373,11377],{"type":3097,"tag":3380,"props":11370,"children":11371},{"style":3525},[11372],{"type":3102,"value":6566},{"type":3097,"tag":3380,"props":11374,"children":11375},{"style":3459},[11376],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":11378,"children":11379},{"style":3459},[11380],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":11382,"children":11383},{"class":3382,"line":3006},[11384,11389,11393,11397,11402],{"type":3097,"tag":3380,"props":11385,"children":11386},{"style":3525},[11387],{"type":3102,"value":11388},"    loadStrategy",{"type":3097,"tag":3380,"props":11390,"children":11391},{"style":3459},[11392],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":11394,"children":11395},{"style":3459},[11396],{"type":3102,"value":4703},{"type":3097,"tag":3380,"props":11398,"children":11399},{"style":3392},[11400],{"type":3102,"value":11401},"client-only",{"type":3097,"tag":3380,"props":11403,"children":11404},{"style":3459},[11405],{"type":3102,"value":4712},{"type":3097,"tag":3380,"props":11407,"children":11408},{"class":3382,"line":3643},[11409],{"type":3097,"tag":3380,"props":11410,"children":11411},{"style":3459},[11412],{"type":3102,"value":5080},{"type":3097,"tag":3380,"props":11414,"children":11415},{"class":3382,"line":3652},[11416,11420],{"type":3097,"tag":3380,"props":11417,"children":11418},{"style":3459},[11419],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":11421,"children":11422},{"style":3454},[11423],{"type":3102,"value":4822},{"type":3097,"tag":3104,"props":11425,"children":11426},{},[11427,11429,11434,11436,11441,11442,11448],{"type":3102,"value":11428},"When using the ",{"type":3097,"tag":3242,"props":11430,"children":11432},{"className":11431},[],[11433],{"type":3102,"value":11401},{"type":3102,"value":11435}," load strategy, the user session can still be manually fetched on the server side by calling ",{"type":3097,"tag":3242,"props":11437,"children":11439},{"className":11438},[],[11440],{"type":3102,"value":10814},{"type":3102,"value":7327},{"type":3097,"tag":3242,"props":11443,"children":11445},{"className":11444},[],[11446],{"type":3102,"value":11447},"useUserSession",{"type":3102,"value":11449}," composable.",{"type":3097,"tag":3500,"props":11451,"children":11453},{"id":11452},"disable-session-loading",[11454],{"type":3102,"value":11455},"Disable session loading",{"type":3097,"tag":3104,"props":11457,"children":11458},{},[11459,11461,11466,11467,11472],{"type":3102,"value":11460},"You may also choose to disable session loading entirely, with the ",{"type":3097,"tag":3242,"props":11462,"children":11464},{"className":11463},[],[11465],{"type":3102,"value":11327},{"type":3102,"value":11329},{"type":3097,"tag":3242,"props":11468,"children":11470},{"className":11469},[],[11471],{"type":3102,"value":233},{"type":3102,"value":4119},{"type":3097,"tag":3370,"props":11474,"children":11476},{"className":4058,"code":11475,"language":4060,"meta":2970,"style":2970},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'none'\n  }\n})\n",[11477],{"type":3097,"tag":3242,"props":11478,"children":11479},{"__ignoreMap":2970},[11480,11503,11518,11542,11549],{"type":3097,"tag":3380,"props":11481,"children":11482},{"class":3382,"line":3056},[11483,11487,11491,11495,11499],{"type":3097,"tag":3380,"props":11484,"children":11485},{"style":4642},[11486],{"type":3102,"value":5176},{"type":3097,"tag":3380,"props":11488,"children":11489},{"style":4642},[11490],{"type":3102,"value":5291},{"type":3097,"tag":3380,"props":11492,"children":11493},{"style":3616},[11494],{"type":3102,"value":5296},{"type":3097,"tag":3380,"props":11496,"children":11497},{"style":3454},[11498],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":11500,"children":11501},{"style":3459},[11502],{"type":3102,"value":5306},{"type":3097,"tag":3380,"props":11504,"children":11505},{"class":3382,"line":3022},[11506,11510,11514],{"type":3097,"tag":3380,"props":11507,"children":11508},{"style":3525},[11509],{"type":3102,"value":6566},{"type":3097,"tag":3380,"props":11511,"children":11512},{"style":3459},[11513],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":11515,"children":11516},{"style":3459},[11517],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":11519,"children":11520},{"class":3382,"line":3006},[11521,11525,11529,11533,11538],{"type":3097,"tag":3380,"props":11522,"children":11523},{"style":3525},[11524],{"type":3102,"value":11388},{"type":3097,"tag":3380,"props":11526,"children":11527},{"style":3459},[11528],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":11530,"children":11531},{"style":3459},[11532],{"type":3102,"value":4703},{"type":3097,"tag":3380,"props":11534,"children":11535},{"style":3392},[11536],{"type":3102,"value":11537},"none",{"type":3097,"tag":3380,"props":11539,"children":11540},{"style":3459},[11541],{"type":3102,"value":4712},{"type":3097,"tag":3380,"props":11543,"children":11544},{"class":3382,"line":3643},[11545],{"type":3097,"tag":3380,"props":11546,"children":11547},{"style":3459},[11548],{"type":3102,"value":5080},{"type":3097,"tag":3380,"props":11550,"children":11551},{"class":3382,"line":3652},[11552,11556],{"type":3097,"tag":3380,"props":11553,"children":11554},{"style":3459},[11555],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":11557,"children":11558},{"style":3454},[11559],{"type":3102,"value":4822},{"type":3097,"tag":3104,"props":11561,"children":11562},{},[11563,11564,11569,11571,11577],{"type":3102,"value":11428},{"type":3097,"tag":3242,"props":11565,"children":11567},{"className":11566},[],[11568],{"type":3102,"value":11537},{"type":3102,"value":11570}," load strategy, the user session can still be manually fetched by calling ",{"type":3097,"tag":3242,"props":11572,"children":11574},{"className":11573},[],[11575],{"type":3102,"value":11576},"useUserSession().fetch()",{"type":3102,"value":3335},{"type":3097,"tag":3500,"props":11579,"children":11581},{"id":11580},"authstate-component",[11582,11587],{"type":3097,"tag":3242,"props":11583,"children":11585},{"className":11584},[],[11586],{"type":3102,"value":3271},{"type":3102,"value":3273},{"type":3097,"tag":3104,"props":11589,"children":11590},{},[11591,11593,11598],{"type":3102,"value":11592},"You can use the ",{"type":3097,"tag":3242,"props":11594,"children":11596},{"className":11595},[],[11597],{"type":3102,"value":3271},{"type":3102,"value":11599}," component to safely display auth-related data in your components without worrying about the rendering mode.",{"type":3097,"tag":3104,"props":11601,"children":11602},{},[11603],{"type":3102,"value":11604},"One common use case if the Login button in the header:",{"type":3097,"tag":3370,"props":11606,"children":11608},{"className":3508,"code":11607,"language":3510,"meta":2970,"style":2970},"\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",[11609],{"type":3097,"tag":3242,"props":11610,"children":11611},{"__ignoreMap":2970},[11612,11627,11643,11681,11753,11812,11828,11843],{"type":3097,"tag":3380,"props":11613,"children":11614},{"class":3382,"line":3056},[11615,11619,11623],{"type":3097,"tag":3380,"props":11616,"children":11617},{"style":3459},[11618],{"type":3102,"value":3522},{"type":3097,"tag":3380,"props":11620,"children":11621},{"style":3525},[11622],{"type":3102,"value":3662},{"type":3097,"tag":3380,"props":11624,"children":11625},{"style":3459},[11626],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":11628,"children":11629},{"class":3382,"line":3022},[11630,11634,11639],{"type":3097,"tag":3380,"props":11631,"children":11632},{"style":3459},[11633],{"type":3102,"value":3675},{"type":3097,"tag":3380,"props":11635,"children":11636},{"style":3525},[11637],{"type":3102,"value":11638},"header",{"type":3097,"tag":3380,"props":11640,"children":11641},{"style":3459},[11642],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":11644,"children":11645},{"class":3382,"line":3006},[11646,11650,11655,11660,11664,11668,11673,11677],{"type":3097,"tag":3380,"props":11647,"children":11648},{"style":3459},[11649],{"type":3102,"value":3715},{"type":3097,"tag":3380,"props":11651,"children":11652},{"style":3525},[11653],{"type":3102,"value":11654},"AuthState",{"type":3097,"tag":3380,"props":11656,"children":11657},{"style":3531},[11658],{"type":3102,"value":11659}," v-slot",{"type":3097,"tag":3380,"props":11661,"children":11662},{"style":3459},[11663],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":11665,"children":11666},{"style":3459},[11667],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":11669,"children":11670},{"style":3392},[11671],{"type":3102,"value":11672},"{ loggedIn, clear }",{"type":3097,"tag":3380,"props":11674,"children":11675},{"style":3459},[11676],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":11678,"children":11679},{"style":3459},[11680],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":11682,"children":11683},{"class":3382,"line":3643},[11684,11689,11693,11697,11701,11705,11709,11713,11717,11721,11725,11729,11733,11737,11741,11745,11749],{"type":3097,"tag":3380,"props":11685,"children":11686},{"style":3459},[11687],{"type":3102,"value":11688},"      \u003C",{"type":3097,"tag":3380,"props":11690,"children":11691},{"style":3525},[11692],{"type":3102,"value":3785},{"type":3097,"tag":3380,"props":11694,"children":11695},{"style":3531},[11696],{"type":3102,"value":3685},{"type":3097,"tag":3380,"props":11698,"children":11699},{"style":3459},[11700],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":11702,"children":11703},{"style":3459},[11704],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":11706,"children":11707},{"style":3392},[11708],{"type":3102,"value":3699},{"type":3097,"tag":3380,"props":11710,"children":11711},{"style":3459},[11712],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":11714,"children":11715},{"style":3531},[11716],{"type":3102,"value":3790},{"type":3097,"tag":3380,"props":11718,"children":11719},{"style":3459},[11720],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":11722,"children":11723},{"style":3459},[11724],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":11726,"children":11727},{"style":3392},[11728],{"type":3102,"value":3803},{"type":3097,"tag":3380,"props":11730,"children":11731},{"style":3459},[11732],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":11734,"children":11735},{"style":3459},[11736],{"type":3102,"value":3724},{"type":3097,"tag":3380,"props":11738,"children":11739},{"style":3454},[11740],{"type":3102,"value":3816},{"type":3097,"tag":3380,"props":11742,"children":11743},{"style":3459},[11744],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":11746,"children":11747},{"style":3525},[11748],{"type":3102,"value":3785},{"type":3097,"tag":3380,"props":11750,"children":11751},{"style":3459},[11752],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":11754,"children":11755},{"class":3382,"line":3652},[11756,11760,11765,11769,11774,11778,11782,11787,11791,11795,11800,11804,11808],{"type":3097,"tag":3380,"props":11757,"children":11758},{"style":3459},[11759],{"type":3102,"value":11688},{"type":3097,"tag":3380,"props":11761,"children":11762},{"style":3525},[11763],{"type":3102,"value":11764},"NuxtLink",{"type":3097,"tag":3380,"props":11766,"children":11767},{"style":3531},[11768],{"type":3102,"value":3861},{"type":3097,"tag":3380,"props":11770,"children":11771},{"style":3531},[11772],{"type":3102,"value":11773}," to",{"type":3097,"tag":3380,"props":11775,"children":11776},{"style":3459},[11777],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":11779,"children":11780},{"style":3459},[11781],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":11783,"children":11784},{"style":3392},[11785],{"type":3102,"value":11786},"\u002Flogin",{"type":3097,"tag":3380,"props":11788,"children":11789},{"style":3459},[11790],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":11792,"children":11793},{"style":3459},[11794],{"type":3102,"value":3724},{"type":3097,"tag":3380,"props":11796,"children":11797},{"style":3454},[11798],{"type":3102,"value":11799},"Login",{"type":3097,"tag":3380,"props":11801,"children":11802},{"style":3459},[11803],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":11805,"children":11806},{"style":3525},[11807],{"type":3102,"value":11764},{"type":3097,"tag":3380,"props":11809,"children":11810},{"style":3459},[11811],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":11813,"children":11814},{"class":3382,"line":3669},[11815,11820,11824],{"type":3097,"tag":3380,"props":11816,"children":11817},{"style":3459},[11818],{"type":3102,"value":11819},"    \u003C\u002F",{"type":3097,"tag":3380,"props":11821,"children":11822},{"style":3525},[11823],{"type":3102,"value":11654},{"type":3097,"tag":3380,"props":11825,"children":11826},{"style":3459},[11827],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":11829,"children":11830},{"class":3382,"line":3002},[11831,11835,11839],{"type":3097,"tag":3380,"props":11832,"children":11833},{"style":3459},[11834],{"type":3102,"value":3837},{"type":3097,"tag":3380,"props":11836,"children":11837},{"style":3525},[11838],{"type":3102,"value":11638},{"type":3097,"tag":3380,"props":11840,"children":11841},{"style":3459},[11842],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":11844,"children":11845},{"class":3382,"line":2998},[11846,11850,11854],{"type":3097,"tag":3380,"props":11847,"children":11848},{"style":3459},[11849],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":11851,"children":11852},{"style":3525},[11853],{"type":3102,"value":3662},{"type":3097,"tag":3380,"props":11855,"children":11856},{"style":3459},[11857],{"type":3102,"value":3539},{"type":3097,"tag":3104,"props":11859,"children":11860},{},[11861,11863,11868],{"type":3102,"value":11862},"If the page is cached or prerendered or the load strategy set as ",{"type":3097,"tag":3242,"props":11864,"children":11866},{"className":11865},[],[11867],{"type":3102,"value":11401},{"type":3102,"value":11869},", nothing will be rendered until the user session is fetched on the client-side.",{"type":3097,"tag":3104,"props":11871,"children":11872},{},[11873,11874,11880],{"type":3102,"value":11592},{"type":3097,"tag":3242,"props":11875,"children":11877},{"className":11876},[],[11878],{"type":3102,"value":11879},"placeholder",{"type":3102,"value":11881}," slot to show a placeholder on server-side and while the user session is being fetched on client-side for the prerendered pages:",{"type":3097,"tag":3370,"props":11883,"children":11885},{"className":3508,"code":11884,"language":3510,"meta":2970,"style":2970},"\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",[11886],{"type":3097,"tag":3242,"props":11887,"children":11888},{"__ignoreMap":2970},[11889,11904,11919,11934,11992,12064,12119,12135,12158,12195,12210,12225,12240],{"type":3097,"tag":3380,"props":11890,"children":11891},{"class":3382,"line":3056},[11892,11896,11900],{"type":3097,"tag":3380,"props":11893,"children":11894},{"style":3459},[11895],{"type":3102,"value":3522},{"type":3097,"tag":3380,"props":11897,"children":11898},{"style":3525},[11899],{"type":3102,"value":3662},{"type":3097,"tag":3380,"props":11901,"children":11902},{"style":3459},[11903],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":11905,"children":11906},{"class":3382,"line":3022},[11907,11911,11915],{"type":3097,"tag":3380,"props":11908,"children":11909},{"style":3459},[11910],{"type":3102,"value":3675},{"type":3097,"tag":3380,"props":11912,"children":11913},{"style":3525},[11914],{"type":3102,"value":11638},{"type":3097,"tag":3380,"props":11916,"children":11917},{"style":3459},[11918],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":11920,"children":11921},{"class":3382,"line":3006},[11922,11926,11930],{"type":3097,"tag":3380,"props":11923,"children":11924},{"style":3459},[11925],{"type":3102,"value":3715},{"type":3097,"tag":3380,"props":11927,"children":11928},{"style":3525},[11929],{"type":3102,"value":11654},{"type":3097,"tag":3380,"props":11931,"children":11932},{"style":3459},[11933],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":11935,"children":11936},{"class":3382,"line":3643},[11937,11941,11945,11950,11955,11959,11963,11967,11971,11975,11980,11984,11988],{"type":3097,"tag":3380,"props":11938,"children":11939},{"style":3459},[11940],{"type":3102,"value":11688},{"type":3097,"tag":3380,"props":11942,"children":11943},{"style":3525},[11944],{"type":3102,"value":3662},{"type":3097,"tag":3380,"props":11946,"children":11947},{"style":3459},[11948],{"type":3102,"value":11949}," #",{"type":3097,"tag":3380,"props":11951,"children":11952},{"style":3531},[11953],{"type":3102,"value":11954},"default",{"type":3097,"tag":3380,"props":11956,"children":11957},{"style":3459},[11958],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":11960,"children":11961},{"style":3459},[11962],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":11964,"children":11965},{"style":3459},[11966],{"type":3102,"value":7751},{"type":3097,"tag":3380,"props":11968,"children":11969},{"style":3454},[11970],{"type":3102,"value":3557},{"type":3097,"tag":3380,"props":11972,"children":11973},{"style":3459},[11974],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":11976,"children":11977},{"style":3454},[11978],{"type":3102,"value":11979}," clear ",{"type":3097,"tag":3380,"props":11981,"children":11982},{"style":3459},[11983],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":11985,"children":11986},{"style":3459},[11987],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":11989,"children":11990},{"style":3459},[11991],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":11993,"children":11994},{"class":3382,"line":3652},[11995,12000,12004,12008,12012,12016,12020,12024,12028,12032,12036,12040,12044,12048,12052,12056,12060],{"type":3097,"tag":3380,"props":11996,"children":11997},{"style":3459},[11998],{"type":3102,"value":11999},"        \u003C",{"type":3097,"tag":3380,"props":12001,"children":12002},{"style":3525},[12003],{"type":3102,"value":3785},{"type":3097,"tag":3380,"props":12005,"children":12006},{"style":3531},[12007],{"type":3102,"value":3685},{"type":3097,"tag":3380,"props":12009,"children":12010},{"style":3459},[12011],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":12013,"children":12014},{"style":3459},[12015],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":12017,"children":12018},{"style":3392},[12019],{"type":3102,"value":3699},{"type":3097,"tag":3380,"props":12021,"children":12022},{"style":3459},[12023],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":12025,"children":12026},{"style":3531},[12027],{"type":3102,"value":3790},{"type":3097,"tag":3380,"props":12029,"children":12030},{"style":3459},[12031],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":12033,"children":12034},{"style":3459},[12035],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":12037,"children":12038},{"style":3392},[12039],{"type":3102,"value":3803},{"type":3097,"tag":3380,"props":12041,"children":12042},{"style":3459},[12043],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":12045,"children":12046},{"style":3459},[12047],{"type":3102,"value":3724},{"type":3097,"tag":3380,"props":12049,"children":12050},{"style":3454},[12051],{"type":3102,"value":3816},{"type":3097,"tag":3380,"props":12053,"children":12054},{"style":3459},[12055],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":12057,"children":12058},{"style":3525},[12059],{"type":3102,"value":3785},{"type":3097,"tag":3380,"props":12061,"children":12062},{"style":3459},[12063],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":12065,"children":12066},{"class":3382,"line":3669},[12067,12071,12075,12079,12083,12087,12091,12095,12099,12103,12107,12111,12115],{"type":3097,"tag":3380,"props":12068,"children":12069},{"style":3459},[12070],{"type":3102,"value":11999},{"type":3097,"tag":3380,"props":12072,"children":12073},{"style":3525},[12074],{"type":3102,"value":11764},{"type":3097,"tag":3380,"props":12076,"children":12077},{"style":3531},[12078],{"type":3102,"value":3861},{"type":3097,"tag":3380,"props":12080,"children":12081},{"style":3531},[12082],{"type":3102,"value":11773},{"type":3097,"tag":3380,"props":12084,"children":12085},{"style":3459},[12086],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":12088,"children":12089},{"style":3459},[12090],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":12092,"children":12093},{"style":3392},[12094],{"type":3102,"value":11786},{"type":3097,"tag":3380,"props":12096,"children":12097},{"style":3459},[12098],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":12100,"children":12101},{"style":3459},[12102],{"type":3102,"value":3724},{"type":3097,"tag":3380,"props":12104,"children":12105},{"style":3454},[12106],{"type":3102,"value":11799},{"type":3097,"tag":3380,"props":12108,"children":12109},{"style":3459},[12110],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":12112,"children":12113},{"style":3525},[12114],{"type":3102,"value":11764},{"type":3097,"tag":3380,"props":12116,"children":12117},{"style":3459},[12118],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":12120,"children":12121},{"class":3382,"line":3002},[12122,12127,12131],{"type":3097,"tag":3380,"props":12123,"children":12124},{"style":3459},[12125],{"type":3102,"value":12126},"      \u003C\u002F",{"type":3097,"tag":3380,"props":12128,"children":12129},{"style":3525},[12130],{"type":3102,"value":3662},{"type":3097,"tag":3380,"props":12132,"children":12133},{"style":3459},[12134],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":12136,"children":12137},{"class":3382,"line":2998},[12138,12142,12146,12150,12154],{"type":3097,"tag":3380,"props":12139,"children":12140},{"style":3459},[12141],{"type":3102,"value":11688},{"type":3097,"tag":3380,"props":12143,"children":12144},{"style":3525},[12145],{"type":3102,"value":3662},{"type":3097,"tag":3380,"props":12147,"children":12148},{"style":3459},[12149],{"type":3102,"value":11949},{"type":3097,"tag":3380,"props":12151,"children":12152},{"style":3531},[12153],{"type":3102,"value":11879},{"type":3097,"tag":3380,"props":12155,"children":12156},{"style":3459},[12157],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":12159,"children":12160},{"class":3382,"line":2994},[12161,12165,12169,12174,12178,12183,12187,12191],{"type":3097,"tag":3380,"props":12162,"children":12163},{"style":3459},[12164],{"type":3102,"value":11999},{"type":3097,"tag":3380,"props":12166,"children":12167},{"style":3525},[12168],{"type":3102,"value":3785},{"type":3097,"tag":3380,"props":12170,"children":12171},{"style":3531},[12172],{"type":3102,"value":12173}," disabled",{"type":3097,"tag":3380,"props":12175,"children":12176},{"style":3459},[12177],{"type":3102,"value":3724},{"type":3097,"tag":3380,"props":12179,"children":12180},{"style":3454},[12181],{"type":3102,"value":12182},"Loading...",{"type":3097,"tag":3380,"props":12184,"children":12185},{"style":3459},[12186],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":12188,"children":12189},{"style":3525},[12190],{"type":3102,"value":3785},{"type":3097,"tag":3380,"props":12192,"children":12193},{"style":3459},[12194],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":12196,"children":12197},{"class":3382,"line":3831},[12198,12202,12206],{"type":3097,"tag":3380,"props":12199,"children":12200},{"style":3459},[12201],{"type":3102,"value":12126},{"type":3097,"tag":3380,"props":12203,"children":12204},{"style":3525},[12205],{"type":3102,"value":3662},{"type":3097,"tag":3380,"props":12207,"children":12208},{"style":3459},[12209],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":12211,"children":12212},{"class":3382,"line":3085},[12213,12217,12221],{"type":3097,"tag":3380,"props":12214,"children":12215},{"style":3459},[12216],{"type":3102,"value":11819},{"type":3097,"tag":3380,"props":12218,"children":12219},{"style":3525},[12220],{"type":3102,"value":11654},{"type":3097,"tag":3380,"props":12222,"children":12223},{"style":3459},[12224],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":12226,"children":12227},{"class":3382,"line":3868},[12228,12232,12236],{"type":3097,"tag":3380,"props":12229,"children":12230},{"style":3459},[12231],{"type":3102,"value":3837},{"type":3097,"tag":3380,"props":12233,"children":12234},{"style":3525},[12235],{"type":3102,"value":11638},{"type":3097,"tag":3380,"props":12237,"children":12238},{"style":3459},[12239],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":12241,"children":12242},{"class":3382,"line":3901},[12243,12247,12251],{"type":3097,"tag":3380,"props":12244,"children":12245},{"style":3459},[12246],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":12248,"children":12249},{"style":3525},[12250],{"type":3102,"value":3662},{"type":3097,"tag":3380,"props":12252,"children":12253},{"style":3459},[12254],{"type":3102,"value":3539},{"type":3097,"tag":3104,"props":12256,"children":12257},{},[12258,12260,12265,12267,12273,12275,12281],{"type":3102,"value":12259},"If you are caching your routes with ",{"type":3097,"tag":3242,"props":12261,"children":12263},{"className":12262},[],[12264],{"type":3102,"value":11301},{"type":3102,"value":12266},", please make sure to use ",{"type":3097,"tag":3108,"props":12268,"children":12271},{"href":12269,"rel":12270},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fnitro",[3112],[12272],{"type":3102,"value":833},{"type":3102,"value":12274}," >= ",{"type":3097,"tag":3242,"props":12276,"children":12278},{"className":12277},[],[12279],{"type":3102,"value":12280},"2.9.7",{"type":3102,"value":12282}," to support the client-side fetching of the user session.",{"type":3097,"tag":3188,"props":12284,"children":12286},{"id":12285},"websocket-support",[12287],{"type":3102,"value":12288},"WebSocket Support",{"type":3097,"tag":3104,"props":12290,"children":12291},{},[12292,12294,12301],{"type":3102,"value":12293},"Nuxt Auth Utils is compatible with ",{"type":3097,"tag":3108,"props":12295,"children":12298},{"href":12296,"rel":12297},"https:\u002F\u002Fnitro.build\u002Fguide\u002Fwebsocket",[3112],[12299],{"type":3102,"value":12300},"Nitro WebSockets",{"type":3102,"value":3335},{"type":3097,"tag":3104,"props":12303,"children":12304},{},[12305,12307,12313,12314,12319],{"type":3102,"value":12306},"Make sure to enable the ",{"type":3097,"tag":3242,"props":12308,"children":12310},{"className":12309},[],[12311],{"type":3102,"value":12312},"experimental.websocket",{"type":3102,"value":11329},{"type":3097,"tag":3242,"props":12315,"children":12317},{"className":12316},[],[12318],{"type":3102,"value":233},{"type":3102,"value":4119},{"type":3097,"tag":3370,"props":12321,"children":12323},{"className":4058,"code":12322,"language":4060,"meta":2970,"style":2970},"export default defineNuxtConfig({\n  nitro: {\n    experimental: {\n      websocket: true\n    }\n  }\n})\n",[12324],{"type":3097,"tag":3242,"props":12325,"children":12326},{"__ignoreMap":2970},[12327,12350,12366,12382,12398,12405,12412],{"type":3097,"tag":3380,"props":12328,"children":12329},{"class":3382,"line":3056},[12330,12334,12338,12342,12346],{"type":3097,"tag":3380,"props":12331,"children":12332},{"style":4642},[12333],{"type":3102,"value":5176},{"type":3097,"tag":3380,"props":12335,"children":12336},{"style":4642},[12337],{"type":3102,"value":5291},{"type":3097,"tag":3380,"props":12339,"children":12340},{"style":3616},[12341],{"type":3102,"value":5296},{"type":3097,"tag":3380,"props":12343,"children":12344},{"style":3454},[12345],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":12347,"children":12348},{"style":3459},[12349],{"type":3102,"value":5306},{"type":3097,"tag":3380,"props":12351,"children":12352},{"class":3382,"line":3022},[12353,12358,12362],{"type":3097,"tag":3380,"props":12354,"children":12355},{"style":3525},[12356],{"type":3102,"value":12357},"  nitro",{"type":3097,"tag":3380,"props":12359,"children":12360},{"style":3459},[12361],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":12363,"children":12364},{"style":3459},[12365],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":12367,"children":12368},{"class":3382,"line":3006},[12369,12374,12378],{"type":3097,"tag":3380,"props":12370,"children":12371},{"style":3525},[12372],{"type":3102,"value":12373},"    experimental",{"type":3097,"tag":3380,"props":12375,"children":12376},{"style":3459},[12377],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":12379,"children":12380},{"style":3459},[12381],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":12383,"children":12384},{"class":3382,"line":3643},[12385,12390,12394],{"type":3097,"tag":3380,"props":12386,"children":12387},{"style":3525},[12388],{"type":3102,"value":12389},"      websocket",{"type":3097,"tag":3380,"props":12391,"children":12392},{"style":3459},[12393],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":12395,"children":12396},{"style":5826},[12397],{"type":3102,"value":5829},{"type":3097,"tag":3380,"props":12399,"children":12400},{"class":3382,"line":3652},[12401],{"type":3097,"tag":3380,"props":12402,"children":12403},{"style":3459},[12404],{"type":3102,"value":5432},{"type":3097,"tag":3380,"props":12406,"children":12407},{"class":3382,"line":3669},[12408],{"type":3097,"tag":3380,"props":12409,"children":12410},{"style":3459},[12411],{"type":3102,"value":5080},{"type":3097,"tag":3380,"props":12413,"children":12414},{"class":3382,"line":3002},[12415,12419],{"type":3097,"tag":3380,"props":12416,"children":12417},{"style":3459},[12418],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":12420,"children":12421},{"style":3454},[12422],{"type":3102,"value":4822},{"type":3097,"tag":3104,"props":12424,"children":12425},{},[12426,12427,12433,12435,12441],{"type":3102,"value":11592},{"type":3097,"tag":3242,"props":12428,"children":12430},{"className":12429},[],[12431],{"type":3102,"value":12432},"requireUserSession",{"type":3102,"value":12434}," function in the ",{"type":3097,"tag":3242,"props":12436,"children":12438},{"className":12437},[],[12439],{"type":3102,"value":12440},"upgrade",{"type":3102,"value":12442}," function to check if the user is authenticated before upgrading the WebSocket connection.",{"type":3097,"tag":3370,"props":12444,"children":12446},{"className":4058,"code":12445,"language":4060,"meta":2970,"style":2970},"\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",[12447],{"type":3097,"tag":3242,"props":12448,"children":12449},{"__ignoreMap":2970},[12450,12458,12482,12511,12519,12542,12549,12578,12621,12628,12691,12698,12730,12775,12782],{"type":3097,"tag":3380,"props":12451,"children":12452},{"class":3382,"line":3056},[12453],{"type":3097,"tag":3380,"props":12454,"children":12455},{"style":3445},[12456],{"type":3102,"value":12457},"\u002F\u002F server\u002Froutes\u002Fws.ts\n",{"type":3097,"tag":3380,"props":12459,"children":12460},{"class":3382,"line":3022},[12461,12465,12469,12474,12478],{"type":3097,"tag":3380,"props":12462,"children":12463},{"style":4642},[12464],{"type":3102,"value":5176},{"type":3097,"tag":3380,"props":12466,"children":12467},{"style":4642},[12468],{"type":3102,"value":5291},{"type":3097,"tag":3380,"props":12470,"children":12471},{"style":3616},[12472],{"type":3102,"value":12473}," defineWebSocketHandler",{"type":3097,"tag":3380,"props":12475,"children":12476},{"style":3454},[12477],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":12479,"children":12480},{"style":3459},[12481],{"type":3102,"value":5306},{"type":3097,"tag":3380,"props":12483,"children":12484},{"class":3382,"line":3006},[12485,12489,12494,12498,12503,12507],{"type":3097,"tag":3380,"props":12486,"children":12487},{"style":3531},[12488],{"type":3102,"value":5844},{"type":3097,"tag":3380,"props":12490,"children":12491},{"style":3525},[12492],{"type":3102,"value":12493}," upgrade",{"type":3097,"tag":3380,"props":12495,"children":12496},{"style":3459},[12497],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":12499,"children":12500},{"style":4474},[12501],{"type":3102,"value":12502},"request",{"type":3097,"tag":3380,"props":12504,"children":12505},{"style":3459},[12506],{"type":3102,"value":6062},{"type":3097,"tag":3380,"props":12508,"children":12509},{"style":3459},[12510],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":12512,"children":12513},{"class":3382,"line":3643},[12514],{"type":3097,"tag":3380,"props":12515,"children":12516},{"style":3445},[12517],{"type":3102,"value":12518},"    \u002F\u002F Make sure the user is authenticated before upgrading the WebSocket connection\n",{"type":3097,"tag":3380,"props":12520,"children":12521},{"class":3382,"line":3652},[12522,12526,12530,12534,12538],{"type":3097,"tag":3380,"props":12523,"children":12524},{"style":4642},[12525],{"type":3102,"value":5895},{"type":3097,"tag":3380,"props":12527,"children":12528},{"style":3616},[12529],{"type":3102,"value":4978},{"type":3097,"tag":3380,"props":12531,"children":12532},{"style":3525},[12533],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":12535,"children":12536},{"style":3454},[12537],{"type":3102,"value":12502},{"type":3097,"tag":3380,"props":12539,"children":12540},{"style":3525},[12541],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":12543,"children":12544},{"class":3382,"line":3669},[12545],{"type":3097,"tag":3380,"props":12546,"children":12547},{"style":3459},[12548],{"type":3102,"value":4720},{"type":3097,"tag":3380,"props":12550,"children":12551},{"class":3382,"line":3002},[12552,12556,12561,12565,12570,12574],{"type":3097,"tag":3380,"props":12553,"children":12554},{"style":3531},[12555],{"type":3102,"value":5844},{"type":3097,"tag":3380,"props":12557,"children":12558},{"style":3525},[12559],{"type":3102,"value":12560}," open",{"type":3097,"tag":3380,"props":12562,"children":12563},{"style":3459},[12564],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":12566,"children":12567},{"style":4474},[12568],{"type":3102,"value":12569},"peer",{"type":3097,"tag":3380,"props":12571,"children":12572},{"style":3459},[12573],{"type":3102,"value":6062},{"type":3097,"tag":3380,"props":12575,"children":12576},{"style":3459},[12577],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":12579,"children":12580},{"class":3382,"line":2998},[12581,12585,12589,12593,12597,12601,12605,12609,12613,12617],{"type":3097,"tag":3380,"props":12582,"children":12583},{"style":3531},[12584],{"type":3102,"value":7612},{"type":3097,"tag":3380,"props":12586,"children":12587},{"style":3459},[12588],{"type":3102,"value":3552},{"type":3097,"tag":3380,"props":12590,"children":12591},{"style":3454},[12592],{"type":3102,"value":3567},{"type":3097,"tag":3380,"props":12594,"children":12595},{"style":3459},[12596],{"type":3102,"value":7492},{"type":3097,"tag":3380,"props":12598,"children":12599},{"style":3459},[12600],{"type":3102,"value":3613},{"type":3097,"tag":3380,"props":12602,"children":12603},{"style":4642},[12604],{"type":3102,"value":4898},{"type":3097,"tag":3380,"props":12606,"children":12607},{"style":3616},[12608],{"type":3102,"value":4978},{"type":3097,"tag":3380,"props":12610,"children":12611},{"style":3525},[12612],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":12614,"children":12615},{"style":3454},[12616],{"type":3102,"value":12569},{"type":3097,"tag":3380,"props":12618,"children":12619},{"style":3525},[12620],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":12622,"children":12623},{"class":3382,"line":2994},[12624],{"type":3097,"tag":3380,"props":12625,"children":12626},{"emptyLinePlaceholder":1196},[12627],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":12629,"children":12630},{"class":3382,"line":3831},[12631,12636,12640,12645,12649,12653,12658,12662,12666,12670,12675,12679,12683,12687],{"type":3097,"tag":3380,"props":12632,"children":12633},{"style":3454},[12634],{"type":3102,"value":12635},"    peer",{"type":3097,"tag":3380,"props":12637,"children":12638},{"style":3459},[12639],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":12641,"children":12642},{"style":3616},[12643],{"type":3102,"value":12644},"send",{"type":3097,"tag":3380,"props":12646,"children":12647},{"style":3525},[12648],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":12650,"children":12651},{"style":3459},[12652],{"type":3102,"value":8080},{"type":3097,"tag":3380,"props":12654,"children":12655},{"style":3392},[12656],{"type":3102,"value":12657},"Hello, ",{"type":3097,"tag":3380,"props":12659,"children":12660},{"style":3459},[12661],{"type":3102,"value":9419},{"type":3097,"tag":3380,"props":12663,"children":12664},{"style":3454},[12665],{"type":3102,"value":7666},{"type":3097,"tag":3380,"props":12667,"children":12668},{"style":3459},[12669],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":12671,"children":12672},{"style":3454},[12673],{"type":3102,"value":12674},"name",{"type":3097,"tag":3380,"props":12676,"children":12677},{"style":3459},[12678],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":12680,"children":12681},{"style":3392},[12682],{"type":3102,"value":8105},{"type":3097,"tag":3380,"props":12684,"children":12685},{"style":3459},[12686],{"type":3102,"value":8080},{"type":3097,"tag":3380,"props":12688,"children":12689},{"style":3525},[12690],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":12692,"children":12693},{"class":3382,"line":3085},[12694],{"type":3097,"tag":3380,"props":12695,"children":12696},{"style":3459},[12697],{"type":3102,"value":4720},{"type":3097,"tag":3380,"props":12699,"children":12700},{"class":3382,"line":3868},[12701,12706,12710,12714,12718,12722,12726],{"type":3097,"tag":3380,"props":12702,"children":12703},{"style":3525},[12704],{"type":3102,"value":12705},"  message",{"type":3097,"tag":3380,"props":12707,"children":12708},{"style":3459},[12709],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":12711,"children":12712},{"style":4474},[12713],{"type":3102,"value":12569},{"type":3097,"tag":3380,"props":12715,"children":12716},{"style":3459},[12717],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":12719,"children":12720},{"style":4474},[12721],{"type":3102,"value":7774},{"type":3097,"tag":3380,"props":12723,"children":12724},{"style":3459},[12725],{"type":3102,"value":6062},{"type":3097,"tag":3380,"props":12727,"children":12728},{"style":3459},[12729],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":12731,"children":12732},{"class":3382,"line":3901},[12733,12737,12741,12745,12749,12753,12758,12762,12767,12771],{"type":3097,"tag":3380,"props":12734,"children":12735},{"style":3454},[12736],{"type":3102,"value":12635},{"type":3097,"tag":3380,"props":12738,"children":12739},{"style":3459},[12740],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":12742,"children":12743},{"style":3616},[12744],{"type":3102,"value":12644},{"type":3097,"tag":3380,"props":12746,"children":12747},{"style":3525},[12748],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":12750,"children":12751},{"style":3459},[12752],{"type":3102,"value":8080},{"type":3097,"tag":3380,"props":12754,"children":12755},{"style":3392},[12756],{"type":3102,"value":12757},"Echo: ",{"type":3097,"tag":3380,"props":12759,"children":12760},{"style":3459},[12761],{"type":3102,"value":9419},{"type":3097,"tag":3380,"props":12763,"children":12764},{"style":3454},[12765],{"type":3102,"value":12766},"message",{"type":3097,"tag":3380,"props":12768,"children":12769},{"style":3459},[12770],{"type":3102,"value":9429},{"type":3097,"tag":3380,"props":12772,"children":12773},{"style":3525},[12774],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":12776,"children":12777},{"class":3382,"line":3956},[12778],{"type":3097,"tag":3380,"props":12779,"children":12780},{"style":3459},[12781],{"type":3102,"value":4720},{"type":3097,"tag":3380,"props":12783,"children":12784},{"class":3382,"line":3965},[12785,12789],{"type":3097,"tag":3380,"props":12786,"children":12787},{"style":3459},[12788],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":12790,"children":12791},{"style":3454},[12792],{"type":3102,"value":4822},{"type":3097,"tag":3104,"props":12794,"children":12795},{},[12796,12798,12805],{"type":3102,"value":12797},"Then, in your application, you can use the ",{"type":3097,"tag":3108,"props":12799,"children":12802},{"href":12800,"rel":12801},"https:\u002F\u002Fvueuse.org\u002Fcore\u002FuseWebSocket\u002F",[3112],[12803],{"type":3102,"value":12804},"useWebSocket",{"type":3102,"value":12806}," composable to connect to the WebSocket:",{"type":3097,"tag":3370,"props":12808,"children":12810},{"className":3508,"code":12809,"language":3510,"meta":2970,"style":2970},"\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",[12811],{"type":3097,"tag":3242,"props":12812,"children":12813},{"__ignoreMap":2970},[12814,12833,12944,12951,12959,12972,12987,12994,13009,13024,13056,13088,13103,13156,13209,13262,13277,13292],{"type":3097,"tag":3380,"props":12815,"children":12816},{"class":3382,"line":3056},[12817,12821,12825,12829],{"type":3097,"tag":3380,"props":12818,"children":12819},{"style":3459},[12820],{"type":3102,"value":3522},{"type":3097,"tag":3380,"props":12822,"children":12823},{"style":3525},[12824],{"type":3102,"value":3528},{"type":3097,"tag":3380,"props":12826,"children":12827},{"style":3531},[12828],{"type":3102,"value":3534},{"type":3097,"tag":3380,"props":12830,"children":12831},{"style":3459},[12832],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":12834,"children":12835},{"class":3382,"line":3022},[12836,12840,12844,12849,12853,12858,12862,12867,12871,12875,12879,12884,12888,12892,12897,12901,12905,12910,12914,12918,12922,12927,12931,12936,12940],{"type":3097,"tag":3380,"props":12837,"children":12838},{"style":3531},[12839],{"type":3102,"value":3547},{"type":3097,"tag":3380,"props":12841,"children":12842},{"style":3459},[12843],{"type":3102,"value":3552},{"type":3097,"tag":3380,"props":12845,"children":12846},{"style":3454},[12847],{"type":3102,"value":12848}," status",{"type":3097,"tag":3380,"props":12850,"children":12851},{"style":3459},[12852],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":12854,"children":12855},{"style":3454},[12856],{"type":3102,"value":12857}," data",{"type":3097,"tag":3380,"props":12859,"children":12860},{"style":3459},[12861],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":12863,"children":12864},{"style":3454},[12865],{"type":3102,"value":12866}," send",{"type":3097,"tag":3380,"props":12868,"children":12869},{"style":3459},[12870],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":12872,"children":12873},{"style":3454},[12874],{"type":3102,"value":12560},{"type":3097,"tag":3380,"props":12876,"children":12877},{"style":3459},[12878],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":12880,"children":12881},{"style":3454},[12882],{"type":3102,"value":12883}," close ",{"type":3097,"tag":3380,"props":12885,"children":12886},{"style":3459},[12887],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":12889,"children":12890},{"style":3459},[12891],{"type":3102,"value":3613},{"type":3097,"tag":3380,"props":12893,"children":12894},{"style":3616},[12895],{"type":3102,"value":12896}," useWebSocket",{"type":3097,"tag":3380,"props":12898,"children":12899},{"style":3454},[12900],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":12902,"children":12903},{"style":3459},[12904],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":12906,"children":12907},{"style":3392},[12908],{"type":3102,"value":12909},"\u002Fws",{"type":3097,"tag":3380,"props":12911,"children":12912},{"style":3459},[12913],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":12915,"children":12916},{"style":3459},[12917],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":12919,"children":12920},{"style":3459},[12921],{"type":3102,"value":3552},{"type":3097,"tag":3380,"props":12923,"children":12924},{"style":3525},[12925],{"type":3102,"value":12926}," immediate",{"type":3097,"tag":3380,"props":12928,"children":12929},{"style":3459},[12930],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":12932,"children":12933},{"style":5826},[12934],{"type":3102,"value":12935}," false",{"type":3097,"tag":3380,"props":12937,"children":12938},{"style":3459},[12939],{"type":3102,"value":7492},{"type":3097,"tag":3380,"props":12941,"children":12942},{"style":3454},[12943],{"type":3102,"value":4822},{"type":3097,"tag":3380,"props":12945,"children":12946},{"class":3382,"line":3006},[12947],{"type":3097,"tag":3380,"props":12948,"children":12949},{"emptyLinePlaceholder":1196},[12950],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":12952,"children":12953},{"class":3382,"line":3643},[12954],{"type":3097,"tag":3380,"props":12955,"children":12956},{"style":3445},[12957],{"type":3102,"value":12958},"\u002F\u002F Only open the websocket after the page is hydrated (client-only)\n",{"type":3097,"tag":3380,"props":12960,"children":12961},{"class":3382,"line":3652},[12962,12967],{"type":3097,"tag":3380,"props":12963,"children":12964},{"style":3616},[12965],{"type":3102,"value":12966},"onMounted",{"type":3097,"tag":3380,"props":12968,"children":12969},{"style":3454},[12970],{"type":3102,"value":12971},"(open)\n",{"type":3097,"tag":3380,"props":12973,"children":12974},{"class":3382,"line":3669},[12975,12979,12983],{"type":3097,"tag":3380,"props":12976,"children":12977},{"style":3459},[12978],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":12980,"children":12981},{"style":3525},[12982],{"type":3102,"value":3528},{"type":3097,"tag":3380,"props":12984,"children":12985},{"style":3459},[12986],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":12988,"children":12989},{"class":3382,"line":3002},[12990],{"type":3097,"tag":3380,"props":12991,"children":12992},{"emptyLinePlaceholder":1196},[12993],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":12995,"children":12996},{"class":3382,"line":2998},[12997,13001,13005],{"type":3097,"tag":3380,"props":12998,"children":12999},{"style":3459},[13000],{"type":3102,"value":3522},{"type":3097,"tag":3380,"props":13002,"children":13003},{"style":3525},[13004],{"type":3102,"value":3662},{"type":3097,"tag":3380,"props":13006,"children":13007},{"style":3459},[13008],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":13010,"children":13011},{"class":3382,"line":2994},[13012,13016,13020],{"type":3097,"tag":3380,"props":13013,"children":13014},{"style":3459},[13015],{"type":3102,"value":3675},{"type":3097,"tag":3380,"props":13017,"children":13018},{"style":3525},[13019],{"type":3102,"value":3680},{"type":3097,"tag":3380,"props":13021,"children":13022},{"style":3459},[13023],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":13025,"children":13026},{"class":3382,"line":3831},[13027,13031,13035,13039,13044,13048,13052],{"type":3097,"tag":3380,"props":13028,"children":13029},{"style":3459},[13030],{"type":3102,"value":3715},{"type":3097,"tag":3380,"props":13032,"children":13033},{"style":3525},[13034],{"type":3102,"value":3104},{"type":3097,"tag":3380,"props":13036,"children":13037},{"style":3459},[13038],{"type":3102,"value":3724},{"type":3097,"tag":3380,"props":13040,"children":13041},{"style":3454},[13042],{"type":3102,"value":13043},"Status: {{ status }}",{"type":3097,"tag":3380,"props":13045,"children":13046},{"style":3459},[13047],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":13049,"children":13050},{"style":3525},[13051],{"type":3102,"value":3104},{"type":3097,"tag":3380,"props":13053,"children":13054},{"style":3459},[13055],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":13057,"children":13058},{"class":3382,"line":3085},[13059,13063,13067,13071,13076,13080,13084],{"type":3097,"tag":3380,"props":13060,"children":13061},{"style":3459},[13062],{"type":3102,"value":3715},{"type":3097,"tag":3380,"props":13064,"children":13065},{"style":3525},[13066],{"type":3102,"value":3104},{"type":3097,"tag":3380,"props":13068,"children":13069},{"style":3459},[13070],{"type":3102,"value":3724},{"type":3097,"tag":3380,"props":13072,"children":13073},{"style":3454},[13074],{"type":3102,"value":13075},"Data: {{ data }}",{"type":3097,"tag":3380,"props":13077,"children":13078},{"style":3459},[13079],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":13081,"children":13082},{"style":3525},[13083],{"type":3102,"value":3104},{"type":3097,"tag":3380,"props":13085,"children":13086},{"style":3459},[13087],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":13089,"children":13090},{"class":3382,"line":3868},[13091,13095,13099],{"type":3097,"tag":3380,"props":13092,"children":13093},{"style":3459},[13094],{"type":3102,"value":3715},{"type":3097,"tag":3380,"props":13096,"children":13097},{"style":3525},[13098],{"type":3102,"value":3104},{"type":3097,"tag":3380,"props":13100,"children":13101},{"style":3459},[13102],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":13104,"children":13105},{"class":3382,"line":3901},[13106,13110,13114,13118,13122,13126,13131,13135,13139,13144,13148,13152],{"type":3097,"tag":3380,"props":13107,"children":13108},{"style":3459},[13109],{"type":3102,"value":11688},{"type":3097,"tag":3380,"props":13111,"children":13112},{"style":3525},[13113],{"type":3102,"value":3785},{"type":3097,"tag":3380,"props":13115,"children":13116},{"style":3531},[13117],{"type":3102,"value":3790},{"type":3097,"tag":3380,"props":13119,"children":13120},{"style":3459},[13121],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":13123,"children":13124},{"style":3459},[13125],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":13127,"children":13128},{"style":3392},[13129],{"type":3102,"value":13130},"open",{"type":3097,"tag":3380,"props":13132,"children":13133},{"style":3459},[13134],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":13136,"children":13137},{"style":3459},[13138],{"type":3102,"value":3724},{"type":3097,"tag":3380,"props":13140,"children":13141},{"style":3454},[13142],{"type":3102,"value":13143},"Open",{"type":3097,"tag":3380,"props":13145,"children":13146},{"style":3459},[13147],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":13149,"children":13150},{"style":3525},[13151],{"type":3102,"value":3785},{"type":3097,"tag":3380,"props":13153,"children":13154},{"style":3459},[13155],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":13157,"children":13158},{"class":3382,"line":3956},[13159,13163,13167,13171,13175,13179,13184,13188,13192,13197,13201,13205],{"type":3097,"tag":3380,"props":13160,"children":13161},{"style":3459},[13162],{"type":3102,"value":11688},{"type":3097,"tag":3380,"props":13164,"children":13165},{"style":3525},[13166],{"type":3102,"value":3785},{"type":3097,"tag":3380,"props":13168,"children":13169},{"style":3531},[13170],{"type":3102,"value":3790},{"type":3097,"tag":3380,"props":13172,"children":13173},{"style":3459},[13174],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":13176,"children":13177},{"style":3459},[13178],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":13180,"children":13181},{"style":3392},[13182],{"type":3102,"value":13183},"close(1000, 'Closing')",{"type":3097,"tag":3380,"props":13185,"children":13186},{"style":3459},[13187],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":13189,"children":13190},{"style":3459},[13191],{"type":3102,"value":3724},{"type":3097,"tag":3380,"props":13193,"children":13194},{"style":3454},[13195],{"type":3102,"value":13196},"Close",{"type":3097,"tag":3380,"props":13198,"children":13199},{"style":3459},[13200],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":13202,"children":13203},{"style":3525},[13204],{"type":3102,"value":3785},{"type":3097,"tag":3380,"props":13206,"children":13207},{"style":3459},[13208],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":13210,"children":13211},{"class":3382,"line":3965},[13212,13216,13220,13224,13228,13232,13237,13241,13245,13250,13254,13258],{"type":3097,"tag":3380,"props":13213,"children":13214},{"style":3459},[13215],{"type":3102,"value":11688},{"type":3097,"tag":3380,"props":13217,"children":13218},{"style":3525},[13219],{"type":3102,"value":3785},{"type":3097,"tag":3380,"props":13221,"children":13222},{"style":3531},[13223],{"type":3102,"value":3790},{"type":3097,"tag":3380,"props":13225,"children":13226},{"style":3459},[13227],{"type":3102,"value":3462},{"type":3097,"tag":3380,"props":13229,"children":13230},{"style":3459},[13231],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":13233,"children":13234},{"style":3392},[13235],{"type":3102,"value":13236},"send('hello')",{"type":3097,"tag":3380,"props":13238,"children":13239},{"style":3459},[13240],{"type":3102,"value":3694},{"type":3097,"tag":3380,"props":13242,"children":13243},{"style":3459},[13244],{"type":3102,"value":3724},{"type":3097,"tag":3380,"props":13246,"children":13247},{"style":3454},[13248],{"type":3102,"value":13249},"Send hello",{"type":3097,"tag":3380,"props":13251,"children":13252},{"style":3459},[13253],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":13255,"children":13256},{"style":3525},[13257],{"type":3102,"value":3785},{"type":3097,"tag":3380,"props":13259,"children":13260},{"style":3459},[13261],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":13263,"children":13264},{"class":3382,"line":2990},[13265,13269,13273],{"type":3097,"tag":3380,"props":13266,"children":13267},{"style":3459},[13268],{"type":3102,"value":11819},{"type":3097,"tag":3380,"props":13270,"children":13271},{"style":3525},[13272],{"type":3102,"value":3104},{"type":3097,"tag":3380,"props":13274,"children":13275},{"style":3459},[13276],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":13278,"children":13279},{"class":3382,"line":4033},[13280,13284,13288],{"type":3097,"tag":3380,"props":13281,"children":13282},{"style":3459},[13283],{"type":3102,"value":3837},{"type":3097,"tag":3380,"props":13285,"children":13286},{"style":3525},[13287],{"type":3102,"value":3680},{"type":3097,"tag":3380,"props":13289,"children":13290},{"style":3459},[13291],{"type":3102,"value":3539},{"type":3097,"tag":3380,"props":13293,"children":13294},{"class":3382,"line":4303},[13295,13299,13303],{"type":3097,"tag":3380,"props":13296,"children":13297},{"style":3459},[13298],{"type":3102,"value":3632},{"type":3097,"tag":3380,"props":13300,"children":13301},{"style":3525},[13302],{"type":3102,"value":3662},{"type":3097,"tag":3380,"props":13304,"children":13305},{"style":3459},[13306],{"type":3102,"value":3539},{"type":3097,"tag":3188,"props":13308,"children":13310},{"id":13309},"configuration",[13311],{"type":3102,"value":29},{"type":3097,"tag":3104,"props":13313,"children":13314},{},[13315,13317,13323,13325,13338],{"type":3102,"value":13316},"We leverage ",{"type":3097,"tag":3242,"props":13318,"children":13320},{"className":13319},[],[13321],{"type":3102,"value":13322},"runtimeConfig.session",{"type":3102,"value":13324}," to give the defaults option to ",{"type":3097,"tag":3108,"props":13326,"children":13329},{"href":13327,"rel":13328},"https:\u002F\u002Fh3.unjs.io\u002Fexamples\u002Fhandle-session",[3112],[13330,13332],{"type":3102,"value":13331},"h3 ",{"type":3097,"tag":3242,"props":13333,"children":13335},{"className":13334},[],[13336],{"type":3102,"value":13337},"useSession",{"type":3102,"value":3335},{"type":3097,"tag":3104,"props":13340,"children":13341},{},[13342,13344,13349],{"type":3102,"value":13343},"You can overwrite the options in your ",{"type":3097,"tag":3242,"props":13345,"children":13347},{"className":13346},[],[13348],{"type":3102,"value":233},{"type":3102,"value":4119},{"type":3097,"tag":3370,"props":13351,"children":13353},{"className":4058,"code":13352,"language":4060,"meta":2970,"style":2970},"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",[13354],{"type":3097,"tag":3242,"props":13355,"children":13356},{"__ignoreMap":2970},[13357,13380,13415,13430,13446,13495,13502,13509],{"type":3097,"tag":3380,"props":13358,"children":13359},{"class":3382,"line":3056},[13360,13364,13368,13372,13376],{"type":3097,"tag":3380,"props":13361,"children":13362},{"style":4642},[13363],{"type":3102,"value":5176},{"type":3097,"tag":3380,"props":13365,"children":13366},{"style":4642},[13367],{"type":3102,"value":5291},{"type":3097,"tag":3380,"props":13369,"children":13370},{"style":3616},[13371],{"type":3102,"value":5296},{"type":3097,"tag":3380,"props":13373,"children":13374},{"style":3454},[13375],{"type":3102,"value":5301},{"type":3097,"tag":3380,"props":13377,"children":13378},{"style":3459},[13379],{"type":3102,"value":5306},{"type":3097,"tag":3380,"props":13381,"children":13382},{"class":3382,"line":3022},[13383,13387,13391,13395,13399,13403,13407,13411],{"type":3097,"tag":3380,"props":13384,"children":13385},{"style":3525},[13386],{"type":3102,"value":6528},{"type":3097,"tag":3380,"props":13388,"children":13389},{"style":3459},[13390],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":13392,"children":13393},{"style":3454},[13394],{"type":3102,"value":6537},{"type":3097,"tag":3380,"props":13396,"children":13397},{"style":3459},[13398],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":13400,"children":13401},{"style":3392},[13402],{"type":3102,"value":2969},{"type":3097,"tag":3380,"props":13404,"children":13405},{"style":3459},[13406],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":13408,"children":13409},{"style":3454},[13410],{"type":3102,"value":6554},{"type":3097,"tag":3380,"props":13412,"children":13413},{"style":3459},[13414],{"type":3102,"value":5392},{"type":3097,"tag":3380,"props":13416,"children":13417},{"class":3382,"line":3006},[13418,13422,13426],{"type":3097,"tag":3380,"props":13419,"children":13420},{"style":3525},[13421],{"type":3102,"value":5314},{"type":3097,"tag":3380,"props":13423,"children":13424},{"style":3459},[13425],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":13427,"children":13428},{"style":3459},[13429],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":13431,"children":13432},{"class":3382,"line":3643},[13433,13438,13442],{"type":3097,"tag":3380,"props":13434,"children":13435},{"style":3525},[13436],{"type":3102,"value":13437},"    session",{"type":3097,"tag":3380,"props":13439,"children":13440},{"style":3459},[13441],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":13443,"children":13444},{"style":3459},[13445],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":13447,"children":13448},{"class":3382,"line":3652},[13449,13454,13458,13463,13468,13472,13476,13481,13485,13490],{"type":3097,"tag":3380,"props":13450,"children":13451},{"style":3525},[13452],{"type":3102,"value":13453},"      maxAge",{"type":3097,"tag":3380,"props":13455,"children":13456},{"style":3459},[13457],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":13459,"children":13460},{"style":6980},[13461],{"type":3102,"value":13462}," 60",{"type":3097,"tag":3380,"props":13464,"children":13465},{"style":3459},[13466],{"type":3102,"value":13467}," *",{"type":3097,"tag":3380,"props":13469,"children":13470},{"style":6980},[13471],{"type":3102,"value":13462},{"type":3097,"tag":3380,"props":13473,"children":13474},{"style":3459},[13475],{"type":3102,"value":13467},{"type":3097,"tag":3380,"props":13477,"children":13478},{"style":6980},[13479],{"type":3102,"value":13480}," 24",{"type":3097,"tag":3380,"props":13482,"children":13483},{"style":3459},[13484],{"type":3102,"value":13467},{"type":3097,"tag":3380,"props":13486,"children":13487},{"style":6980},[13488],{"type":3102,"value":13489}," 7",{"type":3097,"tag":3380,"props":13491,"children":13492},{"style":3445},[13493],{"type":3102,"value":13494}," \u002F\u002F 1 week\n",{"type":3097,"tag":3380,"props":13496,"children":13497},{"class":3382,"line":3669},[13498],{"type":3097,"tag":3380,"props":13499,"children":13500},{"style":3459},[13501],{"type":3102,"value":5432},{"type":3097,"tag":3380,"props":13503,"children":13504},{"class":3382,"line":3002},[13505],{"type":3097,"tag":3380,"props":13506,"children":13507},{"style":3459},[13508],{"type":3102,"value":5080},{"type":3097,"tag":3380,"props":13510,"children":13511},{"class":3382,"line":2998},[13512,13516],{"type":3097,"tag":3380,"props":13513,"children":13514},{"style":3459},[13515],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":13517,"children":13518},{"style":3454},[13519],{"type":3102,"value":4822},{"type":3097,"tag":3104,"props":13521,"children":13522},{},[13523],{"type":3102,"value":13524},"Our defaults are:",{"type":3097,"tag":3370,"props":13526,"children":13528},{"className":4058,"code":13527,"language":4060,"meta":2970,"style":2970},"{\n  name: 'nuxt-session',\n  password: process.env.NUXT_SESSION_PASSWORD || '',\n  cookie: {\n    sameSite: 'lax'\n  }\n}\n",[13529],{"type":3097,"tag":3242,"props":13530,"children":13531},{"__ignoreMap":2970},[13532,13539,13568,13616,13632,13657,13664],{"type":3097,"tag":3380,"props":13533,"children":13534},{"class":3382,"line":3056},[13535],{"type":3097,"tag":3380,"props":13536,"children":13537},{"style":3459},[13538],{"type":3102,"value":5306},{"type":3097,"tag":3380,"props":13540,"children":13541},{"class":3382,"line":3022},[13542,13547,13551,13555,13560,13564],{"type":3097,"tag":3380,"props":13543,"children":13544},{"style":3386},[13545],{"type":3102,"value":13546},"  name",{"type":3097,"tag":3380,"props":13548,"children":13549},{"style":3459},[13550],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":13552,"children":13553},{"style":3459},[13554],{"type":3102,"value":4703},{"type":3097,"tag":3380,"props":13556,"children":13557},{"style":3392},[13558],{"type":3102,"value":13559},"nuxt-session",{"type":3097,"tag":3380,"props":13561,"children":13562},{"style":3459},[13563],{"type":3102,"value":5043},{"type":3097,"tag":3380,"props":13565,"children":13566},{"style":3459},[13567],{"type":3102,"value":5392},{"type":3097,"tag":3380,"props":13569,"children":13570},{"class":3382,"line":3006},[13571,13576,13580,13585,13589,13594,13598,13602,13607,13612],{"type":3097,"tag":3380,"props":13572,"children":13573},{"style":3386},[13574],{"type":3102,"value":13575},"  password",{"type":3097,"tag":3380,"props":13577,"children":13578},{"style":3459},[13579],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":13581,"children":13582},{"style":3454},[13583],{"type":3102,"value":13584}," process",{"type":3097,"tag":3380,"props":13586,"children":13587},{"style":3459},[13588],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":13590,"children":13591},{"style":3454},[13592],{"type":3102,"value":13593},"env",{"type":3097,"tag":3380,"props":13595,"children":13596},{"style":3459},[13597],{"type":3102,"value":3335},{"type":3097,"tag":3380,"props":13599,"children":13600},{"style":3454},[13601],{"type":3102,"value":3424},{"type":3097,"tag":3380,"props":13603,"children":13604},{"style":3459},[13605],{"type":3102,"value":13606}," ||",{"type":3097,"tag":3380,"props":13608,"children":13609},{"style":3459},[13610],{"type":3102,"value":13611}," ''",{"type":3097,"tag":3380,"props":13613,"children":13614},{"style":3459},[13615],{"type":3102,"value":5392},{"type":3097,"tag":3380,"props":13617,"children":13618},{"class":3382,"line":3643},[13619,13624,13628],{"type":3097,"tag":3380,"props":13620,"children":13621},{"style":3386},[13622],{"type":3102,"value":13623},"  cookie",{"type":3097,"tag":3380,"props":13625,"children":13626},{"style":3459},[13627],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":13629,"children":13630},{"style":3459},[13631],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":13633,"children":13634},{"class":3382,"line":3652},[13635,13640,13644,13648,13653],{"type":3097,"tag":3380,"props":13636,"children":13637},{"style":3386},[13638],{"type":3102,"value":13639},"    sameSite",{"type":3097,"tag":3380,"props":13641,"children":13642},{"style":3459},[13643],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":13645,"children":13646},{"style":3459},[13647],{"type":3102,"value":4703},{"type":3097,"tag":3380,"props":13649,"children":13650},{"style":3392},[13651],{"type":3102,"value":13652},"lax",{"type":3097,"tag":3380,"props":13654,"children":13655},{"style":3459},[13656],{"type":3102,"value":4712},{"type":3097,"tag":3380,"props":13658,"children":13659},{"class":3382,"line":3669},[13660],{"type":3097,"tag":3380,"props":13661,"children":13662},{"style":3459},[13663],{"type":3102,"value":5080},{"type":3097,"tag":3380,"props":13665,"children":13666},{"class":3382,"line":3002},[13667],{"type":3097,"tag":3380,"props":13668,"children":13669},{"style":3459},[13670],{"type":3102,"value":4558},{"type":3097,"tag":3104,"props":13672,"children":13673},{},[13674,13676,13682,13683,13689],{"type":3102,"value":13675},"You can also overwrite the session config by passing it as 3rd argument of the ",{"type":3097,"tag":3242,"props":13677,"children":13679},{"className":13678},[],[13680],{"type":3102,"value":13681},"setUserSession",{"type":3102,"value":6212},{"type":3097,"tag":3242,"props":13684,"children":13686},{"className":13685},[],[13687],{"type":3102,"value":13688},"replaceUserSession",{"type":3102,"value":13690}," functions:",{"type":3097,"tag":3370,"props":13692,"children":13694},{"className":4058,"code":13693,"language":4060,"meta":2970,"style":2970},"await setUserSession(event, { ... } , {\n  maxAge: 60 * 60 * 24 * 7 \u002F\u002F 1 week\n})\n",[13695],{"type":3097,"tag":3242,"props":13696,"children":13697},{"__ignoreMap":2970},[13698,13739,13783],{"type":3097,"tag":3380,"props":13699,"children":13700},{"class":3382,"line":3056},[13701,13705,13709,13713,13717,13721,13726,13730,13735],{"type":3097,"tag":3380,"props":13702,"children":13703},{"style":4642},[13704],{"type":3102,"value":4645},{"type":3097,"tag":3380,"props":13706,"children":13707},{"style":3616},[13708],{"type":3102,"value":4650},{"type":3097,"tag":3380,"props":13710,"children":13711},{"style":3454},[13712],{"type":3102,"value":4655},{"type":3097,"tag":3380,"props":13714,"children":13715},{"style":3459},[13716],{"type":3102,"value":3562},{"type":3097,"tag":3380,"props":13718,"children":13719},{"style":3459},[13720],{"type":3102,"value":3552},{"type":3097,"tag":3380,"props":13722,"children":13723},{"style":3459},[13724],{"type":3102,"value":13725}," ...",{"type":3097,"tag":3380,"props":13727,"children":13728},{"style":3459},[13729],{"type":3102,"value":7492},{"type":3097,"tag":3380,"props":13731,"children":13732},{"style":3459},[13733],{"type":3102,"value":13734}," ,",{"type":3097,"tag":3380,"props":13736,"children":13737},{"style":3459},[13738],{"type":3102,"value":4082},{"type":3097,"tag":3380,"props":13740,"children":13741},{"class":3382,"line":3022},[13742,13747,13751,13755,13759,13763,13767,13771,13775,13779],{"type":3097,"tag":3380,"props":13743,"children":13744},{"style":3525},[13745],{"type":3102,"value":13746},"  maxAge",{"type":3097,"tag":3380,"props":13748,"children":13749},{"style":3459},[13750],{"type":3102,"value":4119},{"type":3097,"tag":3380,"props":13752,"children":13753},{"style":6980},[13754],{"type":3102,"value":13462},{"type":3097,"tag":3380,"props":13756,"children":13757},{"style":3459},[13758],{"type":3102,"value":13467},{"type":3097,"tag":3380,"props":13760,"children":13761},{"style":6980},[13762],{"type":3102,"value":13462},{"type":3097,"tag":3380,"props":13764,"children":13765},{"style":3459},[13766],{"type":3102,"value":13467},{"type":3097,"tag":3380,"props":13768,"children":13769},{"style":6980},[13770],{"type":3102,"value":13480},{"type":3097,"tag":3380,"props":13772,"children":13773},{"style":3459},[13774],{"type":3102,"value":13467},{"type":3097,"tag":3380,"props":13776,"children":13777},{"style":6980},[13778],{"type":3102,"value":13489},{"type":3097,"tag":3380,"props":13780,"children":13781},{"style":3445},[13782],{"type":3102,"value":13494},{"type":3097,"tag":3380,"props":13784,"children":13785},{"class":3382,"line":3006},[13786,13790],{"type":3097,"tag":3380,"props":13787,"children":13788},{"style":3459},[13789],{"type":3102,"value":3608},{"type":3097,"tag":3380,"props":13791,"children":13792},{"style":3454},[13793],{"type":3102,"value":4822},{"type":3097,"tag":3104,"props":13795,"children":13796},{},[13797,13799,13810],{"type":3102,"value":13798},"Checkout the ",{"type":3097,"tag":3108,"props":13800,"children":13803},{"href":13801,"rel":13802},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fh3\u002Fblob\u002Fc04c458810e34eb15c1647e1369e7d7ef19f567d\u002Fsrc\u002Futils\u002Fsession.ts#L20",[3112],[13804],{"type":3097,"tag":3242,"props":13805,"children":13807},{"className":13806},[],[13808],{"type":3102,"value":13809},"SessionConfig",{"type":3102,"value":13811}," for all options.",{"type":3097,"tag":3188,"props":13813,"children":13815},{"id":13814},"more",[13816],{"type":3102,"value":13817},"More",{"type":3097,"tag":3154,"props":13819,"children":13820},{},[13821],{"type":3097,"tag":3158,"props":13822,"children":13823},{},[13824,13831,13833],{"type":3097,"tag":3108,"props":13825,"children":13828},{"href":13826,"rel":13827},"https:\u002F\u002Fgithub.com\u002Fbarbapapazes\u002Fnuxt-authorization",[3112],[13829],{"type":3102,"value":13830},"nuxt-authorization",{"type":3102,"value":13832},": Authorization module for managing permissions inside a Nuxt app, compatible with ",{"type":3097,"tag":3242,"props":13834,"children":13836},{"className":13835},[],[13837],{"type":3102,"value":2969},{"type":3097,"tag":3188,"props":13839,"children":13841},{"id":13840},"development",[13842],{"type":3102,"value":13843},"Development",{"type":3097,"tag":3370,"props":13845,"children":13847},{"className":3372,"code":13846,"language":3374,"meta":2970,"style":2970},"# 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",[13848],{"type":3097,"tag":3242,"props":13849,"children":13850},{"__ignoreMap":2970},[13851,13859,13872,13879,13887,13904,13911,13919,13935,13942,13950,13966,13973,13981,13997,14004,14012,14028,14044,14051,14059],{"type":3097,"tag":3380,"props":13852,"children":13853},{"class":3382,"line":3056},[13854],{"type":3097,"tag":3380,"props":13855,"children":13856},{"style":3445},[13857],{"type":3102,"value":13858},"# Install dependencies\n",{"type":3097,"tag":3380,"props":13860,"children":13861},{"class":3382,"line":3022},[13862,13867],{"type":3097,"tag":3380,"props":13863,"children":13864},{"style":3386},[13865],{"type":3102,"value":13866},"pnpm",{"type":3097,"tag":3380,"props":13868,"children":13869},{"style":3392},[13870],{"type":3102,"value":13871}," install\n",{"type":3097,"tag":3380,"props":13873,"children":13874},{"class":3382,"line":3006},[13875],{"type":3097,"tag":3380,"props":13876,"children":13877},{"emptyLinePlaceholder":1196},[13878],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":13880,"children":13881},{"class":3382,"line":3643},[13882],{"type":3097,"tag":3380,"props":13883,"children":13884},{"style":3445},[13885],{"type":3102,"value":13886},"# Generate type stubs\n",{"type":3097,"tag":3380,"props":13888,"children":13889},{"class":3382,"line":3652},[13890,13894,13899],{"type":3097,"tag":3380,"props":13891,"children":13892},{"style":3386},[13893],{"type":3102,"value":13866},{"type":3097,"tag":3380,"props":13895,"children":13896},{"style":3392},[13897],{"type":3102,"value":13898}," run",{"type":3097,"tag":3380,"props":13900,"children":13901},{"style":3392},[13902],{"type":3102,"value":13903}," dev:prepare\n",{"type":3097,"tag":3380,"props":13905,"children":13906},{"class":3382,"line":3669},[13907],{"type":3097,"tag":3380,"props":13908,"children":13909},{"emptyLinePlaceholder":1196},[13910],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":13912,"children":13913},{"class":3382,"line":3002},[13914],{"type":3097,"tag":3380,"props":13915,"children":13916},{"style":3445},[13917],{"type":3102,"value":13918},"# Develop with the playground\n",{"type":3097,"tag":3380,"props":13920,"children":13921},{"class":3382,"line":2998},[13922,13926,13930],{"type":3097,"tag":3380,"props":13923,"children":13924},{"style":3386},[13925],{"type":3102,"value":13866},{"type":3097,"tag":3380,"props":13927,"children":13928},{"style":3392},[13929],{"type":3102,"value":13898},{"type":3097,"tag":3380,"props":13931,"children":13932},{"style":3392},[13933],{"type":3102,"value":13934}," dev\n",{"type":3097,"tag":3380,"props":13936,"children":13937},{"class":3382,"line":2994},[13938],{"type":3097,"tag":3380,"props":13939,"children":13940},{"emptyLinePlaceholder":1196},[13941],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":13943,"children":13944},{"class":3382,"line":3831},[13945],{"type":3097,"tag":3380,"props":13946,"children":13947},{"style":3445},[13948],{"type":3102,"value":13949},"# Build the playground\n",{"type":3097,"tag":3380,"props":13951,"children":13952},{"class":3382,"line":3085},[13953,13957,13961],{"type":3097,"tag":3380,"props":13954,"children":13955},{"style":3386},[13956],{"type":3102,"value":13866},{"type":3097,"tag":3380,"props":13958,"children":13959},{"style":3392},[13960],{"type":3102,"value":13898},{"type":3097,"tag":3380,"props":13962,"children":13963},{"style":3392},[13964],{"type":3102,"value":13965}," dev:build\n",{"type":3097,"tag":3380,"props":13967,"children":13968},{"class":3382,"line":3868},[13969],{"type":3097,"tag":3380,"props":13970,"children":13971},{"emptyLinePlaceholder":1196},[13972],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":13974,"children":13975},{"class":3382,"line":3901},[13976],{"type":3097,"tag":3380,"props":13977,"children":13978},{"style":3445},[13979],{"type":3102,"value":13980},"# Run ESLint\n",{"type":3097,"tag":3380,"props":13982,"children":13983},{"class":3382,"line":3956},[13984,13988,13992],{"type":3097,"tag":3380,"props":13985,"children":13986},{"style":3386},[13987],{"type":3102,"value":13866},{"type":3097,"tag":3380,"props":13989,"children":13990},{"style":3392},[13991],{"type":3102,"value":13898},{"type":3097,"tag":3380,"props":13993,"children":13994},{"style":3392},[13995],{"type":3102,"value":13996}," lint\n",{"type":3097,"tag":3380,"props":13998,"children":13999},{"class":3382,"line":3965},[14000],{"type":3097,"tag":3380,"props":14001,"children":14002},{"emptyLinePlaceholder":1196},[14003],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":14005,"children":14006},{"class":3382,"line":2990},[14007],{"type":3097,"tag":3380,"props":14008,"children":14009},{"style":3445},[14010],{"type":3102,"value":14011},"# Run Vitest\n",{"type":3097,"tag":3380,"props":14013,"children":14014},{"class":3382,"line":4033},[14015,14019,14023],{"type":3097,"tag":3380,"props":14016,"children":14017},{"style":3386},[14018],{"type":3102,"value":13866},{"type":3097,"tag":3380,"props":14020,"children":14021},{"style":3392},[14022],{"type":3102,"value":13898},{"type":3097,"tag":3380,"props":14024,"children":14025},{"style":3392},[14026],{"type":3102,"value":14027}," test\n",{"type":3097,"tag":3380,"props":14029,"children":14030},{"class":3382,"line":4303},[14031,14035,14039],{"type":3097,"tag":3380,"props":14032,"children":14033},{"style":3386},[14034],{"type":3102,"value":13866},{"type":3097,"tag":3380,"props":14036,"children":14037},{"style":3392},[14038],{"type":3102,"value":13898},{"type":3097,"tag":3380,"props":14040,"children":14041},{"style":3392},[14042],{"type":3102,"value":14043}," test:watch\n",{"type":3097,"tag":3380,"props":14045,"children":14046},{"class":3382,"line":4311},[14047],{"type":3097,"tag":3380,"props":14048,"children":14049},{"emptyLinePlaceholder":1196},[14050],{"type":3102,"value":3649},{"type":3097,"tag":3380,"props":14052,"children":14053},{"class":3382,"line":4320},[14054],{"type":3097,"tag":3380,"props":14055,"children":14056},{"style":3445},[14057],{"type":3102,"value":14058},"# Release new version\n",{"type":3097,"tag":3380,"props":14060,"children":14061},{"class":3382,"line":4328},[14062,14066,14070],{"type":3097,"tag":3380,"props":14063,"children":14064},{"style":3386},[14065],{"type":3102,"value":13866},{"type":3097,"tag":3380,"props":14067,"children":14068},{"style":3392},[14069],{"type":3102,"value":13898},{"type":3097,"tag":3380,"props":14071,"children":14072},{"style":3392},[14073],{"type":3102,"value":14074}," release\n",{"type":3097,"tag":14076,"props":14077,"children":14078},"style",{},[14079],{"type":3102,"value":14080},"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":2970,"searchDepth":3022,"depth":3022,"links":14082},[14083,14084,14085,14086,14089,14097,14098,14103,14104,14105,14106],{"id":3190,"depth":3022,"text":395},{"id":3308,"depth":3022,"text":3311},{"id":3349,"depth":3022,"text":3352},{"id":3490,"depth":3022,"text":3493,"children":14087},[14088],{"id":3502,"depth":3006,"text":3505},{"id":4583,"depth":3022,"text":4586,"children":14090},[14091,14092,14093,14094,14095,14096],{"id":4602,"depth":3006,"text":4605},{"id":5196,"depth":3006,"text":5199},{"id":6197,"depth":3006,"text":3224},{"id":6649,"depth":3006,"text":6652},{"id":6799,"depth":3006,"text":3233},{"id":10713,"depth":3006,"text":10716},{"id":11006,"depth":3022,"text":11009},{"id":11281,"depth":3022,"text":3204,"children":14099},[14100,14101],{"id":11452,"depth":3006,"text":11455},{"id":11580,"depth":3006,"text":14102},"\u003CAuthState> component",{"id":12285,"depth":3022,"text":12288},{"id":13309,"depth":3022,"text":29},{"id":13814,"depth":3022,"text":13817},{"id":13840,"depth":3022,"text":13843}]