[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fGCo9l1hMtNdUiA6QzdUX5X3kLqaWcC5t2kdz4LrvCvc":3,"versions":2975,"module-auth-utils":2980},[4,1124,1955,2777],{"title":5,"titleTemplate":6,"icon":7,"path":8,"stem":9,"children":10,"page":108},"Docs",null,"i-lucide-book-marked","\u002Fdocs\u002F3.x","docs\u002F3.x",[11,109,246,430,911,1003,1040,1082],{"title":12,"titleTemplate":13,"icon":14,"path":15,"stem":16,"children":17,"page":108},"Get Started","%s · Get Started with Nuxt","i-lucide-rocket","\u002Fdocs\u002F3.x\u002Fgetting-started","docs\u002F3.x\u002F1.getting-started",[18,23,28,33,38,43,48,53,58,63,68,73,78,83,88,93,98,103],{"title":19,"path":20,"stem":21,"titleTemplate":6,"icon":22},"Introduction","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fintroduction","docs\u002F3.x\u002F1.getting-started\u002F01.introduction","i-lucide-info",{"title":24,"path":25,"stem":26,"titleTemplate":6,"icon":27},"Installation","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Finstallation","docs\u002F3.x\u002F1.getting-started\u002F02.installation","i-lucide-play",{"title":29,"path":30,"stem":31,"titleTemplate":6,"icon":32},"Configuration","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fconfiguration","docs\u002F3.x\u002F1.getting-started\u002F03.configuration","i-lucide-cog",{"title":34,"path":35,"stem":36,"titleTemplate":6,"icon":37},"Views","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fviews","docs\u002F3.x\u002F1.getting-started\u002F04.views","i-lucide-panels-top-left",{"title":39,"path":40,"stem":41,"titleTemplate":6,"icon":42},"Assets","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fassets","docs\u002F3.x\u002F1.getting-started\u002F05.assets","i-lucide-image",{"title":44,"path":45,"stem":46,"titleTemplate":6,"icon":47},"Styling","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fstyling","docs\u002F3.x\u002F1.getting-started\u002F06.styling","i-lucide-palette",{"title":49,"path":50,"stem":51,"titleTemplate":6,"icon":52},"Routing","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Frouting","docs\u002F3.x\u002F1.getting-started\u002F07.routing","i-lucide-milestone",{"title":54,"path":55,"stem":56,"titleTemplate":6,"icon":57},"SEO and Meta","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fseo-meta","docs\u002F3.x\u002F1.getting-started\u002F08.seo-meta","i-lucide-file-search",{"title":59,"path":60,"stem":61,"titleTemplate":6,"icon":62},"Transitions","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ftransitions","docs\u002F3.x\u002F1.getting-started\u002F09.transitions","i-lucide-toggle-right",{"title":64,"path":65,"stem":66,"titleTemplate":6,"icon":67},"Data Fetching","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F3.x\u002F1.getting-started\u002F10.data-fetching","i-lucide-cable",{"title":69,"path":70,"stem":71,"titleTemplate":6,"icon":72},"State Management","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fstate-management","docs\u002F3.x\u002F1.getting-started\u002F11.state-management","i-lucide-database",{"title":74,"path":75,"stem":76,"titleTemplate":6,"icon":77},"Error Handling","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ferror-handling","docs\u002F3.x\u002F1.getting-started\u002F12.error-handling","i-lucide-bug-off",{"title":79,"path":80,"stem":81,"titleTemplate":6,"icon":82},"Server","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fserver","docs\u002F3.x\u002F1.getting-started\u002F13.server","i-lucide-pc-case",{"title":84,"path":85,"stem":86,"titleTemplate":6,"icon":87},"Layers","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Flayers","docs\u002F3.x\u002F1.getting-started\u002F14.layers","i-lucide-layers",{"title":89,"path":90,"stem":91,"titleTemplate":6,"icon":92},"Prerendering","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fprerendering","docs\u002F3.x\u002F1.getting-started\u002F15.prerendering","i-lucide-file-code-2",{"title":94,"path":95,"stem":96,"titleTemplate":6,"icon":97},"Deployment","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fdeployment","docs\u002F3.x\u002F1.getting-started\u002F16.deployment","i-lucide-cloud",{"title":99,"path":100,"stem":101,"titleTemplate":6,"icon":102},"Testing","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ftesting","docs\u002F3.x\u002F1.getting-started\u002F17.testing","i-lucide-circle-check",{"title":104,"path":105,"stem":106,"titleTemplate":6,"icon":107},"Upgrade Guide","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fupgrade","docs\u002F3.x\u002F1.getting-started\u002F18.upgrade","i-lucide-circle-arrow-up",false,{"title":110,"titleTemplate":111,"icon":112,"path":113,"stem":114,"children":115,"page":108},"Directory Structure","%s · Nuxt Directory Structure","i-vscode-icons-default-folder","\u002Fdocs\u002F3.x\u002Fdirectory-structure","docs\u002F3.x\u002F2.directory-structure",[116,121,126,131,136,141,146,151,156,161,165,170,174,179,184,189,194,199,204,209,214,218,223,228,232,236,241],{"title":117,"path":118,"stem":119,"titleTemplate":6,"icon":120},".nuxt","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F3.x\u002F2.directory-structure\u002F0.nuxt","i-vscode-icons-folder-type-temp",{"title":122,"path":123,"stem":124,"titleTemplate":6,"icon":125},".output","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Foutput","docs\u002F3.x\u002F2.directory-structure\u002F0.output","i-vscode-icons-folder-type-package",{"title":127,"path":128,"stem":129,"titleTemplate":6,"icon":130},"assets","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fassets","docs\u002F3.x\u002F2.directory-structure\u002F1.assets","i-vscode-icons-folder-type-asset",{"title":132,"path":133,"stem":134,"titleTemplate":6,"icon":135},"components","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcomponents","docs\u002F3.x\u002F2.directory-structure\u002F1.components","i-vscode-icons-folder-type-component",{"title":137,"path":138,"stem":139,"titleTemplate":6,"icon":140},"composables","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcomposables","docs\u002F3.x\u002F2.directory-structure\u002F1.composables","i-vscode-icons-folder-type-src",{"title":142,"path":143,"stem":144,"titleTemplate":6,"icon":145},"content","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcontent","docs\u002F3.x\u002F2.directory-structure\u002F1.content","i-vscode-icons-folder-type-log",{"title":147,"path":148,"stem":149,"titleTemplate":6,"icon":150},"layers","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Flayers","docs\u002F3.x\u002F2.directory-structure\u002F1.layers","i-vscode-icons-folder-type-nuxt",{"title":152,"path":153,"stem":154,"titleTemplate":6,"icon":155},"layouts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Flayouts","docs\u002F3.x\u002F2.directory-structure\u002F1.layouts","i-vscode-icons-folder-type-view",{"title":157,"path":158,"stem":159,"titleTemplate":6,"icon":160},"middleware","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fmiddleware","docs\u002F3.x\u002F2.directory-structure\u002F1.middleware","i-vscode-icons-folder-type-middleware",{"title":162,"path":163,"stem":164,"titleTemplate":6,"icon":150},"modules","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fmodules","docs\u002F3.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":167,"stem":168,"titleTemplate":6,"icon":169},"node_modules","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F3.x\u002F2.directory-structure\u002F1.node_modules","i-vscode-icons-folder-type-node",{"title":171,"path":172,"stem":173,"titleTemplate":6,"icon":155},"pages","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpages","docs\u002F3.x\u002F2.directory-structure\u002F1.pages",{"title":175,"path":176,"stem":177,"titleTemplate":6,"icon":178},"plugins","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fplugins","docs\u002F3.x\u002F2.directory-structure\u002F1.plugins","i-vscode-icons-folder-type-plugin",{"title":180,"path":181,"stem":182,"titleTemplate":6,"icon":183},"public","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpublic","docs\u002F3.x\u002F2.directory-structure\u002F1.public","i-vscode-icons-folder-type-public",{"title":185,"path":186,"stem":187,"titleTemplate":6,"icon":188},"server","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fserver","docs\u002F3.x\u002F2.directory-structure\u002F1.server","i-vscode-icons-folder-type-server",{"title":190,"path":191,"stem":192,"titleTemplate":6,"icon":193},"shared","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fshared","docs\u002F3.x\u002F2.directory-structure\u002F1.shared","i-vscode-icons-folder-type-shared",{"title":195,"path":196,"stem":197,"titleTemplate":6,"icon":198},"utils","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Futils","docs\u002F3.x\u002F2.directory-structure\u002F1.utils","i-vscode-icons-folder-type-tools",{"title":200,"path":201,"stem":202,"titleTemplate":6,"icon":203},".env","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fenv","docs\u002F3.x\u002F2.directory-structure\u002F2.env","i-vscode-icons-file-type-dotenv",{"title":205,"path":206,"stem":207,"titleTemplate":6,"icon":208},".gitignore","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F3.x\u002F2.directory-structure\u002F2.gitignore","i-vscode-icons-file-type-git",{"title":210,"path":211,"stem":212,"titleTemplate":6,"icon":213},".nuxtignore","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F3.x\u002F2.directory-structure\u002F2.nuxtignore","i-vscode-icons-file-type-nuxt",{"title":215,"path":216,"stem":217,"titleTemplate":6,"icon":213},".nuxtrc","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F3.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":219,"path":220,"stem":221,"titleTemplate":6,"icon":222},"app.vue","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fapp","docs\u002F3.x\u002F2.directory-structure\u002F3.app","i-vscode-icons-file-type-vue",{"title":224,"path":225,"stem":226,"titleTemplate":6,"icon":227},"app.config.ts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fapp-config","docs\u002F3.x\u002F2.directory-structure\u002F3.app-config","i-vscode-icons-file-type-light-config",{"title":229,"path":230,"stem":231,"titleTemplate":6,"icon":222},"error.vue","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Ferror","docs\u002F3.x\u002F2.directory-structure\u002F3.error",{"title":233,"path":234,"stem":235,"titleTemplate":6,"icon":213},"nuxt.config.ts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F3.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":238,"stem":239,"titleTemplate":6,"icon":240},"package.json","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpackage","docs\u002F3.x\u002F2.directory-structure\u002F3.package","i-vscode-icons-file-type-npm",{"title":242,"path":243,"stem":244,"titleTemplate":6,"icon":245},"tsconfig.json","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Ftsconfig","docs\u002F3.x\u002F2.directory-structure\u002F3.tsconfig","i-vscode-icons-file-type-tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":249,"stem":250,"children":251,"page":108},"Guide","i-lucide-book-open","\u002Fdocs\u002F3.x\u002Fguide","docs\u002F3.x\u002F3.guide",[252,287,306,321,360,383],{"title":253,"titleTemplate":254,"icon":255,"path":256,"stem":257,"children":258,"page":108},"Key Concepts","%s · Nuxt Concepts","i-lucide-medal","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts","docs\u002F3.x\u002F3.guide\u002F1.concepts",[259,263,267,271,275,279,283],{"title":260,"path":261,"stem":262,"titleTemplate":6},"Rendering Modes","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":265,"stem":266,"titleTemplate":6},"Nuxt Lifecycle","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":269,"stem":270,"titleTemplate":6},"Auto-imports","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":273,"stem":274,"titleTemplate":6},"Server Engine","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":277,"stem":278,"titleTemplate":6},"Modules","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":281,"stem":282,"titleTemplate":6},"TypeScript","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":285,"stem":286,"titleTemplate":6},"Code Style","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fcode-style","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":291,"stem":292,"children":293,"page":108},"Best Practices","%s · Best Practices","i-lucide-square-check","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices","docs\u002F3.x\u002F3.guide\u002F2.best-practices",[294,298,302],{"title":295,"path":296,"stem":297,"titleTemplate":6},"Nuxt and hydration","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":300,"stem":301,"titleTemplate":6},"Nuxt Performance","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":304,"stem":305,"titleTemplate":6},"Nuxt Plugins","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fplugins","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fplugins",{"title":307,"titleTemplate":308,"icon":309,"path":310,"stem":311,"children":312,"page":108},"Working with AI","Working with AI: %s","i-lucide-bot","\u002Fdocs\u002F3.x\u002Fguide\u002Fai","docs\u002F3.x\u002F3.guide\u002F3.ai",[313,317],{"title":314,"path":315,"stem":316,"titleTemplate":6},"MCP Server","\u002Fdocs\u002F3.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F3.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":319,"stem":320,"titleTemplate":6},"LLMs.txt","\u002Fdocs\u002F3.x\u002Fguide\u002Fai\u002Fllms-txt","docs\u002F3.x\u002F3.guide\u002F3.ai\u002F2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":325,"stem":326,"children":327,"page":108},"Module Author Guide","%s · Nuxt Modules Author Guide","i-lucide-box","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules","docs\u002F3.x\u002F3.guide\u002F4.modules",[328,332,336,340,344,348,352,356],{"title":329,"path":330,"stem":331,"titleTemplate":6},"Create Your First Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":334,"stem":335,"titleTemplate":6},"Understand Module Structure","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":338,"stem":339,"titleTemplate":6},"Add Plugins, Components & More","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":342,"stem":343,"titleTemplate":6},"Module Dependencies","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F4.module-dependencies",{"title":345,"path":346,"stem":347,"titleTemplate":6},"Use Hooks & Extend Types","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F5.recipes-advanced",{"title":349,"path":350,"stem":351,"titleTemplate":6},"Test Your Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F6.testing",{"title":353,"path":354,"stem":355,"titleTemplate":6},"Follow Best Practices","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F7.best-practices",{"title":357,"path":358,"stem":359,"titleTemplate":6},"Publish & Share Your Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F8.ecosystem",{"title":361,"titleTemplate":362,"icon":363,"path":364,"stem":365,"children":366,"page":108},"Recipes","%s · Recipes","i-lucide-cooking-pot","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes","docs\u002F3.x\u002F3.guide\u002F5.recipes",[367,371,375,379],{"title":368,"path":369,"stem":370,"titleTemplate":6},"Custom Routing","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":372,"path":373,"stem":374,"titleTemplate":6},"Vite Plugins","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":376,"path":377,"stem":378,"titleTemplate":6},"Custom useFetch","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":380,"path":381,"stem":382,"titleTemplate":6},"Sessions and Authentication","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":384,"titleTemplate":385,"icon":386,"path":387,"stem":388,"children":389,"page":108},"Going Further","%s · Nuxt Advanced","i-lucide-star","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further","docs\u002F3.x\u002F3.guide\u002F6.going-further",[390,394,398,402,406,410,414,418,422,426],{"title":391,"path":392,"stem":393,"titleTemplate":6},"Custom Events","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":395,"path":396,"stem":397,"titleTemplate":6},"Experimental Features","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":399,"path":400,"stem":401,"titleTemplate":6},"Features","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":403,"path":404,"stem":405,"titleTemplate":6},"Runtime Config","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":407,"path":408,"stem":409,"titleTemplate":6},"Nightly Release Channel","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":411,"path":412,"stem":413,"titleTemplate":6},"Lifecycle Hooks","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":415,"path":416,"stem":417,"titleTemplate":6},"Nuxt Kit","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":419,"path":420,"stem":421,"titleTemplate":6},"NuxtApp","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":423,"path":424,"stem":425,"titleTemplate":6},"Authoring Nuxt Layers","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":427,"path":428,"stem":429,"titleTemplate":6},"Debugging","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":431,"titleTemplate":432,"icon":433,"path":434,"stem":435,"children":436,"page":108},"API","%s · Nuxt API","i-lucide-code-xml","\u002Fdocs\u002F3.x\u002Fapi","docs\u002F3.x\u002F4.api",[437,503,626,749,820,893,906],{"title":438,"titleTemplate":439,"icon":324,"path":440,"stem":441,"children":442,"page":108},"Components","%s · Nuxt Components","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents","docs\u002F3.x\u002F4.api\u002F1.components",[443,447,451,455,459,463,467,471,475,479,483,487,491,495,499],{"title":444,"path":445,"stem":446,"titleTemplate":6},"\u003CClientOnly>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":448,"path":449,"stem":450,"titleTemplate":6},"\u003CDevOnly>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":452,"path":453,"stem":454,"titleTemplate":6},"\u003CNuxtClientFallback>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":456,"path":457,"stem":458,"titleTemplate":6},"\u003CNuxtPicture>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F3.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":460,"path":461,"stem":462,"titleTemplate":6},"\u003CTeleport>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F3.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":464,"path":465,"stem":466,"titleTemplate":6},"\u003CNuxtRouteAnnouncer>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F3.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":468,"path":469,"stem":470,"titleTemplate":6},"\u003CNuxtTime>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F3.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":472,"path":473,"stem":474,"titleTemplate":6},"\u003CNuxtPage>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F3.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":476,"path":477,"stem":478,"titleTemplate":6},"\u003CNuxtLayout>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F3.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":480,"path":481,"stem":482,"titleTemplate":6},"\u003CNuxtLink>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F3.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":484,"path":485,"stem":486,"titleTemplate":6},"\u003CNuxtLoadingIndicator>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F3.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":488,"path":489,"stem":490,"titleTemplate":6},"\u003CNuxtErrorBoundary>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F3.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":492,"path":493,"stem":494,"titleTemplate":6},"\u003CNuxtWelcome>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F3.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":496,"path":497,"stem":498,"titleTemplate":6},"\u003CNuxtIsland>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F3.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":500,"path":501,"stem":502,"titleTemplate":6},"\u003CNuxtImg>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F3.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":504,"titleTemplate":505,"icon":506,"path":507,"stem":508,"children":509,"page":108},"Composables","%s · Nuxt Composables","i-lucide-arrow-left-right","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables","docs\u002F3.x\u002F4.api\u002F2.composables",[510,514,518,522,526,530,534,538,542,546,550,554,558,562,566,570,574,578,582,586,590,594,598,602,606,610,614,618,622],{"title":511,"path":512,"stem":513,"titleTemplate":6},"onPrehydrate","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":515,"path":516,"stem":517,"titleTemplate":6},"useAppConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":519,"path":520,"stem":521,"titleTemplate":6},"useAsyncData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":523,"path":524,"stem":525,"titleTemplate":6},"useCookie","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":527,"path":528,"stem":529,"titleTemplate":6},"useError","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":531,"path":532,"stem":533,"titleTemplate":6},"useFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":535,"path":536,"stem":537,"titleTemplate":6},"useHead","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":539,"path":540,"stem":541,"titleTemplate":6},"useHeadSafe","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":543,"path":544,"stem":545,"titleTemplate":6},"useHydration","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":547,"path":548,"stem":549,"titleTemplate":6},"useLazyAsyncData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":551,"path":552,"stem":553,"titleTemplate":6},"useLazyFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":555,"path":556,"stem":557,"titleTemplate":6},"useLoadingIndicator","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":559,"path":560,"stem":561,"titleTemplate":6},"useNuxtApp","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":563,"path":564,"stem":565,"titleTemplate":6},"useNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":567,"path":568,"stem":569,"titleTemplate":6},"usePreviewMode","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":571,"path":572,"stem":573,"titleTemplate":6},"useRequestEvent","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":575,"path":576,"stem":577,"titleTemplate":6},"useRequestFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":579,"path":580,"stem":581,"titleTemplate":6},"useRequestHeader","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":583,"path":584,"stem":585,"titleTemplate":6},"useRequestHeaders","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":587,"path":588,"stem":589,"titleTemplate":6},"useRequestURL","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":591,"path":592,"stem":593,"titleTemplate":6},"useResponseHeader","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":595,"path":596,"stem":597,"titleTemplate":6},"useRoute","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":599,"path":600,"stem":601,"titleTemplate":6},"useRouteAnnouncer","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":603,"path":604,"stem":605,"titleTemplate":6},"useRouter","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":607,"path":608,"stem":609,"titleTemplate":6},"useRuntimeConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":611,"path":612,"stem":613,"titleTemplate":6},"useRuntimeHook","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":615,"path":616,"stem":617,"titleTemplate":6},"useSeoMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":619,"path":620,"stem":621,"titleTemplate":6},"useServerSeoMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":623,"path":624,"stem":625,"titleTemplate":6},"useState","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":627,"titleTemplate":628,"icon":629,"path":630,"stem":631,"children":632,"page":108},"Utils","%s · Nuxt Utils","i-lucide-square-function","\u002Fdocs\u002F3.x\u002Fapi\u002Futils","docs\u002F3.x\u002F4.api\u002F3.utils",[633,637,641,645,649,653,657,661,665,669,673,677,681,685,689,693,697,701,705,709,713,717,721,725,729,733,737,741,745],{"title":634,"path":635,"stem":636,"titleTemplate":6},"$fetch","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F3.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":638,"path":639,"stem":640,"titleTemplate":6},"abortNavigation","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":642,"path":643,"stem":644,"titleTemplate":6},"addRouteMiddleware","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":646,"path":647,"stem":648,"titleTemplate":6},"callOnce","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":650,"path":651,"stem":652,"titleTemplate":6},"clearError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":654,"path":655,"stem":656,"titleTemplate":6},"clearNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":658,"path":659,"stem":660,"titleTemplate":6},"clearNuxtState","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":662,"path":663,"stem":664,"titleTemplate":6},"createError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":666,"path":667,"stem":668,"titleTemplate":6},"defineLazyHydrationComponent","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":670,"path":671,"stem":672,"titleTemplate":6},"defineNuxtComponent","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":674,"path":675,"stem":676,"titleTemplate":6},"defineNuxtPlugin","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":678,"path":679,"stem":680,"titleTemplate":6},"defineNuxtRouteMiddleware","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":682,"path":683,"stem":684,"titleTemplate":6},"definePageMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":686,"path":687,"stem":688,"titleTemplate":6},"defineRouteRules","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":690,"path":691,"stem":692,"titleTemplate":6},"navigateTo","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":694,"path":695,"stem":696,"titleTemplate":6},"onBeforeRouteLeave","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":698,"path":699,"stem":700,"titleTemplate":6},"onBeforeRouteUpdate","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":702,"path":703,"stem":704,"titleTemplate":6},"onNuxtReady","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":706,"path":707,"stem":708,"titleTemplate":6},"prefetchComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":710,"path":711,"stem":712,"titleTemplate":6},"preloadComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":714,"path":715,"stem":716,"titleTemplate":6},"preloadRouteComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":718,"path":719,"stem":720,"titleTemplate":6},"prerenderRoutes","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":722,"path":723,"stem":724,"titleTemplate":6},"refreshCookie","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F3.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":726,"path":727,"stem":728,"titleTemplate":6},"refreshNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F3.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":730,"path":731,"stem":732,"titleTemplate":6},"reloadNuxtApp","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F3.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":734,"path":735,"stem":736,"titleTemplate":6},"setPageLayout","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":738,"path":739,"stem":740,"titleTemplate":6},"setResponseStatus","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":742,"path":743,"stem":744,"titleTemplate":6},"showError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":746,"path":747,"stem":748,"titleTemplate":6},"updateAppConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":750,"titleTemplate":751,"icon":752,"path":753,"stem":754,"children":755,"page":108},"Commands","%s · Nuxt Commands","i-lucide-square-terminal","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands","docs\u002F3.x\u002F4.api\u002F4.commands",[756,760,764,768,772,776,780,784,788,792,796,800,804,808,812,816],{"title":757,"path":758,"stem":759,"titleTemplate":6},"nuxt add","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fadd",{"title":761,"path":762,"stem":763,"titleTemplate":6},"nuxt analyze","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":765,"path":766,"stem":767,"titleTemplate":6},"nuxt build","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":769,"path":770,"stem":771,"titleTemplate":6},"nuxt build-module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":773,"path":774,"stem":775,"titleTemplate":6},"nuxt cleanup","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":777,"path":778,"stem":779,"titleTemplate":6},"nuxt dev","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdev",{"title":781,"path":782,"stem":783,"titleTemplate":6},"nuxt devtools","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":785,"path":786,"stem":787,"titleTemplate":6},"nuxt generate","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":789,"path":790,"stem":791,"titleTemplate":6},"nuxt info","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finfo",{"title":793,"path":794,"stem":795,"titleTemplate":6},"create nuxt","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finit",{"title":797,"path":798,"stem":799,"titleTemplate":6},"nuxt module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":801,"path":802,"stem":803,"titleTemplate":6},"nuxt prepare","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":805,"path":806,"stem":807,"titleTemplate":6},"nuxt preview","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":809,"path":810,"stem":811,"titleTemplate":6},"nuxt test","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftest",{"title":813,"path":814,"stem":815,"titleTemplate":6},"nuxt typecheck","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":817,"path":818,"stem":819,"titleTemplate":6},"nuxt upgrade","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":415,"titleTemplate":821,"icon":822,"path":823,"stem":824,"children":825,"page":108},"%s · Nuxt Kit","i-lucide-package","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit","docs\u002F3.x\u002F4.api\u002F5.kit",[826,829,832,836,840,844,848,852,856,859,863,867,870,873,877,881,885,889],{"title":276,"path":827,"stem":828,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F3.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":403,"path":830,"stem":831,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":833,"path":834,"stem":835,"titleTemplate":6},"Templates","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":837,"path":838,"stem":839,"titleTemplate":6},"Nitro","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F3.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":841,"path":842,"stem":843,"titleTemplate":6},"Resolving","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F3.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":845,"path":846,"stem":847,"titleTemplate":6},"Logging","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F3.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":849,"path":850,"stem":851,"titleTemplate":6},"Builder","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F3.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":853,"path":854,"stem":855,"titleTemplate":6},"Examples","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F3.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":857,"stem":858,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F3.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":860,"path":861,"stem":862,"titleTemplate":6},"Programmatic Usage","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F3.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":864,"path":865,"stem":866,"titleTemplate":6},"Compatibility","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F3.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":868,"stem":869,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F3.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":438,"path":871,"stem":872,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F3.x\u002F4.api\u002F5.kit\u002F5.components",{"title":874,"path":875,"stem":876,"titleTemplate":6},"Context","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F3.x\u002F4.api\u002F5.kit\u002F6.context",{"title":878,"path":879,"stem":880,"titleTemplate":6},"Pages","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F3.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":882,"path":883,"stem":884,"titleTemplate":6},"Layout","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F3.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":886,"path":887,"stem":888,"titleTemplate":6},"Head","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.head",{"title":890,"path":891,"stem":892,"titleTemplate":6},"Plugins","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":894,"titleTemplate":6,"icon":895,"path":896,"stem":897,"children":898,"page":108},"Advanced","i-lucide-brain","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced","docs\u002F3.x\u002F4.api\u002F6.advanced",[899,902],{"title":411,"path":900,"stem":901,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":903,"path":904,"stem":905,"titleTemplate":6},"Import meta","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":907,"path":908,"stem":909,"titleTemplate":910,"icon":32},"Nuxt Configuration","\u002Fdocs\u002F3.x\u002Fapi\u002Fnuxt-config","docs\u002F3.x\u002F4.api\u002F6.nuxt-config","%s",{"title":853,"titleTemplate":912,"icon":913,"path":914,"stem":915,"children":916,"page":108},"%s · Nuxt Examples","i-lucide-app-window-mac","\u002Fdocs\u002F3.x\u002Fexamples","docs\u002F3.x\u002F4.examples",[917,921,943,958,994],{"title":918,"path":919,"stem":920,"titleTemplate":6},"Hello World","\u002Fdocs\u002F3.x\u002Fexamples\u002Fhello-world","docs\u002F3.x\u002F4.examples\u002F0.hello-world",{"title":399,"path":922,"stem":923,"children":924,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures","docs\u002F3.x\u002F4.examples\u002F1.features",[925,929,932,935,939],{"title":926,"path":927,"stem":928,"titleTemplate":6},"Auto Imports","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F3.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":930,"stem":931,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F3.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":933,"stem":934,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F3.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":936,"path":937,"stem":938,"titleTemplate":6},"Meta Tags","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F3.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":940,"path":941,"stem":942,"titleTemplate":6},"Layouts","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F3.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":944,"stem":945,"children":946,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting","docs\u002F3.x\u002F4.examples\u002F2.routing",[947,951,954],{"title":948,"path":949,"stem":950,"titleTemplate":6},"Middleware","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":878,"path":952,"stem":953,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":955,"path":956,"stem":957,"titleTemplate":6},"Universal Router","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":894,"path":959,"stem":960,"children":961,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced","docs\u002F3.x\u002F4.examples\u002F4.advanced",[962,965,968,972,976,980,984,987,990],{"title":84,"path":963,"stem":964,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":966,"stem":967,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":969,"path":970,"stem":971,"titleTemplate":6},"JSX \u002F TSX","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":973,"path":974,"stem":975,"titleTemplate":6},"Locale","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":977,"path":978,"stem":979,"titleTemplate":6},"Module Extend Pages","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":981,"path":982,"stem":983,"titleTemplate":6},"Teleport","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":985,"stem":986,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":523,"path":988,"stem":989,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":991,"path":992,"stem":993,"titleTemplate":6},"Use Custom Fetch Composable","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":995,"path":996,"stem":997,"children":998,"page":108},"Experimental","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental","docs\u002F3.x\u002F4.examples\u002F7.experimental",[999],{"title":1000,"path":1001,"stem":1002,"titleTemplate":6},"WASM","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F3.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1004,"titleTemplate":1005,"icon":1006,"path":1007,"stem":1008,"children":1009,"page":108},"Community","%s · Nuxt Community","i-lucide-messages-square","\u002Fdocs\u002F3.x\u002Fcommunity","docs\u002F3.x\u002F5.community",[1010,1015,1020,1025,1030,1035],{"title":1011,"path":1012,"stem":1013,"titleTemplate":6,"icon":1014},"Getting Help","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fgetting-help","docs\u002F3.x\u002F5.community\u002F2.getting-help","i-lucide-life-buoy",{"title":1016,"path":1017,"stem":1018,"titleTemplate":6,"icon":1019},"Reporting Bugs","\u002Fdocs\u002F3.x\u002Fcommunity\u002Freporting-bugs","docs\u002F3.x\u002F5.community\u002F3.reporting-bugs","i-lucide-bug",{"title":1021,"path":1022,"stem":1023,"titleTemplate":6,"icon":1024},"Contribution","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fcontribution","docs\u002F3.x\u002F5.community\u002F4.contribution","i-lucide-git-pull-request",{"title":1026,"path":1027,"stem":1028,"titleTemplate":6,"icon":1029},"Framework","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fframework-contribution","docs\u002F3.x\u002F5.community\u002F5.framework-contribution","i-lucide-github",{"title":1031,"path":1032,"stem":1033,"titleTemplate":6,"icon":1034},"Roadmap","\u002Fdocs\u002F3.x\u002Fcommunity\u002Froadmap","docs\u002F3.x\u002F5.community\u002F6.roadmap","i-lucide-map",{"title":1036,"path":1037,"stem":1038,"titleTemplate":6,"icon":1039},"Releases","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fchangelog","docs\u002F3.x\u002F5.community\u002F7.changelog","i-lucide-bell-dot",{"title":1041,"titleTemplate":1042,"icon":1043,"path":1044,"stem":1045,"children":1046,"page":108},"Migrate to Nuxt Bridge","Migrate to Nuxt Bridge: %s","i-lucide-ship","\u002Fdocs\u002F3.x\u002Fbridge","docs\u002F3.x\u002F6.bridge",[1047,1051,1054,1057,1061,1065,1069,1072,1075,1078],{"title":1048,"path":1049,"stem":1050,"titleTemplate":6},"Overview","\u002Fdocs\u002F3.x\u002Fbridge\u002Foverview","docs\u002F3.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1052,"stem":1053,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fconfiguration","docs\u002F3.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1055,"stem":1056,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Ftypescript","docs\u002F3.x\u002F6.bridge\u002F2.typescript",{"title":1058,"path":1059,"stem":1060,"titleTemplate":6},"Legacy Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F3.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1062,"path":1063,"stem":1064,"titleTemplate":6},"Plugins and Middleware","\u002Fdocs\u002F3.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F3.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1066,"path":1067,"stem":1068,"titleTemplate":6},"New Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F3.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":936,"path":1070,"stem":1071,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fmeta","docs\u002F3.x\u002F6.bridge\u002F6.meta",{"title":403,"path":1073,"stem":1074,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fruntime-config","docs\u002F3.x\u002F6.bridge\u002F7.runtime-config",{"title":837,"path":1076,"stem":1077,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fnitro","docs\u002F3.x\u002F6.bridge\u002F8.nitro",{"title":1079,"path":1080,"stem":1081,"titleTemplate":6},"Vite","\u002Fdocs\u002F3.x\u002Fbridge\u002Fvite","docs\u002F3.x\u002F6.bridge\u002F9.vite",{"title":1083,"titleTemplate":1084,"icon":107,"path":1085,"stem":1086,"children":1087,"page":108},"Migrate to Nuxt 3","Migrate to Nuxt 3: %s","\u002Fdocs\u002F3.x\u002Fmigration","docs\u002F3.x\u002F7.migration",[1088,1091,1095,1098,1101,1104,1107,1110,1113,1117,1121],{"title":1048,"path":1089,"stem":1090,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Foverview","docs\u002F3.x\u002F7.migration\u002F1.overview",{"title":1092,"path":1093,"stem":1094,"titleTemplate":6},"Build Tooling","\u002Fdocs\u002F3.x\u002Fmigration\u002Fbundling","docs\u002F3.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1096,"stem":1097,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fserver","docs\u002F3.x\u002F7.migration\u002F11.server",{"title":29,"path":1099,"stem":1100,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fconfiguration","docs\u002F3.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1102,"stem":1103,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmodule-authors","docs\u002F3.x\u002F7.migration\u002F20.module-authors",{"title":926,"path":1105,"stem":1106,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fauto-imports","docs\u002F3.x\u002F7.migration\u002F3.auto-imports",{"title":936,"path":1108,"stem":1109,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmeta","docs\u002F3.x\u002F7.migration\u002F4.meta",{"title":1062,"path":1111,"stem":1112,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F3.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1114,"path":1115,"stem":1116,"titleTemplate":6},"Pages and Layouts","\u002Fdocs\u002F3.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F3.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1118,"path":1119,"stem":1120,"titleTemplate":6},"Component Options","\u002Fdocs\u002F3.x\u002Fmigration\u002Fcomponent-options","docs\u002F3.x\u002F7.migration\u002F7.component-options",{"title":403,"path":1122,"stem":1123,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fruntime-config","docs\u002F3.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1125,"stem":1126,"children":1127,"page":108},"\u002Fdocs\u002F4.x","docs\u002F4.x",[1128,1186,1280,1411,1785,1862,1884,1918],{"title":12,"titleTemplate":13,"icon":14,"path":1129,"stem":1130,"children":1131,"page":108},"\u002Fdocs\u002F4.x\u002Fgetting-started","docs\u002F4.x\u002F1.getting-started",[1132,1135,1138,1141,1144,1147,1150,1153,1156,1159,1162,1165,1168,1171,1174,1177,1180,1183],{"title":19,"path":1133,"stem":1134,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fintroduction","docs\u002F4.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1136,"stem":1137,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Finstallation","docs\u002F4.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1139,"stem":1140,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fconfiguration","docs\u002F4.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":1142,"stem":1143,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fviews","docs\u002F4.x\u002F1.getting-started\u002F04.views",{"title":39,"path":1145,"stem":1146,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fassets","docs\u002F4.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":1148,"stem":1149,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstyling","docs\u002F4.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":1151,"stem":1152,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Frouting","docs\u002F4.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":1154,"stem":1155,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fseo-meta","docs\u002F4.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":1157,"stem":1158,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftransitions","docs\u002F4.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":1160,"stem":1161,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F4.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":1163,"stem":1164,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstate-management","docs\u002F4.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":1166,"stem":1167,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ferror-handling","docs\u002F4.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":1169,"stem":1170,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fserver","docs\u002F4.x\u002F1.getting-started\u002F13.server",{"title":84,"path":1172,"stem":1173,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Flayers","docs\u002F4.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":1175,"stem":1176,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fprerendering","docs\u002F4.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":1178,"stem":1179,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdeployment","docs\u002F4.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":1181,"stem":1182,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftesting","docs\u002F4.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":1184,"stem":1185,"titleTemplate":6,"icon":107},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fupgrade","docs\u002F4.x\u002F1.getting-started\u002F18.upgrade",{"title":110,"titleTemplate":111,"icon":112,"path":1187,"stem":1188,"children":1189,"page":108},"\u002Fdocs\u002F4.x\u002Fdirectory-structure","docs\u002F4.x\u002F2.directory-structure",[1190,1193,1196,1238,1241,1244,1247,1250,1253,1256,1259,1262,1265,1268,1271,1274,1277],{"title":117,"path":1191,"stem":1192,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F4.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":1194,"stem":1195,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Foutput","docs\u002F4.x\u002F2.directory-structure\u002F0.output",{"title":1197,"titleTemplate":111,"head":1198,"defaultOpen":1200,"icon":1201,"path":1202,"stem":1203,"children":1204,"page":108},"app",{"title":1199},"app\u002F",true,"i-vscode-icons-folder-type-app","\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app",[1205,1208,1211,1214,1217,1220,1223,1226,1229,1232,1235],{"title":127,"path":1206,"stem":1207,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":1209,"stem":1210,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":1212,"stem":1213,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":1215,"stem":1216,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":1218,"stem":1219,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":1221,"stem":1222,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":1224,"stem":1225,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":1227,"stem":1228,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":1230,"stem":1231,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":1233,"stem":1234,"titleTemplate":6,"icon":227},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp-config","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.app-config",{"title":229,"path":1236,"stem":1237,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":1239,"stem":1240,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fcontent","docs\u002F4.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":1242,"stem":1243,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Flayers","docs\u002F4.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":1245,"stem":1246,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fmodules","docs\u002F4.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":1248,"stem":1249,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F4.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":1251,"stem":1252,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpublic","docs\u002F4.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":1254,"stem":1255,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fserver","docs\u002F4.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":1257,"stem":1258,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fshared","docs\u002F4.x\u002F2.directory-structure\u002F1.shared",{"title":200,"path":1260,"stem":1261,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fenv","docs\u002F4.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":1263,"stem":1264,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F4.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":1266,"stem":1267,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":1269,"stem":1270,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":1272,"stem":1273,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F4.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":1275,"stem":1276,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpackage","docs\u002F4.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":1278,"stem":1279,"titleTemplate":6,"icon":245},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Ftsconfig","docs\u002F4.x\u002F2.directory-structure\u002F3.tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":1281,"stem":1282,"children":1283,"page":108},"\u002Fdocs\u002F4.x\u002Fguide","docs\u002F4.x\u002F3.guide",[1284,1309,1323,1333,1361,1377],{"title":253,"titleTemplate":254,"icon":255,"path":1285,"stem":1286,"children":1287,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts","docs\u002F4.x\u002F3.guide\u002F1.concepts",[1288,1291,1294,1297,1300,1303,1306],{"title":260,"path":1289,"stem":1290,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":1292,"stem":1293,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":1295,"stem":1296,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":1298,"stem":1299,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":1301,"stem":1302,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":1304,"stem":1305,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":1307,"stem":1308,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fcode-style","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":1310,"stem":1311,"children":1312,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F2.best-practices",[1313,1317,1320],{"title":1314,"path":1315,"stem":1316,"titleTemplate":6},"Nuxt and Hydration","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":1318,"stem":1319,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":1321,"stem":1322,"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":1324,"stem":1325,"children":1326,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai","docs\u002F4.x\u002F3.guide\u002F3.ai",[1327,1330],{"title":314,"path":1328,"stem":1329,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F4.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":1331,"stem":1332,"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":1334,"stem":1335,"children":1336,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F4.modules",[1337,1340,1343,1346,1349,1352,1355,1358],{"title":329,"path":1338,"stem":1339,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":1341,"stem":1342,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":1344,"stem":1345,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":1347,"stem":1348,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F4.module-dependencies",{"title":345,"path":1350,"stem":1351,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F5.recipes-advanced",{"title":349,"path":1353,"stem":1354,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F6.testing",{"title":353,"path":1356,"stem":1357,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F7.best-practices",{"title":357,"path":1359,"stem":1360,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F8.ecosystem",{"title":361,"titleTemplate":362,"icon":363,"path":1362,"stem":1363,"children":1364,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes","docs\u002F4.x\u002F3.guide\u002F5.recipes",[1365,1368,1371,1374],{"title":368,"path":1366,"stem":1367,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":372,"path":1369,"stem":1370,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":376,"path":1372,"stem":1373,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":380,"path":1375,"stem":1376,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":384,"titleTemplate":385,"icon":386,"path":1378,"stem":1379,"children":1380,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further","docs\u002F4.x\u002F3.guide\u002F6.going-further",[1381,1384,1387,1390,1393,1396,1399,1402,1405,1408],{"title":391,"path":1382,"stem":1383,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":395,"path":1385,"stem":1386,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":399,"path":1388,"stem":1389,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":403,"path":1391,"stem":1392,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":407,"path":1394,"stem":1395,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":411,"path":1397,"stem":1398,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":415,"path":1400,"stem":1401,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":419,"path":1403,"stem":1404,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":423,"path":1406,"stem":1407,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":427,"path":1409,"stem":1410,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":431,"titleTemplate":432,"icon":433,"path":1412,"stem":1413,"children":1414,"page":108},"\u002Fdocs\u002F4.x\u002Fapi","docs\u002F4.x\u002F4.api",[1415,1468,1571,1662,1714,1772,1782],{"title":438,"titleTemplate":439,"icon":324,"path":1416,"stem":1417,"children":1418,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F1.components",[1419,1422,1425,1428,1431,1434,1437,1440,1444,1447,1450,1453,1456,1459,1462,1465],{"title":444,"path":1420,"stem":1421,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":448,"path":1423,"stem":1424,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":452,"path":1426,"stem":1427,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":456,"path":1429,"stem":1430,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F4.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":460,"path":1432,"stem":1433,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F4.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":464,"path":1435,"stem":1436,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":468,"path":1438,"stem":1439,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F4.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1441,"path":1442,"stem":1443,"titleTemplate":6},"\u003CNuxtAnnouncer>","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":472,"path":1445,"stem":1446,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F4.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":476,"path":1448,"stem":1449,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F4.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":480,"path":1451,"stem":1452,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F4.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":484,"path":1454,"stem":1455,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F4.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":488,"path":1457,"stem":1458,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F4.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":492,"path":1460,"stem":1461,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F4.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":496,"path":1463,"stem":1464,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F4.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":500,"path":1466,"stem":1467,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F4.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":504,"titleTemplate":505,"icon":506,"path":1469,"stem":1470,"children":1471,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables","docs\u002F4.x\u002F4.api\u002F2.composables",[1472,1476,1480,1483,1487,1490,1493,1496,1499,1502,1505,1508,1511,1514,1517,1520,1523,1526,1529,1532,1535,1538,1541,1544,1547,1550,1553,1556,1559,1562,1565,1568],{"title":1473,"path":1474,"stem":1475,"titleTemplate":6},"createUseAsyncData","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1477,"path":1478,"stem":1479,"titleTemplate":6},"createUseFetch","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":511,"path":1481,"stem":1482,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1484,"path":1485,"stem":1486,"titleTemplate":6},"useAnnouncer","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":515,"path":1488,"stem":1489,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":519,"path":1491,"stem":1492,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":523,"path":1494,"stem":1495,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":527,"path":1497,"stem":1498,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":531,"path":1500,"stem":1501,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":535,"path":1503,"stem":1504,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":539,"path":1506,"stem":1507,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":543,"path":1509,"stem":1510,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":547,"path":1512,"stem":1513,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":551,"path":1515,"stem":1516,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":555,"path":1518,"stem":1519,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":559,"path":1521,"stem":1522,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":563,"path":1524,"stem":1525,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":567,"path":1527,"stem":1528,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":571,"path":1530,"stem":1531,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":575,"path":1533,"stem":1534,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":579,"path":1536,"stem":1537,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":583,"path":1539,"stem":1540,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":587,"path":1542,"stem":1543,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":591,"path":1545,"stem":1546,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":595,"path":1548,"stem":1549,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":599,"path":1551,"stem":1552,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":603,"path":1554,"stem":1555,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":607,"path":1557,"stem":1558,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":611,"path":1560,"stem":1561,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":615,"path":1563,"stem":1564,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":619,"path":1566,"stem":1567,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":623,"path":1569,"stem":1570,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":627,"titleTemplate":628,"icon":629,"path":1572,"stem":1573,"children":1574,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils","docs\u002F4.x\u002F4.api\u002F3.utils",[1575,1578,1581,1584,1587,1590,1593,1596,1599,1602,1605,1608,1611,1614,1617,1620,1623,1626,1629,1632,1635,1638,1641,1644,1647,1650,1653,1656,1659],{"title":634,"path":1576,"stem":1577,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F4.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":638,"path":1579,"stem":1580,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":642,"path":1582,"stem":1583,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":646,"path":1585,"stem":1586,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":650,"path":1588,"stem":1589,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":654,"path":1591,"stem":1592,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":658,"path":1594,"stem":1595,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":662,"path":1597,"stem":1598,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":666,"path":1600,"stem":1601,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":670,"path":1603,"stem":1604,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":674,"path":1606,"stem":1607,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":678,"path":1609,"stem":1610,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":682,"path":1612,"stem":1613,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":686,"path":1615,"stem":1616,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":690,"path":1618,"stem":1619,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":694,"path":1621,"stem":1622,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":698,"path":1624,"stem":1625,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":702,"path":1627,"stem":1628,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":706,"path":1630,"stem":1631,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":710,"path":1633,"stem":1634,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":714,"path":1636,"stem":1637,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":718,"path":1639,"stem":1640,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":722,"path":1642,"stem":1643,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":726,"path":1645,"stem":1646,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":730,"path":1648,"stem":1649,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F4.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":734,"path":1651,"stem":1652,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":738,"path":1654,"stem":1655,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":742,"path":1657,"stem":1658,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":746,"path":1660,"stem":1661,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":750,"titleTemplate":751,"icon":752,"path":1663,"stem":1664,"children":1665,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands","docs\u002F4.x\u002F4.api\u002F4.commands",[1666,1669,1672,1675,1678,1681,1684,1687,1690,1693,1696,1699,1702,1705,1708,1711],{"title":757,"path":1667,"stem":1668,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fadd",{"title":761,"path":1670,"stem":1671,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":765,"path":1673,"stem":1674,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":769,"path":1676,"stem":1677,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":773,"path":1679,"stem":1680,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":777,"path":1682,"stem":1683,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdev",{"title":781,"path":1685,"stem":1686,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":785,"path":1688,"stem":1689,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":789,"path":1691,"stem":1692,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finfo",{"title":793,"path":1694,"stem":1695,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finit",{"title":797,"path":1697,"stem":1698,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":801,"path":1700,"stem":1701,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":805,"path":1703,"stem":1704,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":809,"path":1706,"stem":1707,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftest",{"title":813,"path":1709,"stem":1710,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":817,"path":1712,"stem":1713,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":415,"titleTemplate":821,"icon":822,"path":1715,"stem":1716,"children":1717,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit","docs\u002F4.x\u002F4.api\u002F5.kit",[1718,1721,1724,1727,1730,1733,1736,1739,1742,1745,1748,1751,1754,1757,1760,1763,1766,1769],{"title":276,"path":1719,"stem":1720,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F4.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":403,"path":1722,"stem":1723,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":833,"path":1725,"stem":1726,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":837,"path":1728,"stem":1729,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F4.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":841,"path":1731,"stem":1732,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F4.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":845,"path":1734,"stem":1735,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F4.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":849,"path":1737,"stem":1738,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F4.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":853,"path":1740,"stem":1741,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F4.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":1743,"stem":1744,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F4.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":860,"path":1746,"stem":1747,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F4.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":864,"path":1749,"stem":1750,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F4.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":1752,"stem":1753,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F4.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":438,"path":1755,"stem":1756,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F5.kit\u002F5.components",{"title":874,"path":1758,"stem":1759,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F4.x\u002F4.api\u002F5.kit\u002F6.context",{"title":878,"path":1761,"stem":1762,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F4.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":882,"path":1764,"stem":1765,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F4.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":886,"path":1767,"stem":1768,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.head",{"title":890,"path":1770,"stem":1771,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":894,"titleTemplate":6,"icon":895,"path":1773,"stem":1774,"children":1775,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced","docs\u002F4.x\u002F4.api\u002F6.advanced",[1776,1779],{"title":411,"path":1777,"stem":1778,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":903,"path":1780,"stem":1781,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":907,"path":1783,"stem":1784,"titleTemplate":910,"icon":32},"\u002Fdocs\u002F4.x\u002Fapi\u002Fnuxt-config","docs\u002F4.x\u002F4.api\u002F6.nuxt-config",{"title":853,"titleTemplate":912,"icon":913,"path":1786,"stem":1787,"children":1788,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples","docs\u002F4.x\u002F4.examples",[1789,1792,1811,1824,1855],{"title":918,"path":1790,"stem":1791,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fhello-world","docs\u002F4.x\u002F4.examples\u002F0.hello-world",{"title":399,"path":1793,"stem":1794,"children":1795,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures","docs\u002F4.x\u002F4.examples\u002F1.features",[1796,1799,1802,1805,1808],{"title":926,"path":1797,"stem":1798,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F4.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":1800,"stem":1801,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F4.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":1803,"stem":1804,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F4.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":936,"path":1806,"stem":1807,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F4.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":940,"path":1809,"stem":1810,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F4.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":1812,"stem":1813,"children":1814,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting","docs\u002F4.x\u002F4.examples\u002F2.routing",[1815,1818,1821],{"title":948,"path":1816,"stem":1817,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":878,"path":1819,"stem":1820,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":955,"path":1822,"stem":1823,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":894,"path":1825,"stem":1826,"children":1827,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced","docs\u002F4.x\u002F4.examples\u002F4.advanced",[1828,1831,1834,1837,1840,1843,1846,1849,1852],{"title":84,"path":1829,"stem":1830,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":1832,"stem":1833,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":969,"path":1835,"stem":1836,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":973,"path":1838,"stem":1839,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":977,"path":1841,"stem":1842,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":981,"path":1844,"stem":1845,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":1847,"stem":1848,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":523,"path":1850,"stem":1851,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":991,"path":1853,"stem":1854,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":995,"path":1856,"stem":1857,"children":1858,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental","docs\u002F4.x\u002F4.examples\u002F7.experimental",[1859],{"title":1000,"path":1860,"stem":1861,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F4.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1004,"titleTemplate":1005,"icon":1006,"path":1863,"stem":1864,"children":1865,"page":108},"\u002Fdocs\u002F4.x\u002Fcommunity","docs\u002F4.x\u002F5.community",[1866,1869,1872,1875,1878,1881],{"title":1011,"path":1867,"stem":1868,"titleTemplate":6,"icon":1014},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fgetting-help","docs\u002F4.x\u002F5.community\u002F2.getting-help",{"title":1016,"path":1870,"stem":1871,"titleTemplate":6,"icon":1019},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Freporting-bugs","docs\u002F4.x\u002F5.community\u002F3.reporting-bugs",{"title":1021,"path":1873,"stem":1874,"titleTemplate":6,"icon":1024},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fcontribution","docs\u002F4.x\u002F5.community\u002F4.contribution",{"title":1026,"path":1876,"stem":1877,"titleTemplate":6,"icon":1029},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fframework-contribution","docs\u002F4.x\u002F5.community\u002F5.framework-contribution",{"title":1031,"path":1879,"stem":1880,"titleTemplate":6,"icon":1034},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Froadmap","docs\u002F4.x\u002F5.community\u002F6.roadmap",{"title":1036,"path":1882,"stem":1883,"titleTemplate":6,"icon":1039},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fchangelog","docs\u002F4.x\u002F5.community\u002F7.changelog",{"title":1041,"titleTemplate":1042,"icon":1043,"path":1885,"stem":1886,"children":1887,"page":108},"\u002Fdocs\u002F4.x\u002Fbridge","docs\u002F4.x\u002F6.bridge",[1888,1891,1894,1897,1900,1903,1906,1909,1912,1915],{"title":1048,"path":1889,"stem":1890,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Foverview","docs\u002F4.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1892,"stem":1893,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fconfiguration","docs\u002F4.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1895,"stem":1896,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Ftypescript","docs\u002F4.x\u002F6.bridge\u002F2.typescript",{"title":1058,"path":1898,"stem":1899,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F4.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1062,"path":1901,"stem":1902,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F4.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1066,"path":1904,"stem":1905,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F4.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":936,"path":1907,"stem":1908,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fmeta","docs\u002F4.x\u002F6.bridge\u002F6.meta",{"title":403,"path":1910,"stem":1911,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fruntime-config","docs\u002F4.x\u002F6.bridge\u002F7.runtime-config",{"title":837,"path":1913,"stem":1914,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnitro","docs\u002F4.x\u002F6.bridge\u002F8.nitro",{"title":1079,"path":1916,"stem":1917,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fvite","docs\u002F4.x\u002F6.bridge\u002F9.vite",{"title":1083,"titleTemplate":1084,"icon":107,"path":1919,"stem":1920,"children":1921,"page":108},"\u002Fdocs\u002F4.x\u002Fmigration","docs\u002F4.x\u002F7.migration",[1922,1925,1928,1931,1934,1937,1940,1943,1946,1949,1952],{"title":1048,"path":1923,"stem":1924,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Foverview","docs\u002F4.x\u002F7.migration\u002F1.overview",{"title":1092,"path":1926,"stem":1927,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fbundling","docs\u002F4.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1929,"stem":1930,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fserver","docs\u002F4.x\u002F7.migration\u002F11.server",{"title":29,"path":1932,"stem":1933,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fconfiguration","docs\u002F4.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1935,"stem":1936,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmodule-authors","docs\u002F4.x\u002F7.migration\u002F20.module-authors",{"title":926,"path":1938,"stem":1939,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fauto-imports","docs\u002F4.x\u002F7.migration\u002F3.auto-imports",{"title":936,"path":1941,"stem":1942,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmeta","docs\u002F4.x\u002F7.migration\u002F4.meta",{"title":1062,"path":1944,"stem":1945,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F4.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1114,"path":1947,"stem":1948,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F4.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1118,"path":1950,"stem":1951,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fcomponent-options","docs\u002F4.x\u002F7.migration\u002F7.component-options",{"title":403,"path":1953,"stem":1954,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fruntime-config","docs\u002F4.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1956,"stem":1957,"children":1958,"page":108},"\u002Fdocs\u002F5.x","docs\u002F5.x",[1959,2017,2107,2237,2607,2684,2706,2740],{"title":12,"titleTemplate":13,"icon":14,"path":1960,"stem":1961,"children":1962,"page":108},"\u002Fdocs\u002F5.x\u002Fgetting-started","docs\u002F5.x\u002F1.getting-started",[1963,1966,1969,1972,1975,1978,1981,1984,1987,1990,1993,1996,1999,2002,2005,2008,2011,2014],{"title":19,"path":1964,"stem":1965,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fintroduction","docs\u002F5.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1967,"stem":1968,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Finstallation","docs\u002F5.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1970,"stem":1971,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fconfiguration","docs\u002F5.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":1973,"stem":1974,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fviews","docs\u002F5.x\u002F1.getting-started\u002F04.views",{"title":39,"path":1976,"stem":1977,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fassets","docs\u002F5.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":1979,"stem":1980,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstyling","docs\u002F5.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":1982,"stem":1983,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Frouting","docs\u002F5.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":1985,"stem":1986,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fseo-meta","docs\u002F5.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":1988,"stem":1989,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftransitions","docs\u002F5.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":1991,"stem":1992,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F5.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":1994,"stem":1995,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstate-management","docs\u002F5.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":1997,"stem":1998,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ferror-handling","docs\u002F5.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":2000,"stem":2001,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fserver","docs\u002F5.x\u002F1.getting-started\u002F13.server",{"title":84,"path":2003,"stem":2004,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Flayers","docs\u002F5.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":2006,"stem":2007,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fprerendering","docs\u002F5.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":2009,"stem":2010,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdeployment","docs\u002F5.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":2012,"stem":2013,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftesting","docs\u002F5.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":2015,"stem":2016,"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":2018,"stem":2019,"children":2020,"page":108},"\u002Fdocs\u002F5.x\u002Fdirectory-structure","docs\u002F5.x\u002F2.directory-structure",[2021,2024,2027,2065,2068,2071,2074,2077,2080,2083,2086,2089,2092,2095,2098,2101,2104],{"title":117,"path":2022,"stem":2023,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F5.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":2025,"stem":2026,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Foutput","docs\u002F5.x\u002F2.directory-structure\u002F0.output",{"title":1197,"titleTemplate":111,"head":2028,"defaultOpen":1200,"icon":1201,"path":2029,"stem":2030,"children":2031,"page":108},{"title":1199},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app",[2032,2035,2038,2041,2044,2047,2050,2053,2056,2059,2062],{"title":127,"path":2033,"stem":2034,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":2036,"stem":2037,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":2039,"stem":2040,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":2042,"stem":2043,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":2045,"stem":2046,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":2048,"stem":2049,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":2051,"stem":2052,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":2054,"stem":2055,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":2057,"stem":2058,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":2060,"stem":2061,"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":2063,"stem":2064,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":2066,"stem":2067,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fcontent","docs\u002F5.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":2069,"stem":2070,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Flayers","docs\u002F5.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":2072,"stem":2073,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fmodules","docs\u002F5.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":2075,"stem":2076,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F5.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":2078,"stem":2079,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpublic","docs\u002F5.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":2081,"stem":2082,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fserver","docs\u002F5.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":2084,"stem":2085,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fshared","docs\u002F5.x\u002F2.directory-structure\u002F1.shared",{"title":200,"path":2087,"stem":2088,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fenv","docs\u002F5.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":2090,"stem":2091,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F5.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":2093,"stem":2094,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":2096,"stem":2097,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":2099,"stem":2100,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F5.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":2102,"stem":2103,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpackage","docs\u002F5.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":2105,"stem":2106,"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":2108,"stem":2109,"children":2110,"page":108},"\u002Fdocs\u002F5.x\u002Fguide","docs\u002F5.x\u002F3.guide",[2111,2136,2149,2159,2187,2203],{"title":253,"titleTemplate":254,"icon":255,"path":2112,"stem":2113,"children":2114,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts","docs\u002F5.x\u002F3.guide\u002F1.concepts",[2115,2118,2121,2124,2127,2130,2133],{"title":260,"path":2116,"stem":2117,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":2119,"stem":2120,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":2122,"stem":2123,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":2125,"stem":2126,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":2128,"stem":2129,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":2131,"stem":2132,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":2134,"stem":2135,"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":2137,"stem":2138,"children":2139,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F2.best-practices",[2140,2143,2146],{"title":1314,"path":2141,"stem":2142,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":2144,"stem":2145,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":2147,"stem":2148,"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":2150,"stem":2151,"children":2152,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai","docs\u002F5.x\u002F3.guide\u002F3.ai",[2153,2156],{"title":314,"path":2154,"stem":2155,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F5.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":2157,"stem":2158,"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":2160,"stem":2161,"children":2162,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F4.modules",[2163,2166,2169,2172,2175,2178,2181,2184],{"title":329,"path":2164,"stem":2165,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":2167,"stem":2168,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":2170,"stem":2171,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":2173,"stem":2174,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F4.module-dependencies",{"title":345,"path":2176,"stem":2177,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F5.recipes-advanced",{"title":349,"path":2179,"stem":2180,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F6.testing",{"title":353,"path":2182,"stem":2183,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F7.best-practices",{"title":357,"path":2185,"stem":2186,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F8.ecosystem",{"title":361,"titleTemplate":362,"icon":363,"path":2188,"stem":2189,"children":2190,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes","docs\u002F5.x\u002F3.guide\u002F5.recipes",[2191,2194,2197,2200],{"title":368,"path":2192,"stem":2193,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":372,"path":2195,"stem":2196,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":376,"path":2198,"stem":2199,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":380,"path":2201,"stem":2202,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":384,"titleTemplate":385,"icon":386,"path":2204,"stem":2205,"children":2206,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further","docs\u002F5.x\u002F3.guide\u002F6.going-further",[2207,2210,2213,2216,2219,2222,2225,2228,2231,2234],{"title":391,"path":2208,"stem":2209,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":395,"path":2211,"stem":2212,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":399,"path":2214,"stem":2215,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":403,"path":2217,"stem":2218,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":407,"path":2220,"stem":2221,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":411,"path":2223,"stem":2224,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":415,"path":2226,"stem":2227,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":419,"path":2229,"stem":2230,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":423,"path":2232,"stem":2233,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":427,"path":2235,"stem":2236,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":431,"titleTemplate":432,"icon":433,"path":2238,"stem":2239,"children":2240,"page":108},"\u002Fdocs\u002F5.x\u002Fapi","docs\u002F5.x\u002F4.api",[2241,2293,2393,2484,2536,2594,2604],{"title":438,"titleTemplate":439,"icon":324,"path":2242,"stem":2243,"children":2244,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F1.components",[2245,2248,2251,2254,2257,2260,2263,2266,2269,2272,2275,2278,2281,2284,2287,2290],{"title":444,"path":2246,"stem":2247,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":448,"path":2249,"stem":2250,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":452,"path":2252,"stem":2253,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":456,"path":2255,"stem":2256,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F5.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":460,"path":2258,"stem":2259,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F5.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":464,"path":2261,"stem":2262,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":468,"path":2264,"stem":2265,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F5.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1441,"path":2267,"stem":2268,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":472,"path":2270,"stem":2271,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F5.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":476,"path":2273,"stem":2274,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F5.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":480,"path":2276,"stem":2277,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F5.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":484,"path":2279,"stem":2280,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F5.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":488,"path":2282,"stem":2283,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F5.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":492,"path":2285,"stem":2286,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F5.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":496,"path":2288,"stem":2289,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F5.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":500,"path":2291,"stem":2292,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F5.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":504,"titleTemplate":505,"icon":506,"path":2294,"stem":2295,"children":2296,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables","docs\u002F5.x\u002F4.api\u002F2.composables",[2297,2300,2303,2306,2309,2312,2315,2318,2321,2324,2327,2330,2333,2336,2339,2342,2345,2348,2351,2354,2357,2360,2363,2366,2369,2372,2375,2378,2381,2384,2387,2390],{"title":1473,"path":2298,"stem":2299,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1477,"path":2301,"stem":2302,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":511,"path":2304,"stem":2305,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1484,"path":2307,"stem":2308,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":515,"path":2310,"stem":2311,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":519,"path":2313,"stem":2314,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":523,"path":2316,"stem":2317,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":527,"path":2319,"stem":2320,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":531,"path":2322,"stem":2323,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":535,"path":2325,"stem":2326,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":539,"path":2328,"stem":2329,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":543,"path":2331,"stem":2332,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":547,"path":2334,"stem":2335,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":551,"path":2337,"stem":2338,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":555,"path":2340,"stem":2341,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":559,"path":2343,"stem":2344,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":563,"path":2346,"stem":2347,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":567,"path":2349,"stem":2350,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":571,"path":2352,"stem":2353,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":575,"path":2355,"stem":2356,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":579,"path":2358,"stem":2359,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":583,"path":2361,"stem":2362,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":587,"path":2364,"stem":2365,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":591,"path":2367,"stem":2368,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":595,"path":2370,"stem":2371,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":599,"path":2373,"stem":2374,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":603,"path":2376,"stem":2377,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":607,"path":2379,"stem":2380,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":611,"path":2382,"stem":2383,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":615,"path":2385,"stem":2386,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":619,"path":2388,"stem":2389,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":623,"path":2391,"stem":2392,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":627,"titleTemplate":628,"icon":629,"path":2394,"stem":2395,"children":2396,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils","docs\u002F5.x\u002F4.api\u002F3.utils",[2397,2400,2403,2406,2409,2412,2415,2418,2421,2424,2427,2430,2433,2436,2439,2442,2445,2448,2451,2454,2457,2460,2463,2466,2469,2472,2475,2478,2481],{"title":634,"path":2398,"stem":2399,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F5.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":638,"path":2401,"stem":2402,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":642,"path":2404,"stem":2405,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":646,"path":2407,"stem":2408,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":650,"path":2410,"stem":2411,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":654,"path":2413,"stem":2414,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":658,"path":2416,"stem":2417,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":662,"path":2419,"stem":2420,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":666,"path":2422,"stem":2423,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":670,"path":2425,"stem":2426,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":674,"path":2428,"stem":2429,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":678,"path":2431,"stem":2432,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":682,"path":2434,"stem":2435,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":686,"path":2437,"stem":2438,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":690,"path":2440,"stem":2441,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":694,"path":2443,"stem":2444,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":698,"path":2446,"stem":2447,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":702,"path":2449,"stem":2450,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":706,"path":2452,"stem":2453,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":710,"path":2455,"stem":2456,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":714,"path":2458,"stem":2459,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":718,"path":2461,"stem":2462,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":722,"path":2464,"stem":2465,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":726,"path":2467,"stem":2468,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":730,"path":2470,"stem":2471,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F5.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":734,"path":2473,"stem":2474,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":738,"path":2476,"stem":2477,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":742,"path":2479,"stem":2480,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":746,"path":2482,"stem":2483,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":750,"titleTemplate":751,"icon":752,"path":2485,"stem":2486,"children":2487,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands","docs\u002F5.x\u002F4.api\u002F4.commands",[2488,2491,2494,2497,2500,2503,2506,2509,2512,2515,2518,2521,2524,2527,2530,2533],{"title":757,"path":2489,"stem":2490,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fadd",{"title":761,"path":2492,"stem":2493,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":765,"path":2495,"stem":2496,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":769,"path":2498,"stem":2499,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":773,"path":2501,"stem":2502,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":777,"path":2504,"stem":2505,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdev",{"title":781,"path":2507,"stem":2508,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":785,"path":2510,"stem":2511,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":789,"path":2513,"stem":2514,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finfo",{"title":793,"path":2516,"stem":2517,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finit",{"title":797,"path":2519,"stem":2520,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":801,"path":2522,"stem":2523,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":805,"path":2525,"stem":2526,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":809,"path":2528,"stem":2529,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftest",{"title":813,"path":2531,"stem":2532,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":817,"path":2534,"stem":2535,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":415,"titleTemplate":821,"icon":822,"path":2537,"stem":2538,"children":2539,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit","docs\u002F5.x\u002F4.api\u002F5.kit",[2540,2543,2546,2549,2552,2555,2558,2561,2564,2567,2570,2573,2576,2579,2582,2585,2588,2591],{"title":276,"path":2541,"stem":2542,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F5.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":403,"path":2544,"stem":2545,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":833,"path":2547,"stem":2548,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":837,"path":2550,"stem":2551,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F5.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":841,"path":2553,"stem":2554,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F5.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":845,"path":2556,"stem":2557,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F5.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":849,"path":2559,"stem":2560,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F5.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":853,"path":2562,"stem":2563,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F5.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":2565,"stem":2566,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F5.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":860,"path":2568,"stem":2569,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F5.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":864,"path":2571,"stem":2572,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F5.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":2574,"stem":2575,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F5.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":438,"path":2577,"stem":2578,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F5.kit\u002F5.components",{"title":874,"path":2580,"stem":2581,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F5.x\u002F4.api\u002F5.kit\u002F6.context",{"title":878,"path":2583,"stem":2584,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F5.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":882,"path":2586,"stem":2587,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F5.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":886,"path":2589,"stem":2590,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.head",{"title":890,"path":2592,"stem":2593,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":894,"titleTemplate":6,"icon":895,"path":2595,"stem":2596,"children":2597,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced","docs\u002F5.x\u002F4.api\u002F6.advanced",[2598,2601],{"title":411,"path":2599,"stem":2600,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":903,"path":2602,"stem":2603,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":907,"path":2605,"stem":2606,"titleTemplate":910,"icon":32},"\u002Fdocs\u002F5.x\u002Fapi\u002Fnuxt-config","docs\u002F5.x\u002F4.api\u002F6.nuxt-config",{"title":853,"titleTemplate":912,"icon":913,"path":2608,"stem":2609,"children":2610,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples","docs\u002F5.x\u002F4.examples",[2611,2614,2633,2646,2677],{"title":918,"path":2612,"stem":2613,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fhello-world","docs\u002F5.x\u002F4.examples\u002F0.hello-world",{"title":399,"path":2615,"stem":2616,"children":2617,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures","docs\u002F5.x\u002F4.examples\u002F1.features",[2618,2621,2624,2627,2630],{"title":926,"path":2619,"stem":2620,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F5.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":2622,"stem":2623,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F5.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":2625,"stem":2626,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F5.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":936,"path":2628,"stem":2629,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F5.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":940,"path":2631,"stem":2632,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F5.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":2634,"stem":2635,"children":2636,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting","docs\u002F5.x\u002F4.examples\u002F2.routing",[2637,2640,2643],{"title":948,"path":2638,"stem":2639,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":878,"path":2641,"stem":2642,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":955,"path":2644,"stem":2645,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":894,"path":2647,"stem":2648,"children":2649,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced","docs\u002F5.x\u002F4.examples\u002F4.advanced",[2650,2653,2656,2659,2662,2665,2668,2671,2674],{"title":84,"path":2651,"stem":2652,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":2654,"stem":2655,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":969,"path":2657,"stem":2658,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":973,"path":2660,"stem":2661,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":977,"path":2663,"stem":2664,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":981,"path":2666,"stem":2667,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":2669,"stem":2670,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":523,"path":2672,"stem":2673,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":991,"path":2675,"stem":2676,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":995,"path":2678,"stem":2679,"children":2680,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental","docs\u002F5.x\u002F4.examples\u002F7.experimental",[2681],{"title":1000,"path":2682,"stem":2683,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F5.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1004,"titleTemplate":1005,"icon":1006,"path":2685,"stem":2686,"children":2687,"page":108},"\u002Fdocs\u002F5.x\u002Fcommunity","docs\u002F5.x\u002F5.community",[2688,2691,2694,2697,2700,2703],{"title":1011,"path":2689,"stem":2690,"titleTemplate":6,"icon":1014},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fgetting-help","docs\u002F5.x\u002F5.community\u002F2.getting-help",{"title":1016,"path":2692,"stem":2693,"titleTemplate":6,"icon":1019},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Freporting-bugs","docs\u002F5.x\u002F5.community\u002F3.reporting-bugs",{"title":1021,"path":2695,"stem":2696,"titleTemplate":6,"icon":1024},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fcontribution","docs\u002F5.x\u002F5.community\u002F4.contribution",{"title":1026,"path":2698,"stem":2699,"titleTemplate":6,"icon":1029},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fframework-contribution","docs\u002F5.x\u002F5.community\u002F5.framework-contribution",{"title":1031,"path":2701,"stem":2702,"titleTemplate":6,"icon":1034},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Froadmap","docs\u002F5.x\u002F5.community\u002F6.roadmap",{"title":1036,"path":2704,"stem":2705,"titleTemplate":6,"icon":1039},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fchangelog","docs\u002F5.x\u002F5.community\u002F7.changelog",{"title":1041,"titleTemplate":1042,"icon":1043,"path":2707,"stem":2708,"children":2709,"page":108},"\u002Fdocs\u002F5.x\u002Fbridge","docs\u002F5.x\u002F6.bridge",[2710,2713,2716,2719,2722,2725,2728,2731,2734,2737],{"title":1048,"path":2711,"stem":2712,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Foverview","docs\u002F5.x\u002F6.bridge\u002F1.overview",{"title":29,"path":2714,"stem":2715,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fconfiguration","docs\u002F5.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":2717,"stem":2718,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Ftypescript","docs\u002F5.x\u002F6.bridge\u002F2.typescript",{"title":1058,"path":2720,"stem":2721,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F5.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1062,"path":2723,"stem":2724,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F5.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1066,"path":2726,"stem":2727,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F5.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":936,"path":2729,"stem":2730,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fmeta","docs\u002F5.x\u002F6.bridge\u002F6.meta",{"title":403,"path":2732,"stem":2733,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fruntime-config","docs\u002F5.x\u002F6.bridge\u002F7.runtime-config",{"title":837,"path":2735,"stem":2736,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnitro","docs\u002F5.x\u002F6.bridge\u002F8.nitro",{"title":1079,"path":2738,"stem":2739,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fvite","docs\u002F5.x\u002F6.bridge\u002F9.vite",{"title":1083,"titleTemplate":1084,"icon":107,"path":2741,"stem":2742,"children":2743,"page":108},"\u002Fdocs\u002F5.x\u002Fmigration","docs\u002F5.x\u002F7.migration",[2744,2747,2750,2753,2756,2759,2762,2765,2768,2771,2774],{"title":1048,"path":2745,"stem":2746,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Foverview","docs\u002F5.x\u002F7.migration\u002F1.overview",{"title":1092,"path":2748,"stem":2749,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fbundling","docs\u002F5.x\u002F7.migration\u002F10.bundling",{"title":79,"path":2751,"stem":2752,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fserver","docs\u002F5.x\u002F7.migration\u002F11.server",{"title":29,"path":2754,"stem":2755,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fconfiguration","docs\u002F5.x\u002F7.migration\u002F2.configuration",{"title":276,"path":2757,"stem":2758,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmodule-authors","docs\u002F5.x\u002F7.migration\u002F20.module-authors",{"title":926,"path":2760,"stem":2761,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fauto-imports","docs\u002F5.x\u002F7.migration\u002F3.auto-imports",{"title":936,"path":2763,"stem":2764,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmeta","docs\u002F5.x\u002F7.migration\u002F4.meta",{"title":1062,"path":2766,"stem":2767,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F5.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1114,"path":2769,"stem":2770,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F5.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1118,"path":2772,"stem":2773,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fcomponent-options","docs\u002F5.x\u002F7.migration\u002F7.component-options",{"title":403,"path":2775,"stem":2776,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fruntime-config","docs\u002F5.x\u002F7.migration\u002F8.runtime-config",{"title":2778,"icon":2779,"path":2780,"stem":2781,"children":2782,"page":108},"Blog","i-lucide-newspaper","\u002Fblog","blog",[2783,2787,2791,2795,2799,2803,2807,2811,2815,2819,2823,2827,2831,2835,2839,2843,2847,2851,2855,2859,2863,2867,2871,2875,2879,2883,2887,2891,2895,2899,2903,2907,2911,2915,2919,2923,2927,2931,2935,2939,2943,2947,2951,2955,2959,2963,2967,2971],{"title":2784,"path":2785,"stem":2786},"Announcing 3.0","\u002Fblog\u002Fv3","blog\u002F1.v3",{"title":2788,"path":2789,"stem":2790},"Nuxt 3.3","\u002Fblog\u002Fv3-3","blog\u002F10.v3-3",{"title":2792,"path":2793,"stem":2794},"Nuxt 3.4","\u002Fblog\u002Fv3-4","blog\u002F11.v3-4",{"title":2796,"path":2797,"stem":2798},"Nuxt 3.5","\u002Fblog\u002Fv3-5","blog\u002F12.v3-5",{"title":2800,"path":2801,"stem":2802},"Nuxt 3.6","\u002Fblog\u002Fv3-6","blog\u002F13.v3-6",{"title":2804,"path":2805,"stem":2806},"Nuxt on the Edge","\u002Fblog\u002Fnuxt-on-the-edge","blog\u002F14.nuxt-on-the-edge",{"title":2808,"path":2809,"stem":2810},"Nuxt 3.7","\u002Fblog\u002Fv3-7","blog\u002F15.v3-7",{"title":2812,"path":2813,"stem":2814},"A New Website","\u002Fblog\u002Fnew-website","blog\u002F16.new-website",{"title":2816,"path":2817,"stem":2818},"Nuxt 3.8","\u002Fblog\u002Fv3-8","blog\u002F17.v3-8",{"title":2820,"path":2821,"stem":2822},"Nuxt DevTools v1.0","\u002Fblog\u002Fnuxt-devtools-v1-0","blog\u002F18.nuxt-devtools-v1-0",{"title":2824,"path":2825,"stem":2826},"Nuxt 3.9","\u002Fblog\u002Fv3-9","blog\u002F19.v3-9",{"title":2828,"path":2829,"stem":2830},"Nuxt: A vision for 2023","\u002Fblog\u002Fvision-2023","blog\u002F2.vision-2023",{"title":2832,"path":2833,"stem":2834},"Nuxt 3.10","\u002Fblog\u002Fv3-10","blog\u002F20.v3-10",{"title":2836,"path":2837,"stem":2838},"The Evolution of Shiki v1.0","\u002Fblog\u002Fshiki-v1","blog\u002F21.shiki-v1",{"title":2840,"path":2841,"stem":2842},"Nuxt 3.11","\u002Fblog\u002Fv3-11","blog\u002F22.v3-11",{"title":2844,"path":2845,"stem":2846},"Nuxt: Looking forward","\u002Fblog\u002Flooking-forward-2024","blog\u002F23.looking-forward-2024",{"title":2848,"path":2849,"stem":2850},"Refreshed Nuxt ESLint Integrations","\u002Fblog\u002Feslint-module","blog\u002F24.eslint-module",{"title":2852,"path":2853,"stem":2854},"Nuxt 3.12","\u002Fblog\u002Fv3-12","blog\u002F25.v3-12",{"title":2856,"path":2857,"stem":2858},"Introducing Nuxt Scripts","\u002Fblog\u002Fnuxt-scripts","blog\u002F26.nuxt-scripts",{"title":2860,"path":2861,"stem":2862},"Nuxt 3.13","\u002Fblog\u002Fv3-13","blog\u002F27.v3-13",{"title":2864,"path":2865,"stem":2866},"Nuxt 3.14","\u002Fblog\u002Fv3-14","blog\u002F27.v3-14",{"title":2868,"path":2869,"stem":2870},"Introducing Nuxt Icon v1","\u002Fblog\u002Fnuxt-icon-v1-0","blog\u002F29.nuxt-icon-v1-0",{"title":2872,"path":2873,"stem":2874},"Introducing Nuxt DevTools","\u002Fblog\u002Fintroducing-nuxt-devtools","blog\u002F3.introducing-nuxt-devtools",{"title":2876,"path":2877,"stem":2878},"Announcing Nuxt 3 Release Candidate","\u002Fblog\u002Fnuxt3-rc","blog\u002F3.nuxt3-rc",{"title":2880,"path":2881,"stem":2882},"Nuxt 3.15","\u002Fblog\u002Fv3-15","blog\u002F30.v3-15",{"title":2884,"path":2885,"stem":2886},"Nuxt 3.16","\u002Fblog\u002Fv3-16","blog\u002F31.v3-16",{"title":2888,"path":2889,"stem":2890},"Nuxt UI v3","\u002Fblog\u002Fnuxt-ui-v3","blog\u002F32.nuxt-ui-v3",{"title":2892,"path":2893,"stem":2894},"Nuxt 3.17","\u002Fblog\u002Fv3-17","blog\u002F33.v3-17",{"title":2896,"path":2897,"stem":2898},"Roadmap to v4","\u002Fblog\u002Froadmap-v4","blog\u002F34.roadmap-v4",{"title":2900,"path":2901,"stem":2902},"Building a Privacy-First Feedback Widget","\u002Fblog\u002Fbuilding-a-feedback-widget","blog\u002F35.building-a-feedback-widget",{"title":2904,"path":2905,"stem":2906},"Announcing Nuxt 4.0","\u002Fblog\u002Fv4","blog\u002F36.v4",{"title":2908,"path":2909,"stem":2910},"Nuxt 3.18","\u002Fblog\u002Fv3-18","blog\u002F37.v3-18",{"title":2912,"path":2913,"stem":2914},"Nuxt 4.1","\u002Fblog\u002Fv4-1","blog\u002F38.v4-1",{"title":2916,"path":2917,"stem":2918},"Nuxt UI v4","\u002Fblog\u002Fnuxt-ui-v4","blog\u002F39.nuxt-ui-v4",{"title":2920,"path":2921,"stem":2922},"Nuxt 2 End-of-Life (EOL)","\u002Fblog\u002Fnuxt2-eol","blog\u002F4.nuxt2-eol",{"title":2924,"path":2925,"stem":2926},"Introducing Nuxt 3 Beta","\u002Fblog\u002Fnuxt3-beta","blog\u002F4.nuxt3-beta",{"title":2928,"path":2929,"stem":2930},"Building an MCP Server for Nuxt","\u002Fblog\u002Fbuilding-nuxt-mcp","blog\u002F40.building-nuxt-mcp",{"title":2932,"path":2933,"stem":2934},"Nuxt 4.2","\u002Fblog\u002Fv4-2","blog\u002F40.v4-2",{"title":2936,"path":2937,"stem":2938},"Nuxt Image v2","\u002Fblog\u002Fnuxt-image-v2","blog\u002F41.nuxt-image-v2",{"title":2940,"path":2941,"stem":2942},"Nuxt 4.3","\u002Fblog\u002Fv4-3","blog\u002F42.v4-3",{"title":2944,"path":2945,"stem":2946},"Nuxt 4.4","\u002Fblog\u002Fv4-4","blog\u002F43.v4-4",{"title":2948,"path":2949,"stem":2950},"Introducing the Nuxt Agent","\u002Fblog\u002Fintroducing-nuxt-agent","blog\u002F44.introducing-nuxt-agent",{"title":2952,"path":2953,"stem":2954},"Meet Nuxi","\u002Fblog\u002Fmeet-nuxi","blog\u002F45.meet-nuxi",{"title":2956,"path":2957,"stem":2958},"Going Full Static","\u002Fblog\u002Fgoing-full-static","blog\u002F5.going-full-static",{"title":2960,"path":2961,"stem":2962},"Introducing Smart Prefetching","\u002Fblog\u002Fintroducing-smart-prefetching","blog\u002F6.introducing-smart-prefetching",{"title":2964,"path":2965,"stem":2966},"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":2968,"path":2969,"stem":2970},"Nuxt 2 Static Improvements","\u002Fblog\u002Fnuxt-static-improvements","blog\u002F8.nuxt-static-improvements",{"title":2972,"path":2973,"stem":2974},"Nuxt 2: From Terminal to Browser","\u002Fblog\u002Fnuxtjs-from-terminal-to-browser","blog\u002F9.nuxtjs-from-terminal-to-browser",{"v5":2976,"v4":2977,"v3":2978,"v2":2979},"5 (nightly)","4.4.8","3.21.8","2.18.1",{"name":2981,"description":2982,"repo":2983,"npm":2984,"icon":2985,"github":2986,"website":2986,"learn_more":2985,"category":2987,"type":2988,"maintainers":2989,"compatibility":2994,"generatedAt":2997,"contributors":2998,"stats":3096,"readme":3105},"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",[2990],{"name":2991,"github":2992,"twitter":2992,"bluesky":2993},"Sébastien Chopin","atinux","atinux.com",{"nuxt":2995,"requires":2996},">=3.0.0",{},"2026-06-26T10:13:19.678Z",[2999,3002,3006,3010,3014,3018,3022,3025,3028,3031,3034,3038,3041,3044,3047,3050,3053,3056,3059,3062,3065,3068,3072,3075,3078,3081,3084,3087,3090,3093],{"id":3000,"username":2992,"contributions":3001},904724,197,{"id":3003,"username":3004,"contributions":3005},28706372,"danielroe",16,{"id":3007,"username":3008,"contributions":3009},50090595,"ahmedrangel",9,{"id":3011,"username":3012,"contributions":3013},12988935,"Gerbuuun",8,{"id":3015,"username":3016,"contributions":3017},45267552,"Barbapapazes",7,{"id":3019,"username":3020,"contributions":3021},13056429,"sandros94",3,{"id":3023,"username":3024,"contributions":3021},16264115,"Yizack",{"id":3026,"username":3027,"contributions":3021},967369,"acidjazz",{"id":3029,"username":3030,"contributions":3021},15887916,"blumgart",{"id":3032,"username":3033,"contributions":3021},67746033,"justserdar",{"id":3035,"username":3036,"contributions":3037},10636392,"brianacdev",2,{"id":3039,"username":3040,"contributions":3037},67898185,"larsrickert",{"id":3042,"username":3043,"contributions":3037},40021217,"kingyue737",{"id":3045,"username":3046,"contributions":3037},59120414,"cth-latest",{"id":3048,"username":3049,"contributions":3037},19751938,"noook",{"id":3051,"username":3052,"contributions":3037},1409645,"mariosant",{"id":3054,"username":3055,"contributions":3037},24661232,"Jorgagu",{"id":3057,"username":3058,"contributions":3037},5326365,"harlan-zw",{"id":3060,"username":3061,"contributions":3037},61092270,"stranavad",{"id":3063,"username":3064,"contributions":3037},1592441,"mendrinos",{"id":3066,"username":3067,"contributions":3037},376963,"bisand",{"id":3069,"username":3070,"contributions":3071},18315316,"Syrex-o",1,{"id":3073,"username":3074,"contributions":3071},3109921,"silvio-e",{"id":3076,"username":3077,"contributions":3071},18753964,"sifferhans",{"id":3079,"username":3080,"contributions":3071},17186421,"samulefevre",{"id":3082,"username":3083,"contributions":3071},15785987,"samydoesit",{"id":3085,"username":3086,"contributions":3071},31662219,"rudokemper",{"id":3088,"username":3089,"contributions":3071},29805551,"RobertHaba",{"id":3091,"username":3092,"contributions":3071},1231105,"SteinRobert",{"id":3094,"username":3095,"contributions":3071},5472296,"robert-hoffmann",{"version":3097,"downloads":3098,"stars":3099,"watchers":3100,"forks":3101,"defaultBranch":3102,"publishedAt":3103,"createdAt":3104},"0.5.29",317892,1578,11,187,"main",1771335673386,1699356484873,{"data":3106,"body":3108,"toc":14096},{"title":3107,"description":2985},"Nuxt Auth Utils",{"type":3109,"children":3110},"root",[3111,3118,3164,3168,3202,3208,3307,3321,3327,3339,3351,3362,3368,3384,3426,3448,3483,3495,3503,3509,3514,3521,4062,4071,4574,4596,4602,4615,4621,4998,5018,5197,5209,5215,5220,5240,5261,5288,5466,5471,5492,5500,5507,5750,5763,5769,5780,6185,6197,6210,6215,6245,6371,6384,6495,6506,6662,6668,6673,6678,6686,6720,6733,6812,6817,6822,6827,6834,6866,6878,6957,6962,6967,6981,7301,7441,7471,8399,8434,9271,9305,9818,9823,10662,10680,10686,10715,10726,10732,10737,11019,11025,11044,11270,11294,11299,11319,11324,11332,11351,11439,11465,11471,11488,11575,11593,11603,11615,11620,11873,11885,11897,12270,12298,12304,12317,12335,12438,12458,12808,12822,13322,13327,13354,13365,13535,13540,13686,13706,13809,13827,13833,13853,13859,14090],{"type":3112,"tag":3113,"props":3114,"children":3115},"element","h1",{"id":2984},[3116],{"type":3117,"value":3107},"text",{"type":3112,"tag":3119,"props":3120,"children":3121},"p",{},[3122,3135,3145,3154],{"type":3112,"tag":3123,"props":3124,"children":3128},"a",{"href":3125,"rel":3126},"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fnuxt-auth-utils",[3127],"nofollow",[3129],{"type":3112,"tag":3130,"props":3131,"children":3134},"img",{"alt":3132,"src":3133},"npm version","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fnuxt-auth-utils\u002Flatest.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3112,"tag":3123,"props":3136,"children":3139},{"href":3137,"rel":3138},"https:\u002F\u002Fnpm.chart.dev\u002Fnuxt-auth-utils",[3127],[3140],{"type":3112,"tag":3130,"props":3141,"children":3144},{"alt":3142,"src":3143},"npm downloads","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3112,"tag":3123,"props":3146,"children":3148},{"href":3125,"rel":3147},[3127],[3149],{"type":3112,"tag":3130,"props":3150,"children":3153},{"alt":3151,"src":3152},"License","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3112,"tag":3123,"props":3155,"children":3158},{"href":3156,"rel":3157},"https:\u002F\u002Fnuxt.com",[3127],[3159],{"type":3112,"tag":3130,"props":3160,"children":3163},{"alt":3161,"src":3162},"Nuxt","https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNuxt-020420?logo=nuxt.js",[],{"type":3112,"tag":3119,"props":3165,"children":3166},{},[3167],{"type":3117,"value":2982},{"type":3112,"tag":3169,"props":3170,"children":3171},"ul",{},[3172,3182,3192],{"type":3112,"tag":3173,"props":3174,"children":3175},"li",{},[3176],{"type":3112,"tag":3123,"props":3177,"children":3179},{"href":3178},"\u002FCHANGELOG.md",[3180],{"type":3117,"value":3181},"Release Notes",{"type":3112,"tag":3173,"props":3183,"children":3184},{},[3185],{"type":3112,"tag":3123,"props":3186,"children":3189},{"href":3187,"rel":3188},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fatidone",[3127],[3190],{"type":3117,"value":3191},"Demo with OAuth",{"type":3112,"tag":3173,"props":3193,"children":3194},{},[3195],{"type":3112,"tag":3123,"props":3196,"children":3199},{"href":3197,"rel":3198},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Ftodo-passkeys",[3127],[3200],{"type":3117,"value":3201},"Demo with Passkeys",{"type":3112,"tag":3203,"props":3204,"children":3206},"h2",{"id":3205},"features",[3207],{"type":3117,"value":399},{"type":3112,"tag":3169,"props":3209,"children":3210},{},[3211,3222,3231,3240,3249,3265,3274,3289,3298],{"type":3112,"tag":3173,"props":3212,"children":3213},{},[3214,3220],{"type":3112,"tag":3123,"props":3215,"children":3217},{"href":3216},"#hybrid-rendering",[3218],{"type":3117,"value":3219},"Hybrid Rendering",{"type":3117,"value":3221}," support (SSR \u002F CSR \u002F SWR \u002F Prerendering)",{"type":3112,"tag":3173,"props":3223,"children":3224},{},[3225],{"type":3112,"tag":3123,"props":3226,"children":3228},{"href":3227},"#supported-oauth-providers",[3229],{"type":3117,"value":3230},"40+ OAuth Providers",{"type":3112,"tag":3173,"props":3232,"children":3233},{},[3234],{"type":3112,"tag":3123,"props":3235,"children":3237},{"href":3236},"#password-hashing",[3238],{"type":3117,"value":3239},"Password Hashing",{"type":3112,"tag":3173,"props":3241,"children":3242},{},[3243],{"type":3112,"tag":3123,"props":3244,"children":3246},{"href":3245},"#webauthn-passkey",[3247],{"type":3117,"value":3248},"WebAuthn (passkey)",{"type":3112,"tag":3173,"props":3250,"children":3251},{},[3252],{"type":3112,"tag":3123,"props":3253,"children":3255},{"href":3254},"#vue-composable",[3256,3263],{"type":3112,"tag":3257,"props":3258,"children":3260},"code",{"className":3259},[],[3261],{"type":3117,"value":3262},"useUserSession()",{"type":3117,"value":3264}," Vue composable",{"type":3112,"tag":3173,"props":3266,"children":3267},{},[3268],{"type":3112,"tag":3123,"props":3269,"children":3271},{"href":3270},"#server-utils",[3272],{"type":3117,"value":3273},"Tree-shakable server utils",{"type":3112,"tag":3173,"props":3275,"children":3276},{},[3277],{"type":3112,"tag":3123,"props":3278,"children":3280},{"href":3279},"#authstate-component",[3281,3287],{"type":3112,"tag":3257,"props":3282,"children":3284},{"className":3283},[],[3285],{"type":3117,"value":3286},"\u003CAuthState>",{"type":3117,"value":3288}," component",{"type":3112,"tag":3173,"props":3290,"children":3291},{},[3292],{"type":3112,"tag":3123,"props":3293,"children":3295},{"href":3294},"#extend-session",[3296],{"type":3117,"value":3297},"Extendable with hooks",{"type":3112,"tag":3173,"props":3299,"children":3300},{},[3301],{"type":3112,"tag":3123,"props":3302,"children":3304},{"href":3303},"#websocket-support",[3305],{"type":3117,"value":3306},"WebSocket support",{"type":3112,"tag":3119,"props":3308,"children":3309},{},[3310,3312,3319],{"type":3117,"value":3311},"It has few dependencies (only from ",{"type":3112,"tag":3123,"props":3313,"children":3316},{"href":3314,"rel":3315},"https:\u002F\u002Fgithub.com\u002Funjs",[3127],[3317],{"type":3117,"value":3318},"UnJS",{"type":3117,"value":3320},"), run on multiple JS environments (Node, Deno, Workers) and is fully typed with TypeScript.",{"type":3112,"tag":3203,"props":3322,"children":3324},{"id":3323},"requirements",[3325],{"type":3117,"value":3326},"Requirements",{"type":3112,"tag":3119,"props":3328,"children":3329},{},[3330,3332,3337],{"type":3117,"value":3331},"This module only works with a Nuxt server running as it uses server API routes (",{"type":3112,"tag":3257,"props":3333,"children":3335},{"className":3334},[],[3336],{"type":3117,"value":765},{"type":3117,"value":3338},").",{"type":3112,"tag":3119,"props":3340,"children":3341},{},[3342,3344,3349],{"type":3117,"value":3343},"This means that you cannot use this module with ",{"type":3112,"tag":3257,"props":3345,"children":3347},{"className":3346},[],[3348],{"type":3117,"value":785},{"type":3117,"value":3350},".",{"type":3112,"tag":3119,"props":3352,"children":3353},{},[3354,3356,3360],{"type":3117,"value":3355},"You can anyway use ",{"type":3112,"tag":3123,"props":3357,"children":3358},{"href":3216},[3359],{"type":3117,"value":3219},{"type":3117,"value":3361}," to pre-render pages of your application or disable server-side rendering completely.",{"type":3112,"tag":3203,"props":3363,"children":3365},{"id":3364},"quick-setup",[3366],{"type":3117,"value":3367},"Quick Setup",{"type":3112,"tag":3369,"props":3370,"children":3371},"ol",{},[3372],{"type":3112,"tag":3173,"props":3373,"children":3374},{},[3375,3377,3382],{"type":3117,"value":3376},"Add ",{"type":3112,"tag":3257,"props":3378,"children":3380},{"className":3379},[],[3381],{"type":3117,"value":2984},{"type":3117,"value":3383}," in your Nuxt project",{"type":3112,"tag":3385,"props":3386,"children":3390},"pre",{"className":3387,"code":3388,"language":3389,"meta":2985,"style":2985},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","npx nuxi@latest module add auth-utils\n","bash",[3391],{"type":3112,"tag":3257,"props":3392,"children":3393},{"__ignoreMap":2985},[3394],{"type":3112,"tag":3395,"props":3396,"children":3398},"span",{"class":3397,"line":3071},"line",[3399,3405,3411,3416,3421],{"type":3112,"tag":3395,"props":3400,"children":3402},{"style":3401},"--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B",[3403],{"type":3117,"value":3404},"npx",{"type":3112,"tag":3395,"props":3406,"children":3408},{"style":3407},"--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D",[3409],{"type":3117,"value":3410}," nuxi@latest",{"type":3112,"tag":3395,"props":3412,"children":3413},{"style":3407},[3414],{"type":3117,"value":3415}," module",{"type":3112,"tag":3395,"props":3417,"children":3418},{"style":3407},[3419],{"type":3117,"value":3420}," add",{"type":3112,"tag":3395,"props":3422,"children":3423},{"style":3407},[3424],{"type":3117,"value":3425}," auth-utils\n",{"type":3112,"tag":3369,"props":3427,"children":3428},{"start":3037},[3429],{"type":3112,"tag":3173,"props":3430,"children":3431},{},[3432,3434,3440,3442,3447],{"type":3117,"value":3433},"Add a ",{"type":3112,"tag":3257,"props":3435,"children":3437},{"className":3436},[],[3438],{"type":3117,"value":3439},"NUXT_SESSION_PASSWORD",{"type":3117,"value":3441}," env variable with at least 32 characters in the ",{"type":3112,"tag":3257,"props":3443,"children":3445},{"className":3444},[],[3446],{"type":3117,"value":200},{"type":3117,"value":3350},{"type":3112,"tag":3385,"props":3449,"children":3451},{"className":3387,"code":3450,"language":3389,"meta":2985,"style":2985},"# .env\nNUXT_SESSION_PASSWORD=password-with-at-least-32-characters\n",[3452],{"type":3112,"tag":3257,"props":3453,"children":3454},{"__ignoreMap":2985},[3455,3464],{"type":3112,"tag":3395,"props":3456,"children":3457},{"class":3397,"line":3071},[3458],{"type":3112,"tag":3395,"props":3459,"children":3461},{"style":3460},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[3462],{"type":3117,"value":3463},"# .env\n",{"type":3112,"tag":3395,"props":3465,"children":3466},{"class":3397,"line":3037},[3467,3472,3478],{"type":3112,"tag":3395,"props":3468,"children":3470},{"style":3469},"--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8",[3471],{"type":3117,"value":3439},{"type":3112,"tag":3395,"props":3473,"children":3475},{"style":3474},"--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF",[3476],{"type":3117,"value":3477},"=",{"type":3112,"tag":3395,"props":3479,"children":3480},{"style":3407},[3481],{"type":3117,"value":3482},"password-with-at-least-32-characters\n",{"type":3112,"tag":3119,"props":3484,"children":3485},{},[3486,3488,3493],{"type":3117,"value":3487},"Nuxt Auth Utils generates one for you when running Nuxt in development the first time if no ",{"type":3112,"tag":3257,"props":3489,"children":3491},{"className":3490},[],[3492],{"type":3117,"value":3439},{"type":3117,"value":3494}," is set.",{"type":3112,"tag":3369,"props":3496,"children":3497},{"start":3021},[3498],{"type":3112,"tag":3173,"props":3499,"children":3500},{},[3501],{"type":3117,"value":3502},"That's it! You can now add authentication to your Nuxt app ✨",{"type":3112,"tag":3203,"props":3504,"children":3506},{"id":3505},"vue-composable",[3507],{"type":3117,"value":3508},"Vue Composable",{"type":3112,"tag":3119,"props":3510,"children":3511},{},[3512],{"type":3117,"value":3513},"Nuxt Auth Utils automatically adds some plugins to fetch the current user session to let you access it from your Vue components.",{"type":3112,"tag":3515,"props":3516,"children":3518},"h3",{"id":3517},"user-session",[3519],{"type":3117,"value":3520},"User Session",{"type":3112,"tag":3385,"props":3522,"children":3526},{"className":3523,"code":3524,"language":3525,"meta":2985,"style":2985},"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",[3527],{"type":3112,"tag":3257,"props":3528,"children":3529},{"__ignoreMap":2985},[3530,3555,3640,3656,3665,3682,3723,3757,3789,3844,3861,3881,3914,3969,3978,4031,4046],{"type":3112,"tag":3395,"props":3531,"children":3532},{"class":3397,"line":3071},[3533,3538,3544,3550],{"type":3112,"tag":3395,"props":3534,"children":3535},{"style":3474},[3536],{"type":3117,"value":3537},"\u003C",{"type":3112,"tag":3395,"props":3539,"children":3541},{"style":3540},"--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178",[3542],{"type":3117,"value":3543},"script",{"type":3112,"tag":3395,"props":3545,"children":3547},{"style":3546},"--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA",[3548],{"type":3117,"value":3549}," setup",{"type":3112,"tag":3395,"props":3551,"children":3552},{"style":3474},[3553],{"type":3117,"value":3554},">\n",{"type":3112,"tag":3395,"props":3556,"children":3557},{"class":3397,"line":3037},[3558,3563,3568,3573,3578,3583,3587,3592,3596,3601,3605,3610,3614,3619,3624,3629,3635],{"type":3112,"tag":3395,"props":3559,"children":3560},{"style":3546},[3561],{"type":3117,"value":3562},"const",{"type":3112,"tag":3395,"props":3564,"children":3565},{"style":3474},[3566],{"type":3117,"value":3567}," {",{"type":3112,"tag":3395,"props":3569,"children":3570},{"style":3469},[3571],{"type":3117,"value":3572}," loggedIn",{"type":3112,"tag":3395,"props":3574,"children":3575},{"style":3474},[3576],{"type":3117,"value":3577},",",{"type":3112,"tag":3395,"props":3579,"children":3580},{"style":3469},[3581],{"type":3117,"value":3582}," user",{"type":3112,"tag":3395,"props":3584,"children":3585},{"style":3474},[3586],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":3588,"children":3589},{"style":3469},[3590],{"type":3117,"value":3591}," session",{"type":3112,"tag":3395,"props":3593,"children":3594},{"style":3474},[3595],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":3597,"children":3598},{"style":3469},[3599],{"type":3117,"value":3600}," fetch",{"type":3112,"tag":3395,"props":3602,"children":3603},{"style":3474},[3604],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":3606,"children":3607},{"style":3469},[3608],{"type":3117,"value":3609}," clear",{"type":3112,"tag":3395,"props":3611,"children":3612},{"style":3474},[3613],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":3615,"children":3616},{"style":3469},[3617],{"type":3117,"value":3618}," openInPopup ",{"type":3112,"tag":3395,"props":3620,"children":3621},{"style":3474},[3622],{"type":3117,"value":3623},"}",{"type":3112,"tag":3395,"props":3625,"children":3626},{"style":3474},[3627],{"type":3117,"value":3628}," =",{"type":3112,"tag":3395,"props":3630,"children":3632},{"style":3631},"--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF",[3633],{"type":3117,"value":3634}," useUserSession",{"type":3112,"tag":3395,"props":3636,"children":3637},{"style":3469},[3638],{"type":3117,"value":3639},"()\n",{"type":3112,"tag":3395,"props":3641,"children":3642},{"class":3397,"line":3021},[3643,3648,3652],{"type":3112,"tag":3395,"props":3644,"children":3645},{"style":3474},[3646],{"type":3117,"value":3647},"\u003C\u002F",{"type":3112,"tag":3395,"props":3649,"children":3650},{"style":3540},[3651],{"type":3117,"value":3543},{"type":3112,"tag":3395,"props":3653,"children":3654},{"style":3474},[3655],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":3657,"children":3659},{"class":3397,"line":3658},4,[3660],{"type":3112,"tag":3395,"props":3661,"children":3662},{"emptyLinePlaceholder":1200},[3663],{"type":3117,"value":3664},"\n",{"type":3112,"tag":3395,"props":3666,"children":3668},{"class":3397,"line":3667},5,[3669,3673,3678],{"type":3112,"tag":3395,"props":3670,"children":3671},{"style":3474},[3672],{"type":3117,"value":3537},{"type":3112,"tag":3395,"props":3674,"children":3675},{"style":3540},[3676],{"type":3117,"value":3677},"template",{"type":3112,"tag":3395,"props":3679,"children":3680},{"style":3474},[3681],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":3683,"children":3685},{"class":3397,"line":3684},6,[3686,3691,3696,3701,3705,3710,3715,3719],{"type":3112,"tag":3395,"props":3687,"children":3688},{"style":3474},[3689],{"type":3117,"value":3690},"  \u003C",{"type":3112,"tag":3395,"props":3692,"children":3693},{"style":3540},[3694],{"type":3117,"value":3695},"div",{"type":3112,"tag":3395,"props":3697,"children":3698},{"style":3546},[3699],{"type":3117,"value":3700}," v-if",{"type":3112,"tag":3395,"props":3702,"children":3703},{"style":3474},[3704],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":3706,"children":3707},{"style":3474},[3708],{"type":3117,"value":3709},"\"",{"type":3112,"tag":3395,"props":3711,"children":3712},{"style":3407},[3713],{"type":3117,"value":3714},"loggedIn",{"type":3112,"tag":3395,"props":3716,"children":3717},{"style":3474},[3718],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":3720,"children":3721},{"style":3474},[3722],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":3724,"children":3725},{"class":3397,"line":3017},[3726,3731,3735,3740,3745,3749,3753],{"type":3112,"tag":3395,"props":3727,"children":3728},{"style":3474},[3729],{"type":3117,"value":3730},"    \u003C",{"type":3112,"tag":3395,"props":3732,"children":3733},{"style":3540},[3734],{"type":3117,"value":3113},{"type":3112,"tag":3395,"props":3736,"children":3737},{"style":3474},[3738],{"type":3117,"value":3739},">",{"type":3112,"tag":3395,"props":3741,"children":3742},{"style":3469},[3743],{"type":3117,"value":3744},"Welcome {{ user.login }}!",{"type":3112,"tag":3395,"props":3746,"children":3747},{"style":3474},[3748],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":3750,"children":3751},{"style":3540},[3752],{"type":3117,"value":3113},{"type":3112,"tag":3395,"props":3754,"children":3755},{"style":3474},[3756],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":3758,"children":3759},{"class":3397,"line":3013},[3760,3764,3768,3772,3777,3781,3785],{"type":3112,"tag":3395,"props":3761,"children":3762},{"style":3474},[3763],{"type":3117,"value":3730},{"type":3112,"tag":3395,"props":3765,"children":3766},{"style":3540},[3767],{"type":3117,"value":3119},{"type":3112,"tag":3395,"props":3769,"children":3770},{"style":3474},[3771],{"type":3117,"value":3739},{"type":3112,"tag":3395,"props":3773,"children":3774},{"style":3469},[3775],{"type":3117,"value":3776},"Logged in since {{ session.loggedInAt }}",{"type":3112,"tag":3395,"props":3778,"children":3779},{"style":3474},[3780],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":3782,"children":3783},{"style":3540},[3784],{"type":3117,"value":3119},{"type":3112,"tag":3395,"props":3786,"children":3787},{"style":3474},[3788],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":3790,"children":3791},{"class":3397,"line":3009},[3792,3796,3801,3806,3810,3814,3819,3823,3827,3832,3836,3840],{"type":3112,"tag":3395,"props":3793,"children":3794},{"style":3474},[3795],{"type":3117,"value":3730},{"type":3112,"tag":3395,"props":3797,"children":3798},{"style":3540},[3799],{"type":3117,"value":3800},"button",{"type":3112,"tag":3395,"props":3802,"children":3803},{"style":3546},[3804],{"type":3117,"value":3805}," @click",{"type":3112,"tag":3395,"props":3807,"children":3808},{"style":3474},[3809],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":3811,"children":3812},{"style":3474},[3813],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":3815,"children":3816},{"style":3407},[3817],{"type":3117,"value":3818},"clear",{"type":3112,"tag":3395,"props":3820,"children":3821},{"style":3474},[3822],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":3824,"children":3825},{"style":3474},[3826],{"type":3117,"value":3739},{"type":3112,"tag":3395,"props":3828,"children":3829},{"style":3469},[3830],{"type":3117,"value":3831},"Logout",{"type":3112,"tag":3395,"props":3833,"children":3834},{"style":3474},[3835],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":3837,"children":3838},{"style":3540},[3839],{"type":3117,"value":3800},{"type":3112,"tag":3395,"props":3841,"children":3842},{"style":3474},[3843],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":3845,"children":3847},{"class":3397,"line":3846},10,[3848,3853,3857],{"type":3112,"tag":3395,"props":3849,"children":3850},{"style":3474},[3851],{"type":3117,"value":3852},"  \u003C\u002F",{"type":3112,"tag":3395,"props":3854,"children":3855},{"style":3540},[3856],{"type":3117,"value":3695},{"type":3112,"tag":3395,"props":3858,"children":3859},{"style":3474},[3860],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":3862,"children":3863},{"class":3397,"line":3100},[3864,3868,3872,3877],{"type":3112,"tag":3395,"props":3865,"children":3866},{"style":3474},[3867],{"type":3117,"value":3690},{"type":3112,"tag":3395,"props":3869,"children":3870},{"style":3540},[3871],{"type":3117,"value":3695},{"type":3112,"tag":3395,"props":3873,"children":3874},{"style":3546},[3875],{"type":3117,"value":3876}," v-else",{"type":3112,"tag":3395,"props":3878,"children":3879},{"style":3474},[3880],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":3882,"children":3884},{"class":3397,"line":3883},12,[3885,3889,3893,3897,3902,3906,3910],{"type":3112,"tag":3395,"props":3886,"children":3887},{"style":3474},[3888],{"type":3117,"value":3730},{"type":3112,"tag":3395,"props":3890,"children":3891},{"style":3540},[3892],{"type":3117,"value":3113},{"type":3112,"tag":3395,"props":3894,"children":3895},{"style":3474},[3896],{"type":3117,"value":3739},{"type":3112,"tag":3395,"props":3898,"children":3899},{"style":3469},[3900],{"type":3117,"value":3901},"Not logged in",{"type":3112,"tag":3395,"props":3903,"children":3904},{"style":3474},[3905],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":3907,"children":3908},{"style":3540},[3909],{"type":3117,"value":3113},{"type":3112,"tag":3395,"props":3911,"children":3912},{"style":3474},[3913],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":3915,"children":3917},{"class":3397,"line":3916},13,[3918,3922,3926,3931,3935,3939,3944,3948,3952,3957,3961,3965],{"type":3112,"tag":3395,"props":3919,"children":3920},{"style":3474},[3921],{"type":3117,"value":3730},{"type":3112,"tag":3395,"props":3923,"children":3924},{"style":3540},[3925],{"type":3117,"value":3123},{"type":3112,"tag":3395,"props":3927,"children":3928},{"style":3546},[3929],{"type":3117,"value":3930}," href",{"type":3112,"tag":3395,"props":3932,"children":3933},{"style":3474},[3934],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":3936,"children":3937},{"style":3474},[3938],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":3940,"children":3941},{"style":3407},[3942],{"type":3117,"value":3943},"\u002Fauth\u002Fgithub",{"type":3112,"tag":3395,"props":3945,"children":3946},{"style":3474},[3947],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":3949,"children":3950},{"style":3474},[3951],{"type":3117,"value":3739},{"type":3112,"tag":3395,"props":3953,"children":3954},{"style":3469},[3955],{"type":3117,"value":3956},"Login with GitHub",{"type":3112,"tag":3395,"props":3958,"children":3959},{"style":3474},[3960],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":3962,"children":3963},{"style":3540},[3964],{"type":3117,"value":3123},{"type":3112,"tag":3395,"props":3966,"children":3967},{"style":3474},[3968],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":3970,"children":3972},{"class":3397,"line":3971},14,[3973],{"type":3112,"tag":3395,"props":3974,"children":3975},{"style":3460},[3976],{"type":3117,"value":3977},"    \u003C!-- or open the OAuth route in a popup -->\n",{"type":3112,"tag":3395,"props":3979,"children":3981},{"class":3397,"line":3980},15,[3982,3986,3990,3994,3998,4002,4007,4011,4015,4019,4023,4027],{"type":3112,"tag":3395,"props":3983,"children":3984},{"style":3474},[3985],{"type":3117,"value":3730},{"type":3112,"tag":3395,"props":3987,"children":3988},{"style":3540},[3989],{"type":3117,"value":3800},{"type":3112,"tag":3395,"props":3991,"children":3992},{"style":3546},[3993],{"type":3117,"value":3805},{"type":3112,"tag":3395,"props":3995,"children":3996},{"style":3474},[3997],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":3999,"children":4000},{"style":3474},[4001],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":4003,"children":4004},{"style":3407},[4005],{"type":3117,"value":4006},"openInPopup('\u002Fauth\u002Fgithub')",{"type":3112,"tag":3395,"props":4008,"children":4009},{"style":3474},[4010],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":4012,"children":4013},{"style":3474},[4014],{"type":3117,"value":3739},{"type":3112,"tag":3395,"props":4016,"children":4017},{"style":3469},[4018],{"type":3117,"value":3956},{"type":3112,"tag":3395,"props":4020,"children":4021},{"style":3474},[4022],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":4024,"children":4025},{"style":3540},[4026],{"type":3117,"value":3800},{"type":3112,"tag":3395,"props":4028,"children":4029},{"style":3474},[4030],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":4032,"children":4033},{"class":3397,"line":3005},[4034,4038,4042],{"type":3112,"tag":3395,"props":4035,"children":4036},{"style":3474},[4037],{"type":3117,"value":3852},{"type":3112,"tag":3395,"props":4039,"children":4040},{"style":3540},[4041],{"type":3117,"value":3695},{"type":3112,"tag":3395,"props":4043,"children":4044},{"style":3474},[4045],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":4047,"children":4049},{"class":3397,"line":4048},17,[4050,4054,4058],{"type":3112,"tag":3395,"props":4051,"children":4052},{"style":3474},[4053],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":4055,"children":4056},{"style":3540},[4057],{"type":3117,"value":3677},{"type":3112,"tag":3395,"props":4059,"children":4060},{"style":3474},[4061],{"type":3117,"value":3554},{"type":3112,"tag":3119,"props":4063,"children":4064},{},[4065],{"type":3112,"tag":4066,"props":4067,"children":4068},"strong",{},[4069],{"type":3117,"value":4070},"TypeScript Signature:",{"type":3112,"tag":3385,"props":4072,"children":4076},{"className":4073,"code":4074,"language":4075,"meta":2985,"style":2985},"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",[4077],{"type":3112,"tag":3257,"props":4078,"children":4079},{"__ignoreMap":2985},[4080,4098,4106,4114,4122,4153,4160,4168,4175,4203,4210,4218,4225,4264,4271,4279,4286,4316,4324,4333,4341,4382,4390,4399,4407,4444,4452,4461,4469,4565],{"type":3112,"tag":3395,"props":4081,"children":4082},{"class":3397,"line":3071},[4083,4088,4093],{"type":3112,"tag":3395,"props":4084,"children":4085},{"style":3546},[4086],{"type":3117,"value":4087},"interface",{"type":3112,"tag":3395,"props":4089,"children":4090},{"style":3401},[4091],{"type":3117,"value":4092}," UserSessionComposable",{"type":3112,"tag":3395,"props":4094,"children":4095},{"style":3474},[4096],{"type":3117,"value":4097}," {\n",{"type":3112,"tag":3395,"props":4099,"children":4100},{"class":3397,"line":3037},[4101],{"type":3112,"tag":3395,"props":4102,"children":4103},{"style":3460},[4104],{"type":3117,"value":4105},"  \u002F**\n",{"type":3112,"tag":3395,"props":4107,"children":4108},{"class":3397,"line":3021},[4109],{"type":3112,"tag":3395,"props":4110,"children":4111},{"style":3460},[4112],{"type":3117,"value":4113},"   * Computed indicating if the auth session is ready\n",{"type":3112,"tag":3395,"props":4115,"children":4116},{"class":3397,"line":3658},[4117],{"type":3112,"tag":3395,"props":4118,"children":4119},{"style":3460},[4120],{"type":3117,"value":4121},"   *\u002F\n",{"type":3112,"tag":3395,"props":4123,"children":4124},{"class":3397,"line":3667},[4125,4130,4135,4140,4144,4149],{"type":3112,"tag":3395,"props":4126,"children":4127},{"style":3540},[4128],{"type":3117,"value":4129},"  ready",{"type":3112,"tag":3395,"props":4131,"children":4132},{"style":3474},[4133],{"type":3117,"value":4134},":",{"type":3112,"tag":3395,"props":4136,"children":4137},{"style":3401},[4138],{"type":3117,"value":4139}," ComputedRef",{"type":3112,"tag":3395,"props":4141,"children":4142},{"style":3474},[4143],{"type":3117,"value":3537},{"type":3112,"tag":3395,"props":4145,"children":4146},{"style":3401},[4147],{"type":3117,"value":4148},"boolean",{"type":3112,"tag":3395,"props":4150,"children":4151},{"style":3474},[4152],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":4154,"children":4155},{"class":3397,"line":3684},[4156],{"type":3112,"tag":3395,"props":4157,"children":4158},{"style":3460},[4159],{"type":3117,"value":4105},{"type":3112,"tag":3395,"props":4161,"children":4162},{"class":3397,"line":3017},[4163],{"type":3112,"tag":3395,"props":4164,"children":4165},{"style":3460},[4166],{"type":3117,"value":4167},"   * Computed indicating if the user is logged in.\n",{"type":3112,"tag":3395,"props":4169,"children":4170},{"class":3397,"line":3013},[4171],{"type":3112,"tag":3395,"props":4172,"children":4173},{"style":3460},[4174],{"type":3117,"value":4121},{"type":3112,"tag":3395,"props":4176,"children":4177},{"class":3397,"line":3009},[4178,4183,4187,4191,4195,4199],{"type":3112,"tag":3395,"props":4179,"children":4180},{"style":3540},[4181],{"type":3117,"value":4182},"  loggedIn",{"type":3112,"tag":3395,"props":4184,"children":4185},{"style":3474},[4186],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":4188,"children":4189},{"style":3401},[4190],{"type":3117,"value":4139},{"type":3112,"tag":3395,"props":4192,"children":4193},{"style":3474},[4194],{"type":3117,"value":3537},{"type":3112,"tag":3395,"props":4196,"children":4197},{"style":3401},[4198],{"type":3117,"value":4148},{"type":3112,"tag":3395,"props":4200,"children":4201},{"style":3474},[4202],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":4204,"children":4205},{"class":3397,"line":3846},[4206],{"type":3112,"tag":3395,"props":4207,"children":4208},{"style":3460},[4209],{"type":3117,"value":4105},{"type":3112,"tag":3395,"props":4211,"children":4212},{"class":3397,"line":3100},[4213],{"type":3112,"tag":3395,"props":4214,"children":4215},{"style":3460},[4216],{"type":3117,"value":4217},"   * The user object if logged in, null otherwise.\n",{"type":3112,"tag":3395,"props":4219,"children":4220},{"class":3397,"line":3883},[4221],{"type":3112,"tag":3395,"props":4222,"children":4223},{"style":3460},[4224],{"type":3117,"value":4121},{"type":3112,"tag":3395,"props":4226,"children":4227},{"class":3397,"line":3916},[4228,4233,4237,4241,4245,4250,4255,4260],{"type":3112,"tag":3395,"props":4229,"children":4230},{"style":3540},[4231],{"type":3117,"value":4232},"  user",{"type":3112,"tag":3395,"props":4234,"children":4235},{"style":3474},[4236],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":4238,"children":4239},{"style":3401},[4240],{"type":3117,"value":4139},{"type":3112,"tag":3395,"props":4242,"children":4243},{"style":3474},[4244],{"type":3117,"value":3537},{"type":3112,"tag":3395,"props":4246,"children":4247},{"style":3401},[4248],{"type":3117,"value":4249},"User",{"type":3112,"tag":3395,"props":4251,"children":4252},{"style":3474},[4253],{"type":3117,"value":4254}," |",{"type":3112,"tag":3395,"props":4256,"children":4257},{"style":3401},[4258],{"type":3117,"value":4259}," null",{"type":3112,"tag":3395,"props":4261,"children":4262},{"style":3474},[4263],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":4265,"children":4266},{"class":3397,"line":3971},[4267],{"type":3112,"tag":3395,"props":4268,"children":4269},{"style":3460},[4270],{"type":3117,"value":4105},{"type":3112,"tag":3395,"props":4272,"children":4273},{"class":3397,"line":3980},[4274],{"type":3112,"tag":3395,"props":4275,"children":4276},{"style":3460},[4277],{"type":3117,"value":4278},"   * The session object.\n",{"type":3112,"tag":3395,"props":4280,"children":4281},{"class":3397,"line":3005},[4282],{"type":3112,"tag":3395,"props":4283,"children":4284},{"style":3460},[4285],{"type":3117,"value":4121},{"type":3112,"tag":3395,"props":4287,"children":4288},{"class":3397,"line":4048},[4289,4294,4298,4303,4307,4312],{"type":3112,"tag":3395,"props":4290,"children":4291},{"style":3540},[4292],{"type":3117,"value":4293},"  session",{"type":3112,"tag":3395,"props":4295,"children":4296},{"style":3474},[4297],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":4299,"children":4300},{"style":3401},[4301],{"type":3117,"value":4302}," Ref",{"type":3112,"tag":3395,"props":4304,"children":4305},{"style":3474},[4306],{"type":3117,"value":3537},{"type":3112,"tag":3395,"props":4308,"children":4309},{"style":3401},[4310],{"type":3117,"value":4311},"UserSession",{"type":3112,"tag":3395,"props":4313,"children":4314},{"style":3474},[4315],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":4317,"children":4319},{"class":3397,"line":4318},18,[4320],{"type":3112,"tag":3395,"props":4321,"children":4322},{"style":3460},[4323],{"type":3117,"value":4105},{"type":3112,"tag":3395,"props":4325,"children":4327},{"class":3397,"line":4326},19,[4328],{"type":3112,"tag":3395,"props":4329,"children":4330},{"style":3460},[4331],{"type":3117,"value":4332},"   * Fetch the user session from the server.\n",{"type":3112,"tag":3395,"props":4334,"children":4336},{"class":3397,"line":4335},20,[4337],{"type":3112,"tag":3395,"props":4338,"children":4339},{"style":3460},[4340],{"type":3117,"value":4121},{"type":3112,"tag":3395,"props":4342,"children":4344},{"class":3397,"line":4343},21,[4345,4350,4354,4359,4364,4369,4373,4378],{"type":3112,"tag":3395,"props":4346,"children":4347},{"style":3540},[4348],{"type":3117,"value":4349},"  fetch",{"type":3112,"tag":3395,"props":4351,"children":4352},{"style":3474},[4353],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":4355,"children":4356},{"style":3474},[4357],{"type":3117,"value":4358}," ()",{"type":3112,"tag":3395,"props":4360,"children":4361},{"style":3546},[4362],{"type":3117,"value":4363}," =>",{"type":3112,"tag":3395,"props":4365,"children":4366},{"style":3401},[4367],{"type":3117,"value":4368}," Promise",{"type":3112,"tag":3395,"props":4370,"children":4371},{"style":3474},[4372],{"type":3117,"value":3537},{"type":3112,"tag":3395,"props":4374,"children":4375},{"style":3401},[4376],{"type":3117,"value":4377},"void",{"type":3112,"tag":3395,"props":4379,"children":4380},{"style":3474},[4381],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":4383,"children":4385},{"class":3397,"line":4384},22,[4386],{"type":3112,"tag":3395,"props":4387,"children":4388},{"style":3460},[4389],{"type":3117,"value":4105},{"type":3112,"tag":3395,"props":4391,"children":4393},{"class":3397,"line":4392},23,[4394],{"type":3112,"tag":3395,"props":4395,"children":4396},{"style":3460},[4397],{"type":3117,"value":4398},"   * Clear the user session and remove the session cookie.\n",{"type":3112,"tag":3395,"props":4400,"children":4402},{"class":3397,"line":4401},24,[4403],{"type":3112,"tag":3395,"props":4404,"children":4405},{"style":3460},[4406],{"type":3117,"value":4121},{"type":3112,"tag":3395,"props":4408,"children":4410},{"class":3397,"line":4409},25,[4411,4416,4420,4424,4428,4432,4436,4440],{"type":3112,"tag":3395,"props":4412,"children":4413},{"style":3540},[4414],{"type":3117,"value":4415},"  clear",{"type":3112,"tag":3395,"props":4417,"children":4418},{"style":3474},[4419],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":4421,"children":4422},{"style":3474},[4423],{"type":3117,"value":4358},{"type":3112,"tag":3395,"props":4425,"children":4426},{"style":3546},[4427],{"type":3117,"value":4363},{"type":3112,"tag":3395,"props":4429,"children":4430},{"style":3401},[4431],{"type":3117,"value":4368},{"type":3112,"tag":3395,"props":4433,"children":4434},{"style":3474},[4435],{"type":3117,"value":3537},{"type":3112,"tag":3395,"props":4437,"children":4438},{"style":3401},[4439],{"type":3117,"value":4377},{"type":3112,"tag":3395,"props":4441,"children":4442},{"style":3474},[4443],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":4445,"children":4447},{"class":3397,"line":4446},26,[4448],{"type":3112,"tag":3395,"props":4449,"children":4450},{"style":3460},[4451],{"type":3117,"value":4105},{"type":3112,"tag":3395,"props":4453,"children":4455},{"class":3397,"line":4454},27,[4456],{"type":3112,"tag":3395,"props":4457,"children":4458},{"style":3460},[4459],{"type":3117,"value":4460},"   * Open the OAuth route in a popup that auto-closes when successful.\n",{"type":3112,"tag":3395,"props":4462,"children":4464},{"class":3397,"line":4463},28,[4465],{"type":3112,"tag":3395,"props":4466,"children":4467},{"style":3460},[4468],{"type":3117,"value":4121},{"type":3112,"tag":3395,"props":4470,"children":4472},{"class":3397,"line":4471},29,[4473,4478,4482,4487,4493,4497,4502,4506,4511,4516,4520,4525,4529,4534,4538,4543,4547,4551,4556,4560],{"type":3112,"tag":3395,"props":4474,"children":4475},{"style":3540},[4476],{"type":3117,"value":4477},"  openInPopup",{"type":3112,"tag":3395,"props":4479,"children":4480},{"style":3474},[4481],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":4483,"children":4484},{"style":3474},[4485],{"type":3117,"value":4486}," (",{"type":3112,"tag":3395,"props":4488,"children":4490},{"style":4489},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[4491],{"type":3117,"value":4492},"route",{"type":3112,"tag":3395,"props":4494,"children":4495},{"style":3474},[4496],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":4498,"children":4499},{"style":3401},[4500],{"type":3117,"value":4501}," string",{"type":3112,"tag":3395,"props":4503,"children":4504},{"style":3474},[4505],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":4507,"children":4508},{"style":4489},[4509],{"type":3117,"value":4510}," size",{"type":3112,"tag":3395,"props":4512,"children":4513},{"style":3474},[4514],{"type":3117,"value":4515},"?:",{"type":3112,"tag":3395,"props":4517,"children":4518},{"style":3474},[4519],{"type":3117,"value":3567},{"type":3112,"tag":3395,"props":4521,"children":4522},{"style":3540},[4523],{"type":3117,"value":4524}," width",{"type":3112,"tag":3395,"props":4526,"children":4527},{"style":3474},[4528],{"type":3117,"value":4515},{"type":3112,"tag":3395,"props":4530,"children":4531},{"style":3401},[4532],{"type":3117,"value":4533}," number",{"type":3112,"tag":3395,"props":4535,"children":4536},{"style":3474},[4537],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":4539,"children":4540},{"style":3540},[4541],{"type":3117,"value":4542}," height",{"type":3112,"tag":3395,"props":4544,"children":4545},{"style":3474},[4546],{"type":3117,"value":4515},{"type":3112,"tag":3395,"props":4548,"children":4549},{"style":3401},[4550],{"type":3117,"value":4533},{"type":3112,"tag":3395,"props":4552,"children":4553},{"style":3474},[4554],{"type":3117,"value":4555}," })",{"type":3112,"tag":3395,"props":4557,"children":4558},{"style":3546},[4559],{"type":3117,"value":4363},{"type":3112,"tag":3395,"props":4561,"children":4562},{"style":3401},[4563],{"type":3117,"value":4564}," void\n",{"type":3112,"tag":3395,"props":4566,"children":4568},{"class":3397,"line":4567},30,[4569],{"type":3112,"tag":3395,"props":4570,"children":4571},{"style":3474},[4572],{"type":3117,"value":4573},"}\n",{"type":3112,"tag":4575,"props":4576,"children":4577},"blockquote",{},[4578],{"type":3112,"tag":3119,"props":4579,"children":4580},{},[4581,4586,4588,4594],{"type":3112,"tag":3395,"props":4582,"children":4583},{},[4584],{"type":3117,"value":4585},"!IMPORTANT",{"type":3117,"value":4587},"\nNuxt Auth Utils uses the ",{"type":3112,"tag":3257,"props":4589,"children":4591},{"className":4590},[],[4592],{"type":3117,"value":4593},"\u002Fapi\u002F_auth\u002Fsession",{"type":3117,"value":4595}," route for session management. Ensure your API route middleware doesn't interfere with this path.",{"type":3112,"tag":3203,"props":4597,"children":4599},{"id":4598},"server-utils",[4600],{"type":3117,"value":4601},"Server Utils",{"type":3112,"tag":3119,"props":4603,"children":4604},{},[4605,4607,4613],{"type":3117,"value":4606},"The following helpers are auto-imported in your ",{"type":3112,"tag":3257,"props":4608,"children":4610},{"className":4609},[],[4611],{"type":3117,"value":4612},"server\u002F",{"type":3117,"value":4614}," directory.",{"type":3112,"tag":3515,"props":4616,"children":4618},{"id":4617},"session-management",[4619],{"type":3117,"value":4620},"Session Management",{"type":3112,"tag":3385,"props":4622,"children":4624},{"className":4073,"code":4623,"language":4075,"meta":2985,"style":2985},"\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",[4625],{"type":3112,"tag":3257,"props":4626,"children":4627},{"__ignoreMap":2985},[4628,4636,4644,4652,4679,4687,4702,4728,4736,4744,4760,4785,4792,4800,4826,4838,4845,4853,4878,4885,4893,4924,4931,4939,4955,4962,4970],{"type":3112,"tag":3395,"props":4629,"children":4630},{"class":3397,"line":3071},[4631],{"type":3112,"tag":3395,"props":4632,"children":4633},{"style":3460},[4634],{"type":3117,"value":4635},"\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":3112,"tag":3395,"props":4637,"children":4638},{"class":3397,"line":3037},[4639],{"type":3112,"tag":3395,"props":4640,"children":4641},{"style":3460},[4642],{"type":3117,"value":4643},"\u002F\u002F Only store the data that allow you to recognize a user, but do not store sensitive data\n",{"type":3112,"tag":3395,"props":4645,"children":4646},{"class":3397,"line":3021},[4647],{"type":3112,"tag":3395,"props":4648,"children":4649},{"style":3460},[4650],{"type":3117,"value":4651},"\u002F\u002F Merges new data with existing data using unjs\u002Fdefu library\n",{"type":3112,"tag":3395,"props":4653,"children":4654},{"class":3397,"line":3658},[4655,4661,4666,4671,4675],{"type":3112,"tag":3395,"props":4656,"children":4658},{"style":4657},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[4659],{"type":3117,"value":4660},"await",{"type":3112,"tag":3395,"props":4662,"children":4663},{"style":3631},[4664],{"type":3117,"value":4665}," setUserSession",{"type":3112,"tag":3395,"props":4667,"children":4668},{"style":3469},[4669],{"type":3117,"value":4670},"(event",{"type":3112,"tag":3395,"props":4672,"children":4673},{"style":3474},[4674],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":4676,"children":4677},{"style":3474},[4678],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":4680,"children":4681},{"class":3397,"line":3667},[4682],{"type":3112,"tag":3395,"props":4683,"children":4684},{"style":3460},[4685],{"type":3117,"value":4686},"  \u002F\u002F User data\n",{"type":3112,"tag":3395,"props":4688,"children":4689},{"class":3397,"line":3684},[4690,4694,4698],{"type":3112,"tag":3395,"props":4691,"children":4692},{"style":3540},[4693],{"type":3117,"value":4232},{"type":3112,"tag":3395,"props":4695,"children":4696},{"style":3474},[4697],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":4699,"children":4700},{"style":3474},[4701],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":4703,"children":4704},{"class":3397,"line":3017},[4705,4710,4714,4719,4723],{"type":3112,"tag":3395,"props":4706,"children":4707},{"style":3540},[4708],{"type":3117,"value":4709},"    login",{"type":3112,"tag":3395,"props":4711,"children":4712},{"style":3474},[4713],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":4715,"children":4716},{"style":3474},[4717],{"type":3117,"value":4718}," '",{"type":3112,"tag":3395,"props":4720,"children":4721},{"style":3407},[4722],{"type":3117,"value":2992},{"type":3112,"tag":3395,"props":4724,"children":4725},{"style":3474},[4726],{"type":3117,"value":4727},"'\n",{"type":3112,"tag":3395,"props":4729,"children":4730},{"class":3397,"line":3013},[4731],{"type":3112,"tag":3395,"props":4732,"children":4733},{"style":3474},[4734],{"type":3117,"value":4735},"  },\n",{"type":3112,"tag":3395,"props":4737,"children":4738},{"class":3397,"line":3009},[4739],{"type":3112,"tag":3395,"props":4740,"children":4741},{"style":3460},[4742],{"type":3117,"value":4743},"  \u002F\u002F Private data accessible only on server\u002F routes\n",{"type":3112,"tag":3395,"props":4745,"children":4746},{"class":3397,"line":3846},[4747,4752,4756],{"type":3112,"tag":3395,"props":4748,"children":4749},{"style":3540},[4750],{"type":3117,"value":4751},"  secure",{"type":3112,"tag":3395,"props":4753,"children":4754},{"style":3474},[4755],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":4757,"children":4758},{"style":3474},[4759],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":4761,"children":4762},{"class":3397,"line":3100},[4763,4768,4772,4776,4781],{"type":3112,"tag":3395,"props":4764,"children":4765},{"style":3540},[4766],{"type":3117,"value":4767},"    apiToken",{"type":3112,"tag":3395,"props":4769,"children":4770},{"style":3474},[4771],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":4773,"children":4774},{"style":3474},[4775],{"type":3117,"value":4718},{"type":3112,"tag":3395,"props":4777,"children":4778},{"style":3407},[4779],{"type":3117,"value":4780},"1234567890",{"type":3112,"tag":3395,"props":4782,"children":4783},{"style":3474},[4784],{"type":3117,"value":4727},{"type":3112,"tag":3395,"props":4786,"children":4787},{"class":3397,"line":3883},[4788],{"type":3112,"tag":3395,"props":4789,"children":4790},{"style":3474},[4791],{"type":3117,"value":4735},{"type":3112,"tag":3395,"props":4793,"children":4794},{"class":3397,"line":3916},[4795],{"type":3112,"tag":3395,"props":4796,"children":4797},{"style":3460},[4798],{"type":3117,"value":4799},"  \u002F\u002F Any extra fields for the session data\n",{"type":3112,"tag":3395,"props":4801,"children":4802},{"class":3397,"line":3971},[4803,4808,4812,4817,4822],{"type":3112,"tag":3395,"props":4804,"children":4805},{"style":3540},[4806],{"type":3117,"value":4807},"  loggedInAt",{"type":3112,"tag":3395,"props":4809,"children":4810},{"style":3474},[4811],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":4813,"children":4814},{"style":3474},[4815],{"type":3117,"value":4816}," new",{"type":3112,"tag":3395,"props":4818,"children":4819},{"style":3631},[4820],{"type":3117,"value":4821}," Date",{"type":3112,"tag":3395,"props":4823,"children":4824},{"style":3469},[4825],{"type":3117,"value":3639},{"type":3112,"tag":3395,"props":4827,"children":4828},{"class":3397,"line":3980},[4829,4833],{"type":3112,"tag":3395,"props":4830,"children":4831},{"style":3474},[4832],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":4834,"children":4835},{"style":3469},[4836],{"type":3117,"value":4837},")\n",{"type":3112,"tag":3395,"props":4839,"children":4840},{"class":3397,"line":3005},[4841],{"type":3112,"tag":3395,"props":4842,"children":4843},{"emptyLinePlaceholder":1200},[4844],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":4846,"children":4847},{"class":3397,"line":4048},[4848],{"type":3112,"tag":3395,"props":4849,"children":4850},{"style":3460},[4851],{"type":3117,"value":4852},"\u002F\u002F Replace a user session. Same behaviour as setUserSession, except it does not merge data with existing data\n",{"type":3112,"tag":3395,"props":4854,"children":4855},{"class":3397,"line":4318},[4856,4860,4865,4869,4873],{"type":3112,"tag":3395,"props":4857,"children":4858},{"style":4657},[4859],{"type":3117,"value":4660},{"type":3112,"tag":3395,"props":4861,"children":4862},{"style":3631},[4863],{"type":3117,"value":4864}," replaceUserSession",{"type":3112,"tag":3395,"props":4866,"children":4867},{"style":3469},[4868],{"type":3117,"value":4670},{"type":3112,"tag":3395,"props":4870,"children":4871},{"style":3474},[4872],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":4874,"children":4875},{"style":3469},[4876],{"type":3117,"value":4877}," data)\n",{"type":3112,"tag":3395,"props":4879,"children":4880},{"class":3397,"line":4326},[4881],{"type":3112,"tag":3395,"props":4882,"children":4883},{"emptyLinePlaceholder":1200},[4884],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":4886,"children":4887},{"class":3397,"line":4335},[4888],{"type":3112,"tag":3395,"props":4889,"children":4890},{"style":3460},[4891],{"type":3117,"value":4892},"\u002F\u002F Get the current user session\n",{"type":3112,"tag":3395,"props":4894,"children":4895},{"class":3397,"line":4343},[4896,4900,4905,4909,4914,4919],{"type":3112,"tag":3395,"props":4897,"children":4898},{"style":3546},[4899],{"type":3117,"value":3562},{"type":3112,"tag":3395,"props":4901,"children":4902},{"style":3469},[4903],{"type":3117,"value":4904}," session ",{"type":3112,"tag":3395,"props":4906,"children":4907},{"style":3474},[4908],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":4910,"children":4911},{"style":4657},[4912],{"type":3117,"value":4913}," await",{"type":3112,"tag":3395,"props":4915,"children":4916},{"style":3631},[4917],{"type":3117,"value":4918}," getUserSession",{"type":3112,"tag":3395,"props":4920,"children":4921},{"style":3469},[4922],{"type":3117,"value":4923},"(event)\n",{"type":3112,"tag":3395,"props":4925,"children":4926},{"class":3397,"line":4384},[4927],{"type":3112,"tag":3395,"props":4928,"children":4929},{"emptyLinePlaceholder":1200},[4930],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":4932,"children":4933},{"class":3397,"line":4392},[4934],{"type":3112,"tag":3395,"props":4935,"children":4936},{"style":3460},[4937],{"type":3117,"value":4938},"\u002F\u002F Clear the current user session\n",{"type":3112,"tag":3395,"props":4940,"children":4941},{"class":3397,"line":4401},[4942,4946,4951],{"type":3112,"tag":3395,"props":4943,"children":4944},{"style":4657},[4945],{"type":3117,"value":4660},{"type":3112,"tag":3395,"props":4947,"children":4948},{"style":3631},[4949],{"type":3117,"value":4950}," clearUserSession",{"type":3112,"tag":3395,"props":4952,"children":4953},{"style":3469},[4954],{"type":3117,"value":4923},{"type":3112,"tag":3395,"props":4956,"children":4957},{"class":3397,"line":4409},[4958],{"type":3112,"tag":3395,"props":4959,"children":4960},{"emptyLinePlaceholder":1200},[4961],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":4963,"children":4964},{"class":3397,"line":4446},[4965],{"type":3112,"tag":3395,"props":4966,"children":4967},{"style":3460},[4968],{"type":3117,"value":4969},"\u002F\u002F Require a user session (send back 401 if no `user` key in session)\n",{"type":3112,"tag":3395,"props":4971,"children":4972},{"class":3397,"line":4454},[4973,4977,4981,4985,4989,4994],{"type":3112,"tag":3395,"props":4974,"children":4975},{"style":3546},[4976],{"type":3117,"value":3562},{"type":3112,"tag":3395,"props":4978,"children":4979},{"style":3469},[4980],{"type":3117,"value":4904},{"type":3112,"tag":3395,"props":4982,"children":4983},{"style":3474},[4984],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":4986,"children":4987},{"style":4657},[4988],{"type":3117,"value":4913},{"type":3112,"tag":3395,"props":4990,"children":4991},{"style":3631},[4992],{"type":3117,"value":4993}," requireUserSession",{"type":3112,"tag":3395,"props":4995,"children":4996},{"style":3469},[4997],{"type":3117,"value":4923},{"type":3112,"tag":3119,"props":4999,"children":5000},{},[5001,5003,5009,5011,5016],{"type":3117,"value":5002},"You can define the type for your user session by creating a type declaration file (for example, ",{"type":3112,"tag":3257,"props":5004,"children":5006},{"className":5005},[],[5007],{"type":3117,"value":5008},"auth.d.ts",{"type":3117,"value":5010},") in your project to augment the ",{"type":3112,"tag":3257,"props":5012,"children":5014},{"className":5013},[],[5015],{"type":3117,"value":4311},{"type":3117,"value":5017}," type:",{"type":3112,"tag":3385,"props":5019,"children":5021},{"className":4073,"code":5020,"language":4075,"meta":2985,"style":2985},"\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",[5022],{"type":3112,"tag":3257,"props":5023,"children":5024},{"__ignoreMap":2985},[5025,5033,5063,5080,5088,5096,5103,5119,5126,5133,5140,5156,5163,5170,5177,5184],{"type":3112,"tag":3395,"props":5026,"children":5027},{"class":3397,"line":3071},[5028],{"type":3112,"tag":3395,"props":5029,"children":5030},{"style":3460},[5031],{"type":3117,"value":5032},"\u002F\u002F shared\u002Ftypes\u002Fauth.d.ts\n",{"type":3112,"tag":3395,"props":5034,"children":5035},{"class":3397,"line":3037},[5036,5041,5045,5049,5054,5059],{"type":3112,"tag":3395,"props":5037,"children":5038},{"style":3546},[5039],{"type":3117,"value":5040},"declare",{"type":3112,"tag":3395,"props":5042,"children":5043},{"style":3546},[5044],{"type":3117,"value":3415},{"type":3112,"tag":3395,"props":5046,"children":5047},{"style":3474},[5048],{"type":3117,"value":4718},{"type":3112,"tag":3395,"props":5050,"children":5051},{"style":3407},[5052],{"type":3117,"value":5053},"#auth-utils",{"type":3112,"tag":3395,"props":5055,"children":5056},{"style":3474},[5057],{"type":3117,"value":5058},"'",{"type":3112,"tag":3395,"props":5060,"children":5061},{"style":3474},[5062],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":5064,"children":5065},{"class":3397,"line":3021},[5066,5071,5076],{"type":3112,"tag":3395,"props":5067,"children":5068},{"style":3546},[5069],{"type":3117,"value":5070},"  interface",{"type":3112,"tag":3395,"props":5072,"children":5073},{"style":3401},[5074],{"type":3117,"value":5075}," User",{"type":3112,"tag":3395,"props":5077,"children":5078},{"style":3474},[5079],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":5081,"children":5082},{"class":3397,"line":3658},[5083],{"type":3112,"tag":3395,"props":5084,"children":5085},{"style":3460},[5086],{"type":3117,"value":5087},"    \u002F\u002F Add your own fields\n",{"type":3112,"tag":3395,"props":5089,"children":5090},{"class":3397,"line":3667},[5091],{"type":3112,"tag":3395,"props":5092,"children":5093},{"style":3474},[5094],{"type":3117,"value":5095},"  }\n",{"type":3112,"tag":3395,"props":5097,"children":5098},{"class":3397,"line":3684},[5099],{"type":3112,"tag":3395,"props":5100,"children":5101},{"emptyLinePlaceholder":1200},[5102],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":5104,"children":5105},{"class":3397,"line":3017},[5106,5110,5115],{"type":3112,"tag":3395,"props":5107,"children":5108},{"style":3546},[5109],{"type":3117,"value":5070},{"type":3112,"tag":3395,"props":5111,"children":5112},{"style":3401},[5113],{"type":3117,"value":5114}," UserSession",{"type":3112,"tag":3395,"props":5116,"children":5117},{"style":3474},[5118],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":5120,"children":5121},{"class":3397,"line":3013},[5122],{"type":3112,"tag":3395,"props":5123,"children":5124},{"style":3460},[5125],{"type":3117,"value":5087},{"type":3112,"tag":3395,"props":5127,"children":5128},{"class":3397,"line":3009},[5129],{"type":3112,"tag":3395,"props":5130,"children":5131},{"style":3474},[5132],{"type":3117,"value":5095},{"type":3112,"tag":3395,"props":5134,"children":5135},{"class":3397,"line":3846},[5136],{"type":3112,"tag":3395,"props":5137,"children":5138},{"emptyLinePlaceholder":1200},[5139],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":5141,"children":5142},{"class":3397,"line":3100},[5143,5147,5152],{"type":3112,"tag":3395,"props":5144,"children":5145},{"style":3546},[5146],{"type":3117,"value":5070},{"type":3112,"tag":3395,"props":5148,"children":5149},{"style":3401},[5150],{"type":3117,"value":5151}," SecureSessionData",{"type":3112,"tag":3395,"props":5153,"children":5154},{"style":3474},[5155],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":5157,"children":5158},{"class":3397,"line":3883},[5159],{"type":3112,"tag":3395,"props":5160,"children":5161},{"style":3460},[5162],{"type":3117,"value":5087},{"type":3112,"tag":3395,"props":5164,"children":5165},{"class":3397,"line":3916},[5166],{"type":3112,"tag":3395,"props":5167,"children":5168},{"style":3474},[5169],{"type":3117,"value":5095},{"type":3112,"tag":3395,"props":5171,"children":5172},{"class":3397,"line":3971},[5173],{"type":3112,"tag":3395,"props":5174,"children":5175},{"style":3474},[5176],{"type":3117,"value":4573},{"type":3112,"tag":3395,"props":5178,"children":5179},{"class":3397,"line":3980},[5180],{"type":3112,"tag":3395,"props":5181,"children":5182},{"emptyLinePlaceholder":1200},[5183],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":5185,"children":5186},{"class":3397,"line":3005},[5187,5192],{"type":3112,"tag":3395,"props":5188,"children":5189},{"style":4657},[5190],{"type":3117,"value":5191},"export",{"type":3112,"tag":3395,"props":5193,"children":5194},{"style":3474},[5195],{"type":3117,"value":5196}," {}\n",{"type":3112,"tag":4575,"props":5198,"children":5199},{},[5200],{"type":3112,"tag":3119,"props":5201,"children":5202},{},[5203,5207],{"type":3112,"tag":3395,"props":5204,"children":5205},{},[5206],{"type":3117,"value":4585},{"type":3117,"value":5208},"\nSince we encrypt and store session data in cookies, we're constrained by the 4096-byte cookie size limit. Store only essential information.",{"type":3112,"tag":3515,"props":5210,"children":5212},{"id":5211},"oauth-event-handlers",[5213],{"type":3117,"value":5214},"OAuth Event Handlers",{"type":3112,"tag":3119,"props":5216,"children":5217},{},[5218],{"type":3117,"value":5219},"All handlers can be auto-imported and used in your server routes or API routes.",{"type":3112,"tag":3119,"props":5221,"children":5222},{},[5223,5225,5231,5233,5239],{"type":3117,"value":5224},"The pattern is ",{"type":3112,"tag":3257,"props":5226,"children":5228},{"className":5227},[],[5229],{"type":3117,"value":5230},"defineOAuth\u003CProvider>EventHandler({ onSuccess, config?, onError? })",{"type":3117,"value":5232},", example: ",{"type":3112,"tag":3257,"props":5234,"children":5236},{"className":5235},[],[5237],{"type":3117,"value":5238},"defineOAuthGitHubEventHandler",{"type":3117,"value":3350},{"type":3112,"tag":3119,"props":5241,"children":5242},{},[5243,5245,5251,5253,5259],{"type":3117,"value":5244},"The helper returns an event handler that automatically redirects to the provider authorization page and then calls ",{"type":3112,"tag":3257,"props":5246,"children":5248},{"className":5247},[],[5249],{"type":3117,"value":5250},"onSuccess",{"type":3117,"value":5252}," or ",{"type":3112,"tag":3257,"props":5254,"children":5256},{"className":5255},[],[5257],{"type":3117,"value":5258},"onError",{"type":3117,"value":5260}," depending on the result.",{"type":3112,"tag":3119,"props":5262,"children":5263},{},[5264,5266,5272,5274,5280,5282,5287],{"type":3117,"value":5265},"The ",{"type":3112,"tag":3257,"props":5267,"children":5269},{"className":5268},[],[5270],{"type":3117,"value":5271},"config",{"type":3117,"value":5273}," can be defined directly from the ",{"type":3112,"tag":3257,"props":5275,"children":5277},{"className":5276},[],[5278],{"type":3117,"value":5279},"runtimeConfig",{"type":3117,"value":5281}," in your ",{"type":3112,"tag":3257,"props":5283,"children":5285},{"className":5284},[],[5286],{"type":3117,"value":233},{"type":3117,"value":4134},{"type":3112,"tag":3385,"props":5289,"children":5291},{"className":4073,"code":5290,"language":4075,"meta":2985,"style":2985},"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",[5292],{"type":3112,"tag":3257,"props":5293,"children":5294},{"__ignoreMap":2985},[5295,5322,5338,5354,5362,5378,5408,5432,5440,5448,5455],{"type":3112,"tag":3395,"props":5296,"children":5297},{"class":3397,"line":3071},[5298,5302,5307,5312,5317],{"type":3112,"tag":3395,"props":5299,"children":5300},{"style":4657},[5301],{"type":3117,"value":5191},{"type":3112,"tag":3395,"props":5303,"children":5304},{"style":4657},[5305],{"type":3117,"value":5306}," default",{"type":3112,"tag":3395,"props":5308,"children":5309},{"style":3631},[5310],{"type":3117,"value":5311}," defineNuxtConfig",{"type":3112,"tag":3395,"props":5313,"children":5314},{"style":3469},[5315],{"type":3117,"value":5316},"(",{"type":3112,"tag":3395,"props":5318,"children":5319},{"style":3474},[5320],{"type":3117,"value":5321},"{\n",{"type":3112,"tag":3395,"props":5323,"children":5324},{"class":3397,"line":3037},[5325,5330,5334],{"type":3112,"tag":3395,"props":5326,"children":5327},{"style":3540},[5328],{"type":3117,"value":5329},"  runtimeConfig",{"type":3112,"tag":3395,"props":5331,"children":5332},{"style":3474},[5333],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":5335,"children":5336},{"style":3474},[5337],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":5339,"children":5340},{"class":3397,"line":3021},[5341,5346,5350],{"type":3112,"tag":3395,"props":5342,"children":5343},{"style":3540},[5344],{"type":3117,"value":5345},"    oauth",{"type":3112,"tag":3395,"props":5347,"children":5348},{"style":3474},[5349],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":5351,"children":5352},{"style":3474},[5353],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":5355,"children":5356},{"class":3397,"line":3658},[5357],{"type":3112,"tag":3395,"props":5358,"children":5359},{"style":3460},[5360],{"type":3117,"value":5361},"      \u002F\u002F provider in lowercase (github, google, etc.)\n",{"type":3112,"tag":3395,"props":5363,"children":5364},{"class":3397,"line":3667},[5365,5370,5374],{"type":3112,"tag":3395,"props":5366,"children":5367},{"style":3469},[5368],{"type":3117,"value":5369},"      \u003Cprovider>",{"type":3112,"tag":3395,"props":5371,"children":5372},{"style":3474},[5373],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":5375,"children":5376},{"style":3474},[5377],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":5379,"children":5380},{"class":3397,"line":3684},[5381,5386,5390,5394,5399,5403],{"type":3112,"tag":3395,"props":5382,"children":5383},{"style":3540},[5384],{"type":3117,"value":5385},"        clientId",{"type":3112,"tag":3395,"props":5387,"children":5388},{"style":3474},[5389],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":5391,"children":5392},{"style":3474},[5393],{"type":3117,"value":4718},{"type":3112,"tag":3395,"props":5395,"children":5396},{"style":3407},[5397],{"type":3117,"value":5398},"...",{"type":3112,"tag":3395,"props":5400,"children":5401},{"style":3474},[5402],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":5404,"children":5405},{"style":3474},[5406],{"type":3117,"value":5407},",\n",{"type":3112,"tag":3395,"props":5409,"children":5410},{"class":3397,"line":3017},[5411,5416,5420,5424,5428],{"type":3112,"tag":3395,"props":5412,"children":5413},{"style":3540},[5414],{"type":3117,"value":5415},"        clientSecret",{"type":3112,"tag":3395,"props":5417,"children":5418},{"style":3474},[5419],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":5421,"children":5422},{"style":3474},[5423],{"type":3117,"value":4718},{"type":3112,"tag":3395,"props":5425,"children":5426},{"style":3407},[5427],{"type":3117,"value":5398},{"type":3112,"tag":3395,"props":5429,"children":5430},{"style":3474},[5431],{"type":3117,"value":4727},{"type":3112,"tag":3395,"props":5433,"children":5434},{"class":3397,"line":3013},[5435],{"type":3112,"tag":3395,"props":5436,"children":5437},{"style":3474},[5438],{"type":3117,"value":5439},"      }\n",{"type":3112,"tag":3395,"props":5441,"children":5442},{"class":3397,"line":3009},[5443],{"type":3112,"tag":3395,"props":5444,"children":5445},{"style":3474},[5446],{"type":3117,"value":5447},"    }\n",{"type":3112,"tag":3395,"props":5449,"children":5450},{"class":3397,"line":3846},[5451],{"type":3112,"tag":3395,"props":5452,"children":5453},{"style":3474},[5454],{"type":3117,"value":5095},{"type":3112,"tag":3395,"props":5456,"children":5457},{"class":3397,"line":3100},[5458,5462],{"type":3112,"tag":3395,"props":5459,"children":5460},{"style":3474},[5461],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":5463,"children":5464},{"style":3469},[5465],{"type":3117,"value":4837},{"type":3112,"tag":3119,"props":5467,"children":5468},{},[5469],{"type":3117,"value":5470},"It can also be set using environment variables:",{"type":3112,"tag":3169,"props":5472,"children":5473},{},[5474,5483],{"type":3112,"tag":3173,"props":5475,"children":5476},{},[5477],{"type":3112,"tag":3257,"props":5478,"children":5480},{"className":5479},[],[5481],{"type":3117,"value":5482},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_ID",{"type":3112,"tag":3173,"props":5484,"children":5485},{},[5486],{"type":3112,"tag":3257,"props":5487,"children":5489},{"className":5488},[],[5490],{"type":3117,"value":5491},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_SECRET",{"type":3112,"tag":4575,"props":5493,"children":5494},{},[5495],{"type":3112,"tag":3119,"props":5496,"children":5497},{},[5498],{"type":3117,"value":5499},"Provider is in uppercase (GITHUB, GOOGLE, etc.)",{"type":3112,"tag":5501,"props":5502,"children":5504},"h4",{"id":5503},"supported-oauth-providers",[5505],{"type":3117,"value":5506},"Supported OAuth Providers",{"type":3112,"tag":3169,"props":5508,"children":5509},{},[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,5735,5740,5745],{"type":3112,"tag":3173,"props":5511,"children":5512},{},[5513],{"type":3117,"value":5514},"Apple",{"type":3112,"tag":3173,"props":5516,"children":5517},{},[5518],{"type":3117,"value":5519},"Atlassian",{"type":3112,"tag":3173,"props":5521,"children":5522},{},[5523],{"type":3117,"value":5524},"Auth0",{"type":3112,"tag":3173,"props":5526,"children":5527},{},[5528],{"type":3117,"value":5529},"Authentik",{"type":3112,"tag":3173,"props":5531,"children":5532},{},[5533],{"type":3117,"value":5534},"AWS Cognito",{"type":3112,"tag":3173,"props":5536,"children":5537},{},[5538],{"type":3117,"value":5539},"Azure B2C",{"type":3112,"tag":3173,"props":5541,"children":5542},{},[5543],{"type":3117,"value":5544},"Battle.net",{"type":3112,"tag":3173,"props":5546,"children":5547},{},[5548],{"type":3117,"value":5549},"Bluesky (AT Protocol)",{"type":3112,"tag":3173,"props":5551,"children":5552},{},[5553],{"type":3117,"value":5554},"Box.com",{"type":3112,"tag":3173,"props":5556,"children":5557},{},[5558],{"type":3117,"value":5559},"Discord",{"type":3112,"tag":3173,"props":5561,"children":5562},{},[5563],{"type":3117,"value":5564},"Dropbox",{"type":3112,"tag":3173,"props":5566,"children":5567},{},[5568],{"type":3117,"value":5569},"Facebook",{"type":3112,"tag":3173,"props":5571,"children":5572},{},[5573],{"type":3117,"value":5574},"GitHub",{"type":3112,"tag":3173,"props":5576,"children":5577},{},[5578],{"type":3117,"value":5579},"GitLab",{"type":3112,"tag":3173,"props":5581,"children":5582},{},[5583],{"type":3117,"value":5584},"Gitea",{"type":3112,"tag":3173,"props":5586,"children":5587},{},[5588],{"type":3117,"value":5589},"Google",{"type":3112,"tag":3173,"props":5591,"children":5592},{},[5593],{"type":3117,"value":5594},"Heroku",{"type":3112,"tag":3173,"props":5596,"children":5597},{},[5598],{"type":3117,"value":5599},"Hubspot",{"type":3112,"tag":3173,"props":5601,"children":5602},{},[5603],{"type":3117,"value":5604},"Instagram",{"type":3112,"tag":3173,"props":5606,"children":5607},{},[5608],{"type":3117,"value":5609},"Kick",{"type":3112,"tag":3173,"props":5611,"children":5612},{},[5613],{"type":3117,"value":5614},"Keycloak",{"type":3112,"tag":3173,"props":5616,"children":5617},{},[5618],{"type":3117,"value":5619},"Line",{"type":3112,"tag":3173,"props":5621,"children":5622},{},[5623],{"type":3117,"value":5624},"Linear",{"type":3112,"tag":3173,"props":5626,"children":5627},{},[5628],{"type":3117,"value":5629},"LinkedIn",{"type":3112,"tag":3173,"props":5631,"children":5632},{},[5633],{"type":3117,"value":5634},"LiveChat",{"type":3112,"tag":3173,"props":5636,"children":5637},{},[5638],{"type":3117,"value":5639},"Microsoft",{"type":3112,"tag":3173,"props":5641,"children":5642},{},[5643],{"type":3117,"value":5644},"OIDC \u002F OpenID Connect (Generic)",{"type":3112,"tag":3173,"props":5646,"children":5647},{},[5648],{"type":3117,"value":5649},"Okta",{"type":3112,"tag":3173,"props":5651,"children":5652},{},[5653],{"type":3117,"value":5654},"Ory",{"type":3112,"tag":3173,"props":5656,"children":5657},{},[5658],{"type":3117,"value":5659},"osu!",{"type":3112,"tag":3173,"props":5661,"children":5662},{},[5663],{"type":3117,"value":5664},"PayPal",{"type":3112,"tag":3173,"props":5666,"children":5667},{},[5668],{"type":3117,"value":5669},"Polar",{"type":3112,"tag":3173,"props":5671,"children":5672},{},[5673],{"type":3117,"value":5674},"Riot Games",{"type":3112,"tag":3173,"props":5676,"children":5677},{},[5678],{"type":3117,"value":5679},"Salesforce",{"type":3112,"tag":3173,"props":5681,"children":5682},{},[5683],{"type":3117,"value":5684},"Seznam",{"type":3112,"tag":3173,"props":5686,"children":5687},{},[5688],{"type":3117,"value":5689},"Shopify Customer",{"type":3112,"tag":3173,"props":5691,"children":5692},{},[5693],{"type":3117,"value":5694},"Slack",{"type":3112,"tag":3173,"props":5696,"children":5697},{},[5698],{"type":3117,"value":5699},"Spotify",{"type":3112,"tag":3173,"props":5701,"children":5702},{},[5703],{"type":3117,"value":5704},"Steam",{"type":3112,"tag":3173,"props":5706,"children":5707},{},[5708],{"type":3117,"value":5709},"Strava",{"type":3112,"tag":3173,"props":5711,"children":5712},{},[5713],{"type":3117,"value":5714},"TikTok",{"type":3112,"tag":3173,"props":5716,"children":5717},{},[5718],{"type":3117,"value":5719},"Twitch",{"type":3112,"tag":3173,"props":5721,"children":5722},{},[5723],{"type":3117,"value":5724},"VK",{"type":3112,"tag":3173,"props":5726,"children":5727},{},[5728],{"type":3117,"value":5729},"WorkOS",{"type":3112,"tag":3173,"props":5731,"children":5732},{},[5733],{"type":3117,"value":5734},"X (Twitter)",{"type":3112,"tag":3173,"props":5736,"children":5737},{},[5738],{"type":3117,"value":5739},"XSUAA",{"type":3112,"tag":3173,"props":5741,"children":5742},{},[5743],{"type":3117,"value":5744},"Yandex",{"type":3112,"tag":3173,"props":5746,"children":5747},{},[5748],{"type":3117,"value":5749},"Zitadel",{"type":3112,"tag":3119,"props":5751,"children":5752},{},[5753,5755,5762],{"type":3117,"value":5754},"You can add your favorite provider by creating a new file in ",{"type":3112,"tag":3123,"props":5756,"children":5759},{"href":5757,"rel":5758},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Ftree\u002Fmain\u002Fsrc\u002Fruntime\u002Fserver\u002Flib\u002Foauth",[3127],[5760],{"type":3117,"value":5761},"src\u002Fruntime\u002Fserver\u002Flib\u002Foauth\u002F",{"type":3117,"value":3350},{"type":3112,"tag":5501,"props":5764,"children":5766},{"id":5765},"example",[5767],{"type":3117,"value":5768},"Example",{"type":3112,"tag":3119,"props":5770,"children":5771},{},[5772,5774],{"type":3117,"value":5773},"Example: ",{"type":3112,"tag":3257,"props":5775,"children":5777},{"className":5776},[],[5778],{"type":3117,"value":5779},"~\u002Fserver\u002Froutes\u002Fauth\u002Fgithub.get.ts",{"type":3112,"tag":3385,"props":5781,"children":5783},{"className":4073,"code":5782,"language":4075,"meta":2985,"style":2985},"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",[5784],{"type":3112,"tag":3257,"props":5785,"children":5786},{"__ignoreMap":2985},[5787,5811,5827,5845,5852,5903,5931,5947,5972,5979,5991,6033,6040,6048,6082,6128,6167,6174],{"type":3112,"tag":3395,"props":5788,"children":5789},{"class":3397,"line":3071},[5790,5794,5798,5803,5807],{"type":3112,"tag":3395,"props":5791,"children":5792},{"style":4657},[5793],{"type":3117,"value":5191},{"type":3112,"tag":3395,"props":5795,"children":5796},{"style":4657},[5797],{"type":3117,"value":5306},{"type":3112,"tag":3395,"props":5799,"children":5800},{"style":3631},[5801],{"type":3117,"value":5802}," defineOAuthGitHubEventHandler",{"type":3112,"tag":3395,"props":5804,"children":5805},{"style":3469},[5806],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":5808,"children":5809},{"style":3474},[5810],{"type":3117,"value":5321},{"type":3112,"tag":3395,"props":5812,"children":5813},{"class":3397,"line":3037},[5814,5819,5823],{"type":3112,"tag":3395,"props":5815,"children":5816},{"style":3540},[5817],{"type":3117,"value":5818},"  config",{"type":3112,"tag":3395,"props":5820,"children":5821},{"style":3474},[5822],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":5824,"children":5825},{"style":3474},[5826],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":5828,"children":5829},{"class":3397,"line":3021},[5830,5835,5839],{"type":3112,"tag":3395,"props":5831,"children":5832},{"style":3540},[5833],{"type":3117,"value":5834},"    emailRequired",{"type":3112,"tag":3395,"props":5836,"children":5837},{"style":3474},[5838],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":5840,"children":5842},{"style":5841},"--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC",[5843],{"type":3117,"value":5844}," true\n",{"type":3112,"tag":3395,"props":5846,"children":5847},{"class":3397,"line":3658},[5848],{"type":3112,"tag":3395,"props":5849,"children":5850},{"style":3474},[5851],{"type":3117,"value":4735},{"type":3112,"tag":3395,"props":5853,"children":5854},{"class":3397,"line":3667},[5855,5860,5865,5869,5874,5878,5882,5886,5890,5895,5899],{"type":3112,"tag":3395,"props":5856,"children":5857},{"style":3546},[5858],{"type":3117,"value":5859},"  async",{"type":3112,"tag":3395,"props":5861,"children":5862},{"style":3540},[5863],{"type":3117,"value":5864}," onSuccess",{"type":3112,"tag":3395,"props":5866,"children":5867},{"style":3474},[5868],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":5870,"children":5871},{"style":4489},[5872],{"type":3117,"value":5873},"event",{"type":3112,"tag":3395,"props":5875,"children":5876},{"style":3474},[5877],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":5879,"children":5880},{"style":3474},[5881],{"type":3117,"value":3567},{"type":3112,"tag":3395,"props":5883,"children":5884},{"style":4489},[5885],{"type":3117,"value":3582},{"type":3112,"tag":3395,"props":5887,"children":5888},{"style":3474},[5889],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":5891,"children":5892},{"style":4489},[5893],{"type":3117,"value":5894}," tokens",{"type":3112,"tag":3395,"props":5896,"children":5897},{"style":3474},[5898],{"type":3117,"value":4555},{"type":3112,"tag":3395,"props":5900,"children":5901},{"style":3474},[5902],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":5904,"children":5905},{"class":3397,"line":3684},[5906,5911,5915,5919,5923,5927],{"type":3112,"tag":3395,"props":5907,"children":5908},{"style":4657},[5909],{"type":3117,"value":5910},"    await",{"type":3112,"tag":3395,"props":5912,"children":5913},{"style":3631},[5914],{"type":3117,"value":4665},{"type":3112,"tag":3395,"props":5916,"children":5917},{"style":3540},[5918],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":5920,"children":5921},{"style":3469},[5922],{"type":3117,"value":5873},{"type":3112,"tag":3395,"props":5924,"children":5925},{"style":3474},[5926],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":5928,"children":5929},{"style":3474},[5930],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":5932,"children":5933},{"class":3397,"line":3017},[5934,5939,5943],{"type":3112,"tag":3395,"props":5935,"children":5936},{"style":3540},[5937],{"type":3117,"value":5938},"      user",{"type":3112,"tag":3395,"props":5940,"children":5941},{"style":3474},[5942],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":5944,"children":5945},{"style":3474},[5946],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":5948,"children":5949},{"class":3397,"line":3013},[5950,5955,5959,5963,5967],{"type":3112,"tag":3395,"props":5951,"children":5952},{"style":3540},[5953],{"type":3117,"value":5954},"        githubId",{"type":3112,"tag":3395,"props":5956,"children":5957},{"style":3474},[5958],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":5960,"children":5961},{"style":3469},[5962],{"type":3117,"value":3582},{"type":3112,"tag":3395,"props":5964,"children":5965},{"style":3474},[5966],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":5968,"children":5969},{"style":3469},[5970],{"type":3117,"value":5971},"id\n",{"type":3112,"tag":3395,"props":5973,"children":5974},{"class":3397,"line":3009},[5975],{"type":3112,"tag":3395,"props":5976,"children":5977},{"style":3474},[5978],{"type":3117,"value":5439},{"type":3112,"tag":3395,"props":5980,"children":5981},{"class":3397,"line":3846},[5982,5987],{"type":3112,"tag":3395,"props":5983,"children":5984},{"style":3474},[5985],{"type":3117,"value":5986},"    }",{"type":3112,"tag":3395,"props":5988,"children":5989},{"style":3540},[5990],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":5992,"children":5993},{"class":3397,"line":3100},[5994,5999,6004,6008,6012,6016,6020,6025,6029],{"type":3112,"tag":3395,"props":5995,"children":5996},{"style":4657},[5997],{"type":3117,"value":5998},"    return",{"type":3112,"tag":3395,"props":6000,"children":6001},{"style":3631},[6002],{"type":3117,"value":6003}," sendRedirect",{"type":3112,"tag":3395,"props":6005,"children":6006},{"style":3540},[6007],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":6009,"children":6010},{"style":3469},[6011],{"type":3117,"value":5873},{"type":3112,"tag":3395,"props":6013,"children":6014},{"style":3474},[6015],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":6017,"children":6018},{"style":3474},[6019],{"type":3117,"value":4718},{"type":3112,"tag":3395,"props":6021,"children":6022},{"style":3407},[6023],{"type":3117,"value":6024},"\u002F",{"type":3112,"tag":3395,"props":6026,"children":6027},{"style":3474},[6028],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":6030,"children":6031},{"style":3540},[6032],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":6034,"children":6035},{"class":3397,"line":3883},[6036],{"type":3112,"tag":3395,"props":6037,"children":6038},{"style":3474},[6039],{"type":3117,"value":4735},{"type":3112,"tag":3395,"props":6041,"children":6042},{"class":3397,"line":3916},[6043],{"type":3112,"tag":3395,"props":6044,"children":6045},{"style":3460},[6046],{"type":3117,"value":6047},"  \u002F\u002F Optional, will return a json error and 401 status code by default\n",{"type":3112,"tag":3395,"props":6049,"children":6050},{"class":3397,"line":3971},[6051,6056,6060,6064,6068,6073,6078],{"type":3112,"tag":3395,"props":6052,"children":6053},{"style":3540},[6054],{"type":3117,"value":6055},"  onError",{"type":3112,"tag":3395,"props":6057,"children":6058},{"style":3474},[6059],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":6061,"children":6062},{"style":4489},[6063],{"type":3117,"value":5873},{"type":3112,"tag":3395,"props":6065,"children":6066},{"style":3474},[6067],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":6069,"children":6070},{"style":4489},[6071],{"type":3117,"value":6072}," error",{"type":3112,"tag":3395,"props":6074,"children":6075},{"style":3474},[6076],{"type":3117,"value":6077},")",{"type":3112,"tag":3395,"props":6079,"children":6080},{"style":3474},[6081],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":6083,"children":6084},{"class":3397,"line":3980},[6085,6090,6094,6099,6103,6107,6112,6116,6120,6124],{"type":3112,"tag":3395,"props":6086,"children":6087},{"style":3469},[6088],{"type":3117,"value":6089},"    console",{"type":3112,"tag":3395,"props":6091,"children":6092},{"style":3474},[6093],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":6095,"children":6096},{"style":3631},[6097],{"type":3117,"value":6098},"error",{"type":3112,"tag":3395,"props":6100,"children":6101},{"style":3540},[6102],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":6104,"children":6105},{"style":3474},[6106],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":6108,"children":6109},{"style":3407},[6110],{"type":3117,"value":6111},"GitHub OAuth error:",{"type":3112,"tag":3395,"props":6113,"children":6114},{"style":3474},[6115],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":6117,"children":6118},{"style":3474},[6119],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":6121,"children":6122},{"style":3469},[6123],{"type":3117,"value":6072},{"type":3112,"tag":3395,"props":6125,"children":6126},{"style":3540},[6127],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":6129,"children":6130},{"class":3397,"line":3005},[6131,6135,6139,6143,6147,6151,6155,6159,6163],{"type":3112,"tag":3395,"props":6132,"children":6133},{"style":4657},[6134],{"type":3117,"value":5998},{"type":3112,"tag":3395,"props":6136,"children":6137},{"style":3631},[6138],{"type":3117,"value":6003},{"type":3112,"tag":3395,"props":6140,"children":6141},{"style":3540},[6142],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":6144,"children":6145},{"style":3469},[6146],{"type":3117,"value":5873},{"type":3112,"tag":3395,"props":6148,"children":6149},{"style":3474},[6150],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":6152,"children":6153},{"style":3474},[6154],{"type":3117,"value":4718},{"type":3112,"tag":3395,"props":6156,"children":6157},{"style":3407},[6158],{"type":3117,"value":6024},{"type":3112,"tag":3395,"props":6160,"children":6161},{"style":3474},[6162],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":6164,"children":6165},{"style":3540},[6166],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":6168,"children":6169},{"class":3397,"line":4048},[6170],{"type":3112,"tag":3395,"props":6171,"children":6172},{"style":3474},[6173],{"type":3117,"value":4735},{"type":3112,"tag":3395,"props":6175,"children":6176},{"class":3397,"line":4318},[6177,6181],{"type":3112,"tag":3395,"props":6178,"children":6179},{"style":3474},[6180],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":6182,"children":6183},{"style":3469},[6184],{"type":3117,"value":4837},{"type":3112,"tag":3119,"props":6186,"children":6187},{},[6188,6190,6196],{"type":3117,"value":6189},"Make sure to set the callback URL in your OAuth app settings as ",{"type":3112,"tag":3257,"props":6191,"children":6193},{"className":6192},[],[6194],{"type":3117,"value":6195},"\u003Cyour-domain>\u002Fauth\u002Fgithub",{"type":3117,"value":3350},{"type":3112,"tag":3119,"props":6198,"children":6199},{},[6200,6202,6208],{"type":3117,"value":6201},"If the redirect URL mismatch in production, this means that the module cannot guess the right redirect URL. You can set the ",{"type":3112,"tag":3257,"props":6203,"children":6205},{"className":6204},[],[6206],{"type":3117,"value":6207},"NUXT_OAUTH_\u003CPROVIDER>_REDIRECT_URL",{"type":3117,"value":6209}," env variable to overwrite the default one.",{"type":3112,"tag":3515,"props":6211,"children":6213},{"id":6212},"password-hashing",[6214],{"type":3117,"value":3239},{"type":3112,"tag":3119,"props":6216,"children":6217},{},[6218,6220,6226,6228,6234,6236,6243],{"type":3117,"value":6219},"Nuxt Auth Utils provides password hashing utilities like ",{"type":3112,"tag":3257,"props":6221,"children":6223},{"className":6222},[],[6224],{"type":3117,"value":6225},"hashPassword",{"type":3117,"value":6227}," and ",{"type":3112,"tag":3257,"props":6229,"children":6231},{"className":6230},[],[6232],{"type":3117,"value":6233},"verifyPassword",{"type":3117,"value":6235}," to hash and verify passwords by using ",{"type":3112,"tag":3123,"props":6237,"children":6240},{"href":6238,"rel":6239},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FScrypt",[3127],[6241],{"type":3117,"value":6242},"scrypt",{"type":3117,"value":6244}," as it is supported in many JS runtime.",{"type":3112,"tag":3385,"props":6246,"children":6248},{"className":4073,"code":6247,"language":4075,"meta":2985,"style":2985},"const hashedPassword = await hashPassword('user_password')\n\nif (await verifyPassword(hashedPassword, 'user_password')) {\n  \u002F\u002F Password is valid\n}\n",[6249],{"type":3112,"tag":3257,"props":6250,"children":6251},{"__ignoreMap":2985},[6252,6298,6305,6356,6364],{"type":3112,"tag":3395,"props":6253,"children":6254},{"class":3397,"line":3071},[6255,6259,6264,6268,6272,6277,6281,6285,6290,6294],{"type":3112,"tag":3395,"props":6256,"children":6257},{"style":3546},[6258],{"type":3117,"value":3562},{"type":3112,"tag":3395,"props":6260,"children":6261},{"style":3469},[6262],{"type":3117,"value":6263}," hashedPassword ",{"type":3112,"tag":3395,"props":6265,"children":6266},{"style":3474},[6267],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":6269,"children":6270},{"style":4657},[6271],{"type":3117,"value":4913},{"type":3112,"tag":3395,"props":6273,"children":6274},{"style":3631},[6275],{"type":3117,"value":6276}," hashPassword",{"type":3112,"tag":3395,"props":6278,"children":6279},{"style":3469},[6280],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":6282,"children":6283},{"style":3474},[6284],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":6286,"children":6287},{"style":3407},[6288],{"type":3117,"value":6289},"user_password",{"type":3112,"tag":3395,"props":6291,"children":6292},{"style":3474},[6293],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":6295,"children":6296},{"style":3469},[6297],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":6299,"children":6300},{"class":3397,"line":3037},[6301],{"type":3112,"tag":3395,"props":6302,"children":6303},{"emptyLinePlaceholder":1200},[6304],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":6306,"children":6307},{"class":3397,"line":3021},[6308,6313,6317,6321,6326,6331,6335,6339,6343,6347,6352],{"type":3112,"tag":3395,"props":6309,"children":6310},{"style":4657},[6311],{"type":3117,"value":6312},"if",{"type":3112,"tag":3395,"props":6314,"children":6315},{"style":3469},[6316],{"type":3117,"value":4486},{"type":3112,"tag":3395,"props":6318,"children":6319},{"style":4657},[6320],{"type":3117,"value":4660},{"type":3112,"tag":3395,"props":6322,"children":6323},{"style":3631},[6324],{"type":3117,"value":6325}," verifyPassword",{"type":3112,"tag":3395,"props":6327,"children":6328},{"style":3469},[6329],{"type":3117,"value":6330},"(hashedPassword",{"type":3112,"tag":3395,"props":6332,"children":6333},{"style":3474},[6334],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":6336,"children":6337},{"style":3474},[6338],{"type":3117,"value":4718},{"type":3112,"tag":3395,"props":6340,"children":6341},{"style":3407},[6342],{"type":3117,"value":6289},{"type":3112,"tag":3395,"props":6344,"children":6345},{"style":3474},[6346],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":6348,"children":6349},{"style":3469},[6350],{"type":3117,"value":6351},")) ",{"type":3112,"tag":3395,"props":6353,"children":6354},{"style":3474},[6355],{"type":3117,"value":5321},{"type":3112,"tag":3395,"props":6357,"children":6358},{"class":3397,"line":3658},[6359],{"type":3112,"tag":3395,"props":6360,"children":6361},{"style":3460},[6362],{"type":3117,"value":6363},"  \u002F\u002F Password is valid\n",{"type":3112,"tag":3395,"props":6365,"children":6366},{"class":3397,"line":3667},[6367],{"type":3112,"tag":3395,"props":6368,"children":6369},{"style":3474},[6370],{"type":3117,"value":4573},{"type":3112,"tag":3119,"props":6372,"children":6373},{},[6374,6376,6382],{"type":3117,"value":6375},"It also provides a ",{"type":3112,"tag":3257,"props":6377,"children":6379},{"className":6378},[],[6380],{"type":3117,"value":6381},"passwordNeedsRehash",{"type":3117,"value":6383}," 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":3112,"tag":3385,"props":6385,"children":6387},{"className":4073,"code":6386,"language":4075,"meta":2985,"style":2985},"const needsRehash = passwordNeedsRehash(hashedPassword)\n\nif (needsRehash) {\n  \u002F\u002F Password needs to be rehashed\n  hashedPassword = await hashPassword('user_password')\n}\n",[6388],{"type":3112,"tag":3257,"props":6389,"children":6390},{"__ignoreMap":2985},[6391,6417,6424,6440,6448,6488],{"type":3112,"tag":3395,"props":6392,"children":6393},{"class":3397,"line":3071},[6394,6398,6403,6407,6412],{"type":3112,"tag":3395,"props":6395,"children":6396},{"style":3546},[6397],{"type":3117,"value":3562},{"type":3112,"tag":3395,"props":6399,"children":6400},{"style":3469},[6401],{"type":3117,"value":6402}," needsRehash ",{"type":3112,"tag":3395,"props":6404,"children":6405},{"style":3474},[6406],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":6408,"children":6409},{"style":3631},[6410],{"type":3117,"value":6411}," passwordNeedsRehash",{"type":3112,"tag":3395,"props":6413,"children":6414},{"style":3469},[6415],{"type":3117,"value":6416},"(hashedPassword)\n",{"type":3112,"tag":3395,"props":6418,"children":6419},{"class":3397,"line":3037},[6420],{"type":3112,"tag":3395,"props":6421,"children":6422},{"emptyLinePlaceholder":1200},[6423],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":6425,"children":6426},{"class":3397,"line":3021},[6427,6431,6436],{"type":3112,"tag":3395,"props":6428,"children":6429},{"style":4657},[6430],{"type":3117,"value":6312},{"type":3112,"tag":3395,"props":6432,"children":6433},{"style":3469},[6434],{"type":3117,"value":6435}," (needsRehash) ",{"type":3112,"tag":3395,"props":6437,"children":6438},{"style":3474},[6439],{"type":3117,"value":5321},{"type":3112,"tag":3395,"props":6441,"children":6442},{"class":3397,"line":3658},[6443],{"type":3112,"tag":3395,"props":6444,"children":6445},{"style":3460},[6446],{"type":3117,"value":6447},"  \u002F\u002F Password needs to be rehashed\n",{"type":3112,"tag":3395,"props":6449,"children":6450},{"class":3397,"line":3667},[6451,6456,6460,6464,6468,6472,6476,6480,6484],{"type":3112,"tag":3395,"props":6452,"children":6453},{"style":3469},[6454],{"type":3117,"value":6455},"  hashedPassword",{"type":3112,"tag":3395,"props":6457,"children":6458},{"style":3474},[6459],{"type":3117,"value":3628},{"type":3112,"tag":3395,"props":6461,"children":6462},{"style":4657},[6463],{"type":3117,"value":4913},{"type":3112,"tag":3395,"props":6465,"children":6466},{"style":3631},[6467],{"type":3117,"value":6276},{"type":3112,"tag":3395,"props":6469,"children":6470},{"style":3540},[6471],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":6473,"children":6474},{"style":3474},[6475],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":6477,"children":6478},{"style":3407},[6479],{"type":3117,"value":6289},{"type":3112,"tag":3395,"props":6481,"children":6482},{"style":3474},[6483],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":6485,"children":6486},{"style":3540},[6487],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":6489,"children":6490},{"class":3397,"line":3684},[6491],{"type":3112,"tag":3395,"props":6492,"children":6493},{"style":3474},[6494],{"type":3117,"value":4573},{"type":3112,"tag":3119,"props":6496,"children":6497},{},[6498,6500,6505],{"type":3117,"value":6499},"You can configure the scrypt options in your ",{"type":3112,"tag":3257,"props":6501,"children":6503},{"className":6502},[],[6504],{"type":3117,"value":233},{"type":3117,"value":4134},{"type":3112,"tag":3385,"props":6507,"children":6509},{"className":4073,"code":6508,"language":4075,"meta":2985,"style":2985},"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",[6510],{"type":3112,"tag":3257,"props":6511,"children":6512},{"__ignoreMap":2985},[6513,6536,6574,6590,6606,6622,6630,6637,6644,6651],{"type":3112,"tag":3395,"props":6514,"children":6515},{"class":3397,"line":3071},[6516,6520,6524,6528,6532],{"type":3112,"tag":3395,"props":6517,"children":6518},{"style":4657},[6519],{"type":3117,"value":5191},{"type":3112,"tag":3395,"props":6521,"children":6522},{"style":4657},[6523],{"type":3117,"value":5306},{"type":3112,"tag":3395,"props":6525,"children":6526},{"style":3631},[6527],{"type":3117,"value":5311},{"type":3112,"tag":3395,"props":6529,"children":6530},{"style":3469},[6531],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":6533,"children":6534},{"style":3474},[6535],{"type":3117,"value":5321},{"type":3112,"tag":3395,"props":6537,"children":6538},{"class":3397,"line":3037},[6539,6544,6548,6553,6557,6561,6565,6570],{"type":3112,"tag":3395,"props":6540,"children":6541},{"style":3540},[6542],{"type":3117,"value":6543},"  modules",{"type":3112,"tag":3395,"props":6545,"children":6546},{"style":3474},[6547],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":6549,"children":6550},{"style":3469},[6551],{"type":3117,"value":6552}," [",{"type":3112,"tag":3395,"props":6554,"children":6555},{"style":3474},[6556],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":6558,"children":6559},{"style":3407},[6560],{"type":3117,"value":2984},{"type":3112,"tag":3395,"props":6562,"children":6563},{"style":3474},[6564],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":6566,"children":6567},{"style":3469},[6568],{"type":3117,"value":6569},"]",{"type":3112,"tag":3395,"props":6571,"children":6572},{"style":3474},[6573],{"type":3117,"value":5407},{"type":3112,"tag":3395,"props":6575,"children":6576},{"class":3397,"line":3021},[6577,6582,6586],{"type":3112,"tag":3395,"props":6578,"children":6579},{"style":3540},[6580],{"type":3117,"value":6581},"  auth",{"type":3112,"tag":3395,"props":6583,"children":6584},{"style":3474},[6585],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":6587,"children":6588},{"style":3474},[6589],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":6591,"children":6592},{"class":3397,"line":3658},[6593,6598,6602],{"type":3112,"tag":3395,"props":6594,"children":6595},{"style":3540},[6596],{"type":3117,"value":6597},"    hash",{"type":3112,"tag":3395,"props":6599,"children":6600},{"style":3474},[6601],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":6603,"children":6604},{"style":3474},[6605],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":6607,"children":6608},{"class":3397,"line":3667},[6609,6614,6618],{"type":3112,"tag":3395,"props":6610,"children":6611},{"style":3540},[6612],{"type":3117,"value":6613},"      scrypt",{"type":3112,"tag":3395,"props":6615,"children":6616},{"style":3474},[6617],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":6619,"children":6620},{"style":3474},[6621],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":6623,"children":6624},{"class":3397,"line":3684},[6625],{"type":3112,"tag":3395,"props":6626,"children":6627},{"style":3460},[6628],{"type":3117,"value":6629},"        \u002F\u002F See https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fhash\u002Fblob\u002F94637029cd526783ac0a763ec581306d98db2036\u002Fsrc\u002Ftypes.ts#L144\n",{"type":3112,"tag":3395,"props":6631,"children":6632},{"class":3397,"line":3017},[6633],{"type":3112,"tag":3395,"props":6634,"children":6635},{"style":3474},[6636],{"type":3117,"value":5439},{"type":3112,"tag":3395,"props":6638,"children":6639},{"class":3397,"line":3013},[6640],{"type":3112,"tag":3395,"props":6641,"children":6642},{"style":3474},[6643],{"type":3117,"value":5447},{"type":3112,"tag":3395,"props":6645,"children":6646},{"class":3397,"line":3009},[6647],{"type":3112,"tag":3395,"props":6648,"children":6649},{"style":3474},[6650],{"type":3117,"value":5095},{"type":3112,"tag":3395,"props":6652,"children":6653},{"class":3397,"line":3846},[6654,6658],{"type":3112,"tag":3395,"props":6655,"children":6656},{"style":3474},[6657],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":6659,"children":6660},{"style":3469},[6661],{"type":3117,"value":4837},{"type":3112,"tag":3515,"props":6663,"children":6665},{"id":6664},"at-protocol",[6666],{"type":3117,"value":6667},"AT Protocol",{"type":3112,"tag":3119,"props":6669,"children":6670},{},[6671],{"type":3117,"value":6672},"Social networks that rely on AT Protocol (e.g., Bluesky) slightly differ from a regular OAuth flow.",{"type":3112,"tag":3119,"props":6674,"children":6675},{},[6676],{"type":3117,"value":6677},"To enable OAuth with AT Protocol, you need to:",{"type":3112,"tag":3369,"props":6679,"children":6680},{},[6681],{"type":3112,"tag":3173,"props":6682,"children":6683},{},[6684],{"type":3117,"value":6685},"Install the peer dependencies:",{"type":3112,"tag":3385,"props":6687,"children":6689},{"className":3387,"code":6688,"language":3389,"meta":2985,"style":2985},"npx nypm i @atproto\u002Foauth-client-node @atproto\u002Fapi\n",[6690],{"type":3112,"tag":3257,"props":6691,"children":6692},{"__ignoreMap":2985},[6693],{"type":3112,"tag":3395,"props":6694,"children":6695},{"class":3397,"line":3071},[6696,6700,6705,6710,6715],{"type":3112,"tag":3395,"props":6697,"children":6698},{"style":3401},[6699],{"type":3117,"value":3404},{"type":3112,"tag":3395,"props":6701,"children":6702},{"style":3407},[6703],{"type":3117,"value":6704}," nypm",{"type":3112,"tag":3395,"props":6706,"children":6707},{"style":3407},[6708],{"type":3117,"value":6709}," i",{"type":3112,"tag":3395,"props":6711,"children":6712},{"style":3407},[6713],{"type":3117,"value":6714}," @atproto\u002Foauth-client-node",{"type":3112,"tag":3395,"props":6716,"children":6717},{"style":3407},[6718],{"type":3117,"value":6719}," @atproto\u002Fapi\n",{"type":3112,"tag":3369,"props":6721,"children":6722},{"start":3037},[6723],{"type":3112,"tag":3173,"props":6724,"children":6725},{},[6726,6728],{"type":3117,"value":6727},"Enable it in your ",{"type":3112,"tag":3257,"props":6729,"children":6731},{"className":6730},[],[6732],{"type":3117,"value":233},{"type":3112,"tag":3385,"props":6734,"children":6736},{"className":4073,"code":6735,"language":4075,"meta":2985,"style":2985},"export default defineNuxtConfig({\n  auth: {\n    atproto: true\n  }\n})\n",[6737],{"type":3112,"tag":3257,"props":6738,"children":6739},{"__ignoreMap":2985},[6740,6763,6778,6794,6801],{"type":3112,"tag":3395,"props":6741,"children":6742},{"class":3397,"line":3071},[6743,6747,6751,6755,6759],{"type":3112,"tag":3395,"props":6744,"children":6745},{"style":4657},[6746],{"type":3117,"value":5191},{"type":3112,"tag":3395,"props":6748,"children":6749},{"style":4657},[6750],{"type":3117,"value":5306},{"type":3112,"tag":3395,"props":6752,"children":6753},{"style":3631},[6754],{"type":3117,"value":5311},{"type":3112,"tag":3395,"props":6756,"children":6757},{"style":3469},[6758],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":6760,"children":6761},{"style":3474},[6762],{"type":3117,"value":5321},{"type":3112,"tag":3395,"props":6764,"children":6765},{"class":3397,"line":3037},[6766,6770,6774],{"type":3112,"tag":3395,"props":6767,"children":6768},{"style":3540},[6769],{"type":3117,"value":6581},{"type":3112,"tag":3395,"props":6771,"children":6772},{"style":3474},[6773],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":6775,"children":6776},{"style":3474},[6777],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":6779,"children":6780},{"class":3397,"line":3021},[6781,6786,6790],{"type":3112,"tag":3395,"props":6782,"children":6783},{"style":3540},[6784],{"type":3117,"value":6785},"    atproto",{"type":3112,"tag":3395,"props":6787,"children":6788},{"style":3474},[6789],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":6791,"children":6792},{"style":5841},[6793],{"type":3117,"value":5844},{"type":3112,"tag":3395,"props":6795,"children":6796},{"class":3397,"line":3658},[6797],{"type":3112,"tag":3395,"props":6798,"children":6799},{"style":3474},[6800],{"type":3117,"value":5095},{"type":3112,"tag":3395,"props":6802,"children":6803},{"class":3397,"line":3667},[6804,6808],{"type":3112,"tag":3395,"props":6805,"children":6806},{"style":3474},[6807],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":6809,"children":6810},{"style":3469},[6811],{"type":3117,"value":4837},{"type":3112,"tag":3515,"props":6813,"children":6815},{"id":6814},"webauthn-passkey",[6816],{"type":3117,"value":3248},{"type":3112,"tag":3119,"props":6818,"children":6819},{},[6820],{"type":3117,"value":6821},"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":3112,"tag":3119,"props":6823,"children":6824},{},[6825],{"type":3117,"value":6826},"To enable WebAuthn you need to:",{"type":3112,"tag":3369,"props":6828,"children":6829},{},[6830],{"type":3112,"tag":3173,"props":6831,"children":6832},{},[6833],{"type":3117,"value":6685},{"type":3112,"tag":3385,"props":6835,"children":6837},{"className":3387,"code":6836,"language":3389,"meta":2985,"style":2985},"npx nypm i @simplewebauthn\u002Fserver@11 @simplewebauthn\u002Fbrowser@11\n",[6838],{"type":3112,"tag":3257,"props":6839,"children":6840},{"__ignoreMap":2985},[6841],{"type":3112,"tag":3395,"props":6842,"children":6843},{"class":3397,"line":3071},[6844,6848,6852,6856,6861],{"type":3112,"tag":3395,"props":6845,"children":6846},{"style":3401},[6847],{"type":3117,"value":3404},{"type":3112,"tag":3395,"props":6849,"children":6850},{"style":3407},[6851],{"type":3117,"value":6704},{"type":3112,"tag":3395,"props":6853,"children":6854},{"style":3407},[6855],{"type":3117,"value":6709},{"type":3112,"tag":3395,"props":6857,"children":6858},{"style":3407},[6859],{"type":3117,"value":6860}," @simplewebauthn\u002Fserver@11",{"type":3112,"tag":3395,"props":6862,"children":6863},{"style":3407},[6864],{"type":3117,"value":6865}," @simplewebauthn\u002Fbrowser@11\n",{"type":3112,"tag":3369,"props":6867,"children":6868},{"start":3037},[6869],{"type":3112,"tag":3173,"props":6870,"children":6871},{},[6872,6873],{"type":3117,"value":6727},{"type":3112,"tag":3257,"props":6874,"children":6876},{"className":6875},[],[6877],{"type":3117,"value":233},{"type":3112,"tag":3385,"props":6879,"children":6881},{"className":4073,"code":6880,"language":4075,"meta":2985,"style":2985},"export default defineNuxtConfig({\n  auth: {\n    webAuthn: true\n  }\n})\n",[6882],{"type":3112,"tag":3257,"props":6883,"children":6884},{"__ignoreMap":2985},[6885,6908,6923,6939,6946],{"type":3112,"tag":3395,"props":6886,"children":6887},{"class":3397,"line":3071},[6888,6892,6896,6900,6904],{"type":3112,"tag":3395,"props":6889,"children":6890},{"style":4657},[6891],{"type":3117,"value":5191},{"type":3112,"tag":3395,"props":6893,"children":6894},{"style":4657},[6895],{"type":3117,"value":5306},{"type":3112,"tag":3395,"props":6897,"children":6898},{"style":3631},[6899],{"type":3117,"value":5311},{"type":3112,"tag":3395,"props":6901,"children":6902},{"style":3469},[6903],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":6905,"children":6906},{"style":3474},[6907],{"type":3117,"value":5321},{"type":3112,"tag":3395,"props":6909,"children":6910},{"class":3397,"line":3037},[6911,6915,6919],{"type":3112,"tag":3395,"props":6912,"children":6913},{"style":3540},[6914],{"type":3117,"value":6581},{"type":3112,"tag":3395,"props":6916,"children":6917},{"style":3474},[6918],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":6920,"children":6921},{"style":3474},[6922],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":6924,"children":6925},{"class":3397,"line":3021},[6926,6931,6935],{"type":3112,"tag":3395,"props":6927,"children":6928},{"style":3540},[6929],{"type":3117,"value":6930},"    webAuthn",{"type":3112,"tag":3395,"props":6932,"children":6933},{"style":3474},[6934],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":6936,"children":6937},{"style":5841},[6938],{"type":3117,"value":5844},{"type":3112,"tag":3395,"props":6940,"children":6941},{"class":3397,"line":3658},[6942],{"type":3112,"tag":3395,"props":6943,"children":6944},{"style":3474},[6945],{"type":3117,"value":5095},{"type":3112,"tag":3395,"props":6947,"children":6948},{"class":3397,"line":3667},[6949,6953],{"type":3112,"tag":3395,"props":6950,"children":6951},{"style":3474},[6952],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":6954,"children":6955},{"style":3469},[6956],{"type":3117,"value":4837},{"type":3112,"tag":5501,"props":6958,"children":6960},{"id":6959},"example-1",[6961],{"type":3117,"value":5768},{"type":3112,"tag":3119,"props":6963,"children":6964},{},[6965],{"type":3117,"value":6966},"In this example we will implement the very basic steps to register and authenticate a credential.",{"type":3112,"tag":3119,"props":6968,"children":6969},{},[6970,6972,6979],{"type":3117,"value":6971},"The full code can be found in the ",{"type":3112,"tag":3123,"props":6973,"children":6976},{"href":6974,"rel":6975},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn",[3127],[6977],{"type":3117,"value":6978},"playground",{"type":3117,"value":6980},". The example uses a SQLite database with the following minimal tables:",{"type":3112,"tag":3385,"props":6982,"children":6986},{"className":6983,"code":6984,"language":6985,"meta":2985,"style":2985},"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",[6987],{"type":3112,"tag":3257,"props":6988,"children":6989},{"__ignoreMap":2985},[6990,7014,7037,7055,7063,7070,7101,7142,7166,7186,7207,7227,7247,7294],{"type":3112,"tag":3395,"props":6991,"children":6992},{"class":3397,"line":3071},[6993,6999,7004,7009],{"type":3112,"tag":3395,"props":6994,"children":6996},{"style":6995},"--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C",[6997],{"type":3117,"value":6998},"CREATE",{"type":3112,"tag":3395,"props":7000,"children":7001},{"style":6995},[7002],{"type":3117,"value":7003}," TABLE",{"type":3112,"tag":3395,"props":7005,"children":7006},{"style":3631},[7007],{"type":3117,"value":7008}," users",{"type":3112,"tag":3395,"props":7010,"children":7011},{"style":3469},[7012],{"type":3117,"value":7013}," (\n",{"type":3112,"tag":3395,"props":7015,"children":7016},{"class":3397,"line":3037},[7017,7022,7027,7032],{"type":3112,"tag":3395,"props":7018,"children":7019},{"style":3469},[7020],{"type":3117,"value":7021},"  id ",{"type":3112,"tag":3395,"props":7023,"children":7024},{"style":3546},[7025],{"type":3117,"value":7026},"INTEGER",{"type":3112,"tag":3395,"props":7028,"children":7029},{"style":3546},[7030],{"type":3117,"value":7031}," PRIMARY KEY",{"type":3112,"tag":3395,"props":7033,"children":7034},{"style":3469},[7035],{"type":3117,"value":7036}," AUTOINCREMENT,\n",{"type":3112,"tag":3395,"props":7038,"children":7039},{"class":3397,"line":3021},[7040,7045,7050],{"type":3112,"tag":3395,"props":7041,"children":7042},{"style":3469},[7043],{"type":3117,"value":7044},"  email ",{"type":3112,"tag":3395,"props":7046,"children":7047},{"style":3546},[7048],{"type":3117,"value":7049},"TEXT",{"type":3112,"tag":3395,"props":7051,"children":7052},{"style":6995},[7053],{"type":3117,"value":7054}," NOT NULL\n",{"type":3112,"tag":3395,"props":7056,"children":7057},{"class":3397,"line":3658},[7058],{"type":3112,"tag":3395,"props":7059,"children":7060},{"style":3469},[7061],{"type":3117,"value":7062},");\n",{"type":3112,"tag":3395,"props":7064,"children":7065},{"class":3397,"line":3667},[7066],{"type":3112,"tag":3395,"props":7067,"children":7068},{"emptyLinePlaceholder":1200},[7069],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":7071,"children":7072},{"class":3397,"line":3684},[7073,7077,7081,7086,7091,7096],{"type":3112,"tag":3395,"props":7074,"children":7075},{"style":6995},[7076],{"type":3117,"value":6998},{"type":3112,"tag":3395,"props":7078,"children":7079},{"style":6995},[7080],{"type":3117,"value":7003},{"type":3112,"tag":3395,"props":7082,"children":7083},{"style":3631},[7084],{"type":3117,"value":7085}," IF",{"type":3112,"tag":3395,"props":7087,"children":7088},{"style":6995},[7089],{"type":3117,"value":7090}," NOT",{"type":3112,"tag":3395,"props":7092,"children":7093},{"style":6995},[7094],{"type":3117,"value":7095}," EXISTS",{"type":3112,"tag":3395,"props":7097,"children":7098},{"style":3469},[7099],{"type":3117,"value":7100}," credentials (\n",{"type":3112,"tag":3395,"props":7102,"children":7103},{"class":3397,"line":3017},[7104,7109,7113,7118,7123,7128,7133,7138],{"type":3112,"tag":3395,"props":7105,"children":7106},{"style":3469},[7107],{"type":3117,"value":7108},"  userId ",{"type":3112,"tag":3395,"props":7110,"children":7111},{"style":3546},[7112],{"type":3117,"value":7026},{"type":3112,"tag":3395,"props":7114,"children":7115},{"style":6995},[7116],{"type":3117,"value":7117}," NOT NULL",{"type":3112,"tag":3395,"props":7119,"children":7120},{"style":3546},[7121],{"type":3117,"value":7122}," REFERENCES",{"type":3112,"tag":3395,"props":7124,"children":7125},{"style":3469},[7126],{"type":3117,"value":7127}," users(id) ",{"type":3112,"tag":3395,"props":7129,"children":7130},{"style":3546},[7131],{"type":3117,"value":7132},"ON DELETE CASCADE",{"type":3112,"tag":3395,"props":7134,"children":7135},{"style":3546},[7136],{"type":3117,"value":7137}," ON UPDATE CASCADE",{"type":3112,"tag":3395,"props":7139,"children":7140},{"style":3469},[7141],{"type":3117,"value":5407},{"type":3112,"tag":3395,"props":7143,"children":7144},{"class":3397,"line":3013},[7145,7149,7153,7158,7162],{"type":3112,"tag":3395,"props":7146,"children":7147},{"style":3469},[7148],{"type":3117,"value":7021},{"type":3112,"tag":3395,"props":7150,"children":7151},{"style":3546},[7152],{"type":3117,"value":7049},{"type":3112,"tag":3395,"props":7154,"children":7155},{"style":6995},[7156],{"type":3117,"value":7157}," UNIQUE",{"type":3112,"tag":3395,"props":7159,"children":7160},{"style":6995},[7161],{"type":3117,"value":7117},{"type":3112,"tag":3395,"props":7163,"children":7164},{"style":3469},[7165],{"type":3117,"value":5407},{"type":3112,"tag":3395,"props":7167,"children":7168},{"class":3397,"line":3009},[7169,7174,7178,7182],{"type":3112,"tag":3395,"props":7170,"children":7171},{"style":3469},[7172],{"type":3117,"value":7173},"  publicKey ",{"type":3112,"tag":3395,"props":7175,"children":7176},{"style":3546},[7177],{"type":3117,"value":7049},{"type":3112,"tag":3395,"props":7179,"children":7180},{"style":6995},[7181],{"type":3117,"value":7117},{"type":3112,"tag":3395,"props":7183,"children":7184},{"style":3469},[7185],{"type":3117,"value":5407},{"type":3112,"tag":3395,"props":7187,"children":7188},{"class":3397,"line":3846},[7189,7194,7199,7203],{"type":3112,"tag":3395,"props":7190,"children":7191},{"style":6995},[7192],{"type":3117,"value":7193},"  counter",{"type":3112,"tag":3395,"props":7195,"children":7196},{"style":3546},[7197],{"type":3117,"value":7198}," INTEGER",{"type":3112,"tag":3395,"props":7200,"children":7201},{"style":6995},[7202],{"type":3117,"value":7117},{"type":3112,"tag":3395,"props":7204,"children":7205},{"style":3469},[7206],{"type":3117,"value":5407},{"type":3112,"tag":3395,"props":7208,"children":7209},{"class":3397,"line":3100},[7210,7215,7219,7223],{"type":3112,"tag":3395,"props":7211,"children":7212},{"style":3469},[7213],{"type":3117,"value":7214},"  backedUp ",{"type":3112,"tag":3395,"props":7216,"children":7217},{"style":3546},[7218],{"type":3117,"value":7026},{"type":3112,"tag":3395,"props":7220,"children":7221},{"style":6995},[7222],{"type":3117,"value":7117},{"type":3112,"tag":3395,"props":7224,"children":7225},{"style":3469},[7226],{"type":3117,"value":5407},{"type":3112,"tag":3395,"props":7228,"children":7229},{"class":3397,"line":3883},[7230,7235,7239,7243],{"type":3112,"tag":3395,"props":7231,"children":7232},{"style":3469},[7233],{"type":3117,"value":7234},"  transports ",{"type":3112,"tag":3395,"props":7236,"children":7237},{"style":3546},[7238],{"type":3117,"value":7049},{"type":3112,"tag":3395,"props":7240,"children":7241},{"style":6995},[7242],{"type":3117,"value":7117},{"type":3112,"tag":3395,"props":7244,"children":7245},{"style":3469},[7246],{"type":3117,"value":5407},{"type":3112,"tag":3395,"props":7248,"children":7249},{"class":3397,"line":3916},[7250,7255,7259,7263,7268,7272,7277,7281,7286,7290],{"type":3112,"tag":3395,"props":7251,"children":7252},{"style":3546},[7253],{"type":3117,"value":7254},"  PRIMARY KEY",{"type":3112,"tag":3395,"props":7256,"children":7257},{"style":3469},[7258],{"type":3117,"value":4486},{"type":3112,"tag":3395,"props":7260,"children":7261},{"style":3474},[7262],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":7264,"children":7265},{"style":3407},[7266],{"type":3117,"value":7267},"userId",{"type":3112,"tag":3395,"props":7269,"children":7270},{"style":3474},[7271],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":7273,"children":7274},{"style":3469},[7275],{"type":3117,"value":7276},", ",{"type":3112,"tag":3395,"props":7278,"children":7279},{"style":3474},[7280],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":7282,"children":7283},{"style":3407},[7284],{"type":3117,"value":7285},"id",{"type":3112,"tag":3395,"props":7287,"children":7288},{"style":3474},[7289],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":7291,"children":7292},{"style":3469},[7293],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":7295,"children":7296},{"class":3397,"line":3971},[7297],{"type":3112,"tag":3395,"props":7298,"children":7299},{"style":3469},[7300],{"type":3117,"value":7062},{"type":3112,"tag":3169,"props":7302,"children":7303},{},[7304,7317],{"type":3112,"tag":3173,"props":7305,"children":7306},{},[7307,7309,7315],{"type":3117,"value":7308},"For the ",{"type":3112,"tag":3257,"props":7310,"children":7312},{"className":7311},[],[7313],{"type":3117,"value":7314},"users",{"type":3117,"value":7316}," 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":3112,"tag":3173,"props":7318,"children":7319},{},[7320,7321,7327,7329],{"type":3117,"value":5265},{"type":3112,"tag":3257,"props":7322,"children":7324},{"className":7323},[],[7325],{"type":3117,"value":7326},"credentials",{"type":3117,"value":7328}," table stores:\n",{"type":3112,"tag":3169,"props":7330,"children":7331},{},[7332,7350,7362,7372,7401,7422],{"type":3112,"tag":3173,"props":7333,"children":7334},{},[7335,7336,7341,7343,7348],{"type":3117,"value":5265},{"type":3112,"tag":3257,"props":7337,"children":7339},{"className":7338},[],[7340],{"type":3117,"value":7267},{"type":3117,"value":7342}," from the ",{"type":3112,"tag":3257,"props":7344,"children":7346},{"className":7345},[],[7347],{"type":3117,"value":7314},{"type":3117,"value":7349}," table.",{"type":3112,"tag":3173,"props":7351,"children":7352},{},[7353,7355,7360],{"type":3117,"value":7354},"The credential ",{"type":3112,"tag":3257,"props":7356,"children":7358},{"className":7357},[],[7359],{"type":3117,"value":7285},{"type":3117,"value":7361}," (as unique index)",{"type":3112,"tag":3173,"props":7363,"children":7364},{},[7365,7366],{"type":3117,"value":7354},{"type":3112,"tag":3257,"props":7367,"children":7369},{"className":7368},[],[7370],{"type":3117,"value":7371},"publicKey",{"type":3112,"tag":3173,"props":7373,"children":7374},{},[7375,7377,7383,7385,7390,7392,7399],{"type":3117,"value":7376},"A ",{"type":3112,"tag":3257,"props":7378,"children":7380},{"className":7379},[],[7381],{"type":3117,"value":7382},"counter",{"type":3117,"value":7384},". Each time a credential is used, the counter is incremented. We can use this value to perform extra security checks. More about ",{"type":3112,"tag":3257,"props":7386,"children":7388},{"className":7387},[],[7389],{"type":3117,"value":7382},{"type":3117,"value":7391}," can be read ",{"type":3112,"tag":3123,"props":7393,"children":7396},{"href":7394,"rel":7395},"https:\u002F\u002Fsimplewebauthn.dev\u002Fdocs\u002Fpackages\u002Fserver#3-post-registration-responsibilities",[3127],[7397],{"type":3117,"value":7398},"here",{"type":3117,"value":7400},". For this example, we won't be using the counter. But you should update the counter in your database with the new value.",{"type":3112,"tag":3173,"props":7402,"children":7403},{},[7404,7405,7411,7413,7420],{"type":3117,"value":7376},{"type":3112,"tag":3257,"props":7406,"children":7408},{"className":7407},[],[7409],{"type":3117,"value":7410},"backedUp",{"type":3117,"value":7412}," 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":3112,"tag":3123,"props":7414,"children":7417},{"href":7415,"rel":7416},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fugaemxot",[3127],[7418],{"type":3117,"value":7419},"this section",{"type":3117,"value":7421}," for more details.",{"type":3112,"tag":3173,"props":7423,"children":7424},{},[7425,7426,7432,7434,7440],{"type":3117,"value":7354},{"type":3112,"tag":3257,"props":7427,"children":7429},{"className":7428},[],[7430],{"type":3117,"value":7431},"transports",{"type":3117,"value":7433},". 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":3112,"tag":3123,"props":7435,"children":7438},{"href":7436,"rel":7437},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fycxtiorp",[3127],[7439],{"type":3117,"value":7419},{"type":3117,"value":7421},{"type":3112,"tag":3119,"props":7442,"children":7443},{},[7444,7446,7453,7454,7461,7463,7470],{"type":3117,"value":7445},"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":3112,"tag":3123,"props":7447,"children":7450},{"href":7448,"rel":7449},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fregister.post.ts",[3127],[7451],{"type":3117,"value":7452},"registration",{"type":3117,"value":7276},{"type":3112,"tag":3123,"props":7455,"children":7458},{"href":7456,"rel":7457},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts",[3127],[7459],{"type":3117,"value":7460},"authentication",{"type":3117,"value":7462}," and the ",{"type":3112,"tag":3123,"props":7464,"children":7467},{"href":7465,"rel":7466},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fplugins\u002Fdatabase.ts",[3127],[7468],{"type":3117,"value":7469},"database setup",{"type":3117,"value":3350},{"type":3112,"tag":3385,"props":7472,"children":7474},{"className":4073,"code":7473,"language":4075,"meta":2985,"style":2985},"\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",[7475],{"type":3112,"tag":3257,"props":7476,"children":7477},{"__ignoreMap":2985},[7478,7486,7526,7550,7558,7596,7604,7612,7620,7656,7745,7815,7822,7829,7837,7865,7873,7915,7947,7954,8002,8010,8018,8043,8050,8058,8105,8134,8142,8182,8189,8197,8206,8238,8246,8255,8283,8299,8324,8333,8367,8379,8387],{"type":3112,"tag":3395,"props":7479,"children":7480},{"class":3397,"line":3071},[7481],{"type":3112,"tag":3395,"props":7482,"children":7483},{"style":3460},[7484],{"type":3117,"value":7485},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fregister.post.ts\n",{"type":3112,"tag":3395,"props":7487,"children":7488},{"class":3397,"line":3037},[7489,7494,7498,7503,7508,7513,7517,7522],{"type":3112,"tag":3395,"props":7490,"children":7491},{"style":4657},[7492],{"type":3117,"value":7493},"import",{"type":3112,"tag":3395,"props":7495,"children":7496},{"style":3474},[7497],{"type":3117,"value":3567},{"type":3112,"tag":3395,"props":7499,"children":7500},{"style":3469},[7501],{"type":3117,"value":7502}," z",{"type":3112,"tag":3395,"props":7504,"children":7505},{"style":3474},[7506],{"type":3117,"value":7507}," }",{"type":3112,"tag":3395,"props":7509,"children":7510},{"style":4657},[7511],{"type":3117,"value":7512}," from",{"type":3112,"tag":3395,"props":7514,"children":7515},{"style":3474},[7516],{"type":3117,"value":4718},{"type":3112,"tag":3395,"props":7518,"children":7519},{"style":3407},[7520],{"type":3117,"value":7521},"zod",{"type":3112,"tag":3395,"props":7523,"children":7524},{"style":3474},[7525],{"type":3117,"value":4727},{"type":3112,"tag":3395,"props":7527,"children":7528},{"class":3397,"line":3021},[7529,7533,7537,7542,7546],{"type":3112,"tag":3395,"props":7530,"children":7531},{"style":4657},[7532],{"type":3117,"value":5191},{"type":3112,"tag":3395,"props":7534,"children":7535},{"style":4657},[7536],{"type":3117,"value":5306},{"type":3112,"tag":3395,"props":7538,"children":7539},{"style":3631},[7540],{"type":3117,"value":7541}," defineWebAuthnRegisterEventHandler",{"type":3112,"tag":3395,"props":7543,"children":7544},{"style":3469},[7545],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":7547,"children":7548},{"style":3474},[7549],{"type":3117,"value":5321},{"type":3112,"tag":3395,"props":7551,"children":7552},{"class":3397,"line":3658},[7553],{"type":3112,"tag":3395,"props":7554,"children":7555},{"style":3460},[7556],{"type":3117,"value":7557},"  \u002F\u002F optional\n",{"type":3112,"tag":3395,"props":7559,"children":7560},{"class":3397,"line":3667},[7561,7565,7570,7574,7579,7583,7588,7592],{"type":3112,"tag":3395,"props":7562,"children":7563},{"style":3546},[7564],{"type":3117,"value":5859},{"type":3112,"tag":3395,"props":7566,"children":7567},{"style":3540},[7568],{"type":3117,"value":7569}," validateUser",{"type":3112,"tag":3395,"props":7571,"children":7572},{"style":3474},[7573],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":7575,"children":7576},{"style":4489},[7577],{"type":3117,"value":7578},"userBody",{"type":3112,"tag":3395,"props":7580,"children":7581},{"style":3474},[7582],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":7584,"children":7585},{"style":4489},[7586],{"type":3117,"value":7587}," event",{"type":3112,"tag":3395,"props":7589,"children":7590},{"style":3474},[7591],{"type":3117,"value":6077},{"type":3112,"tag":3395,"props":7593,"children":7594},{"style":3474},[7595],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":7597,"children":7598},{"class":3397,"line":3684},[7599],{"type":3112,"tag":3395,"props":7600,"children":7601},{"style":3460},[7602],{"type":3117,"value":7603},"    \u002F\u002F bonus: check if the user is already authenticated to link a credential to his account\n",{"type":3112,"tag":3395,"props":7605,"children":7606},{"class":3397,"line":3017},[7607],{"type":3112,"tag":3395,"props":7608,"children":7609},{"style":3460},[7610],{"type":3117,"value":7611},"    \u002F\u002F We first check if the user is already authenticated by getting the session\n",{"type":3112,"tag":3395,"props":7613,"children":7614},{"class":3397,"line":3013},[7615],{"type":3112,"tag":3395,"props":7616,"children":7617},{"style":3460},[7618],{"type":3117,"value":7619},"    \u002F\u002F And verify that the email is the same as the one in session\n",{"type":3112,"tag":3395,"props":7621,"children":7622},{"class":3397,"line":3009},[7623,7628,7632,7636,7640,7644,7648,7652],{"type":3112,"tag":3395,"props":7624,"children":7625},{"style":3546},[7626],{"type":3117,"value":7627},"    const",{"type":3112,"tag":3395,"props":7629,"children":7630},{"style":3469},[7631],{"type":3117,"value":3591},{"type":3112,"tag":3395,"props":7633,"children":7634},{"style":3474},[7635],{"type":3117,"value":3628},{"type":3112,"tag":3395,"props":7637,"children":7638},{"style":4657},[7639],{"type":3117,"value":4913},{"type":3112,"tag":3395,"props":7641,"children":7642},{"style":3631},[7643],{"type":3117,"value":4918},{"type":3112,"tag":3395,"props":7645,"children":7646},{"style":3540},[7647],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":7649,"children":7650},{"style":3469},[7651],{"type":3117,"value":5873},{"type":3112,"tag":3395,"props":7653,"children":7654},{"style":3540},[7655],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":7657,"children":7658},{"class":3397,"line":3846},[7659,7664,7668,7673,7677,7682,7687,7692,7697,7701,7705,7709,7713,7717,7722,7727,7731,7736,7741],{"type":3112,"tag":3395,"props":7660,"children":7661},{"style":4657},[7662],{"type":3117,"value":7663},"    if",{"type":3112,"tag":3395,"props":7665,"children":7666},{"style":3540},[7667],{"type":3117,"value":4486},{"type":3112,"tag":3395,"props":7669,"children":7670},{"style":3469},[7671],{"type":3117,"value":7672},"session",{"type":3112,"tag":3395,"props":7674,"children":7675},{"style":3474},[7676],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":7678,"children":7679},{"style":3469},[7680],{"type":3117,"value":7681},"user",{"type":3112,"tag":3395,"props":7683,"children":7684},{"style":3474},[7685],{"type":3117,"value":7686},"?.",{"type":3112,"tag":3395,"props":7688,"children":7689},{"style":3469},[7690],{"type":3117,"value":7691},"email",{"type":3112,"tag":3395,"props":7693,"children":7694},{"style":3474},[7695],{"type":3117,"value":7696}," &&",{"type":3112,"tag":3395,"props":7698,"children":7699},{"style":3469},[7700],{"type":3117,"value":3591},{"type":3112,"tag":3395,"props":7702,"children":7703},{"style":3474},[7704],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":7706,"children":7707},{"style":3469},[7708],{"type":3117,"value":7681},{"type":3112,"tag":3395,"props":7710,"children":7711},{"style":3474},[7712],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":7714,"children":7715},{"style":3469},[7716],{"type":3117,"value":7691},{"type":3112,"tag":3395,"props":7718,"children":7719},{"style":3474},[7720],{"type":3117,"value":7721}," !==",{"type":3112,"tag":3395,"props":7723,"children":7724},{"style":3469},[7725],{"type":3117,"value":7726}," userBody",{"type":3112,"tag":3395,"props":7728,"children":7729},{"style":3474},[7730],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":7732,"children":7733},{"style":3469},[7734],{"type":3117,"value":7735},"userName",{"type":3112,"tag":3395,"props":7737,"children":7738},{"style":3540},[7739],{"type":3117,"value":7740},") ",{"type":3112,"tag":3395,"props":7742,"children":7743},{"style":3474},[7744],{"type":3117,"value":5321},{"type":3112,"tag":3395,"props":7746,"children":7747},{"class":3397,"line":3100},[7748,7753,7758,7762,7767,7772,7776,7781,7785,7790,7794,7798,7803,7807,7811],{"type":3112,"tag":3395,"props":7749,"children":7750},{"style":4657},[7751],{"type":3117,"value":7752},"      throw",{"type":3112,"tag":3395,"props":7754,"children":7755},{"style":3631},[7756],{"type":3117,"value":7757}," createError",{"type":3112,"tag":3395,"props":7759,"children":7760},{"style":3540},[7761],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":7763,"children":7764},{"style":3474},[7765],{"type":3117,"value":7766},"{",{"type":3112,"tag":3395,"props":7768,"children":7769},{"style":3540},[7770],{"type":3117,"value":7771}," statusCode",{"type":3112,"tag":3395,"props":7773,"children":7774},{"style":3474},[7775],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":7777,"children":7778},{"style":6995},[7779],{"type":3117,"value":7780}," 400",{"type":3112,"tag":3395,"props":7782,"children":7783},{"style":3474},[7784],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":7786,"children":7787},{"style":3540},[7788],{"type":3117,"value":7789}," message",{"type":3112,"tag":3395,"props":7791,"children":7792},{"style":3474},[7793],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":7795,"children":7796},{"style":3474},[7797],{"type":3117,"value":4718},{"type":3112,"tag":3395,"props":7799,"children":7800},{"style":3407},[7801],{"type":3117,"value":7802},"Email not matching curent session",{"type":3112,"tag":3395,"props":7804,"children":7805},{"style":3474},[7806],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":7808,"children":7809},{"style":3474},[7810],{"type":3117,"value":7507},{"type":3112,"tag":3395,"props":7812,"children":7813},{"style":3540},[7814],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":7816,"children":7817},{"class":3397,"line":3883},[7818],{"type":3112,"tag":3395,"props":7819,"children":7820},{"style":3474},[7821],{"type":3117,"value":5447},{"type":3112,"tag":3395,"props":7823,"children":7824},{"class":3397,"line":3916},[7825],{"type":3112,"tag":3395,"props":7826,"children":7827},{"emptyLinePlaceholder":1200},[7828],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":7830,"children":7831},{"class":3397,"line":3971},[7832],{"type":3112,"tag":3395,"props":7833,"children":7834},{"style":3460},[7835],{"type":3117,"value":7836},"    \u002F\u002F If he registers a new account with credentials\n",{"type":3112,"tag":3395,"props":7838,"children":7839},{"class":3397,"line":3980},[7840,7844,7848,7852,7857,7861],{"type":3112,"tag":3395,"props":7841,"children":7842},{"style":4657},[7843],{"type":3117,"value":5998},{"type":3112,"tag":3395,"props":7845,"children":7846},{"style":3469},[7847],{"type":3117,"value":7502},{"type":3112,"tag":3395,"props":7849,"children":7850},{"style":3474},[7851],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":7853,"children":7854},{"style":3631},[7855],{"type":3117,"value":7856},"object",{"type":3112,"tag":3395,"props":7858,"children":7859},{"style":3540},[7860],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":7862,"children":7863},{"style":3474},[7864],{"type":3117,"value":5321},{"type":3112,"tag":3395,"props":7866,"children":7867},{"class":3397,"line":3005},[7868],{"type":3112,"tag":3395,"props":7869,"children":7870},{"style":3460},[7871],{"type":3117,"value":7872},"      \u002F\u002F we want the userName to be a valid email\n",{"type":3112,"tag":3395,"props":7874,"children":7875},{"class":3397,"line":4048},[7876,7881,7885,7889,7893,7898,7903,7907,7911],{"type":3112,"tag":3395,"props":7877,"children":7878},{"style":3540},[7879],{"type":3117,"value":7880},"      userName",{"type":3112,"tag":3395,"props":7882,"children":7883},{"style":3474},[7884],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":7886,"children":7887},{"style":3469},[7888],{"type":3117,"value":7502},{"type":3112,"tag":3395,"props":7890,"children":7891},{"style":3474},[7892],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":7894,"children":7895},{"style":3631},[7896],{"type":3117,"value":7897},"string",{"type":3112,"tag":3395,"props":7899,"children":7900},{"style":3540},[7901],{"type":3117,"value":7902},"()",{"type":3112,"tag":3395,"props":7904,"children":7905},{"style":3474},[7906],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":7908,"children":7909},{"style":3631},[7910],{"type":3117,"value":7691},{"type":3112,"tag":3395,"props":7912,"children":7913},{"style":3540},[7914],{"type":3117,"value":3639},{"type":3112,"tag":3395,"props":7916,"children":7917},{"class":3397,"line":4318},[7918,7922,7926,7930,7935,7939,7943],{"type":3112,"tag":3395,"props":7919,"children":7920},{"style":3474},[7921],{"type":3117,"value":5986},{"type":3112,"tag":3395,"props":7923,"children":7924},{"style":3540},[7925],{"type":3117,"value":6077},{"type":3112,"tag":3395,"props":7927,"children":7928},{"style":3474},[7929],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":7931,"children":7932},{"style":3631},[7933],{"type":3117,"value":7934},"parse",{"type":3112,"tag":3395,"props":7936,"children":7937},{"style":3540},[7938],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":7940,"children":7941},{"style":3469},[7942],{"type":3117,"value":7578},{"type":3112,"tag":3395,"props":7944,"children":7945},{"style":3540},[7946],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":7948,"children":7949},{"class":3397,"line":4326},[7950],{"type":3112,"tag":3395,"props":7951,"children":7952},{"style":3474},[7953],{"type":3117,"value":4735},{"type":3112,"tag":3395,"props":7955,"children":7956},{"class":3397,"line":4335},[7957,7961,7965,7969,7973,7977,7981,7986,7990,7994,7998],{"type":3112,"tag":3395,"props":7958,"children":7959},{"style":3546},[7960],{"type":3117,"value":5859},{"type":3112,"tag":3395,"props":7962,"children":7963},{"style":3540},[7964],{"type":3117,"value":5864},{"type":3112,"tag":3395,"props":7966,"children":7967},{"style":3474},[7968],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":7970,"children":7971},{"style":4489},[7972],{"type":3117,"value":5873},{"type":3112,"tag":3395,"props":7974,"children":7975},{"style":3474},[7976],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":7978,"children":7979},{"style":3474},[7980],{"type":3117,"value":3567},{"type":3112,"tag":3395,"props":7982,"children":7983},{"style":4489},[7984],{"type":3117,"value":7985}," credential",{"type":3112,"tag":3395,"props":7987,"children":7988},{"style":3474},[7989],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":7991,"children":7992},{"style":4489},[7993],{"type":3117,"value":3582},{"type":3112,"tag":3395,"props":7995,"children":7996},{"style":3474},[7997],{"type":3117,"value":4555},{"type":3112,"tag":3395,"props":7999,"children":8000},{"style":3474},[8001],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":8003,"children":8004},{"class":3397,"line":4343},[8005],{"type":3112,"tag":3395,"props":8006,"children":8007},{"style":3460},[8008],{"type":3117,"value":8009},"    \u002F\u002F The credential creation has been successful\n",{"type":3112,"tag":3395,"props":8011,"children":8012},{"class":3397,"line":4384},[8013],{"type":3112,"tag":3395,"props":8014,"children":8015},{"style":3460},[8016],{"type":3117,"value":8017},"    \u002F\u002F We need to create a user if it does not exist\n",{"type":3112,"tag":3395,"props":8019,"children":8020},{"class":3397,"line":4392},[8021,8025,8030,8034,8039],{"type":3112,"tag":3395,"props":8022,"children":8023},{"style":3546},[8024],{"type":3117,"value":7627},{"type":3112,"tag":3395,"props":8026,"children":8027},{"style":3469},[8028],{"type":3117,"value":8029}," db",{"type":3112,"tag":3395,"props":8031,"children":8032},{"style":3474},[8033],{"type":3117,"value":3628},{"type":3112,"tag":3395,"props":8035,"children":8036},{"style":3631},[8037],{"type":3117,"value":8038}," useDatabase",{"type":3112,"tag":3395,"props":8040,"children":8041},{"style":3540},[8042],{"type":3117,"value":3639},{"type":3112,"tag":3395,"props":8044,"children":8045},{"class":3397,"line":4401},[8046],{"type":3112,"tag":3395,"props":8047,"children":8048},{"emptyLinePlaceholder":1200},[8049],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":8051,"children":8052},{"class":3397,"line":4409},[8053],{"type":3112,"tag":3395,"props":8054,"children":8055},{"style":3460},[8056],{"type":3117,"value":8057},"    \u002F\u002F Get the user from the database\n",{"type":3112,"tag":3395,"props":8059,"children":8060},{"class":3397,"line":4446},[8061,8066,8071,8075,8079,8083,8087,8091,8096,8100],{"type":3112,"tag":3395,"props":8062,"children":8063},{"style":3546},[8064],{"type":3117,"value":8065},"    let",{"type":3112,"tag":3395,"props":8067,"children":8068},{"style":3469},[8069],{"type":3117,"value":8070}," dbUser",{"type":3112,"tag":3395,"props":8072,"children":8073},{"style":3474},[8074],{"type":3117,"value":3628},{"type":3112,"tag":3395,"props":8076,"children":8077},{"style":4657},[8078],{"type":3117,"value":4913},{"type":3112,"tag":3395,"props":8080,"children":8081},{"style":3469},[8082],{"type":3117,"value":8029},{"type":3112,"tag":3395,"props":8084,"children":8085},{"style":3474},[8086],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":8088,"children":8089},{"style":3631},[8090],{"type":3117,"value":6985},{"type":3112,"tag":3395,"props":8092,"children":8093},{"style":3474},[8094],{"type":3117,"value":8095},"`",{"type":3112,"tag":3395,"props":8097,"children":8098},{"style":3407},[8099],{"type":3117,"value":5398},{"type":3112,"tag":3395,"props":8101,"children":8102},{"style":3474},[8103],{"type":3117,"value":8104},"`\n",{"type":3112,"tag":3395,"props":8106,"children":8107},{"class":3397,"line":4454},[8108,8112,8116,8121,8126,8130],{"type":3112,"tag":3395,"props":8109,"children":8110},{"style":4657},[8111],{"type":3117,"value":7663},{"type":3112,"tag":3395,"props":8113,"children":8114},{"style":3540},[8115],{"type":3117,"value":4486},{"type":3112,"tag":3395,"props":8117,"children":8118},{"style":3474},[8119],{"type":3117,"value":8120},"!",{"type":3112,"tag":3395,"props":8122,"children":8123},{"style":3469},[8124],{"type":3117,"value":8125},"dbUser",{"type":3112,"tag":3395,"props":8127,"children":8128},{"style":3540},[8129],{"type":3117,"value":7740},{"type":3112,"tag":3395,"props":8131,"children":8132},{"style":3474},[8133],{"type":3117,"value":5321},{"type":3112,"tag":3395,"props":8135,"children":8136},{"class":3397,"line":4463},[8137],{"type":3112,"tag":3395,"props":8138,"children":8139},{"style":3460},[8140],{"type":3117,"value":8141},"      \u002F\u002F Store new user in database & its credentials\n",{"type":3112,"tag":3395,"props":8143,"children":8144},{"class":3397,"line":4471},[8145,8150,8154,8158,8162,8166,8170,8174,8178],{"type":3112,"tag":3395,"props":8146,"children":8147},{"style":3469},[8148],{"type":3117,"value":8149},"      dbUser",{"type":3112,"tag":3395,"props":8151,"children":8152},{"style":3474},[8153],{"type":3117,"value":3628},{"type":3112,"tag":3395,"props":8155,"children":8156},{"style":4657},[8157],{"type":3117,"value":4913},{"type":3112,"tag":3395,"props":8159,"children":8160},{"style":3469},[8161],{"type":3117,"value":8029},{"type":3112,"tag":3395,"props":8163,"children":8164},{"style":3474},[8165],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":8167,"children":8168},{"style":3631},[8169],{"type":3117,"value":6985},{"type":3112,"tag":3395,"props":8171,"children":8172},{"style":3474},[8173],{"type":3117,"value":8095},{"type":3112,"tag":3395,"props":8175,"children":8176},{"style":3407},[8177],{"type":3117,"value":5398},{"type":3112,"tag":3395,"props":8179,"children":8180},{"style":3474},[8181],{"type":3117,"value":8104},{"type":3112,"tag":3395,"props":8183,"children":8184},{"class":3397,"line":4567},[8185],{"type":3112,"tag":3395,"props":8186,"children":8187},{"style":3474},[8188],{"type":3117,"value":5447},{"type":3112,"tag":3395,"props":8190,"children":8192},{"class":3397,"line":8191},31,[8193],{"type":3112,"tag":3395,"props":8194,"children":8195},{"emptyLinePlaceholder":1200},[8196],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":8198,"children":8200},{"class":3397,"line":8199},32,[8201],{"type":3112,"tag":3395,"props":8202,"children":8203},{"style":3460},[8204],{"type":3117,"value":8205},"    \u002F\u002F we now need to store the credential in our database and link it to the user\n",{"type":3112,"tag":3395,"props":8207,"children":8209},{"class":3397,"line":8208},33,[8210,8214,8218,8222,8226,8230,8234],{"type":3112,"tag":3395,"props":8211,"children":8212},{"style":4657},[8213],{"type":3117,"value":5910},{"type":3112,"tag":3395,"props":8215,"children":8216},{"style":3469},[8217],{"type":3117,"value":8029},{"type":3112,"tag":3395,"props":8219,"children":8220},{"style":3474},[8221],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":8223,"children":8224},{"style":3631},[8225],{"type":3117,"value":6985},{"type":3112,"tag":3395,"props":8227,"children":8228},{"style":3474},[8229],{"type":3117,"value":8095},{"type":3112,"tag":3395,"props":8231,"children":8232},{"style":3407},[8233],{"type":3117,"value":5398},{"type":3112,"tag":3395,"props":8235,"children":8236},{"style":3474},[8237],{"type":3117,"value":8104},{"type":3112,"tag":3395,"props":8239,"children":8241},{"class":3397,"line":8240},34,[8242],{"type":3112,"tag":3395,"props":8243,"children":8244},{"emptyLinePlaceholder":1200},[8245],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":8247,"children":8249},{"class":3397,"line":8248},35,[8250],{"type":3112,"tag":3395,"props":8251,"children":8252},{"style":3460},[8253],{"type":3117,"value":8254},"    \u002F\u002F Set the user session\n",{"type":3112,"tag":3395,"props":8256,"children":8258},{"class":3397,"line":8257},36,[8259,8263,8267,8271,8275,8279],{"type":3112,"tag":3395,"props":8260,"children":8261},{"style":4657},[8262],{"type":3117,"value":5910},{"type":3112,"tag":3395,"props":8264,"children":8265},{"style":3631},[8266],{"type":3117,"value":4665},{"type":3112,"tag":3395,"props":8268,"children":8269},{"style":3540},[8270],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":8272,"children":8273},{"style":3469},[8274],{"type":3117,"value":5873},{"type":3112,"tag":3395,"props":8276,"children":8277},{"style":3474},[8278],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":8280,"children":8281},{"style":3474},[8282],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":8284,"children":8286},{"class":3397,"line":8285},37,[8287,8291,8295],{"type":3112,"tag":3395,"props":8288,"children":8289},{"style":3540},[8290],{"type":3117,"value":5938},{"type":3112,"tag":3395,"props":8292,"children":8293},{"style":3474},[8294],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":8296,"children":8297},{"style":3474},[8298],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":8300,"children":8302},{"class":3397,"line":8301},38,[8303,8308,8312,8316,8320],{"type":3112,"tag":3395,"props":8304,"children":8305},{"style":3540},[8306],{"type":3117,"value":8307},"        id",{"type":3112,"tag":3395,"props":8309,"children":8310},{"style":3474},[8311],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":8313,"children":8314},{"style":3469},[8315],{"type":3117,"value":8070},{"type":3112,"tag":3395,"props":8317,"children":8318},{"style":3474},[8319],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":8321,"children":8322},{"style":3469},[8323],{"type":3117,"value":5971},{"type":3112,"tag":3395,"props":8325,"children":8327},{"class":3397,"line":8326},39,[8328],{"type":3112,"tag":3395,"props":8329,"children":8330},{"style":3474},[8331],{"type":3117,"value":8332},"      },\n",{"type":3112,"tag":3395,"props":8334,"children":8336},{"class":3397,"line":8335},40,[8337,8342,8346,8350,8354,8359,8363],{"type":3112,"tag":3395,"props":8338,"children":8339},{"style":3540},[8340],{"type":3117,"value":8341},"      loggedInAt",{"type":3112,"tag":3395,"props":8343,"children":8344},{"style":3474},[8345],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":8347,"children":8348},{"style":3469},[8349],{"type":3117,"value":4821},{"type":3112,"tag":3395,"props":8351,"children":8352},{"style":3474},[8353],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":8355,"children":8356},{"style":3631},[8357],{"type":3117,"value":8358},"now",{"type":3112,"tag":3395,"props":8360,"children":8361},{"style":3540},[8362],{"type":3117,"value":7902},{"type":3112,"tag":3395,"props":8364,"children":8365},{"style":3474},[8366],{"type":3117,"value":5407},{"type":3112,"tag":3395,"props":8368,"children":8370},{"class":3397,"line":8369},41,[8371,8375],{"type":3112,"tag":3395,"props":8372,"children":8373},{"style":3474},[8374],{"type":3117,"value":5986},{"type":3112,"tag":3395,"props":8376,"children":8377},{"style":3540},[8378],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":8380,"children":8382},{"class":3397,"line":8381},42,[8383],{"type":3112,"tag":3395,"props":8384,"children":8385},{"style":3474},[8386],{"type":3117,"value":4735},{"type":3112,"tag":3395,"props":8388,"children":8390},{"class":3397,"line":8389},43,[8391,8395],{"type":3112,"tag":3395,"props":8392,"children":8393},{"style":3474},[8394],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":8396,"children":8397},{"style":3469},[8398],{"type":3117,"value":4837},{"type":3112,"tag":4575,"props":8400,"children":8401},{},[8402],{"type":3112,"tag":3119,"props":8403,"children":8404},{},[8405,8410,8412,8419,8421,8427,8429],{"type":3112,"tag":3395,"props":8406,"children":8407},{},[8408],{"type":3117,"value":8409},"!TIP",{"type":3117,"value":8411},"\nIf you want to plug in and use the ",{"type":3112,"tag":3123,"props":8413,"children":8416},{"href":8414,"rel":8415},"https:\u002F\u002Fgithub.com\u002Fpasskeydeveloper\u002Fpasskey-authenticator-aaguids",[3127],[8417],{"type":3117,"value":8418},"Community sourced list of AAGUIDS",{"type":3117,"value":8420}," to decorate your display of added passkeys, you can access the the ID via ",{"type":3112,"tag":3257,"props":8422,"children":8424},{"className":8423},[],[8425],{"type":3117,"value":8426},"credential.aaguid",{"type":3117,"value":8428}," inside ",{"type":3112,"tag":3257,"props":8430,"children":8432},{"className":8431},[],[8433],{"type":3117,"value":5250},{"type":3112,"tag":3385,"props":8435,"children":8437},{"className":4073,"code":8436,"language":4075,"meta":2985,"style":2985},"\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",[8438],{"type":3112,"tag":3257,"props":8439,"children":8440},{"__ignoreMap":2985},[8441,8449,8473,8481,8518,8566,8574,8606,8670,8677,8685,8693,8701,8713,8721,8728,8765,8773,8820,8827,8835,8859,8923,8930,8942,8949,8997,9005,9013,9036,9079,9086,9094,9125,9132,9139,9166,9181,9204,9211,9242,9253,9260],{"type":3112,"tag":3395,"props":8442,"children":8443},{"class":3397,"line":3071},[8444],{"type":3112,"tag":3395,"props":8445,"children":8446},{"style":3460},[8447],{"type":3117,"value":8448},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts\n",{"type":3112,"tag":3395,"props":8450,"children":8451},{"class":3397,"line":3037},[8452,8456,8460,8465,8469],{"type":3112,"tag":3395,"props":8453,"children":8454},{"style":4657},[8455],{"type":3117,"value":5191},{"type":3112,"tag":3395,"props":8457,"children":8458},{"style":4657},[8459],{"type":3117,"value":5306},{"type":3112,"tag":3395,"props":8461,"children":8462},{"style":3631},[8463],{"type":3117,"value":8464}," defineWebAuthnAuthenticateEventHandler",{"type":3112,"tag":3395,"props":8466,"children":8467},{"style":3469},[8468],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":8470,"children":8471},{"style":3474},[8472],{"type":3117,"value":5321},{"type":3112,"tag":3395,"props":8474,"children":8475},{"class":3397,"line":3021},[8476],{"type":3112,"tag":3395,"props":8477,"children":8478},{"style":3460},[8479],{"type":3117,"value":8480},"  \u002F\u002F Optionally, we can prefetch the credentials if the user gives their userName during login\n",{"type":3112,"tag":3395,"props":8482,"children":8483},{"class":3397,"line":3658},[8484,8488,8493,8497,8501,8505,8510,8514],{"type":3112,"tag":3395,"props":8485,"children":8486},{"style":3546},[8487],{"type":3117,"value":5859},{"type":3112,"tag":3395,"props":8489,"children":8490},{"style":3540},[8491],{"type":3117,"value":8492}," allowCredentials",{"type":3112,"tag":3395,"props":8494,"children":8495},{"style":3474},[8496],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":8498,"children":8499},{"style":4489},[8500],{"type":3117,"value":5873},{"type":3112,"tag":3395,"props":8502,"children":8503},{"style":3474},[8504],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":8506,"children":8507},{"style":4489},[8508],{"type":3117,"value":8509}," userName",{"type":3112,"tag":3395,"props":8511,"children":8512},{"style":3474},[8513],{"type":3117,"value":6077},{"type":3112,"tag":3395,"props":8515,"children":8516},{"style":3474},[8517],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":8519,"children":8520},{"class":3397,"line":3667},[8521,8525,8530,8534,8538,8542,8546,8550,8554,8558,8562],{"type":3112,"tag":3395,"props":8522,"children":8523},{"style":3546},[8524],{"type":3117,"value":7627},{"type":3112,"tag":3395,"props":8526,"children":8527},{"style":3469},[8528],{"type":3117,"value":8529}," credentials",{"type":3112,"tag":3395,"props":8531,"children":8532},{"style":3474},[8533],{"type":3117,"value":3628},{"type":3112,"tag":3395,"props":8535,"children":8536},{"style":4657},[8537],{"type":3117,"value":4913},{"type":3112,"tag":3395,"props":8539,"children":8540},{"style":3631},[8541],{"type":3117,"value":8038},{"type":3112,"tag":3395,"props":8543,"children":8544},{"style":3540},[8545],{"type":3117,"value":7902},{"type":3112,"tag":3395,"props":8547,"children":8548},{"style":3474},[8549],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":8551,"children":8552},{"style":3631},[8553],{"type":3117,"value":6985},{"type":3112,"tag":3395,"props":8555,"children":8556},{"style":3474},[8557],{"type":3117,"value":8095},{"type":3112,"tag":3395,"props":8559,"children":8560},{"style":3407},[8561],{"type":3117,"value":5398},{"type":3112,"tag":3395,"props":8563,"children":8564},{"style":3474},[8565],{"type":3117,"value":8104},{"type":3112,"tag":3395,"props":8567,"children":8568},{"class":3397,"line":3684},[8569],{"type":3112,"tag":3395,"props":8570,"children":8571},{"style":3460},[8572],{"type":3117,"value":8573},"    \u002F\u002F If no credentials are found, the authentication cannot be completed\n",{"type":3112,"tag":3395,"props":8575,"children":8576},{"class":3397,"line":3017},[8577,8581,8585,8589,8593,8597,8602],{"type":3112,"tag":3395,"props":8578,"children":8579},{"style":4657},[8580],{"type":3117,"value":7663},{"type":3112,"tag":3395,"props":8582,"children":8583},{"style":3540},[8584],{"type":3117,"value":4486},{"type":3112,"tag":3395,"props":8586,"children":8587},{"style":3474},[8588],{"type":3117,"value":8120},{"type":3112,"tag":3395,"props":8590,"children":8591},{"style":3469},[8592],{"type":3117,"value":7326},{"type":3112,"tag":3395,"props":8594,"children":8595},{"style":3474},[8596],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":8598,"children":8599},{"style":3469},[8600],{"type":3117,"value":8601},"length",{"type":3112,"tag":3395,"props":8603,"children":8604},{"style":3540},[8605],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":8607,"children":8608},{"class":3397,"line":3013},[8609,8613,8617,8621,8625,8629,8633,8637,8641,8645,8649,8653,8658,8662,8666],{"type":3112,"tag":3395,"props":8610,"children":8611},{"style":4657},[8612],{"type":3117,"value":7752},{"type":3112,"tag":3395,"props":8614,"children":8615},{"style":3631},[8616],{"type":3117,"value":7757},{"type":3112,"tag":3395,"props":8618,"children":8619},{"style":3540},[8620],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":8622,"children":8623},{"style":3474},[8624],{"type":3117,"value":7766},{"type":3112,"tag":3395,"props":8626,"children":8627},{"style":3540},[8628],{"type":3117,"value":7771},{"type":3112,"tag":3395,"props":8630,"children":8631},{"style":3474},[8632],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":8634,"children":8635},{"style":6995},[8636],{"type":3117,"value":7780},{"type":3112,"tag":3395,"props":8638,"children":8639},{"style":3474},[8640],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":8642,"children":8643},{"style":3540},[8644],{"type":3117,"value":7789},{"type":3112,"tag":3395,"props":8646,"children":8647},{"style":3474},[8648],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":8650,"children":8651},{"style":3474},[8652],{"type":3117,"value":4718},{"type":3112,"tag":3395,"props":8654,"children":8655},{"style":3407},[8656],{"type":3117,"value":8657},"User not found",{"type":3112,"tag":3395,"props":8659,"children":8660},{"style":3474},[8661],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":8663,"children":8664},{"style":3474},[8665],{"type":3117,"value":7507},{"type":3112,"tag":3395,"props":8667,"children":8668},{"style":3540},[8669],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":8671,"children":8672},{"class":3397,"line":3009},[8673],{"type":3112,"tag":3395,"props":8674,"children":8675},{"emptyLinePlaceholder":1200},[8676],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":8678,"children":8679},{"class":3397,"line":3846},[8680],{"type":3112,"tag":3395,"props":8681,"children":8682},{"style":3460},[8683],{"type":3117,"value":8684},"    \u002F\u002F If user is found, only allow credentials that are registered\n",{"type":3112,"tag":3395,"props":8686,"children":8687},{"class":3397,"line":3100},[8688],{"type":3112,"tag":3395,"props":8689,"children":8690},{"style":3460},[8691],{"type":3117,"value":8692},"    \u002F\u002F The browser will automatically try to use the credential that it knows about\n",{"type":3112,"tag":3395,"props":8694,"children":8695},{"class":3397,"line":3883},[8696],{"type":3112,"tag":3395,"props":8697,"children":8698},{"style":3460},[8699],{"type":3117,"value":8700},"    \u002F\u002F Skipping the step for the user to select a credential for a better user experience\n",{"type":3112,"tag":3395,"props":8702,"children":8703},{"class":3397,"line":3916},[8704,8708],{"type":3112,"tag":3395,"props":8705,"children":8706},{"style":4657},[8707],{"type":3117,"value":5998},{"type":3112,"tag":3395,"props":8709,"children":8710},{"style":3469},[8711],{"type":3117,"value":8712}," credentials\n",{"type":3112,"tag":3395,"props":8714,"children":8715},{"class":3397,"line":3971},[8716],{"type":3112,"tag":3395,"props":8717,"children":8718},{"style":3460},[8719],{"type":3117,"value":8720},"    \u002F\u002F example: [{ id: '...' }]\n",{"type":3112,"tag":3395,"props":8722,"children":8723},{"class":3397,"line":3980},[8724],{"type":3112,"tag":3395,"props":8725,"children":8726},{"style":3474},[8727],{"type":3117,"value":4735},{"type":3112,"tag":3395,"props":8729,"children":8730},{"class":3397,"line":3005},[8731,8735,8740,8744,8748,8752,8757,8761],{"type":3112,"tag":3395,"props":8732,"children":8733},{"style":3546},[8734],{"type":3117,"value":5859},{"type":3112,"tag":3395,"props":8736,"children":8737},{"style":3540},[8738],{"type":3117,"value":8739}," getCredential",{"type":3112,"tag":3395,"props":8741,"children":8742},{"style":3474},[8743],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":8745,"children":8746},{"style":4489},[8747],{"type":3117,"value":5873},{"type":3112,"tag":3395,"props":8749,"children":8750},{"style":3474},[8751],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":8753,"children":8754},{"style":4489},[8755],{"type":3117,"value":8756}," credentialId",{"type":3112,"tag":3395,"props":8758,"children":8759},{"style":3474},[8760],{"type":3117,"value":6077},{"type":3112,"tag":3395,"props":8762,"children":8763},{"style":3474},[8764],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":8766,"children":8767},{"class":3397,"line":4048},[8768],{"type":3112,"tag":3395,"props":8769,"children":8770},{"style":3460},[8771],{"type":3117,"value":8772},"    \u002F\u002F Look for the credential in our database\n",{"type":3112,"tag":3395,"props":8774,"children":8775},{"class":3397,"line":4318},[8776,8780,8784,8788,8792,8796,8800,8804,8808,8812,8816],{"type":3112,"tag":3395,"props":8777,"children":8778},{"style":3546},[8779],{"type":3117,"value":7627},{"type":3112,"tag":3395,"props":8781,"children":8782},{"style":3469},[8783],{"type":3117,"value":7985},{"type":3112,"tag":3395,"props":8785,"children":8786},{"style":3474},[8787],{"type":3117,"value":3628},{"type":3112,"tag":3395,"props":8789,"children":8790},{"style":4657},[8791],{"type":3117,"value":4913},{"type":3112,"tag":3395,"props":8793,"children":8794},{"style":3631},[8795],{"type":3117,"value":8038},{"type":3112,"tag":3395,"props":8797,"children":8798},{"style":3540},[8799],{"type":3117,"value":7902},{"type":3112,"tag":3395,"props":8801,"children":8802},{"style":3474},[8803],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":8805,"children":8806},{"style":3631},[8807],{"type":3117,"value":6985},{"type":3112,"tag":3395,"props":8809,"children":8810},{"style":3474},[8811],{"type":3117,"value":8095},{"type":3112,"tag":3395,"props":8813,"children":8814},{"style":3407},[8815],{"type":3117,"value":5398},{"type":3112,"tag":3395,"props":8817,"children":8818},{"style":3474},[8819],{"type":3117,"value":8104},{"type":3112,"tag":3395,"props":8821,"children":8822},{"class":3397,"line":4326},[8823],{"type":3112,"tag":3395,"props":8824,"children":8825},{"emptyLinePlaceholder":1200},[8826],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":8828,"children":8829},{"class":3397,"line":4335},[8830],{"type":3112,"tag":3395,"props":8831,"children":8832},{"style":3460},[8833],{"type":3117,"value":8834},"    \u002F\u002F If the credential is not found, there is no account to log in to\n",{"type":3112,"tag":3395,"props":8836,"children":8837},{"class":3397,"line":4343},[8838,8842,8846,8850,8855],{"type":3112,"tag":3395,"props":8839,"children":8840},{"style":4657},[8841],{"type":3117,"value":7663},{"type":3112,"tag":3395,"props":8843,"children":8844},{"style":3540},[8845],{"type":3117,"value":4486},{"type":3112,"tag":3395,"props":8847,"children":8848},{"style":3474},[8849],{"type":3117,"value":8120},{"type":3112,"tag":3395,"props":8851,"children":8852},{"style":3469},[8853],{"type":3117,"value":8854},"credential",{"type":3112,"tag":3395,"props":8856,"children":8857},{"style":3540},[8858],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":8860,"children":8861},{"class":3397,"line":4384},[8862,8866,8870,8874,8878,8882,8886,8890,8894,8898,8902,8906,8911,8915,8919],{"type":3112,"tag":3395,"props":8863,"children":8864},{"style":4657},[8865],{"type":3117,"value":7752},{"type":3112,"tag":3395,"props":8867,"children":8868},{"style":3631},[8869],{"type":3117,"value":7757},{"type":3112,"tag":3395,"props":8871,"children":8872},{"style":3540},[8873],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":8875,"children":8876},{"style":3474},[8877],{"type":3117,"value":7766},{"type":3112,"tag":3395,"props":8879,"children":8880},{"style":3540},[8881],{"type":3117,"value":7771},{"type":3112,"tag":3395,"props":8883,"children":8884},{"style":3474},[8885],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":8887,"children":8888},{"style":6995},[8889],{"type":3117,"value":7780},{"type":3112,"tag":3395,"props":8891,"children":8892},{"style":3474},[8893],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":8895,"children":8896},{"style":3540},[8897],{"type":3117,"value":7789},{"type":3112,"tag":3395,"props":8899,"children":8900},{"style":3474},[8901],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":8903,"children":8904},{"style":3474},[8905],{"type":3117,"value":4718},{"type":3112,"tag":3395,"props":8907,"children":8908},{"style":3407},[8909],{"type":3117,"value":8910},"Credential not found",{"type":3112,"tag":3395,"props":8912,"children":8913},{"style":3474},[8914],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":8916,"children":8917},{"style":3474},[8918],{"type":3117,"value":7507},{"type":3112,"tag":3395,"props":8920,"children":8921},{"style":3540},[8922],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":8924,"children":8925},{"class":3397,"line":4392},[8926],{"type":3112,"tag":3395,"props":8927,"children":8928},{"emptyLinePlaceholder":1200},[8929],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":8931,"children":8932},{"class":3397,"line":4401},[8933,8937],{"type":3112,"tag":3395,"props":8934,"children":8935},{"style":4657},[8936],{"type":3117,"value":5998},{"type":3112,"tag":3395,"props":8938,"children":8939},{"style":3469},[8940],{"type":3117,"value":8941}," credential\n",{"type":3112,"tag":3395,"props":8943,"children":8944},{"class":3397,"line":4409},[8945],{"type":3112,"tag":3395,"props":8946,"children":8947},{"style":3474},[8948],{"type":3117,"value":4735},{"type":3112,"tag":3395,"props":8950,"children":8951},{"class":3397,"line":4446},[8952,8956,8960,8964,8968,8972,8976,8980,8984,8989,8993],{"type":3112,"tag":3395,"props":8953,"children":8954},{"style":3546},[8955],{"type":3117,"value":5859},{"type":3112,"tag":3395,"props":8957,"children":8958},{"style":3540},[8959],{"type":3117,"value":5864},{"type":3112,"tag":3395,"props":8961,"children":8962},{"style":3474},[8963],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":8965,"children":8966},{"style":4489},[8967],{"type":3117,"value":5873},{"type":3112,"tag":3395,"props":8969,"children":8970},{"style":3474},[8971],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":8973,"children":8974},{"style":3474},[8975],{"type":3117,"value":3567},{"type":3112,"tag":3395,"props":8977,"children":8978},{"style":4489},[8979],{"type":3117,"value":7985},{"type":3112,"tag":3395,"props":8981,"children":8982},{"style":3474},[8983],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":8985,"children":8986},{"style":4489},[8987],{"type":3117,"value":8988}," authenticationInfo",{"type":3112,"tag":3395,"props":8990,"children":8991},{"style":3474},[8992],{"type":3117,"value":4555},{"type":3112,"tag":3395,"props":8994,"children":8995},{"style":3474},[8996],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":8998,"children":8999},{"class":3397,"line":4454},[9000],{"type":3112,"tag":3395,"props":9001,"children":9002},{"style":3460},[9003],{"type":3117,"value":9004},"    \u002F\u002F The credential authentication has been successful\n",{"type":3112,"tag":3395,"props":9006,"children":9007},{"class":3397,"line":4463},[9008],{"type":3112,"tag":3395,"props":9009,"children":9010},{"style":3460},[9011],{"type":3117,"value":9012},"    \u002F\u002F We can look it up in our database and get the corresponding user\n",{"type":3112,"tag":3395,"props":9014,"children":9015},{"class":3397,"line":4471},[9016,9020,9024,9028,9032],{"type":3112,"tag":3395,"props":9017,"children":9018},{"style":3546},[9019],{"type":3117,"value":7627},{"type":3112,"tag":3395,"props":9021,"children":9022},{"style":3469},[9023],{"type":3117,"value":8029},{"type":3112,"tag":3395,"props":9025,"children":9026},{"style":3474},[9027],{"type":3117,"value":3628},{"type":3112,"tag":3395,"props":9029,"children":9030},{"style":3631},[9031],{"type":3117,"value":8038},{"type":3112,"tag":3395,"props":9033,"children":9034},{"style":3540},[9035],{"type":3117,"value":3639},{"type":3112,"tag":3395,"props":9037,"children":9038},{"class":3397,"line":4567},[9039,9043,9047,9051,9055,9059,9063,9067,9071,9075],{"type":3112,"tag":3395,"props":9040,"children":9041},{"style":3546},[9042],{"type":3117,"value":7627},{"type":3112,"tag":3395,"props":9044,"children":9045},{"style":3469},[9046],{"type":3117,"value":3582},{"type":3112,"tag":3395,"props":9048,"children":9049},{"style":3474},[9050],{"type":3117,"value":3628},{"type":3112,"tag":3395,"props":9052,"children":9053},{"style":4657},[9054],{"type":3117,"value":4913},{"type":3112,"tag":3395,"props":9056,"children":9057},{"style":3469},[9058],{"type":3117,"value":8029},{"type":3112,"tag":3395,"props":9060,"children":9061},{"style":3474},[9062],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":9064,"children":9065},{"style":3631},[9066],{"type":3117,"value":6985},{"type":3112,"tag":3395,"props":9068,"children":9069},{"style":3474},[9070],{"type":3117,"value":8095},{"type":3112,"tag":3395,"props":9072,"children":9073},{"style":3407},[9074],{"type":3117,"value":5398},{"type":3112,"tag":3395,"props":9076,"children":9077},{"style":3474},[9078],{"type":3117,"value":8104},{"type":3112,"tag":3395,"props":9080,"children":9081},{"class":3397,"line":8191},[9082],{"type":3112,"tag":3395,"props":9083,"children":9084},{"emptyLinePlaceholder":1200},[9085],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":9087,"children":9088},{"class":3397,"line":8199},[9089],{"type":3112,"tag":3395,"props":9090,"children":9091},{"style":3460},[9092],{"type":3117,"value":9093},"    \u002F\u002F Update the counter in the database (authenticationInfo.newCounter)\n",{"type":3112,"tag":3395,"props":9095,"children":9096},{"class":3397,"line":8208},[9097,9101,9105,9109,9113,9117,9121],{"type":3112,"tag":3395,"props":9098,"children":9099},{"style":4657},[9100],{"type":3117,"value":5910},{"type":3112,"tag":3395,"props":9102,"children":9103},{"style":3469},[9104],{"type":3117,"value":8029},{"type":3112,"tag":3395,"props":9106,"children":9107},{"style":3474},[9108],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":9110,"children":9111},{"style":3631},[9112],{"type":3117,"value":6985},{"type":3112,"tag":3395,"props":9114,"children":9115},{"style":3474},[9116],{"type":3117,"value":8095},{"type":3112,"tag":3395,"props":9118,"children":9119},{"style":3407},[9120],{"type":3117,"value":5398},{"type":3112,"tag":3395,"props":9122,"children":9123},{"style":3474},[9124],{"type":3117,"value":8104},{"type":3112,"tag":3395,"props":9126,"children":9127},{"class":3397,"line":8240},[9128],{"type":3112,"tag":3395,"props":9129,"children":9130},{"emptyLinePlaceholder":1200},[9131],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":9133,"children":9134},{"class":3397,"line":8248},[9135],{"type":3112,"tag":3395,"props":9136,"children":9137},{"style":3460},[9138],{"type":3117,"value":8254},{"type":3112,"tag":3395,"props":9140,"children":9141},{"class":3397,"line":8257},[9142,9146,9150,9154,9158,9162],{"type":3112,"tag":3395,"props":9143,"children":9144},{"style":4657},[9145],{"type":3117,"value":5910},{"type":3112,"tag":3395,"props":9147,"children":9148},{"style":3631},[9149],{"type":3117,"value":4665},{"type":3112,"tag":3395,"props":9151,"children":9152},{"style":3540},[9153],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":9155,"children":9156},{"style":3469},[9157],{"type":3117,"value":5873},{"type":3112,"tag":3395,"props":9159,"children":9160},{"style":3474},[9161],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":9163,"children":9164},{"style":3474},[9165],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":9167,"children":9168},{"class":3397,"line":8285},[9169,9173,9177],{"type":3112,"tag":3395,"props":9170,"children":9171},{"style":3540},[9172],{"type":3117,"value":5938},{"type":3112,"tag":3395,"props":9174,"children":9175},{"style":3474},[9176],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":9178,"children":9179},{"style":3474},[9180],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":9182,"children":9183},{"class":3397,"line":8301},[9184,9188,9192,9196,9200],{"type":3112,"tag":3395,"props":9185,"children":9186},{"style":3540},[9187],{"type":3117,"value":8307},{"type":3112,"tag":3395,"props":9189,"children":9190},{"style":3474},[9191],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":9193,"children":9194},{"style":3469},[9195],{"type":3117,"value":3582},{"type":3112,"tag":3395,"props":9197,"children":9198},{"style":3474},[9199],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":9201,"children":9202},{"style":3469},[9203],{"type":3117,"value":5971},{"type":3112,"tag":3395,"props":9205,"children":9206},{"class":3397,"line":8326},[9207],{"type":3112,"tag":3395,"props":9208,"children":9209},{"style":3474},[9210],{"type":3117,"value":8332},{"type":3112,"tag":3395,"props":9212,"children":9213},{"class":3397,"line":8335},[9214,9218,9222,9226,9230,9234,9238],{"type":3112,"tag":3395,"props":9215,"children":9216},{"style":3540},[9217],{"type":3117,"value":8341},{"type":3112,"tag":3395,"props":9219,"children":9220},{"style":3474},[9221],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":9223,"children":9224},{"style":3469},[9225],{"type":3117,"value":4821},{"type":3112,"tag":3395,"props":9227,"children":9228},{"style":3474},[9229],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":9231,"children":9232},{"style":3631},[9233],{"type":3117,"value":8358},{"type":3112,"tag":3395,"props":9235,"children":9236},{"style":3540},[9237],{"type":3117,"value":7902},{"type":3112,"tag":3395,"props":9239,"children":9240},{"style":3474},[9241],{"type":3117,"value":5407},{"type":3112,"tag":3395,"props":9243,"children":9244},{"class":3397,"line":8369},[9245,9249],{"type":3112,"tag":3395,"props":9246,"children":9247},{"style":3474},[9248],{"type":3117,"value":5986},{"type":3112,"tag":3395,"props":9250,"children":9251},{"style":3540},[9252],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":9254,"children":9255},{"class":3397,"line":8381},[9256],{"type":3112,"tag":3395,"props":9257,"children":9258},{"style":3474},[9259],{"type":3117,"value":4735},{"type":3112,"tag":3395,"props":9261,"children":9262},{"class":3397,"line":8389},[9263,9267],{"type":3112,"tag":3395,"props":9264,"children":9265},{"style":3474},[9266],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":9268,"children":9269},{"style":3469},[9270],{"type":3117,"value":4837},{"type":3112,"tag":4575,"props":9272,"children":9273},{},[9274],{"type":3112,"tag":3119,"props":9275,"children":9276},{},[9277,9281,9283,9288,9290,9296,9297,9303],{"type":3112,"tag":3395,"props":9278,"children":9279},{},[9280],{"type":3117,"value":4585},{"type":3117,"value":9282},"\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":3112,"tag":4066,"props":9284,"children":9285},{},[9286],{"type":3117,"value":9287},"which is highly recommended",{"type":3117,"value":9289},"), the ",{"type":3112,"tag":3257,"props":9291,"children":9293},{"className":9292},[],[9294],{"type":3117,"value":9295},"storeChallenge",{"type":3117,"value":6227},{"type":3112,"tag":3257,"props":9298,"children":9300},{"className":9299},[],[9301],{"type":3117,"value":9302},"getChallenge",{"type":3117,"value":9304}," 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":3112,"tag":4575,"props":9306,"children":9307},{},[9308],{"type":3112,"tag":3385,"props":9309,"children":9311},{"className":4073,"code":9310,"language":4075,"meta":2985,"style":2985},"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",[9312],{"type":3112,"tag":3257,"props":9313,"children":9314},{"__ignoreMap":2985},[9315,9338,9384,9392,9457,9464,9500,9564,9571,9579,9631,9638,9662,9726,9733,9745,9752,9792,9800,9807],{"type":3112,"tag":3395,"props":9316,"children":9317},{"class":3397,"line":3071},[9318,9322,9326,9330,9334],{"type":3112,"tag":3395,"props":9319,"children":9320},{"style":4657},[9321],{"type":3117,"value":5191},{"type":3112,"tag":3395,"props":9323,"children":9324},{"style":4657},[9325],{"type":3117,"value":5306},{"type":3112,"tag":3395,"props":9327,"children":9328},{"style":3631},[9329],{"type":3117,"value":8464},{"type":3112,"tag":3395,"props":9331,"children":9332},{"style":3469},[9333],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":9335,"children":9336},{"style":3474},[9337],{"type":3117,"value":5321},{"type":3112,"tag":3395,"props":9339,"children":9340},{"class":3397,"line":3037},[9341,9345,9350,9354,9358,9362,9367,9371,9376,9380],{"type":3112,"tag":3395,"props":9342,"children":9343},{"style":3546},[9344],{"type":3117,"value":5859},{"type":3112,"tag":3395,"props":9346,"children":9347},{"style":3540},[9348],{"type":3117,"value":9349}," storeChallenge",{"type":3112,"tag":3395,"props":9351,"children":9352},{"style":3474},[9353],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":9355,"children":9356},{"style":4489},[9357],{"type":3117,"value":5873},{"type":3112,"tag":3395,"props":9359,"children":9360},{"style":3474},[9361],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":9363,"children":9364},{"style":4489},[9365],{"type":3117,"value":9366}," challenge",{"type":3112,"tag":3395,"props":9368,"children":9369},{"style":3474},[9370],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":9372,"children":9373},{"style":4489},[9374],{"type":3117,"value":9375}," attemptId",{"type":3112,"tag":3395,"props":9377,"children":9378},{"style":3474},[9379],{"type":3117,"value":6077},{"type":3112,"tag":3395,"props":9381,"children":9382},{"style":3474},[9383],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":9385,"children":9386},{"class":3397,"line":3021},[9387],{"type":3112,"tag":3395,"props":9388,"children":9389},{"style":3460},[9390],{"type":3117,"value":9391},"    \u002F\u002F Store the challenge in a KV store or DB\n",{"type":3112,"tag":3395,"props":9393,"children":9394},{"class":3397,"line":3658},[9395,9399,9404,9408,9412,9417,9421,9425,9430,9435,9440,9445,9449,9453],{"type":3112,"tag":3395,"props":9396,"children":9397},{"style":4657},[9398],{"type":3117,"value":5910},{"type":3112,"tag":3395,"props":9400,"children":9401},{"style":3631},[9402],{"type":3117,"value":9403}," useStorage",{"type":3112,"tag":3395,"props":9405,"children":9406},{"style":3540},[9407],{"type":3117,"value":7902},{"type":3112,"tag":3395,"props":9409,"children":9410},{"style":3474},[9411],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":9413,"children":9414},{"style":3631},[9415],{"type":3117,"value":9416},"setItem",{"type":3112,"tag":3395,"props":9418,"children":9419},{"style":3540},[9420],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":9422,"children":9423},{"style":3474},[9424],{"type":3117,"value":8095},{"type":3112,"tag":3395,"props":9426,"children":9427},{"style":3407},[9428],{"type":3117,"value":9429},"attempt:",{"type":3112,"tag":3395,"props":9431,"children":9432},{"style":3474},[9433],{"type":3117,"value":9434},"${",{"type":3112,"tag":3395,"props":9436,"children":9437},{"style":3469},[9438],{"type":3117,"value":9439},"attemptId",{"type":3112,"tag":3395,"props":9441,"children":9442},{"style":3474},[9443],{"type":3117,"value":9444},"}`",{"type":3112,"tag":3395,"props":9446,"children":9447},{"style":3474},[9448],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":9450,"children":9451},{"style":3469},[9452],{"type":3117,"value":9366},{"type":3112,"tag":3395,"props":9454,"children":9455},{"style":3540},[9456],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":9458,"children":9459},{"class":3397,"line":3667},[9460],{"type":3112,"tag":3395,"props":9461,"children":9462},{"style":3474},[9463],{"type":3117,"value":4735},{"type":3112,"tag":3395,"props":9465,"children":9466},{"class":3397,"line":3684},[9467,9471,9476,9480,9484,9488,9492,9496],{"type":3112,"tag":3395,"props":9468,"children":9469},{"style":3546},[9470],{"type":3117,"value":5859},{"type":3112,"tag":3395,"props":9472,"children":9473},{"style":3540},[9474],{"type":3117,"value":9475}," getChallenge",{"type":3112,"tag":3395,"props":9477,"children":9478},{"style":3474},[9479],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":9481,"children":9482},{"style":4489},[9483],{"type":3117,"value":5873},{"type":3112,"tag":3395,"props":9485,"children":9486},{"style":3474},[9487],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":9489,"children":9490},{"style":4489},[9491],{"type":3117,"value":9375},{"type":3112,"tag":3395,"props":9493,"children":9494},{"style":3474},[9495],{"type":3117,"value":6077},{"type":3112,"tag":3395,"props":9497,"children":9498},{"style":3474},[9499],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":9501,"children":9502},{"class":3397,"line":3017},[9503,9507,9511,9515,9519,9523,9527,9531,9536,9540,9544,9548,9552,9556,9560],{"type":3112,"tag":3395,"props":9504,"children":9505},{"style":3546},[9506],{"type":3117,"value":7627},{"type":3112,"tag":3395,"props":9508,"children":9509},{"style":3469},[9510],{"type":3117,"value":9366},{"type":3112,"tag":3395,"props":9512,"children":9513},{"style":3474},[9514],{"type":3117,"value":3628},{"type":3112,"tag":3395,"props":9516,"children":9517},{"style":4657},[9518],{"type":3117,"value":4913},{"type":3112,"tag":3395,"props":9520,"children":9521},{"style":3631},[9522],{"type":3117,"value":9403},{"type":3112,"tag":3395,"props":9524,"children":9525},{"style":3540},[9526],{"type":3117,"value":7902},{"type":3112,"tag":3395,"props":9528,"children":9529},{"style":3474},[9530],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":9532,"children":9533},{"style":3631},[9534],{"type":3117,"value":9535},"getItem",{"type":3112,"tag":3395,"props":9537,"children":9538},{"style":3540},[9539],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":9541,"children":9542},{"style":3474},[9543],{"type":3117,"value":8095},{"type":3112,"tag":3395,"props":9545,"children":9546},{"style":3407},[9547],{"type":3117,"value":9429},{"type":3112,"tag":3395,"props":9549,"children":9550},{"style":3474},[9551],{"type":3117,"value":9434},{"type":3112,"tag":3395,"props":9553,"children":9554},{"style":3469},[9555],{"type":3117,"value":9439},{"type":3112,"tag":3395,"props":9557,"children":9558},{"style":3474},[9559],{"type":3117,"value":9444},{"type":3112,"tag":3395,"props":9561,"children":9562},{"style":3540},[9563],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":9565,"children":9566},{"class":3397,"line":3013},[9567],{"type":3112,"tag":3395,"props":9568,"children":9569},{"emptyLinePlaceholder":1200},[9570],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":9572,"children":9573},{"class":3397,"line":3009},[9574],{"type":3112,"tag":3395,"props":9575,"children":9576},{"style":3460},[9577],{"type":3117,"value":9578},"    \u002F\u002F Make sure to always remove the attempt because they are single use only!\n",{"type":3112,"tag":3395,"props":9580,"children":9581},{"class":3397,"line":3846},[9582,9586,9590,9594,9598,9603,9607,9611,9615,9619,9623,9627],{"type":3112,"tag":3395,"props":9583,"children":9584},{"style":4657},[9585],{"type":3117,"value":5910},{"type":3112,"tag":3395,"props":9587,"children":9588},{"style":3631},[9589],{"type":3117,"value":9403},{"type":3112,"tag":3395,"props":9591,"children":9592},{"style":3540},[9593],{"type":3117,"value":7902},{"type":3112,"tag":3395,"props":9595,"children":9596},{"style":3474},[9597],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":9599,"children":9600},{"style":3631},[9601],{"type":3117,"value":9602},"removeItem",{"type":3112,"tag":3395,"props":9604,"children":9605},{"style":3540},[9606],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":9608,"children":9609},{"style":3474},[9610],{"type":3117,"value":8095},{"type":3112,"tag":3395,"props":9612,"children":9613},{"style":3407},[9614],{"type":3117,"value":9429},{"type":3112,"tag":3395,"props":9616,"children":9617},{"style":3474},[9618],{"type":3117,"value":9434},{"type":3112,"tag":3395,"props":9620,"children":9621},{"style":3469},[9622],{"type":3117,"value":9439},{"type":3112,"tag":3395,"props":9624,"children":9625},{"style":3474},[9626],{"type":3117,"value":9444},{"type":3112,"tag":3395,"props":9628,"children":9629},{"style":3540},[9630],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":9632,"children":9633},{"class":3397,"line":3100},[9634],{"type":3112,"tag":3395,"props":9635,"children":9636},{"emptyLinePlaceholder":1200},[9637],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":9639,"children":9640},{"class":3397,"line":3883},[9641,9645,9649,9653,9658],{"type":3112,"tag":3395,"props":9642,"children":9643},{"style":4657},[9644],{"type":3117,"value":7663},{"type":3112,"tag":3395,"props":9646,"children":9647},{"style":3540},[9648],{"type":3117,"value":4486},{"type":3112,"tag":3395,"props":9650,"children":9651},{"style":3474},[9652],{"type":3117,"value":8120},{"type":3112,"tag":3395,"props":9654,"children":9655},{"style":3469},[9656],{"type":3117,"value":9657},"challenge",{"type":3112,"tag":3395,"props":9659,"children":9660},{"style":3540},[9661],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":9663,"children":9664},{"class":3397,"line":3916},[9665,9669,9673,9677,9681,9685,9689,9693,9697,9701,9705,9709,9714,9718,9722],{"type":3112,"tag":3395,"props":9666,"children":9667},{"style":4657},[9668],{"type":3117,"value":7752},{"type":3112,"tag":3395,"props":9670,"children":9671},{"style":3631},[9672],{"type":3117,"value":7757},{"type":3112,"tag":3395,"props":9674,"children":9675},{"style":3540},[9676],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":9678,"children":9679},{"style":3474},[9680],{"type":3117,"value":7766},{"type":3112,"tag":3395,"props":9682,"children":9683},{"style":3540},[9684],{"type":3117,"value":7771},{"type":3112,"tag":3395,"props":9686,"children":9687},{"style":3474},[9688],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":9690,"children":9691},{"style":6995},[9692],{"type":3117,"value":7780},{"type":3112,"tag":3395,"props":9694,"children":9695},{"style":3474},[9696],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":9698,"children":9699},{"style":3540},[9700],{"type":3117,"value":7789},{"type":3112,"tag":3395,"props":9702,"children":9703},{"style":3474},[9704],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":9706,"children":9707},{"style":3474},[9708],{"type":3117,"value":4718},{"type":3112,"tag":3395,"props":9710,"children":9711},{"style":3407},[9712],{"type":3117,"value":9713},"Challenge expired",{"type":3112,"tag":3395,"props":9715,"children":9716},{"style":3474},[9717],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":9719,"children":9720},{"style":3474},[9721],{"type":3117,"value":7507},{"type":3112,"tag":3395,"props":9723,"children":9724},{"style":3540},[9725],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":9727,"children":9728},{"class":3397,"line":3971},[9729],{"type":3112,"tag":3395,"props":9730,"children":9731},{"emptyLinePlaceholder":1200},[9732],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":9734,"children":9735},{"class":3397,"line":3980},[9736,9740],{"type":3112,"tag":3395,"props":9737,"children":9738},{"style":4657},[9739],{"type":3117,"value":5998},{"type":3112,"tag":3395,"props":9741,"children":9742},{"style":3469},[9743],{"type":3117,"value":9744}," challenge\n",{"type":3112,"tag":3395,"props":9746,"children":9747},{"class":3397,"line":3005},[9748],{"type":3112,"tag":3395,"props":9749,"children":9750},{"style":3474},[9751],{"type":3117,"value":4735},{"type":3112,"tag":3395,"props":9753,"children":9754},{"class":3397,"line":4048},[9755,9759,9763,9767,9771,9775,9779,9784,9788],{"type":3112,"tag":3395,"props":9756,"children":9757},{"style":3546},[9758],{"type":3117,"value":5859},{"type":3112,"tag":3395,"props":9760,"children":9761},{"style":3540},[9762],{"type":3117,"value":5864},{"type":3112,"tag":3395,"props":9764,"children":9765},{"style":3474},[9766],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":9768,"children":9769},{"style":4489},[9770],{"type":3117,"value":5873},{"type":3112,"tag":3395,"props":9772,"children":9773},{"style":3474},[9774],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":9776,"children":9777},{"style":3474},[9778],{"type":3117,"value":3567},{"type":3112,"tag":3395,"props":9780,"children":9781},{"style":4489},[9782],{"type":3117,"value":9783}," authenticator",{"type":3112,"tag":3395,"props":9785,"children":9786},{"style":3474},[9787],{"type":3117,"value":4555},{"type":3112,"tag":3395,"props":9789,"children":9790},{"style":3474},[9791],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":9793,"children":9794},{"class":3397,"line":4318},[9795],{"type":3112,"tag":3395,"props":9796,"children":9797},{"style":3460},[9798],{"type":3117,"value":9799},"    \u002F\u002F ...\n",{"type":3112,"tag":3395,"props":9801,"children":9802},{"class":3397,"line":4326},[9803],{"type":3112,"tag":3395,"props":9804,"children":9805},{"style":3474},[9806],{"type":3117,"value":4735},{"type":3112,"tag":3395,"props":9808,"children":9809},{"class":3397,"line":4335},[9810,9814],{"type":3112,"tag":3395,"props":9811,"children":9812},{"style":3474},[9813],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":9815,"children":9816},{"style":3469},[9817],{"type":3117,"value":4837},{"type":3112,"tag":3119,"props":9819,"children":9820},{},[9821],{"type":3117,"value":9822},"On the frontend it is as simple as:",{"type":3112,"tag":3385,"props":9824,"children":9826},{"className":3523,"code":9825,"language":3525,"meta":2985,"style":2985},"\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",[9827],{"type":3112,"tag":3257,"props":9828,"children":9829},{"__ignoreMap":2985},[9830,9870,9916,9950,9983,9994,10034,10041,10075,10101,10150,10181,10188,10195,10219,10251,10278,10285,10300,10307,10322,10360,10420,10474,10489,10525,10580,10632,10647],{"type":3112,"tag":3395,"props":9831,"children":9832},{"class":3397,"line":3071},[9833,9837,9841,9845,9850,9854,9858,9862,9866],{"type":3112,"tag":3395,"props":9834,"children":9835},{"style":3474},[9836],{"type":3117,"value":3537},{"type":3112,"tag":3395,"props":9838,"children":9839},{"style":3540},[9840],{"type":3117,"value":3543},{"type":3112,"tag":3395,"props":9842,"children":9843},{"style":3546},[9844],{"type":3117,"value":3549},{"type":3112,"tag":3395,"props":9846,"children":9847},{"style":3546},[9848],{"type":3117,"value":9849}," lang",{"type":3112,"tag":3395,"props":9851,"children":9852},{"style":3474},[9853],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":9855,"children":9856},{"style":3474},[9857],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":9859,"children":9860},{"style":3407},[9861],{"type":3117,"value":4075},{"type":3112,"tag":3395,"props":9863,"children":9864},{"style":3474},[9865],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":9867,"children":9868},{"style":3474},[9869],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":9871,"children":9872},{"class":3397,"line":3037},[9873,9877,9881,9886,9890,9895,9899,9903,9908,9912],{"type":3112,"tag":3395,"props":9874,"children":9875},{"style":3546},[9876],{"type":3117,"value":3562},{"type":3112,"tag":3395,"props":9878,"children":9879},{"style":3474},[9880],{"type":3117,"value":3567},{"type":3112,"tag":3395,"props":9882,"children":9883},{"style":3469},[9884],{"type":3117,"value":9885}," register",{"type":3112,"tag":3395,"props":9887,"children":9888},{"style":3474},[9889],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":9891,"children":9892},{"style":3469},[9893],{"type":3117,"value":9894}," authenticate ",{"type":3112,"tag":3395,"props":9896,"children":9897},{"style":3474},[9898],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":9900,"children":9901},{"style":3474},[9902],{"type":3117,"value":3628},{"type":3112,"tag":3395,"props":9904,"children":9905},{"style":3631},[9906],{"type":3117,"value":9907}," useWebAuthn",{"type":3112,"tag":3395,"props":9909,"children":9910},{"style":3469},[9911],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":9913,"children":9914},{"style":3474},[9915],{"type":3117,"value":5321},{"type":3112,"tag":3395,"props":9917,"children":9918},{"class":3397,"line":3021},[9919,9924,9928,9932,9937,9941,9945],{"type":3112,"tag":3395,"props":9920,"children":9921},{"style":3540},[9922],{"type":3117,"value":9923},"  registerEndpoint",{"type":3112,"tag":3395,"props":9925,"children":9926},{"style":3474},[9927],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":9929,"children":9930},{"style":3474},[9931],{"type":3117,"value":4718},{"type":3112,"tag":3395,"props":9933,"children":9934},{"style":3407},[9935],{"type":3117,"value":9936},"\u002Fapi\u002Fwebauthn\u002Fregister",{"type":3112,"tag":3395,"props":9938,"children":9939},{"style":3474},[9940],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":9942,"children":9943},{"style":3474},[9944],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":9946,"children":9947},{"style":3460},[9948],{"type":3117,"value":9949}," \u002F\u002F Default\n",{"type":3112,"tag":3395,"props":9951,"children":9952},{"class":3397,"line":3658},[9953,9958,9962,9966,9971,9975,9979],{"type":3112,"tag":3395,"props":9954,"children":9955},{"style":3540},[9956],{"type":3117,"value":9957},"  authenticateEndpoint",{"type":3112,"tag":3395,"props":9959,"children":9960},{"style":3474},[9961],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":9963,"children":9964},{"style":3474},[9965],{"type":3117,"value":4718},{"type":3112,"tag":3395,"props":9967,"children":9968},{"style":3407},[9969],{"type":3117,"value":9970},"\u002Fapi\u002Fwebauthn\u002Fauthenticate",{"type":3112,"tag":3395,"props":9972,"children":9973},{"style":3474},[9974],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":9976,"children":9977},{"style":3474},[9978],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":9980,"children":9981},{"style":3460},[9982],{"type":3117,"value":9949},{"type":3112,"tag":3395,"props":9984,"children":9985},{"class":3397,"line":3667},[9986,9990],{"type":3112,"tag":3395,"props":9987,"children":9988},{"style":3474},[9989],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":9991,"children":9992},{"style":3469},[9993],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":9995,"children":9996},{"class":3397,"line":3684},[9997,10001,10005,10009,10013,10018,10022,10026,10030],{"type":3112,"tag":3395,"props":9998,"children":9999},{"style":3546},[10000],{"type":3117,"value":3562},{"type":3112,"tag":3395,"props":10002,"children":10003},{"style":3474},[10004],{"type":3117,"value":3567},{"type":3112,"tag":3395,"props":10006,"children":10007},{"style":3540},[10008],{"type":3117,"value":3600},{"type":3112,"tag":3395,"props":10010,"children":10011},{"style":3474},[10012],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":10014,"children":10015},{"style":3469},[10016],{"type":3117,"value":10017}," fetchUserSession ",{"type":3112,"tag":3395,"props":10019,"children":10020},{"style":3474},[10021],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":10023,"children":10024},{"style":3474},[10025],{"type":3117,"value":3628},{"type":3112,"tag":3395,"props":10027,"children":10028},{"style":3631},[10029],{"type":3117,"value":3634},{"type":3112,"tag":3395,"props":10031,"children":10032},{"style":3469},[10033],{"type":3117,"value":3639},{"type":3112,"tag":3395,"props":10035,"children":10036},{"class":3397,"line":3017},[10037],{"type":3112,"tag":3395,"props":10038,"children":10039},{"emptyLinePlaceholder":1200},[10040],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":10042,"children":10043},{"class":3397,"line":3013},[10044,10048,10053,10057,10062,10066,10071],{"type":3112,"tag":3395,"props":10045,"children":10046},{"style":3546},[10047],{"type":3117,"value":3562},{"type":3112,"tag":3395,"props":10049,"children":10050},{"style":3469},[10051],{"type":3117,"value":10052}," userName ",{"type":3112,"tag":3395,"props":10054,"children":10055},{"style":3474},[10056],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":10058,"children":10059},{"style":3631},[10060],{"type":3117,"value":10061}," ref",{"type":3112,"tag":3395,"props":10063,"children":10064},{"style":3469},[10065],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":10067,"children":10068},{"style":3474},[10069],{"type":3117,"value":10070},"''",{"type":3112,"tag":3395,"props":10072,"children":10073},{"style":3469},[10074],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":10076,"children":10077},{"class":3397,"line":3009},[10078,10083,10088,10093,10097],{"type":3112,"tag":3395,"props":10079,"children":10080},{"style":3546},[10081],{"type":3117,"value":10082},"async",{"type":3112,"tag":3395,"props":10084,"children":10085},{"style":3546},[10086],{"type":3117,"value":10087}," function",{"type":3112,"tag":3395,"props":10089,"children":10090},{"style":3631},[10091],{"type":3117,"value":10092}," signUp",{"type":3112,"tag":3395,"props":10094,"children":10095},{"style":3474},[10096],{"type":3117,"value":7902},{"type":3112,"tag":3395,"props":10098,"children":10099},{"style":3474},[10100],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":10102,"children":10103},{"class":3397,"line":3846},[10104,10109,10113,10117,10121,10125,10129,10133,10137,10142,10146],{"type":3112,"tag":3395,"props":10105,"children":10106},{"style":4657},[10107],{"type":3117,"value":10108},"  await",{"type":3112,"tag":3395,"props":10110,"children":10111},{"style":3631},[10112],{"type":3117,"value":9885},{"type":3112,"tag":3395,"props":10114,"children":10115},{"style":3540},[10116],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":10118,"children":10119},{"style":3474},[10120],{"type":3117,"value":7766},{"type":3112,"tag":3395,"props":10122,"children":10123},{"style":3540},[10124],{"type":3117,"value":8509},{"type":3112,"tag":3395,"props":10126,"children":10127},{"style":3474},[10128],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":10130,"children":10131},{"style":3469},[10132],{"type":3117,"value":8509},{"type":3112,"tag":3395,"props":10134,"children":10135},{"style":3474},[10136],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":10138,"children":10139},{"style":3469},[10140],{"type":3117,"value":10141},"value",{"type":3112,"tag":3395,"props":10143,"children":10144},{"style":3474},[10145],{"type":3117,"value":7507},{"type":3112,"tag":3395,"props":10147,"children":10148},{"style":3540},[10149],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":10151,"children":10152},{"class":3397,"line":3100},[10153,10158,10163,10167,10172,10176],{"type":3112,"tag":3395,"props":10154,"children":10155},{"style":3474},[10156],{"type":3117,"value":10157},"    .",{"type":3112,"tag":3395,"props":10159,"children":10160},{"style":3631},[10161],{"type":3117,"value":10162},"then",{"type":3112,"tag":3395,"props":10164,"children":10165},{"style":3540},[10166],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":10168,"children":10169},{"style":3469},[10170],{"type":3117,"value":10171},"fetchUserSession",{"type":3112,"tag":3395,"props":10173,"children":10174},{"style":3540},[10175],{"type":3117,"value":7740},{"type":3112,"tag":3395,"props":10177,"children":10178},{"style":3460},[10179],{"type":3117,"value":10180},"\u002F\u002F refetch the user session\n",{"type":3112,"tag":3395,"props":10182,"children":10183},{"class":3397,"line":3883},[10184],{"type":3112,"tag":3395,"props":10185,"children":10186},{"style":3474},[10187],{"type":3117,"value":4573},{"type":3112,"tag":3395,"props":10189,"children":10190},{"class":3397,"line":3916},[10191],{"type":3112,"tag":3395,"props":10192,"children":10193},{"emptyLinePlaceholder":1200},[10194],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":10196,"children":10197},{"class":3397,"line":3971},[10198,10202,10206,10211,10215],{"type":3112,"tag":3395,"props":10199,"children":10200},{"style":3546},[10201],{"type":3117,"value":10082},{"type":3112,"tag":3395,"props":10203,"children":10204},{"style":3546},[10205],{"type":3117,"value":10087},{"type":3112,"tag":3395,"props":10207,"children":10208},{"style":3631},[10209],{"type":3117,"value":10210}," signIn",{"type":3112,"tag":3395,"props":10212,"children":10213},{"style":3474},[10214],{"type":3117,"value":7902},{"type":3112,"tag":3395,"props":10216,"children":10217},{"style":3474},[10218],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":10220,"children":10221},{"class":3397,"line":3980},[10222,10226,10231,10235,10239,10243,10247],{"type":3112,"tag":3395,"props":10223,"children":10224},{"style":4657},[10225],{"type":3117,"value":10108},{"type":3112,"tag":3395,"props":10227,"children":10228},{"style":3631},[10229],{"type":3117,"value":10230}," authenticate",{"type":3112,"tag":3395,"props":10232,"children":10233},{"style":3540},[10234],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":10236,"children":10237},{"style":3469},[10238],{"type":3117,"value":7735},{"type":3112,"tag":3395,"props":10240,"children":10241},{"style":3474},[10242],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":10244,"children":10245},{"style":3469},[10246],{"type":3117,"value":10141},{"type":3112,"tag":3395,"props":10248,"children":10249},{"style":3540},[10250],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":10252,"children":10253},{"class":3397,"line":3005},[10254,10258,10262,10266,10270,10274],{"type":3112,"tag":3395,"props":10255,"children":10256},{"style":3474},[10257],{"type":3117,"value":10157},{"type":3112,"tag":3395,"props":10259,"children":10260},{"style":3631},[10261],{"type":3117,"value":10162},{"type":3112,"tag":3395,"props":10263,"children":10264},{"style":3540},[10265],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":10267,"children":10268},{"style":3469},[10269],{"type":3117,"value":10171},{"type":3112,"tag":3395,"props":10271,"children":10272},{"style":3540},[10273],{"type":3117,"value":7740},{"type":3112,"tag":3395,"props":10275,"children":10276},{"style":3460},[10277],{"type":3117,"value":10180},{"type":3112,"tag":3395,"props":10279,"children":10280},{"class":3397,"line":4048},[10281],{"type":3112,"tag":3395,"props":10282,"children":10283},{"style":3474},[10284],{"type":3117,"value":4573},{"type":3112,"tag":3395,"props":10286,"children":10287},{"class":3397,"line":4318},[10288,10292,10296],{"type":3112,"tag":3395,"props":10289,"children":10290},{"style":3474},[10291],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":10293,"children":10294},{"style":3540},[10295],{"type":3117,"value":3543},{"type":3112,"tag":3395,"props":10297,"children":10298},{"style":3474},[10299],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":10301,"children":10302},{"class":3397,"line":4326},[10303],{"type":3112,"tag":3395,"props":10304,"children":10305},{"emptyLinePlaceholder":1200},[10306],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":10308,"children":10309},{"class":3397,"line":4335},[10310,10314,10318],{"type":3112,"tag":3395,"props":10311,"children":10312},{"style":3474},[10313],{"type":3117,"value":3537},{"type":3112,"tag":3395,"props":10315,"children":10316},{"style":3540},[10317],{"type":3117,"value":3677},{"type":3112,"tag":3395,"props":10319,"children":10320},{"style":3474},[10321],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":10323,"children":10324},{"class":3397,"line":4343},[10325,10329,10334,10339,10343,10347,10352,10356],{"type":3112,"tag":3395,"props":10326,"children":10327},{"style":3474},[10328],{"type":3117,"value":3690},{"type":3112,"tag":3395,"props":10330,"children":10331},{"style":3540},[10332],{"type":3117,"value":10333},"form",{"type":3112,"tag":3395,"props":10335,"children":10336},{"style":3546},[10337],{"type":3117,"value":10338}," @submit.prevent",{"type":3112,"tag":3395,"props":10340,"children":10341},{"style":3474},[10342],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":10344,"children":10345},{"style":3474},[10346],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":10348,"children":10349},{"style":3407},[10350],{"type":3117,"value":10351},"signUp",{"type":3112,"tag":3395,"props":10353,"children":10354},{"style":3474},[10355],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":10357,"children":10358},{"style":3474},[10359],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":10361,"children":10362},{"class":3397,"line":4384},[10363,10367,10372,10377,10381,10385,10389,10393,10398,10402,10406,10411,10415],{"type":3112,"tag":3395,"props":10364,"children":10365},{"style":3474},[10366],{"type":3117,"value":3730},{"type":3112,"tag":3395,"props":10368,"children":10369},{"style":3540},[10370],{"type":3117,"value":10371},"input",{"type":3112,"tag":3395,"props":10373,"children":10374},{"style":3546},[10375],{"type":3117,"value":10376}," v-model",{"type":3112,"tag":3395,"props":10378,"children":10379},{"style":3474},[10380],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":10382,"children":10383},{"style":3474},[10384],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":10386,"children":10387},{"style":3407},[10388],{"type":3117,"value":7735},{"type":3112,"tag":3395,"props":10390,"children":10391},{"style":3474},[10392],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":10394,"children":10395},{"style":3546},[10396],{"type":3117,"value":10397}," placeholder",{"type":3112,"tag":3395,"props":10399,"children":10400},{"style":3474},[10401],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":10403,"children":10404},{"style":3474},[10405],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":10407,"children":10408},{"style":3407},[10409],{"type":3117,"value":10410},"Email or username",{"type":3112,"tag":3395,"props":10412,"children":10413},{"style":3474},[10414],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":10416,"children":10417},{"style":3474},[10418],{"type":3117,"value":10419}," \u002F>\n",{"type":3112,"tag":3395,"props":10421,"children":10422},{"class":3397,"line":4392},[10423,10427,10431,10436,10440,10444,10449,10453,10457,10462,10466,10470],{"type":3112,"tag":3395,"props":10424,"children":10425},{"style":3474},[10426],{"type":3117,"value":3730},{"type":3112,"tag":3395,"props":10428,"children":10429},{"style":3540},[10430],{"type":3117,"value":3800},{"type":3112,"tag":3395,"props":10432,"children":10433},{"style":3546},[10434],{"type":3117,"value":10435}," type",{"type":3112,"tag":3395,"props":10437,"children":10438},{"style":3474},[10439],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":10441,"children":10442},{"style":3474},[10443],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":10445,"children":10446},{"style":3407},[10447],{"type":3117,"value":10448},"submit",{"type":3112,"tag":3395,"props":10450,"children":10451},{"style":3474},[10452],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":10454,"children":10455},{"style":3474},[10456],{"type":3117,"value":3739},{"type":3112,"tag":3395,"props":10458,"children":10459},{"style":3469},[10460],{"type":3117,"value":10461},"Sign up",{"type":3112,"tag":3395,"props":10463,"children":10464},{"style":3474},[10465],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":10467,"children":10468},{"style":3540},[10469],{"type":3117,"value":3800},{"type":3112,"tag":3395,"props":10471,"children":10472},{"style":3474},[10473],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":10475,"children":10476},{"class":3397,"line":4401},[10477,10481,10485],{"type":3112,"tag":3395,"props":10478,"children":10479},{"style":3474},[10480],{"type":3117,"value":3852},{"type":3112,"tag":3395,"props":10482,"children":10483},{"style":3540},[10484],{"type":3117,"value":10333},{"type":3112,"tag":3395,"props":10486,"children":10487},{"style":3474},[10488],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":10490,"children":10491},{"class":3397,"line":4409},[10492,10496,10500,10504,10508,10512,10517,10521],{"type":3112,"tag":3395,"props":10493,"children":10494},{"style":3474},[10495],{"type":3117,"value":3690},{"type":3112,"tag":3395,"props":10497,"children":10498},{"style":3540},[10499],{"type":3117,"value":10333},{"type":3112,"tag":3395,"props":10501,"children":10502},{"style":3546},[10503],{"type":3117,"value":10338},{"type":3112,"tag":3395,"props":10505,"children":10506},{"style":3474},[10507],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":10509,"children":10510},{"style":3474},[10511],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":10513,"children":10514},{"style":3407},[10515],{"type":3117,"value":10516},"signIn",{"type":3112,"tag":3395,"props":10518,"children":10519},{"style":3474},[10520],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":10522,"children":10523},{"style":3474},[10524],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":10526,"children":10527},{"class":3397,"line":4446},[10528,10532,10536,10540,10544,10548,10552,10556,10560,10564,10568,10572,10576],{"type":3112,"tag":3395,"props":10529,"children":10530},{"style":3474},[10531],{"type":3117,"value":3730},{"type":3112,"tag":3395,"props":10533,"children":10534},{"style":3540},[10535],{"type":3117,"value":10371},{"type":3112,"tag":3395,"props":10537,"children":10538},{"style":3546},[10539],{"type":3117,"value":10376},{"type":3112,"tag":3395,"props":10541,"children":10542},{"style":3474},[10543],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":10545,"children":10546},{"style":3474},[10547],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":10549,"children":10550},{"style":3407},[10551],{"type":3117,"value":7735},{"type":3112,"tag":3395,"props":10553,"children":10554},{"style":3474},[10555],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":10557,"children":10558},{"style":3546},[10559],{"type":3117,"value":10397},{"type":3112,"tag":3395,"props":10561,"children":10562},{"style":3474},[10563],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":10565,"children":10566},{"style":3474},[10567],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":10569,"children":10570},{"style":3407},[10571],{"type":3117,"value":10410},{"type":3112,"tag":3395,"props":10573,"children":10574},{"style":3474},[10575],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":10577,"children":10578},{"style":3474},[10579],{"type":3117,"value":10419},{"type":3112,"tag":3395,"props":10581,"children":10582},{"class":3397,"line":4454},[10583,10587,10591,10595,10599,10603,10607,10611,10615,10620,10624,10628],{"type":3112,"tag":3395,"props":10584,"children":10585},{"style":3474},[10586],{"type":3117,"value":3730},{"type":3112,"tag":3395,"props":10588,"children":10589},{"style":3540},[10590],{"type":3117,"value":3800},{"type":3112,"tag":3395,"props":10592,"children":10593},{"style":3546},[10594],{"type":3117,"value":10435},{"type":3112,"tag":3395,"props":10596,"children":10597},{"style":3474},[10598],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":10600,"children":10601},{"style":3474},[10602],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":10604,"children":10605},{"style":3407},[10606],{"type":3117,"value":10448},{"type":3112,"tag":3395,"props":10608,"children":10609},{"style":3474},[10610],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":10612,"children":10613},{"style":3474},[10614],{"type":3117,"value":3739},{"type":3112,"tag":3395,"props":10616,"children":10617},{"style":3469},[10618],{"type":3117,"value":10619},"Sign in",{"type":3112,"tag":3395,"props":10621,"children":10622},{"style":3474},[10623],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":10625,"children":10626},{"style":3540},[10627],{"type":3117,"value":3800},{"type":3112,"tag":3395,"props":10629,"children":10630},{"style":3474},[10631],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":10633,"children":10634},{"class":3397,"line":4463},[10635,10639,10643],{"type":3112,"tag":3395,"props":10636,"children":10637},{"style":3474},[10638],{"type":3117,"value":3852},{"type":3112,"tag":3395,"props":10640,"children":10641},{"style":3540},[10642],{"type":3117,"value":10333},{"type":3112,"tag":3395,"props":10644,"children":10645},{"style":3474},[10646],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":10648,"children":10649},{"class":3397,"line":4471},[10650,10654,10658],{"type":3112,"tag":3395,"props":10651,"children":10652},{"style":3474},[10653],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":10655,"children":10656},{"style":3540},[10657],{"type":3117,"value":3677},{"type":3112,"tag":3395,"props":10659,"children":10660},{"style":3474},[10661],{"type":3117,"value":3554},{"type":3112,"tag":3119,"props":10663,"children":10664},{},[10665,10667,10678],{"type":3117,"value":10666},"Take a look at the ",{"type":3112,"tag":3123,"props":10668,"children":10671},{"href":10669,"rel":10670},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fcomponents\u002FWebAuthnModal.vue",[3127],[10672],{"type":3112,"tag":3257,"props":10673,"children":10675},{"className":10674},[],[10676],{"type":3117,"value":10677},"WebAuthnModal.vue",{"type":3117,"value":10679}," for a full example.",{"type":3112,"tag":5501,"props":10681,"children":10683},{"id":10682},"demo",[10684],{"type":3117,"value":10685},"Demo",{"type":3112,"tag":3119,"props":10687,"children":10688},{},[10689,10691,10697,10699,10706,10707,10714],{"type":3117,"value":10690},"A full demo can be found on ",{"type":3112,"tag":3123,"props":10692,"children":10695},{"href":10693,"rel":10694},"https:\u002F\u002Ftodo-passkeys.nuxt.dev",[3127],[10696],{"type":3117,"value":10693},{"type":3117,"value":10698}," using ",{"type":3112,"tag":3123,"props":10700,"children":10703},{"href":10701,"rel":10702},"https:\u002F\u002Form.drizzle.team\u002F",[3127],[10704],{"type":3117,"value":10705},"Drizzle ORM",{"type":3117,"value":6227},{"type":3112,"tag":3123,"props":10708,"children":10711},{"href":10709,"rel":10710},"https:\u002F\u002Fhub.nuxt.com",[3127],[10712],{"type":3117,"value":10713},"NuxtHub",{"type":3117,"value":3350},{"type":3112,"tag":3119,"props":10716,"children":10717},{},[10718,10720,10725],{"type":3117,"value":10719},"The source code of the demo is available on ",{"type":3112,"tag":3123,"props":10721,"children":10723},{"href":3197,"rel":10722},[3127],[10724],{"type":3117,"value":3197},{"type":3117,"value":3350},{"type":3112,"tag":3515,"props":10727,"children":10729},{"id":10728},"extend-session",[10730],{"type":3117,"value":10731},"Extend Session",{"type":3112,"tag":3119,"props":10733,"children":10734},{},[10735],{"type":3117,"value":10736},"We leverage hooks to let you extend the session data with your own data or log when the user clears the session.",{"type":3112,"tag":3385,"props":10738,"children":10740},{"className":4073,"code":10739,"language":4075,"meta":2985,"style":2985},"\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",[10741],{"type":3112,"tag":3257,"props":10742,"children":10743},{"__ignoreMap":2985},[10744,10752,10784,10792,10800,10871,10879,10887,10895,10907,10914,10922,10989,10997,11008],{"type":3112,"tag":3395,"props":10745,"children":10746},{"class":3397,"line":3071},[10747],{"type":3112,"tag":3395,"props":10748,"children":10749},{"style":3460},[10750],{"type":3117,"value":10751},"\u002F\u002F server\u002Fplugins\u002Fsession.ts\n",{"type":3112,"tag":3395,"props":10753,"children":10754},{"class":3397,"line":3037},[10755,10759,10763,10768,10772,10776,10780],{"type":3112,"tag":3395,"props":10756,"children":10757},{"style":4657},[10758],{"type":3117,"value":5191},{"type":3112,"tag":3395,"props":10760,"children":10761},{"style":4657},[10762],{"type":3117,"value":5306},{"type":3112,"tag":3395,"props":10764,"children":10765},{"style":3631},[10766],{"type":3117,"value":10767}," defineNitroPlugin",{"type":3112,"tag":3395,"props":10769,"children":10770},{"style":3469},[10771],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":10773,"children":10774},{"style":3474},[10775],{"type":3117,"value":7902},{"type":3112,"tag":3395,"props":10777,"children":10778},{"style":3546},[10779],{"type":3117,"value":4363},{"type":3112,"tag":3395,"props":10781,"children":10782},{"style":3474},[10783],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":10785,"children":10786},{"class":3397,"line":3021},[10787],{"type":3112,"tag":3395,"props":10788,"children":10789},{"style":3460},[10790],{"type":3117,"value":10791},"  \u002F\u002F Called when the session is fetched during SSR for the Vue composable (\u002Fapi\u002F_auth\u002Fsession)\n",{"type":3112,"tag":3395,"props":10793,"children":10794},{"class":3397,"line":3658},[10795],{"type":3112,"tag":3395,"props":10796,"children":10797},{"style":3460},[10798],{"type":3117,"value":10799},"  \u002F\u002F Or when we call useUserSession().fetch()\n",{"type":3112,"tag":3395,"props":10801,"children":10802},{"class":3397,"line":3667},[10803,10808,10812,10817,10821,10825,10830,10834,10838,10843,10847,10851,10855,10859,10863,10867],{"type":3112,"tag":3395,"props":10804,"children":10805},{"style":3469},[10806],{"type":3117,"value":10807},"  sessionHooks",{"type":3112,"tag":3395,"props":10809,"children":10810},{"style":3474},[10811],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":10813,"children":10814},{"style":3631},[10815],{"type":3117,"value":10816},"hook",{"type":3112,"tag":3395,"props":10818,"children":10819},{"style":3540},[10820],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":10822,"children":10823},{"style":3474},[10824],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":10826,"children":10827},{"style":3407},[10828],{"type":3117,"value":10829},"fetch",{"type":3112,"tag":3395,"props":10831,"children":10832},{"style":3474},[10833],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":10835,"children":10836},{"style":3474},[10837],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":10839,"children":10840},{"style":3546},[10841],{"type":3117,"value":10842}," async",{"type":3112,"tag":3395,"props":10844,"children":10845},{"style":3474},[10846],{"type":3117,"value":4486},{"type":3112,"tag":3395,"props":10848,"children":10849},{"style":4489},[10850],{"type":3117,"value":7672},{"type":3112,"tag":3395,"props":10852,"children":10853},{"style":3474},[10854],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":10856,"children":10857},{"style":4489},[10858],{"type":3117,"value":7587},{"type":3112,"tag":3395,"props":10860,"children":10861},{"style":3474},[10862],{"type":3117,"value":6077},{"type":3112,"tag":3395,"props":10864,"children":10865},{"style":3546},[10866],{"type":3117,"value":4363},{"type":3112,"tag":3395,"props":10868,"children":10869},{"style":3474},[10870],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":10872,"children":10873},{"class":3397,"line":3684},[10874],{"type":3112,"tag":3395,"props":10875,"children":10876},{"style":3460},[10877],{"type":3117,"value":10878},"    \u002F\u002F extend User Session by calling your database\n",{"type":3112,"tag":3395,"props":10880,"children":10881},{"class":3397,"line":3017},[10882],{"type":3112,"tag":3395,"props":10883,"children":10884},{"style":3460},[10885],{"type":3117,"value":10886},"    \u002F\u002F or\n",{"type":3112,"tag":3395,"props":10888,"children":10889},{"class":3397,"line":3013},[10890],{"type":3112,"tag":3395,"props":10891,"children":10892},{"style":3460},[10893],{"type":3117,"value":10894},"    \u002F\u002F throw createError({ ... }) if session is invalid for example\n",{"type":3112,"tag":3395,"props":10896,"children":10897},{"class":3397,"line":3009},[10898,10903],{"type":3112,"tag":3395,"props":10899,"children":10900},{"style":3474},[10901],{"type":3117,"value":10902},"  }",{"type":3112,"tag":3395,"props":10904,"children":10905},{"style":3540},[10906],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":10908,"children":10909},{"class":3397,"line":3846},[10910],{"type":3112,"tag":3395,"props":10911,"children":10912},{"emptyLinePlaceholder":1200},[10913],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":10915,"children":10916},{"class":3397,"line":3100},[10917],{"type":3112,"tag":3395,"props":10918,"children":10919},{"style":3460},[10920],{"type":3117,"value":10921},"  \u002F\u002F Called when we call useUserSession().clear() or clearUserSession(event)\n",{"type":3112,"tag":3395,"props":10923,"children":10924},{"class":3397,"line":3883},[10925,10929,10933,10937,10941,10945,10949,10953,10957,10961,10965,10969,10973,10977,10981,10985],{"type":3112,"tag":3395,"props":10926,"children":10927},{"style":3469},[10928],{"type":3117,"value":10807},{"type":3112,"tag":3395,"props":10930,"children":10931},{"style":3474},[10932],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":10934,"children":10935},{"style":3631},[10936],{"type":3117,"value":10816},{"type":3112,"tag":3395,"props":10938,"children":10939},{"style":3540},[10940],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":10942,"children":10943},{"style":3474},[10944],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":10946,"children":10947},{"style":3407},[10948],{"type":3117,"value":3818},{"type":3112,"tag":3395,"props":10950,"children":10951},{"style":3474},[10952],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":10954,"children":10955},{"style":3474},[10956],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":10958,"children":10959},{"style":3546},[10960],{"type":3117,"value":10842},{"type":3112,"tag":3395,"props":10962,"children":10963},{"style":3474},[10964],{"type":3117,"value":4486},{"type":3112,"tag":3395,"props":10966,"children":10967},{"style":4489},[10968],{"type":3117,"value":7672},{"type":3112,"tag":3395,"props":10970,"children":10971},{"style":3474},[10972],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":10974,"children":10975},{"style":4489},[10976],{"type":3117,"value":7587},{"type":3112,"tag":3395,"props":10978,"children":10979},{"style":3474},[10980],{"type":3117,"value":6077},{"type":3112,"tag":3395,"props":10982,"children":10983},{"style":3546},[10984],{"type":3117,"value":4363},{"type":3112,"tag":3395,"props":10986,"children":10987},{"style":3474},[10988],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":10990,"children":10991},{"class":3397,"line":3916},[10992],{"type":3112,"tag":3395,"props":10993,"children":10994},{"style":3460},[10995],{"type":3117,"value":10996},"    \u002F\u002F Log that user logged out\n",{"type":3112,"tag":3395,"props":10998,"children":10999},{"class":3397,"line":3971},[11000,11004],{"type":3112,"tag":3395,"props":11001,"children":11002},{"style":3474},[11003],{"type":3117,"value":10902},{"type":3112,"tag":3395,"props":11005,"children":11006},{"style":3540},[11007],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":11009,"children":11010},{"class":3397,"line":3980},[11011,11015],{"type":3112,"tag":3395,"props":11012,"children":11013},{"style":3474},[11014],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":11016,"children":11017},{"style":3469},[11018],{"type":3117,"value":4837},{"type":3112,"tag":3203,"props":11020,"children":11022},{"id":11021},"server-side-rendering",[11023],{"type":3117,"value":11024},"Server-Side Rendering",{"type":3112,"tag":3119,"props":11026,"children":11027},{},[11028,11030,11036,11038],{"type":3117,"value":11029},"You can make authenticated requests both from the client and the server. However, you must use ",{"type":3112,"tag":3257,"props":11031,"children":11033},{"className":11032},[],[11034],{"type":3117,"value":11035},"useRequestFetch()",{"type":3117,"value":11037}," to make authenticated requests during SSR if you are not using ",{"type":3112,"tag":3257,"props":11039,"children":11041},{"className":11040},[],[11042],{"type":3117,"value":11043},"useFetch()",{"type":3112,"tag":3385,"props":11045,"children":11047},{"className":3523,"code":11046,"language":3525,"meta":2985,"style":2985},"\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",[11048],{"type":3112,"tag":3257,"props":11049,"children":11050},{"__ignoreMap":2985},[11051,11090,11098,11188,11195,11203,11255],{"type":3112,"tag":3395,"props":11052,"children":11053},{"class":3397,"line":3071},[11054,11058,11062,11066,11070,11074,11078,11082,11086],{"type":3112,"tag":3395,"props":11055,"children":11056},{"style":3474},[11057],{"type":3117,"value":3537},{"type":3112,"tag":3395,"props":11059,"children":11060},{"style":3540},[11061],{"type":3117,"value":3543},{"type":3112,"tag":3395,"props":11063,"children":11064},{"style":3546},[11065],{"type":3117,"value":3549},{"type":3112,"tag":3395,"props":11067,"children":11068},{"style":3546},[11069],{"type":3117,"value":9849},{"type":3112,"tag":3395,"props":11071,"children":11072},{"style":3474},[11073],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":11075,"children":11076},{"style":3474},[11077],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":11079,"children":11080},{"style":3407},[11081],{"type":3117,"value":4075},{"type":3112,"tag":3395,"props":11083,"children":11084},{"style":3474},[11085],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":11087,"children":11088},{"style":3474},[11089],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":11091,"children":11092},{"class":3397,"line":3037},[11093],{"type":3112,"tag":3395,"props":11094,"children":11095},{"style":3460},[11096],{"type":3117,"value":11097},"\u002F\u002F When using useAsyncData\n",{"type":3112,"tag":3395,"props":11099,"children":11100},{"class":3397,"line":3021},[11101,11105,11109,11114,11118,11122,11126,11131,11135,11139,11144,11148,11152,11156,11160,11165,11170,11174,11179,11183],{"type":3112,"tag":3395,"props":11102,"children":11103},{"style":3546},[11104],{"type":3117,"value":3562},{"type":3112,"tag":3395,"props":11106,"children":11107},{"style":3474},[11108],{"type":3117,"value":3567},{"type":3112,"tag":3395,"props":11110,"children":11111},{"style":3469},[11112],{"type":3117,"value":11113}," data ",{"type":3112,"tag":3395,"props":11115,"children":11116},{"style":3474},[11117],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":11119,"children":11120},{"style":3474},[11121],{"type":3117,"value":3628},{"type":3112,"tag":3395,"props":11123,"children":11124},{"style":4657},[11125],{"type":3117,"value":4913},{"type":3112,"tag":3395,"props":11127,"children":11128},{"style":3631},[11129],{"type":3117,"value":11130}," useAsyncData",{"type":3112,"tag":3395,"props":11132,"children":11133},{"style":3469},[11134],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":11136,"children":11137},{"style":3474},[11138],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":11140,"children":11141},{"style":3407},[11142],{"type":3117,"value":11143},"team",{"type":3112,"tag":3395,"props":11145,"children":11146},{"style":3474},[11147],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":11149,"children":11150},{"style":3474},[11151],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":11153,"children":11154},{"style":3474},[11155],{"type":3117,"value":4358},{"type":3112,"tag":3395,"props":11157,"children":11158},{"style":3546},[11159],{"type":3117,"value":4363},{"type":3112,"tag":3395,"props":11161,"children":11162},{"style":3631},[11163],{"type":3117,"value":11164}," useRequestFetch",{"type":3112,"tag":3395,"props":11166,"children":11167},{"style":3469},[11168],{"type":3117,"value":11169},"()(",{"type":3112,"tag":3395,"props":11171,"children":11172},{"style":3474},[11173],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":11175,"children":11176},{"style":3407},[11177],{"type":3117,"value":11178},"\u002Fapi\u002Fprotected-endpoint",{"type":3112,"tag":3395,"props":11180,"children":11181},{"style":3474},[11182],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":11184,"children":11185},{"style":3469},[11186],{"type":3117,"value":11187},"))\n",{"type":3112,"tag":3395,"props":11189,"children":11190},{"class":3397,"line":3658},[11191],{"type":3112,"tag":3395,"props":11192,"children":11193},{"emptyLinePlaceholder":1200},[11194],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":11196,"children":11197},{"class":3397,"line":3667},[11198],{"type":3112,"tag":3395,"props":11199,"children":11200},{"style":3460},[11201],{"type":3117,"value":11202},"\u002F\u002F useFetch will automatically use useRequestFetch during SSR\n",{"type":3112,"tag":3395,"props":11204,"children":11205},{"class":3397,"line":3684},[11206,11210,11214,11218,11222,11226,11230,11235,11239,11243,11247,11251],{"type":3112,"tag":3395,"props":11207,"children":11208},{"style":3546},[11209],{"type":3117,"value":3562},{"type":3112,"tag":3395,"props":11211,"children":11212},{"style":3474},[11213],{"type":3117,"value":3567},{"type":3112,"tag":3395,"props":11215,"children":11216},{"style":3469},[11217],{"type":3117,"value":11113},{"type":3112,"tag":3395,"props":11219,"children":11220},{"style":3474},[11221],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":11223,"children":11224},{"style":3474},[11225],{"type":3117,"value":3628},{"type":3112,"tag":3395,"props":11227,"children":11228},{"style":4657},[11229],{"type":3117,"value":4913},{"type":3112,"tag":3395,"props":11231,"children":11232},{"style":3631},[11233],{"type":3117,"value":11234}," useFetch",{"type":3112,"tag":3395,"props":11236,"children":11237},{"style":3469},[11238],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":11240,"children":11241},{"style":3474},[11242],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":11244,"children":11245},{"style":3407},[11246],{"type":3117,"value":11178},{"type":3112,"tag":3395,"props":11248,"children":11249},{"style":3474},[11250],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":11252,"children":11253},{"style":3469},[11254],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":11256,"children":11257},{"class":3397,"line":3017},[11258,11262,11266],{"type":3112,"tag":3395,"props":11259,"children":11260},{"style":3474},[11261],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":11263,"children":11264},{"style":3540},[11265],{"type":3117,"value":3543},{"type":3112,"tag":3395,"props":11267,"children":11268},{"style":3474},[11269],{"type":3117,"value":3554},{"type":3112,"tag":4575,"props":11271,"children":11272},{},[11273],{"type":3112,"tag":3119,"props":11274,"children":11275},{},[11276,11278,11285,11287,11292],{"type":3117,"value":11277},"There's ",{"type":3112,"tag":3123,"props":11279,"children":11282},{"href":11280,"rel":11281},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F24813",[3127],[11283],{"type":3117,"value":11284},"an open issue",{"type":3117,"value":11286}," to include credentials in ",{"type":3112,"tag":3257,"props":11288,"children":11290},{"className":11289},[],[11291],{"type":3117,"value":634},{"type":3117,"value":11293}," in Nuxt.",{"type":3112,"tag":3203,"props":11295,"children":11297},{"id":11296},"hybrid-rendering",[11298],{"type":3117,"value":3219},{"type":3112,"tag":3119,"props":11300,"children":11301},{},[11302,11304,11317],{"type":3117,"value":11303},"When using ",{"type":3112,"tag":3123,"props":11305,"children":11308},{"href":11306,"rel":11307},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fguide\u002Fconcepts\u002Frendering#hybrid-rendering",[3127],[11309,11311],{"type":3117,"value":11310},"Nuxt ",{"type":3112,"tag":3257,"props":11312,"children":11314},{"className":11313},[],[11315],{"type":3117,"value":11316},"routeRules",{"type":3117,"value":11318}," 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":3112,"tag":3119,"props":11320,"children":11321},{},[11322],{"type":3117,"value":11323},"This is because the user session is stored in a secure cookie and cannot be accessed during prerendering.",{"type":3112,"tag":3119,"props":11325,"children":11326},{},[11327],{"type":3112,"tag":4066,"props":11328,"children":11329},{},[11330],{"type":3117,"value":11331},"This means that you should not rely on the user session during prerendering.",{"type":3112,"tag":3119,"props":11333,"children":11334},{},[11335,11337,11343,11345,11350],{"type":3117,"value":11336},"You may also choose to instruct Nuxt Auth Utils to fetch the user session only on the client side, with the ",{"type":3112,"tag":3257,"props":11338,"children":11340},{"className":11339},[],[11341],{"type":3117,"value":11342},"loadStrategy",{"type":3117,"value":11344}," option in your ",{"type":3112,"tag":3257,"props":11346,"children":11348},{"className":11347},[],[11349],{"type":3117,"value":233},{"type":3117,"value":4134},{"type":3112,"tag":3385,"props":11352,"children":11354},{"className":4073,"code":11353,"language":4075,"meta":2985,"style":2985},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'client-only'\n  }\n})\n",[11355],{"type":3112,"tag":3257,"props":11356,"children":11357},{"__ignoreMap":2985},[11358,11381,11396,11421,11428],{"type":3112,"tag":3395,"props":11359,"children":11360},{"class":3397,"line":3071},[11361,11365,11369,11373,11377],{"type":3112,"tag":3395,"props":11362,"children":11363},{"style":4657},[11364],{"type":3117,"value":5191},{"type":3112,"tag":3395,"props":11366,"children":11367},{"style":4657},[11368],{"type":3117,"value":5306},{"type":3112,"tag":3395,"props":11370,"children":11371},{"style":3631},[11372],{"type":3117,"value":5311},{"type":3112,"tag":3395,"props":11374,"children":11375},{"style":3469},[11376],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":11378,"children":11379},{"style":3474},[11380],{"type":3117,"value":5321},{"type":3112,"tag":3395,"props":11382,"children":11383},{"class":3397,"line":3037},[11384,11388,11392],{"type":3112,"tag":3395,"props":11385,"children":11386},{"style":3540},[11387],{"type":3117,"value":6581},{"type":3112,"tag":3395,"props":11389,"children":11390},{"style":3474},[11391],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":11393,"children":11394},{"style":3474},[11395],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":11397,"children":11398},{"class":3397,"line":3021},[11399,11404,11408,11412,11417],{"type":3112,"tag":3395,"props":11400,"children":11401},{"style":3540},[11402],{"type":3117,"value":11403},"    loadStrategy",{"type":3112,"tag":3395,"props":11405,"children":11406},{"style":3474},[11407],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":11409,"children":11410},{"style":3474},[11411],{"type":3117,"value":4718},{"type":3112,"tag":3395,"props":11413,"children":11414},{"style":3407},[11415],{"type":3117,"value":11416},"client-only",{"type":3112,"tag":3395,"props":11418,"children":11419},{"style":3474},[11420],{"type":3117,"value":4727},{"type":3112,"tag":3395,"props":11422,"children":11423},{"class":3397,"line":3658},[11424],{"type":3112,"tag":3395,"props":11425,"children":11426},{"style":3474},[11427],{"type":3117,"value":5095},{"type":3112,"tag":3395,"props":11429,"children":11430},{"class":3397,"line":3667},[11431,11435],{"type":3112,"tag":3395,"props":11432,"children":11433},{"style":3474},[11434],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":11436,"children":11437},{"style":3469},[11438],{"type":3117,"value":4837},{"type":3112,"tag":3119,"props":11440,"children":11441},{},[11442,11444,11449,11451,11456,11457,11463],{"type":3117,"value":11443},"When using the ",{"type":3112,"tag":3257,"props":11445,"children":11447},{"className":11446},[],[11448],{"type":3117,"value":11416},{"type":3117,"value":11450}," load strategy, the user session can still be manually fetched on the server side by calling ",{"type":3112,"tag":3257,"props":11452,"children":11454},{"className":11453},[],[11455],{"type":3117,"value":10829},{"type":3117,"value":7342},{"type":3112,"tag":3257,"props":11458,"children":11460},{"className":11459},[],[11461],{"type":3117,"value":11462},"useUserSession",{"type":3117,"value":11464}," composable.",{"type":3112,"tag":3515,"props":11466,"children":11468},{"id":11467},"disable-session-loading",[11469],{"type":3117,"value":11470},"Disable session loading",{"type":3112,"tag":3119,"props":11472,"children":11473},{},[11474,11476,11481,11482,11487],{"type":3117,"value":11475},"You may also choose to disable session loading entirely, with the ",{"type":3112,"tag":3257,"props":11477,"children":11479},{"className":11478},[],[11480],{"type":3117,"value":11342},{"type":3117,"value":11344},{"type":3112,"tag":3257,"props":11483,"children":11485},{"className":11484},[],[11486],{"type":3117,"value":233},{"type":3117,"value":4134},{"type":3112,"tag":3385,"props":11489,"children":11491},{"className":4073,"code":11490,"language":4075,"meta":2985,"style":2985},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'none'\n  }\n})\n",[11492],{"type":3112,"tag":3257,"props":11493,"children":11494},{"__ignoreMap":2985},[11495,11518,11533,11557,11564],{"type":3112,"tag":3395,"props":11496,"children":11497},{"class":3397,"line":3071},[11498,11502,11506,11510,11514],{"type":3112,"tag":3395,"props":11499,"children":11500},{"style":4657},[11501],{"type":3117,"value":5191},{"type":3112,"tag":3395,"props":11503,"children":11504},{"style":4657},[11505],{"type":3117,"value":5306},{"type":3112,"tag":3395,"props":11507,"children":11508},{"style":3631},[11509],{"type":3117,"value":5311},{"type":3112,"tag":3395,"props":11511,"children":11512},{"style":3469},[11513],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":11515,"children":11516},{"style":3474},[11517],{"type":3117,"value":5321},{"type":3112,"tag":3395,"props":11519,"children":11520},{"class":3397,"line":3037},[11521,11525,11529],{"type":3112,"tag":3395,"props":11522,"children":11523},{"style":3540},[11524],{"type":3117,"value":6581},{"type":3112,"tag":3395,"props":11526,"children":11527},{"style":3474},[11528],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":11530,"children":11531},{"style":3474},[11532],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":11534,"children":11535},{"class":3397,"line":3021},[11536,11540,11544,11548,11553],{"type":3112,"tag":3395,"props":11537,"children":11538},{"style":3540},[11539],{"type":3117,"value":11403},{"type":3112,"tag":3395,"props":11541,"children":11542},{"style":3474},[11543],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":11545,"children":11546},{"style":3474},[11547],{"type":3117,"value":4718},{"type":3112,"tag":3395,"props":11549,"children":11550},{"style":3407},[11551],{"type":3117,"value":11552},"none",{"type":3112,"tag":3395,"props":11554,"children":11555},{"style":3474},[11556],{"type":3117,"value":4727},{"type":3112,"tag":3395,"props":11558,"children":11559},{"class":3397,"line":3658},[11560],{"type":3112,"tag":3395,"props":11561,"children":11562},{"style":3474},[11563],{"type":3117,"value":5095},{"type":3112,"tag":3395,"props":11565,"children":11566},{"class":3397,"line":3667},[11567,11571],{"type":3112,"tag":3395,"props":11568,"children":11569},{"style":3474},[11570],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":11572,"children":11573},{"style":3469},[11574],{"type":3117,"value":4837},{"type":3112,"tag":3119,"props":11576,"children":11577},{},[11578,11579,11584,11586,11592],{"type":3117,"value":11443},{"type":3112,"tag":3257,"props":11580,"children":11582},{"className":11581},[],[11583],{"type":3117,"value":11552},{"type":3117,"value":11585}," load strategy, the user session can still be manually fetched by calling ",{"type":3112,"tag":3257,"props":11587,"children":11589},{"className":11588},[],[11590],{"type":3117,"value":11591},"useUserSession().fetch()",{"type":3117,"value":3350},{"type":3112,"tag":3515,"props":11594,"children":11596},{"id":11595},"authstate-component",[11597,11602],{"type":3112,"tag":3257,"props":11598,"children":11600},{"className":11599},[],[11601],{"type":3117,"value":3286},{"type":3117,"value":3288},{"type":3112,"tag":3119,"props":11604,"children":11605},{},[11606,11608,11613],{"type":3117,"value":11607},"You can use the ",{"type":3112,"tag":3257,"props":11609,"children":11611},{"className":11610},[],[11612],{"type":3117,"value":3286},{"type":3117,"value":11614}," component to safely display auth-related data in your components without worrying about the rendering mode.",{"type":3112,"tag":3119,"props":11616,"children":11617},{},[11618],{"type":3117,"value":11619},"One common use case if the Login button in the header:",{"type":3112,"tag":3385,"props":11621,"children":11623},{"className":3523,"code":11622,"language":3525,"meta":2985,"style":2985},"\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",[11624],{"type":3112,"tag":3257,"props":11625,"children":11626},{"__ignoreMap":2985},[11627,11642,11658,11696,11768,11827,11843,11858],{"type":3112,"tag":3395,"props":11628,"children":11629},{"class":3397,"line":3071},[11630,11634,11638],{"type":3112,"tag":3395,"props":11631,"children":11632},{"style":3474},[11633],{"type":3117,"value":3537},{"type":3112,"tag":3395,"props":11635,"children":11636},{"style":3540},[11637],{"type":3117,"value":3677},{"type":3112,"tag":3395,"props":11639,"children":11640},{"style":3474},[11641],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":11643,"children":11644},{"class":3397,"line":3037},[11645,11649,11654],{"type":3112,"tag":3395,"props":11646,"children":11647},{"style":3474},[11648],{"type":3117,"value":3690},{"type":3112,"tag":3395,"props":11650,"children":11651},{"style":3540},[11652],{"type":3117,"value":11653},"header",{"type":3112,"tag":3395,"props":11655,"children":11656},{"style":3474},[11657],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":11659,"children":11660},{"class":3397,"line":3021},[11661,11665,11670,11675,11679,11683,11688,11692],{"type":3112,"tag":3395,"props":11662,"children":11663},{"style":3474},[11664],{"type":3117,"value":3730},{"type":3112,"tag":3395,"props":11666,"children":11667},{"style":3540},[11668],{"type":3117,"value":11669},"AuthState",{"type":3112,"tag":3395,"props":11671,"children":11672},{"style":3546},[11673],{"type":3117,"value":11674}," v-slot",{"type":3112,"tag":3395,"props":11676,"children":11677},{"style":3474},[11678],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":11680,"children":11681},{"style":3474},[11682],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":11684,"children":11685},{"style":3407},[11686],{"type":3117,"value":11687},"{ loggedIn, clear }",{"type":3112,"tag":3395,"props":11689,"children":11690},{"style":3474},[11691],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":11693,"children":11694},{"style":3474},[11695],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":11697,"children":11698},{"class":3397,"line":3658},[11699,11704,11708,11712,11716,11720,11724,11728,11732,11736,11740,11744,11748,11752,11756,11760,11764],{"type":3112,"tag":3395,"props":11700,"children":11701},{"style":3474},[11702],{"type":3117,"value":11703},"      \u003C",{"type":3112,"tag":3395,"props":11705,"children":11706},{"style":3540},[11707],{"type":3117,"value":3800},{"type":3112,"tag":3395,"props":11709,"children":11710},{"style":3546},[11711],{"type":3117,"value":3700},{"type":3112,"tag":3395,"props":11713,"children":11714},{"style":3474},[11715],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":11717,"children":11718},{"style":3474},[11719],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":11721,"children":11722},{"style":3407},[11723],{"type":3117,"value":3714},{"type":3112,"tag":3395,"props":11725,"children":11726},{"style":3474},[11727],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":11729,"children":11730},{"style":3546},[11731],{"type":3117,"value":3805},{"type":3112,"tag":3395,"props":11733,"children":11734},{"style":3474},[11735],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":11737,"children":11738},{"style":3474},[11739],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":11741,"children":11742},{"style":3407},[11743],{"type":3117,"value":3818},{"type":3112,"tag":3395,"props":11745,"children":11746},{"style":3474},[11747],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":11749,"children":11750},{"style":3474},[11751],{"type":3117,"value":3739},{"type":3112,"tag":3395,"props":11753,"children":11754},{"style":3469},[11755],{"type":3117,"value":3831},{"type":3112,"tag":3395,"props":11757,"children":11758},{"style":3474},[11759],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":11761,"children":11762},{"style":3540},[11763],{"type":3117,"value":3800},{"type":3112,"tag":3395,"props":11765,"children":11766},{"style":3474},[11767],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":11769,"children":11770},{"class":3397,"line":3667},[11771,11775,11780,11784,11789,11793,11797,11802,11806,11810,11815,11819,11823],{"type":3112,"tag":3395,"props":11772,"children":11773},{"style":3474},[11774],{"type":3117,"value":11703},{"type":3112,"tag":3395,"props":11776,"children":11777},{"style":3540},[11778],{"type":3117,"value":11779},"NuxtLink",{"type":3112,"tag":3395,"props":11781,"children":11782},{"style":3546},[11783],{"type":3117,"value":3876},{"type":3112,"tag":3395,"props":11785,"children":11786},{"style":3546},[11787],{"type":3117,"value":11788}," to",{"type":3112,"tag":3395,"props":11790,"children":11791},{"style":3474},[11792],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":11794,"children":11795},{"style":3474},[11796],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":11798,"children":11799},{"style":3407},[11800],{"type":3117,"value":11801},"\u002Flogin",{"type":3112,"tag":3395,"props":11803,"children":11804},{"style":3474},[11805],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":11807,"children":11808},{"style":3474},[11809],{"type":3117,"value":3739},{"type":3112,"tag":3395,"props":11811,"children":11812},{"style":3469},[11813],{"type":3117,"value":11814},"Login",{"type":3112,"tag":3395,"props":11816,"children":11817},{"style":3474},[11818],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":11820,"children":11821},{"style":3540},[11822],{"type":3117,"value":11779},{"type":3112,"tag":3395,"props":11824,"children":11825},{"style":3474},[11826],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":11828,"children":11829},{"class":3397,"line":3684},[11830,11835,11839],{"type":3112,"tag":3395,"props":11831,"children":11832},{"style":3474},[11833],{"type":3117,"value":11834},"    \u003C\u002F",{"type":3112,"tag":3395,"props":11836,"children":11837},{"style":3540},[11838],{"type":3117,"value":11669},{"type":3112,"tag":3395,"props":11840,"children":11841},{"style":3474},[11842],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":11844,"children":11845},{"class":3397,"line":3017},[11846,11850,11854],{"type":3112,"tag":3395,"props":11847,"children":11848},{"style":3474},[11849],{"type":3117,"value":3852},{"type":3112,"tag":3395,"props":11851,"children":11852},{"style":3540},[11853],{"type":3117,"value":11653},{"type":3112,"tag":3395,"props":11855,"children":11856},{"style":3474},[11857],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":11859,"children":11860},{"class":3397,"line":3013},[11861,11865,11869],{"type":3112,"tag":3395,"props":11862,"children":11863},{"style":3474},[11864],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":11866,"children":11867},{"style":3540},[11868],{"type":3117,"value":3677},{"type":3112,"tag":3395,"props":11870,"children":11871},{"style":3474},[11872],{"type":3117,"value":3554},{"type":3112,"tag":3119,"props":11874,"children":11875},{},[11876,11878,11883],{"type":3117,"value":11877},"If the page is cached or prerendered or the load strategy set as ",{"type":3112,"tag":3257,"props":11879,"children":11881},{"className":11880},[],[11882],{"type":3117,"value":11416},{"type":3117,"value":11884},", nothing will be rendered until the user session is fetched on the client-side.",{"type":3112,"tag":3119,"props":11886,"children":11887},{},[11888,11889,11895],{"type":3117,"value":11607},{"type":3112,"tag":3257,"props":11890,"children":11892},{"className":11891},[],[11893],{"type":3117,"value":11894},"placeholder",{"type":3117,"value":11896}," slot to show a placeholder on server-side and while the user session is being fetched on client-side for the prerendered pages:",{"type":3112,"tag":3385,"props":11898,"children":11900},{"className":3523,"code":11899,"language":3525,"meta":2985,"style":2985},"\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",[11901],{"type":3112,"tag":3257,"props":11902,"children":11903},{"__ignoreMap":2985},[11904,11919,11934,11949,12007,12079,12134,12150,12173,12210,12225,12240,12255],{"type":3112,"tag":3395,"props":11905,"children":11906},{"class":3397,"line":3071},[11907,11911,11915],{"type":3112,"tag":3395,"props":11908,"children":11909},{"style":3474},[11910],{"type":3117,"value":3537},{"type":3112,"tag":3395,"props":11912,"children":11913},{"style":3540},[11914],{"type":3117,"value":3677},{"type":3112,"tag":3395,"props":11916,"children":11917},{"style":3474},[11918],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":11920,"children":11921},{"class":3397,"line":3037},[11922,11926,11930],{"type":3112,"tag":3395,"props":11923,"children":11924},{"style":3474},[11925],{"type":3117,"value":3690},{"type":3112,"tag":3395,"props":11927,"children":11928},{"style":3540},[11929],{"type":3117,"value":11653},{"type":3112,"tag":3395,"props":11931,"children":11932},{"style":3474},[11933],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":11935,"children":11936},{"class":3397,"line":3021},[11937,11941,11945],{"type":3112,"tag":3395,"props":11938,"children":11939},{"style":3474},[11940],{"type":3117,"value":3730},{"type":3112,"tag":3395,"props":11942,"children":11943},{"style":3540},[11944],{"type":3117,"value":11669},{"type":3112,"tag":3395,"props":11946,"children":11947},{"style":3474},[11948],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":11950,"children":11951},{"class":3397,"line":3658},[11952,11956,11960,11965,11970,11974,11978,11982,11986,11990,11995,11999,12003],{"type":3112,"tag":3395,"props":11953,"children":11954},{"style":3474},[11955],{"type":3117,"value":11703},{"type":3112,"tag":3395,"props":11957,"children":11958},{"style":3540},[11959],{"type":3117,"value":3677},{"type":3112,"tag":3395,"props":11961,"children":11962},{"style":3474},[11963],{"type":3117,"value":11964}," #",{"type":3112,"tag":3395,"props":11966,"children":11967},{"style":3546},[11968],{"type":3117,"value":11969},"default",{"type":3112,"tag":3395,"props":11971,"children":11972},{"style":3474},[11973],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":11975,"children":11976},{"style":3474},[11977],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":11979,"children":11980},{"style":3474},[11981],{"type":3117,"value":7766},{"type":3112,"tag":3395,"props":11983,"children":11984},{"style":3469},[11985],{"type":3117,"value":3572},{"type":3112,"tag":3395,"props":11987,"children":11988},{"style":3474},[11989],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":11991,"children":11992},{"style":3469},[11993],{"type":3117,"value":11994}," clear ",{"type":3112,"tag":3395,"props":11996,"children":11997},{"style":3474},[11998],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":12000,"children":12001},{"style":3474},[12002],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":12004,"children":12005},{"style":3474},[12006],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":12008,"children":12009},{"class":3397,"line":3667},[12010,12015,12019,12023,12027,12031,12035,12039,12043,12047,12051,12055,12059,12063,12067,12071,12075],{"type":3112,"tag":3395,"props":12011,"children":12012},{"style":3474},[12013],{"type":3117,"value":12014},"        \u003C",{"type":3112,"tag":3395,"props":12016,"children":12017},{"style":3540},[12018],{"type":3117,"value":3800},{"type":3112,"tag":3395,"props":12020,"children":12021},{"style":3546},[12022],{"type":3117,"value":3700},{"type":3112,"tag":3395,"props":12024,"children":12025},{"style":3474},[12026],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":12028,"children":12029},{"style":3474},[12030],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":12032,"children":12033},{"style":3407},[12034],{"type":3117,"value":3714},{"type":3112,"tag":3395,"props":12036,"children":12037},{"style":3474},[12038],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":12040,"children":12041},{"style":3546},[12042],{"type":3117,"value":3805},{"type":3112,"tag":3395,"props":12044,"children":12045},{"style":3474},[12046],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":12048,"children":12049},{"style":3474},[12050],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":12052,"children":12053},{"style":3407},[12054],{"type":3117,"value":3818},{"type":3112,"tag":3395,"props":12056,"children":12057},{"style":3474},[12058],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":12060,"children":12061},{"style":3474},[12062],{"type":3117,"value":3739},{"type":3112,"tag":3395,"props":12064,"children":12065},{"style":3469},[12066],{"type":3117,"value":3831},{"type":3112,"tag":3395,"props":12068,"children":12069},{"style":3474},[12070],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":12072,"children":12073},{"style":3540},[12074],{"type":3117,"value":3800},{"type":3112,"tag":3395,"props":12076,"children":12077},{"style":3474},[12078],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":12080,"children":12081},{"class":3397,"line":3684},[12082,12086,12090,12094,12098,12102,12106,12110,12114,12118,12122,12126,12130],{"type":3112,"tag":3395,"props":12083,"children":12084},{"style":3474},[12085],{"type":3117,"value":12014},{"type":3112,"tag":3395,"props":12087,"children":12088},{"style":3540},[12089],{"type":3117,"value":11779},{"type":3112,"tag":3395,"props":12091,"children":12092},{"style":3546},[12093],{"type":3117,"value":3876},{"type":3112,"tag":3395,"props":12095,"children":12096},{"style":3546},[12097],{"type":3117,"value":11788},{"type":3112,"tag":3395,"props":12099,"children":12100},{"style":3474},[12101],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":12103,"children":12104},{"style":3474},[12105],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":12107,"children":12108},{"style":3407},[12109],{"type":3117,"value":11801},{"type":3112,"tag":3395,"props":12111,"children":12112},{"style":3474},[12113],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":12115,"children":12116},{"style":3474},[12117],{"type":3117,"value":3739},{"type":3112,"tag":3395,"props":12119,"children":12120},{"style":3469},[12121],{"type":3117,"value":11814},{"type":3112,"tag":3395,"props":12123,"children":12124},{"style":3474},[12125],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":12127,"children":12128},{"style":3540},[12129],{"type":3117,"value":11779},{"type":3112,"tag":3395,"props":12131,"children":12132},{"style":3474},[12133],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":12135,"children":12136},{"class":3397,"line":3017},[12137,12142,12146],{"type":3112,"tag":3395,"props":12138,"children":12139},{"style":3474},[12140],{"type":3117,"value":12141},"      \u003C\u002F",{"type":3112,"tag":3395,"props":12143,"children":12144},{"style":3540},[12145],{"type":3117,"value":3677},{"type":3112,"tag":3395,"props":12147,"children":12148},{"style":3474},[12149],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":12151,"children":12152},{"class":3397,"line":3013},[12153,12157,12161,12165,12169],{"type":3112,"tag":3395,"props":12154,"children":12155},{"style":3474},[12156],{"type":3117,"value":11703},{"type":3112,"tag":3395,"props":12158,"children":12159},{"style":3540},[12160],{"type":3117,"value":3677},{"type":3112,"tag":3395,"props":12162,"children":12163},{"style":3474},[12164],{"type":3117,"value":11964},{"type":3112,"tag":3395,"props":12166,"children":12167},{"style":3546},[12168],{"type":3117,"value":11894},{"type":3112,"tag":3395,"props":12170,"children":12171},{"style":3474},[12172],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":12174,"children":12175},{"class":3397,"line":3009},[12176,12180,12184,12189,12193,12198,12202,12206],{"type":3112,"tag":3395,"props":12177,"children":12178},{"style":3474},[12179],{"type":3117,"value":12014},{"type":3112,"tag":3395,"props":12181,"children":12182},{"style":3540},[12183],{"type":3117,"value":3800},{"type":3112,"tag":3395,"props":12185,"children":12186},{"style":3546},[12187],{"type":3117,"value":12188}," disabled",{"type":3112,"tag":3395,"props":12190,"children":12191},{"style":3474},[12192],{"type":3117,"value":3739},{"type":3112,"tag":3395,"props":12194,"children":12195},{"style":3469},[12196],{"type":3117,"value":12197},"Loading...",{"type":3112,"tag":3395,"props":12199,"children":12200},{"style":3474},[12201],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":12203,"children":12204},{"style":3540},[12205],{"type":3117,"value":3800},{"type":3112,"tag":3395,"props":12207,"children":12208},{"style":3474},[12209],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":12211,"children":12212},{"class":3397,"line":3846},[12213,12217,12221],{"type":3112,"tag":3395,"props":12214,"children":12215},{"style":3474},[12216],{"type":3117,"value":12141},{"type":3112,"tag":3395,"props":12218,"children":12219},{"style":3540},[12220],{"type":3117,"value":3677},{"type":3112,"tag":3395,"props":12222,"children":12223},{"style":3474},[12224],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":12226,"children":12227},{"class":3397,"line":3100},[12228,12232,12236],{"type":3112,"tag":3395,"props":12229,"children":12230},{"style":3474},[12231],{"type":3117,"value":11834},{"type":3112,"tag":3395,"props":12233,"children":12234},{"style":3540},[12235],{"type":3117,"value":11669},{"type":3112,"tag":3395,"props":12237,"children":12238},{"style":3474},[12239],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":12241,"children":12242},{"class":3397,"line":3883},[12243,12247,12251],{"type":3112,"tag":3395,"props":12244,"children":12245},{"style":3474},[12246],{"type":3117,"value":3852},{"type":3112,"tag":3395,"props":12248,"children":12249},{"style":3540},[12250],{"type":3117,"value":11653},{"type":3112,"tag":3395,"props":12252,"children":12253},{"style":3474},[12254],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":12256,"children":12257},{"class":3397,"line":3916},[12258,12262,12266],{"type":3112,"tag":3395,"props":12259,"children":12260},{"style":3474},[12261],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":12263,"children":12264},{"style":3540},[12265],{"type":3117,"value":3677},{"type":3112,"tag":3395,"props":12267,"children":12268},{"style":3474},[12269],{"type":3117,"value":3554},{"type":3112,"tag":3119,"props":12271,"children":12272},{},[12273,12275,12280,12282,12288,12290,12296],{"type":3117,"value":12274},"If you are caching your routes with ",{"type":3112,"tag":3257,"props":12276,"children":12278},{"className":12277},[],[12279],{"type":3117,"value":11316},{"type":3117,"value":12281},", please make sure to use ",{"type":3112,"tag":3123,"props":12283,"children":12286},{"href":12284,"rel":12285},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fnitro",[3127],[12287],{"type":3117,"value":837},{"type":3117,"value":12289}," >= ",{"type":3112,"tag":3257,"props":12291,"children":12293},{"className":12292},[],[12294],{"type":3117,"value":12295},"2.9.7",{"type":3117,"value":12297}," to support the client-side fetching of the user session.",{"type":3112,"tag":3203,"props":12299,"children":12301},{"id":12300},"websocket-support",[12302],{"type":3117,"value":12303},"WebSocket Support",{"type":3112,"tag":3119,"props":12305,"children":12306},{},[12307,12309,12316],{"type":3117,"value":12308},"Nuxt Auth Utils is compatible with ",{"type":3112,"tag":3123,"props":12310,"children":12313},{"href":12311,"rel":12312},"https:\u002F\u002Fnitro.build\u002Fguide\u002Fwebsocket",[3127],[12314],{"type":3117,"value":12315},"Nitro WebSockets",{"type":3117,"value":3350},{"type":3112,"tag":3119,"props":12318,"children":12319},{},[12320,12322,12328,12329,12334],{"type":3117,"value":12321},"Make sure to enable the ",{"type":3112,"tag":3257,"props":12323,"children":12325},{"className":12324},[],[12326],{"type":3117,"value":12327},"experimental.websocket",{"type":3117,"value":11344},{"type":3112,"tag":3257,"props":12330,"children":12332},{"className":12331},[],[12333],{"type":3117,"value":233},{"type":3117,"value":4134},{"type":3112,"tag":3385,"props":12336,"children":12338},{"className":4073,"code":12337,"language":4075,"meta":2985,"style":2985},"export default defineNuxtConfig({\n  nitro: {\n    experimental: {\n      websocket: true\n    }\n  }\n})\n",[12339],{"type":3112,"tag":3257,"props":12340,"children":12341},{"__ignoreMap":2985},[12342,12365,12381,12397,12413,12420,12427],{"type":3112,"tag":3395,"props":12343,"children":12344},{"class":3397,"line":3071},[12345,12349,12353,12357,12361],{"type":3112,"tag":3395,"props":12346,"children":12347},{"style":4657},[12348],{"type":3117,"value":5191},{"type":3112,"tag":3395,"props":12350,"children":12351},{"style":4657},[12352],{"type":3117,"value":5306},{"type":3112,"tag":3395,"props":12354,"children":12355},{"style":3631},[12356],{"type":3117,"value":5311},{"type":3112,"tag":3395,"props":12358,"children":12359},{"style":3469},[12360],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":12362,"children":12363},{"style":3474},[12364],{"type":3117,"value":5321},{"type":3112,"tag":3395,"props":12366,"children":12367},{"class":3397,"line":3037},[12368,12373,12377],{"type":3112,"tag":3395,"props":12369,"children":12370},{"style":3540},[12371],{"type":3117,"value":12372},"  nitro",{"type":3112,"tag":3395,"props":12374,"children":12375},{"style":3474},[12376],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":12378,"children":12379},{"style":3474},[12380],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":12382,"children":12383},{"class":3397,"line":3021},[12384,12389,12393],{"type":3112,"tag":3395,"props":12385,"children":12386},{"style":3540},[12387],{"type":3117,"value":12388},"    experimental",{"type":3112,"tag":3395,"props":12390,"children":12391},{"style":3474},[12392],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":12394,"children":12395},{"style":3474},[12396],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":12398,"children":12399},{"class":3397,"line":3658},[12400,12405,12409],{"type":3112,"tag":3395,"props":12401,"children":12402},{"style":3540},[12403],{"type":3117,"value":12404},"      websocket",{"type":3112,"tag":3395,"props":12406,"children":12407},{"style":3474},[12408],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":12410,"children":12411},{"style":5841},[12412],{"type":3117,"value":5844},{"type":3112,"tag":3395,"props":12414,"children":12415},{"class":3397,"line":3667},[12416],{"type":3112,"tag":3395,"props":12417,"children":12418},{"style":3474},[12419],{"type":3117,"value":5447},{"type":3112,"tag":3395,"props":12421,"children":12422},{"class":3397,"line":3684},[12423],{"type":3112,"tag":3395,"props":12424,"children":12425},{"style":3474},[12426],{"type":3117,"value":5095},{"type":3112,"tag":3395,"props":12428,"children":12429},{"class":3397,"line":3017},[12430,12434],{"type":3112,"tag":3395,"props":12431,"children":12432},{"style":3474},[12433],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":12435,"children":12436},{"style":3469},[12437],{"type":3117,"value":4837},{"type":3112,"tag":3119,"props":12439,"children":12440},{},[12441,12442,12448,12450,12456],{"type":3117,"value":11607},{"type":3112,"tag":3257,"props":12443,"children":12445},{"className":12444},[],[12446],{"type":3117,"value":12447},"requireUserSession",{"type":3117,"value":12449}," function in the ",{"type":3112,"tag":3257,"props":12451,"children":12453},{"className":12452},[],[12454],{"type":3117,"value":12455},"upgrade",{"type":3117,"value":12457}," function to check if the user is authenticated before upgrading the WebSocket connection.",{"type":3112,"tag":3385,"props":12459,"children":12461},{"className":4073,"code":12460,"language":4075,"meta":2985,"style":2985},"\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",[12462],{"type":3112,"tag":3257,"props":12463,"children":12464},{"__ignoreMap":2985},[12465,12473,12497,12526,12534,12557,12564,12593,12636,12643,12706,12713,12745,12790,12797],{"type":3112,"tag":3395,"props":12466,"children":12467},{"class":3397,"line":3071},[12468],{"type":3112,"tag":3395,"props":12469,"children":12470},{"style":3460},[12471],{"type":3117,"value":12472},"\u002F\u002F server\u002Froutes\u002Fws.ts\n",{"type":3112,"tag":3395,"props":12474,"children":12475},{"class":3397,"line":3037},[12476,12480,12484,12489,12493],{"type":3112,"tag":3395,"props":12477,"children":12478},{"style":4657},[12479],{"type":3117,"value":5191},{"type":3112,"tag":3395,"props":12481,"children":12482},{"style":4657},[12483],{"type":3117,"value":5306},{"type":3112,"tag":3395,"props":12485,"children":12486},{"style":3631},[12487],{"type":3117,"value":12488}," defineWebSocketHandler",{"type":3112,"tag":3395,"props":12490,"children":12491},{"style":3469},[12492],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":12494,"children":12495},{"style":3474},[12496],{"type":3117,"value":5321},{"type":3112,"tag":3395,"props":12498,"children":12499},{"class":3397,"line":3021},[12500,12504,12509,12513,12518,12522],{"type":3112,"tag":3395,"props":12501,"children":12502},{"style":3546},[12503],{"type":3117,"value":5859},{"type":3112,"tag":3395,"props":12505,"children":12506},{"style":3540},[12507],{"type":3117,"value":12508}," upgrade",{"type":3112,"tag":3395,"props":12510,"children":12511},{"style":3474},[12512],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":12514,"children":12515},{"style":4489},[12516],{"type":3117,"value":12517},"request",{"type":3112,"tag":3395,"props":12519,"children":12520},{"style":3474},[12521],{"type":3117,"value":6077},{"type":3112,"tag":3395,"props":12523,"children":12524},{"style":3474},[12525],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":12527,"children":12528},{"class":3397,"line":3658},[12529],{"type":3112,"tag":3395,"props":12530,"children":12531},{"style":3460},[12532],{"type":3117,"value":12533},"    \u002F\u002F Make sure the user is authenticated before upgrading the WebSocket connection\n",{"type":3112,"tag":3395,"props":12535,"children":12536},{"class":3397,"line":3667},[12537,12541,12545,12549,12553],{"type":3112,"tag":3395,"props":12538,"children":12539},{"style":4657},[12540],{"type":3117,"value":5910},{"type":3112,"tag":3395,"props":12542,"children":12543},{"style":3631},[12544],{"type":3117,"value":4993},{"type":3112,"tag":3395,"props":12546,"children":12547},{"style":3540},[12548],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":12550,"children":12551},{"style":3469},[12552],{"type":3117,"value":12517},{"type":3112,"tag":3395,"props":12554,"children":12555},{"style":3540},[12556],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":12558,"children":12559},{"class":3397,"line":3684},[12560],{"type":3112,"tag":3395,"props":12561,"children":12562},{"style":3474},[12563],{"type":3117,"value":4735},{"type":3112,"tag":3395,"props":12565,"children":12566},{"class":3397,"line":3017},[12567,12571,12576,12580,12585,12589],{"type":3112,"tag":3395,"props":12568,"children":12569},{"style":3546},[12570],{"type":3117,"value":5859},{"type":3112,"tag":3395,"props":12572,"children":12573},{"style":3540},[12574],{"type":3117,"value":12575}," open",{"type":3112,"tag":3395,"props":12577,"children":12578},{"style":3474},[12579],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":12581,"children":12582},{"style":4489},[12583],{"type":3117,"value":12584},"peer",{"type":3112,"tag":3395,"props":12586,"children":12587},{"style":3474},[12588],{"type":3117,"value":6077},{"type":3112,"tag":3395,"props":12590,"children":12591},{"style":3474},[12592],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":12594,"children":12595},{"class":3397,"line":3013},[12596,12600,12604,12608,12612,12616,12620,12624,12628,12632],{"type":3112,"tag":3395,"props":12597,"children":12598},{"style":3546},[12599],{"type":3117,"value":7627},{"type":3112,"tag":3395,"props":12601,"children":12602},{"style":3474},[12603],{"type":3117,"value":3567},{"type":3112,"tag":3395,"props":12605,"children":12606},{"style":3469},[12607],{"type":3117,"value":3582},{"type":3112,"tag":3395,"props":12609,"children":12610},{"style":3474},[12611],{"type":3117,"value":7507},{"type":3112,"tag":3395,"props":12613,"children":12614},{"style":3474},[12615],{"type":3117,"value":3628},{"type":3112,"tag":3395,"props":12617,"children":12618},{"style":4657},[12619],{"type":3117,"value":4913},{"type":3112,"tag":3395,"props":12621,"children":12622},{"style":3631},[12623],{"type":3117,"value":4993},{"type":3112,"tag":3395,"props":12625,"children":12626},{"style":3540},[12627],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":12629,"children":12630},{"style":3469},[12631],{"type":3117,"value":12584},{"type":3112,"tag":3395,"props":12633,"children":12634},{"style":3540},[12635],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":12637,"children":12638},{"class":3397,"line":3009},[12639],{"type":3112,"tag":3395,"props":12640,"children":12641},{"emptyLinePlaceholder":1200},[12642],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":12644,"children":12645},{"class":3397,"line":3846},[12646,12651,12655,12660,12664,12668,12673,12677,12681,12685,12690,12694,12698,12702],{"type":3112,"tag":3395,"props":12647,"children":12648},{"style":3469},[12649],{"type":3117,"value":12650},"    peer",{"type":3112,"tag":3395,"props":12652,"children":12653},{"style":3474},[12654],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":12656,"children":12657},{"style":3631},[12658],{"type":3117,"value":12659},"send",{"type":3112,"tag":3395,"props":12661,"children":12662},{"style":3540},[12663],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":12665,"children":12666},{"style":3474},[12667],{"type":3117,"value":8095},{"type":3112,"tag":3395,"props":12669,"children":12670},{"style":3407},[12671],{"type":3117,"value":12672},"Hello, ",{"type":3112,"tag":3395,"props":12674,"children":12675},{"style":3474},[12676],{"type":3117,"value":9434},{"type":3112,"tag":3395,"props":12678,"children":12679},{"style":3469},[12680],{"type":3117,"value":7681},{"type":3112,"tag":3395,"props":12682,"children":12683},{"style":3474},[12684],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":12686,"children":12687},{"style":3469},[12688],{"type":3117,"value":12689},"name",{"type":3112,"tag":3395,"props":12691,"children":12692},{"style":3474},[12693],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":12695,"children":12696},{"style":3407},[12697],{"type":3117,"value":8120},{"type":3112,"tag":3395,"props":12699,"children":12700},{"style":3474},[12701],{"type":3117,"value":8095},{"type":3112,"tag":3395,"props":12703,"children":12704},{"style":3540},[12705],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":12707,"children":12708},{"class":3397,"line":3100},[12709],{"type":3112,"tag":3395,"props":12710,"children":12711},{"style":3474},[12712],{"type":3117,"value":4735},{"type":3112,"tag":3395,"props":12714,"children":12715},{"class":3397,"line":3883},[12716,12721,12725,12729,12733,12737,12741],{"type":3112,"tag":3395,"props":12717,"children":12718},{"style":3540},[12719],{"type":3117,"value":12720},"  message",{"type":3112,"tag":3395,"props":12722,"children":12723},{"style":3474},[12724],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":12726,"children":12727},{"style":4489},[12728],{"type":3117,"value":12584},{"type":3112,"tag":3395,"props":12730,"children":12731},{"style":3474},[12732],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":12734,"children":12735},{"style":4489},[12736],{"type":3117,"value":7789},{"type":3112,"tag":3395,"props":12738,"children":12739},{"style":3474},[12740],{"type":3117,"value":6077},{"type":3112,"tag":3395,"props":12742,"children":12743},{"style":3474},[12744],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":12746,"children":12747},{"class":3397,"line":3916},[12748,12752,12756,12760,12764,12768,12773,12777,12782,12786],{"type":3112,"tag":3395,"props":12749,"children":12750},{"style":3469},[12751],{"type":3117,"value":12650},{"type":3112,"tag":3395,"props":12753,"children":12754},{"style":3474},[12755],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":12757,"children":12758},{"style":3631},[12759],{"type":3117,"value":12659},{"type":3112,"tag":3395,"props":12761,"children":12762},{"style":3540},[12763],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":12765,"children":12766},{"style":3474},[12767],{"type":3117,"value":8095},{"type":3112,"tag":3395,"props":12769,"children":12770},{"style":3407},[12771],{"type":3117,"value":12772},"Echo: ",{"type":3112,"tag":3395,"props":12774,"children":12775},{"style":3474},[12776],{"type":3117,"value":9434},{"type":3112,"tag":3395,"props":12778,"children":12779},{"style":3469},[12780],{"type":3117,"value":12781},"message",{"type":3112,"tag":3395,"props":12783,"children":12784},{"style":3474},[12785],{"type":3117,"value":9444},{"type":3112,"tag":3395,"props":12787,"children":12788},{"style":3540},[12789],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":12791,"children":12792},{"class":3397,"line":3971},[12793],{"type":3112,"tag":3395,"props":12794,"children":12795},{"style":3474},[12796],{"type":3117,"value":4735},{"type":3112,"tag":3395,"props":12798,"children":12799},{"class":3397,"line":3980},[12800,12804],{"type":3112,"tag":3395,"props":12801,"children":12802},{"style":3474},[12803],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":12805,"children":12806},{"style":3469},[12807],{"type":3117,"value":4837},{"type":3112,"tag":3119,"props":12809,"children":12810},{},[12811,12813,12820],{"type":3117,"value":12812},"Then, in your application, you can use the ",{"type":3112,"tag":3123,"props":12814,"children":12817},{"href":12815,"rel":12816},"https:\u002F\u002Fvueuse.org\u002Fcore\u002FuseWebSocket\u002F",[3127],[12818],{"type":3117,"value":12819},"useWebSocket",{"type":3117,"value":12821}," composable to connect to the WebSocket:",{"type":3112,"tag":3385,"props":12823,"children":12825},{"className":3523,"code":12824,"language":3525,"meta":2985,"style":2985},"\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",[12826],{"type":3112,"tag":3257,"props":12827,"children":12828},{"__ignoreMap":2985},[12829,12848,12959,12966,12974,12987,13002,13009,13024,13039,13071,13103,13118,13171,13224,13277,13292,13307],{"type":3112,"tag":3395,"props":12830,"children":12831},{"class":3397,"line":3071},[12832,12836,12840,12844],{"type":3112,"tag":3395,"props":12833,"children":12834},{"style":3474},[12835],{"type":3117,"value":3537},{"type":3112,"tag":3395,"props":12837,"children":12838},{"style":3540},[12839],{"type":3117,"value":3543},{"type":3112,"tag":3395,"props":12841,"children":12842},{"style":3546},[12843],{"type":3117,"value":3549},{"type":3112,"tag":3395,"props":12845,"children":12846},{"style":3474},[12847],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":12849,"children":12850},{"class":3397,"line":3037},[12851,12855,12859,12864,12868,12873,12877,12882,12886,12890,12894,12899,12903,12907,12912,12916,12920,12925,12929,12933,12937,12942,12946,12951,12955],{"type":3112,"tag":3395,"props":12852,"children":12853},{"style":3546},[12854],{"type":3117,"value":3562},{"type":3112,"tag":3395,"props":12856,"children":12857},{"style":3474},[12858],{"type":3117,"value":3567},{"type":3112,"tag":3395,"props":12860,"children":12861},{"style":3469},[12862],{"type":3117,"value":12863}," status",{"type":3112,"tag":3395,"props":12865,"children":12866},{"style":3474},[12867],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":12869,"children":12870},{"style":3469},[12871],{"type":3117,"value":12872}," data",{"type":3112,"tag":3395,"props":12874,"children":12875},{"style":3474},[12876],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":12878,"children":12879},{"style":3469},[12880],{"type":3117,"value":12881}," send",{"type":3112,"tag":3395,"props":12883,"children":12884},{"style":3474},[12885],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":12887,"children":12888},{"style":3469},[12889],{"type":3117,"value":12575},{"type":3112,"tag":3395,"props":12891,"children":12892},{"style":3474},[12893],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":12895,"children":12896},{"style":3469},[12897],{"type":3117,"value":12898}," close ",{"type":3112,"tag":3395,"props":12900,"children":12901},{"style":3474},[12902],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":12904,"children":12905},{"style":3474},[12906],{"type":3117,"value":3628},{"type":3112,"tag":3395,"props":12908,"children":12909},{"style":3631},[12910],{"type":3117,"value":12911}," useWebSocket",{"type":3112,"tag":3395,"props":12913,"children":12914},{"style":3469},[12915],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":12917,"children":12918},{"style":3474},[12919],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":12921,"children":12922},{"style":3407},[12923],{"type":3117,"value":12924},"\u002Fws",{"type":3112,"tag":3395,"props":12926,"children":12927},{"style":3474},[12928],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":12930,"children":12931},{"style":3474},[12932],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":12934,"children":12935},{"style":3474},[12936],{"type":3117,"value":3567},{"type":3112,"tag":3395,"props":12938,"children":12939},{"style":3540},[12940],{"type":3117,"value":12941}," immediate",{"type":3112,"tag":3395,"props":12943,"children":12944},{"style":3474},[12945],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":12947,"children":12948},{"style":5841},[12949],{"type":3117,"value":12950}," false",{"type":3112,"tag":3395,"props":12952,"children":12953},{"style":3474},[12954],{"type":3117,"value":7507},{"type":3112,"tag":3395,"props":12956,"children":12957},{"style":3469},[12958],{"type":3117,"value":4837},{"type":3112,"tag":3395,"props":12960,"children":12961},{"class":3397,"line":3021},[12962],{"type":3112,"tag":3395,"props":12963,"children":12964},{"emptyLinePlaceholder":1200},[12965],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":12967,"children":12968},{"class":3397,"line":3658},[12969],{"type":3112,"tag":3395,"props":12970,"children":12971},{"style":3460},[12972],{"type":3117,"value":12973},"\u002F\u002F Only open the websocket after the page is hydrated (client-only)\n",{"type":3112,"tag":3395,"props":12975,"children":12976},{"class":3397,"line":3667},[12977,12982],{"type":3112,"tag":3395,"props":12978,"children":12979},{"style":3631},[12980],{"type":3117,"value":12981},"onMounted",{"type":3112,"tag":3395,"props":12983,"children":12984},{"style":3469},[12985],{"type":3117,"value":12986},"(open)\n",{"type":3112,"tag":3395,"props":12988,"children":12989},{"class":3397,"line":3684},[12990,12994,12998],{"type":3112,"tag":3395,"props":12991,"children":12992},{"style":3474},[12993],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":12995,"children":12996},{"style":3540},[12997],{"type":3117,"value":3543},{"type":3112,"tag":3395,"props":12999,"children":13000},{"style":3474},[13001],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":13003,"children":13004},{"class":3397,"line":3017},[13005],{"type":3112,"tag":3395,"props":13006,"children":13007},{"emptyLinePlaceholder":1200},[13008],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":13010,"children":13011},{"class":3397,"line":3013},[13012,13016,13020],{"type":3112,"tag":3395,"props":13013,"children":13014},{"style":3474},[13015],{"type":3117,"value":3537},{"type":3112,"tag":3395,"props":13017,"children":13018},{"style":3540},[13019],{"type":3117,"value":3677},{"type":3112,"tag":3395,"props":13021,"children":13022},{"style":3474},[13023],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":13025,"children":13026},{"class":3397,"line":3009},[13027,13031,13035],{"type":3112,"tag":3395,"props":13028,"children":13029},{"style":3474},[13030],{"type":3117,"value":3690},{"type":3112,"tag":3395,"props":13032,"children":13033},{"style":3540},[13034],{"type":3117,"value":3695},{"type":3112,"tag":3395,"props":13036,"children":13037},{"style":3474},[13038],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":13040,"children":13041},{"class":3397,"line":3846},[13042,13046,13050,13054,13059,13063,13067],{"type":3112,"tag":3395,"props":13043,"children":13044},{"style":3474},[13045],{"type":3117,"value":3730},{"type":3112,"tag":3395,"props":13047,"children":13048},{"style":3540},[13049],{"type":3117,"value":3119},{"type":3112,"tag":3395,"props":13051,"children":13052},{"style":3474},[13053],{"type":3117,"value":3739},{"type":3112,"tag":3395,"props":13055,"children":13056},{"style":3469},[13057],{"type":3117,"value":13058},"Status: {{ status }}",{"type":3112,"tag":3395,"props":13060,"children":13061},{"style":3474},[13062],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":13064,"children":13065},{"style":3540},[13066],{"type":3117,"value":3119},{"type":3112,"tag":3395,"props":13068,"children":13069},{"style":3474},[13070],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":13072,"children":13073},{"class":3397,"line":3100},[13074,13078,13082,13086,13091,13095,13099],{"type":3112,"tag":3395,"props":13075,"children":13076},{"style":3474},[13077],{"type":3117,"value":3730},{"type":3112,"tag":3395,"props":13079,"children":13080},{"style":3540},[13081],{"type":3117,"value":3119},{"type":3112,"tag":3395,"props":13083,"children":13084},{"style":3474},[13085],{"type":3117,"value":3739},{"type":3112,"tag":3395,"props":13087,"children":13088},{"style":3469},[13089],{"type":3117,"value":13090},"Data: {{ data }}",{"type":3112,"tag":3395,"props":13092,"children":13093},{"style":3474},[13094],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":13096,"children":13097},{"style":3540},[13098],{"type":3117,"value":3119},{"type":3112,"tag":3395,"props":13100,"children":13101},{"style":3474},[13102],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":13104,"children":13105},{"class":3397,"line":3883},[13106,13110,13114],{"type":3112,"tag":3395,"props":13107,"children":13108},{"style":3474},[13109],{"type":3117,"value":3730},{"type":3112,"tag":3395,"props":13111,"children":13112},{"style":3540},[13113],{"type":3117,"value":3119},{"type":3112,"tag":3395,"props":13115,"children":13116},{"style":3474},[13117],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":13119,"children":13120},{"class":3397,"line":3916},[13121,13125,13129,13133,13137,13141,13146,13150,13154,13159,13163,13167],{"type":3112,"tag":3395,"props":13122,"children":13123},{"style":3474},[13124],{"type":3117,"value":11703},{"type":3112,"tag":3395,"props":13126,"children":13127},{"style":3540},[13128],{"type":3117,"value":3800},{"type":3112,"tag":3395,"props":13130,"children":13131},{"style":3546},[13132],{"type":3117,"value":3805},{"type":3112,"tag":3395,"props":13134,"children":13135},{"style":3474},[13136],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":13138,"children":13139},{"style":3474},[13140],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":13142,"children":13143},{"style":3407},[13144],{"type":3117,"value":13145},"open",{"type":3112,"tag":3395,"props":13147,"children":13148},{"style":3474},[13149],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":13151,"children":13152},{"style":3474},[13153],{"type":3117,"value":3739},{"type":3112,"tag":3395,"props":13155,"children":13156},{"style":3469},[13157],{"type":3117,"value":13158},"Open",{"type":3112,"tag":3395,"props":13160,"children":13161},{"style":3474},[13162],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":13164,"children":13165},{"style":3540},[13166],{"type":3117,"value":3800},{"type":3112,"tag":3395,"props":13168,"children":13169},{"style":3474},[13170],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":13172,"children":13173},{"class":3397,"line":3971},[13174,13178,13182,13186,13190,13194,13199,13203,13207,13212,13216,13220],{"type":3112,"tag":3395,"props":13175,"children":13176},{"style":3474},[13177],{"type":3117,"value":11703},{"type":3112,"tag":3395,"props":13179,"children":13180},{"style":3540},[13181],{"type":3117,"value":3800},{"type":3112,"tag":3395,"props":13183,"children":13184},{"style":3546},[13185],{"type":3117,"value":3805},{"type":3112,"tag":3395,"props":13187,"children":13188},{"style":3474},[13189],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":13191,"children":13192},{"style":3474},[13193],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":13195,"children":13196},{"style":3407},[13197],{"type":3117,"value":13198},"close(1000, 'Closing')",{"type":3112,"tag":3395,"props":13200,"children":13201},{"style":3474},[13202],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":13204,"children":13205},{"style":3474},[13206],{"type":3117,"value":3739},{"type":3112,"tag":3395,"props":13208,"children":13209},{"style":3469},[13210],{"type":3117,"value":13211},"Close",{"type":3112,"tag":3395,"props":13213,"children":13214},{"style":3474},[13215],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":13217,"children":13218},{"style":3540},[13219],{"type":3117,"value":3800},{"type":3112,"tag":3395,"props":13221,"children":13222},{"style":3474},[13223],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":13225,"children":13226},{"class":3397,"line":3980},[13227,13231,13235,13239,13243,13247,13252,13256,13260,13265,13269,13273],{"type":3112,"tag":3395,"props":13228,"children":13229},{"style":3474},[13230],{"type":3117,"value":11703},{"type":3112,"tag":3395,"props":13232,"children":13233},{"style":3540},[13234],{"type":3117,"value":3800},{"type":3112,"tag":3395,"props":13236,"children":13237},{"style":3546},[13238],{"type":3117,"value":3805},{"type":3112,"tag":3395,"props":13240,"children":13241},{"style":3474},[13242],{"type":3117,"value":3477},{"type":3112,"tag":3395,"props":13244,"children":13245},{"style":3474},[13246],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":13248,"children":13249},{"style":3407},[13250],{"type":3117,"value":13251},"send('hello')",{"type":3112,"tag":3395,"props":13253,"children":13254},{"style":3474},[13255],{"type":3117,"value":3709},{"type":3112,"tag":3395,"props":13257,"children":13258},{"style":3474},[13259],{"type":3117,"value":3739},{"type":3112,"tag":3395,"props":13261,"children":13262},{"style":3469},[13263],{"type":3117,"value":13264},"Send hello",{"type":3112,"tag":3395,"props":13266,"children":13267},{"style":3474},[13268],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":13270,"children":13271},{"style":3540},[13272],{"type":3117,"value":3800},{"type":3112,"tag":3395,"props":13274,"children":13275},{"style":3474},[13276],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":13278,"children":13279},{"class":3397,"line":3005},[13280,13284,13288],{"type":3112,"tag":3395,"props":13281,"children":13282},{"style":3474},[13283],{"type":3117,"value":11834},{"type":3112,"tag":3395,"props":13285,"children":13286},{"style":3540},[13287],{"type":3117,"value":3119},{"type":3112,"tag":3395,"props":13289,"children":13290},{"style":3474},[13291],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":13293,"children":13294},{"class":3397,"line":4048},[13295,13299,13303],{"type":3112,"tag":3395,"props":13296,"children":13297},{"style":3474},[13298],{"type":3117,"value":3852},{"type":3112,"tag":3395,"props":13300,"children":13301},{"style":3540},[13302],{"type":3117,"value":3695},{"type":3112,"tag":3395,"props":13304,"children":13305},{"style":3474},[13306],{"type":3117,"value":3554},{"type":3112,"tag":3395,"props":13308,"children":13309},{"class":3397,"line":4318},[13310,13314,13318],{"type":3112,"tag":3395,"props":13311,"children":13312},{"style":3474},[13313],{"type":3117,"value":3647},{"type":3112,"tag":3395,"props":13315,"children":13316},{"style":3540},[13317],{"type":3117,"value":3677},{"type":3112,"tag":3395,"props":13319,"children":13320},{"style":3474},[13321],{"type":3117,"value":3554},{"type":3112,"tag":3203,"props":13323,"children":13325},{"id":13324},"configuration",[13326],{"type":3117,"value":29},{"type":3112,"tag":3119,"props":13328,"children":13329},{},[13330,13332,13338,13340,13353],{"type":3117,"value":13331},"We leverage ",{"type":3112,"tag":3257,"props":13333,"children":13335},{"className":13334},[],[13336],{"type":3117,"value":13337},"runtimeConfig.session",{"type":3117,"value":13339}," to give the defaults option to ",{"type":3112,"tag":3123,"props":13341,"children":13344},{"href":13342,"rel":13343},"https:\u002F\u002Fh3.unjs.io\u002Fexamples\u002Fhandle-session",[3127],[13345,13347],{"type":3117,"value":13346},"h3 ",{"type":3112,"tag":3257,"props":13348,"children":13350},{"className":13349},[],[13351],{"type":3117,"value":13352},"useSession",{"type":3117,"value":3350},{"type":3112,"tag":3119,"props":13355,"children":13356},{},[13357,13359,13364],{"type":3117,"value":13358},"You can overwrite the options in your ",{"type":3112,"tag":3257,"props":13360,"children":13362},{"className":13361},[],[13363],{"type":3117,"value":233},{"type":3117,"value":4134},{"type":3112,"tag":3385,"props":13366,"children":13368},{"className":4073,"code":13367,"language":4075,"meta":2985,"style":2985},"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",[13369],{"type":3112,"tag":3257,"props":13370,"children":13371},{"__ignoreMap":2985},[13372,13395,13430,13445,13461,13510,13517,13524],{"type":3112,"tag":3395,"props":13373,"children":13374},{"class":3397,"line":3071},[13375,13379,13383,13387,13391],{"type":3112,"tag":3395,"props":13376,"children":13377},{"style":4657},[13378],{"type":3117,"value":5191},{"type":3112,"tag":3395,"props":13380,"children":13381},{"style":4657},[13382],{"type":3117,"value":5306},{"type":3112,"tag":3395,"props":13384,"children":13385},{"style":3631},[13386],{"type":3117,"value":5311},{"type":3112,"tag":3395,"props":13388,"children":13389},{"style":3469},[13390],{"type":3117,"value":5316},{"type":3112,"tag":3395,"props":13392,"children":13393},{"style":3474},[13394],{"type":3117,"value":5321},{"type":3112,"tag":3395,"props":13396,"children":13397},{"class":3397,"line":3037},[13398,13402,13406,13410,13414,13418,13422,13426],{"type":3112,"tag":3395,"props":13399,"children":13400},{"style":3540},[13401],{"type":3117,"value":6543},{"type":3112,"tag":3395,"props":13403,"children":13404},{"style":3474},[13405],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":13407,"children":13408},{"style":3469},[13409],{"type":3117,"value":6552},{"type":3112,"tag":3395,"props":13411,"children":13412},{"style":3474},[13413],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":13415,"children":13416},{"style":3407},[13417],{"type":3117,"value":2984},{"type":3112,"tag":3395,"props":13419,"children":13420},{"style":3474},[13421],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":13423,"children":13424},{"style":3469},[13425],{"type":3117,"value":6569},{"type":3112,"tag":3395,"props":13427,"children":13428},{"style":3474},[13429],{"type":3117,"value":5407},{"type":3112,"tag":3395,"props":13431,"children":13432},{"class":3397,"line":3021},[13433,13437,13441],{"type":3112,"tag":3395,"props":13434,"children":13435},{"style":3540},[13436],{"type":3117,"value":5329},{"type":3112,"tag":3395,"props":13438,"children":13439},{"style":3474},[13440],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":13442,"children":13443},{"style":3474},[13444],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":13446,"children":13447},{"class":3397,"line":3658},[13448,13453,13457],{"type":3112,"tag":3395,"props":13449,"children":13450},{"style":3540},[13451],{"type":3117,"value":13452},"    session",{"type":3112,"tag":3395,"props":13454,"children":13455},{"style":3474},[13456],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":13458,"children":13459},{"style":3474},[13460],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":13462,"children":13463},{"class":3397,"line":3667},[13464,13469,13473,13478,13483,13487,13491,13496,13500,13505],{"type":3112,"tag":3395,"props":13465,"children":13466},{"style":3540},[13467],{"type":3117,"value":13468},"      maxAge",{"type":3112,"tag":3395,"props":13470,"children":13471},{"style":3474},[13472],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":13474,"children":13475},{"style":6995},[13476],{"type":3117,"value":13477}," 60",{"type":3112,"tag":3395,"props":13479,"children":13480},{"style":3474},[13481],{"type":3117,"value":13482}," *",{"type":3112,"tag":3395,"props":13484,"children":13485},{"style":6995},[13486],{"type":3117,"value":13477},{"type":3112,"tag":3395,"props":13488,"children":13489},{"style":3474},[13490],{"type":3117,"value":13482},{"type":3112,"tag":3395,"props":13492,"children":13493},{"style":6995},[13494],{"type":3117,"value":13495}," 24",{"type":3112,"tag":3395,"props":13497,"children":13498},{"style":3474},[13499],{"type":3117,"value":13482},{"type":3112,"tag":3395,"props":13501,"children":13502},{"style":6995},[13503],{"type":3117,"value":13504}," 7",{"type":3112,"tag":3395,"props":13506,"children":13507},{"style":3460},[13508],{"type":3117,"value":13509}," \u002F\u002F 1 week\n",{"type":3112,"tag":3395,"props":13511,"children":13512},{"class":3397,"line":3684},[13513],{"type":3112,"tag":3395,"props":13514,"children":13515},{"style":3474},[13516],{"type":3117,"value":5447},{"type":3112,"tag":3395,"props":13518,"children":13519},{"class":3397,"line":3017},[13520],{"type":3112,"tag":3395,"props":13521,"children":13522},{"style":3474},[13523],{"type":3117,"value":5095},{"type":3112,"tag":3395,"props":13525,"children":13526},{"class":3397,"line":3013},[13527,13531],{"type":3112,"tag":3395,"props":13528,"children":13529},{"style":3474},[13530],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":13532,"children":13533},{"style":3469},[13534],{"type":3117,"value":4837},{"type":3112,"tag":3119,"props":13536,"children":13537},{},[13538],{"type":3117,"value":13539},"Our defaults are:",{"type":3112,"tag":3385,"props":13541,"children":13543},{"className":4073,"code":13542,"language":4075,"meta":2985,"style":2985},"{\n  name: 'nuxt-session',\n  password: process.env.NUXT_SESSION_PASSWORD || '',\n  cookie: {\n    sameSite: 'lax'\n  }\n}\n",[13544],{"type":3112,"tag":3257,"props":13545,"children":13546},{"__ignoreMap":2985},[13547,13554,13583,13631,13647,13672,13679],{"type":3112,"tag":3395,"props":13548,"children":13549},{"class":3397,"line":3071},[13550],{"type":3112,"tag":3395,"props":13551,"children":13552},{"style":3474},[13553],{"type":3117,"value":5321},{"type":3112,"tag":3395,"props":13555,"children":13556},{"class":3397,"line":3037},[13557,13562,13566,13570,13575,13579],{"type":3112,"tag":3395,"props":13558,"children":13559},{"style":3401},[13560],{"type":3117,"value":13561},"  name",{"type":3112,"tag":3395,"props":13563,"children":13564},{"style":3474},[13565],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":13567,"children":13568},{"style":3474},[13569],{"type":3117,"value":4718},{"type":3112,"tag":3395,"props":13571,"children":13572},{"style":3407},[13573],{"type":3117,"value":13574},"nuxt-session",{"type":3112,"tag":3395,"props":13576,"children":13577},{"style":3474},[13578],{"type":3117,"value":5058},{"type":3112,"tag":3395,"props":13580,"children":13581},{"style":3474},[13582],{"type":3117,"value":5407},{"type":3112,"tag":3395,"props":13584,"children":13585},{"class":3397,"line":3021},[13586,13591,13595,13600,13604,13609,13613,13617,13622,13627],{"type":3112,"tag":3395,"props":13587,"children":13588},{"style":3401},[13589],{"type":3117,"value":13590},"  password",{"type":3112,"tag":3395,"props":13592,"children":13593},{"style":3474},[13594],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":13596,"children":13597},{"style":3469},[13598],{"type":3117,"value":13599}," process",{"type":3112,"tag":3395,"props":13601,"children":13602},{"style":3474},[13603],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":13605,"children":13606},{"style":3469},[13607],{"type":3117,"value":13608},"env",{"type":3112,"tag":3395,"props":13610,"children":13611},{"style":3474},[13612],{"type":3117,"value":3350},{"type":3112,"tag":3395,"props":13614,"children":13615},{"style":3469},[13616],{"type":3117,"value":3439},{"type":3112,"tag":3395,"props":13618,"children":13619},{"style":3474},[13620],{"type":3117,"value":13621}," ||",{"type":3112,"tag":3395,"props":13623,"children":13624},{"style":3474},[13625],{"type":3117,"value":13626}," ''",{"type":3112,"tag":3395,"props":13628,"children":13629},{"style":3474},[13630],{"type":3117,"value":5407},{"type":3112,"tag":3395,"props":13632,"children":13633},{"class":3397,"line":3658},[13634,13639,13643],{"type":3112,"tag":3395,"props":13635,"children":13636},{"style":3401},[13637],{"type":3117,"value":13638},"  cookie",{"type":3112,"tag":3395,"props":13640,"children":13641},{"style":3474},[13642],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":13644,"children":13645},{"style":3474},[13646],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":13648,"children":13649},{"class":3397,"line":3667},[13650,13655,13659,13663,13668],{"type":3112,"tag":3395,"props":13651,"children":13652},{"style":3401},[13653],{"type":3117,"value":13654},"    sameSite",{"type":3112,"tag":3395,"props":13656,"children":13657},{"style":3474},[13658],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":13660,"children":13661},{"style":3474},[13662],{"type":3117,"value":4718},{"type":3112,"tag":3395,"props":13664,"children":13665},{"style":3407},[13666],{"type":3117,"value":13667},"lax",{"type":3112,"tag":3395,"props":13669,"children":13670},{"style":3474},[13671],{"type":3117,"value":4727},{"type":3112,"tag":3395,"props":13673,"children":13674},{"class":3397,"line":3684},[13675],{"type":3112,"tag":3395,"props":13676,"children":13677},{"style":3474},[13678],{"type":3117,"value":5095},{"type":3112,"tag":3395,"props":13680,"children":13681},{"class":3397,"line":3017},[13682],{"type":3112,"tag":3395,"props":13683,"children":13684},{"style":3474},[13685],{"type":3117,"value":4573},{"type":3112,"tag":3119,"props":13687,"children":13688},{},[13689,13691,13697,13698,13704],{"type":3117,"value":13690},"You can also overwrite the session config by passing it as 3rd argument of the ",{"type":3112,"tag":3257,"props":13692,"children":13694},{"className":13693},[],[13695],{"type":3117,"value":13696},"setUserSession",{"type":3117,"value":6227},{"type":3112,"tag":3257,"props":13699,"children":13701},{"className":13700},[],[13702],{"type":3117,"value":13703},"replaceUserSession",{"type":3117,"value":13705}," functions:",{"type":3112,"tag":3385,"props":13707,"children":13709},{"className":4073,"code":13708,"language":4075,"meta":2985,"style":2985},"await setUserSession(event, { ... } , {\n  maxAge: 60 * 60 * 24 * 7 \u002F\u002F 1 week\n})\n",[13710],{"type":3112,"tag":3257,"props":13711,"children":13712},{"__ignoreMap":2985},[13713,13754,13798],{"type":3112,"tag":3395,"props":13714,"children":13715},{"class":3397,"line":3071},[13716,13720,13724,13728,13732,13736,13741,13745,13750],{"type":3112,"tag":3395,"props":13717,"children":13718},{"style":4657},[13719],{"type":3117,"value":4660},{"type":3112,"tag":3395,"props":13721,"children":13722},{"style":3631},[13723],{"type":3117,"value":4665},{"type":3112,"tag":3395,"props":13725,"children":13726},{"style":3469},[13727],{"type":3117,"value":4670},{"type":3112,"tag":3395,"props":13729,"children":13730},{"style":3474},[13731],{"type":3117,"value":3577},{"type":3112,"tag":3395,"props":13733,"children":13734},{"style":3474},[13735],{"type":3117,"value":3567},{"type":3112,"tag":3395,"props":13737,"children":13738},{"style":3474},[13739],{"type":3117,"value":13740}," ...",{"type":3112,"tag":3395,"props":13742,"children":13743},{"style":3474},[13744],{"type":3117,"value":7507},{"type":3112,"tag":3395,"props":13746,"children":13747},{"style":3474},[13748],{"type":3117,"value":13749}," ,",{"type":3112,"tag":3395,"props":13751,"children":13752},{"style":3474},[13753],{"type":3117,"value":4097},{"type":3112,"tag":3395,"props":13755,"children":13756},{"class":3397,"line":3037},[13757,13762,13766,13770,13774,13778,13782,13786,13790,13794],{"type":3112,"tag":3395,"props":13758,"children":13759},{"style":3540},[13760],{"type":3117,"value":13761},"  maxAge",{"type":3112,"tag":3395,"props":13763,"children":13764},{"style":3474},[13765],{"type":3117,"value":4134},{"type":3112,"tag":3395,"props":13767,"children":13768},{"style":6995},[13769],{"type":3117,"value":13477},{"type":3112,"tag":3395,"props":13771,"children":13772},{"style":3474},[13773],{"type":3117,"value":13482},{"type":3112,"tag":3395,"props":13775,"children":13776},{"style":6995},[13777],{"type":3117,"value":13477},{"type":3112,"tag":3395,"props":13779,"children":13780},{"style":3474},[13781],{"type":3117,"value":13482},{"type":3112,"tag":3395,"props":13783,"children":13784},{"style":6995},[13785],{"type":3117,"value":13495},{"type":3112,"tag":3395,"props":13787,"children":13788},{"style":3474},[13789],{"type":3117,"value":13482},{"type":3112,"tag":3395,"props":13791,"children":13792},{"style":6995},[13793],{"type":3117,"value":13504},{"type":3112,"tag":3395,"props":13795,"children":13796},{"style":3460},[13797],{"type":3117,"value":13509},{"type":3112,"tag":3395,"props":13799,"children":13800},{"class":3397,"line":3021},[13801,13805],{"type":3112,"tag":3395,"props":13802,"children":13803},{"style":3474},[13804],{"type":3117,"value":3623},{"type":3112,"tag":3395,"props":13806,"children":13807},{"style":3469},[13808],{"type":3117,"value":4837},{"type":3112,"tag":3119,"props":13810,"children":13811},{},[13812,13814,13825],{"type":3117,"value":13813},"Checkout the ",{"type":3112,"tag":3123,"props":13815,"children":13818},{"href":13816,"rel":13817},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fh3\u002Fblob\u002Fc04c458810e34eb15c1647e1369e7d7ef19f567d\u002Fsrc\u002Futils\u002Fsession.ts#L20",[3127],[13819],{"type":3112,"tag":3257,"props":13820,"children":13822},{"className":13821},[],[13823],{"type":3117,"value":13824},"SessionConfig",{"type":3117,"value":13826}," for all options.",{"type":3112,"tag":3203,"props":13828,"children":13830},{"id":13829},"more",[13831],{"type":3117,"value":13832},"More",{"type":3112,"tag":3169,"props":13834,"children":13835},{},[13836],{"type":3112,"tag":3173,"props":13837,"children":13838},{},[13839,13846,13848],{"type":3112,"tag":3123,"props":13840,"children":13843},{"href":13841,"rel":13842},"https:\u002F\u002Fgithub.com\u002Fbarbapapazes\u002Fnuxt-authorization",[3127],[13844],{"type":3117,"value":13845},"nuxt-authorization",{"type":3117,"value":13847},": Authorization module for managing permissions inside a Nuxt app, compatible with ",{"type":3112,"tag":3257,"props":13849,"children":13851},{"className":13850},[],[13852],{"type":3117,"value":2984},{"type":3112,"tag":3203,"props":13854,"children":13856},{"id":13855},"development",[13857],{"type":3117,"value":13858},"Development",{"type":3112,"tag":3385,"props":13860,"children":13862},{"className":3387,"code":13861,"language":3389,"meta":2985,"style":2985},"# 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",[13863],{"type":3112,"tag":3257,"props":13864,"children":13865},{"__ignoreMap":2985},[13866,13874,13887,13894,13902,13919,13926,13934,13950,13957,13965,13981,13988,13996,14012,14019,14027,14043,14059,14066,14074],{"type":3112,"tag":3395,"props":13867,"children":13868},{"class":3397,"line":3071},[13869],{"type":3112,"tag":3395,"props":13870,"children":13871},{"style":3460},[13872],{"type":3117,"value":13873},"# Install dependencies\n",{"type":3112,"tag":3395,"props":13875,"children":13876},{"class":3397,"line":3037},[13877,13882],{"type":3112,"tag":3395,"props":13878,"children":13879},{"style":3401},[13880],{"type":3117,"value":13881},"pnpm",{"type":3112,"tag":3395,"props":13883,"children":13884},{"style":3407},[13885],{"type":3117,"value":13886}," install\n",{"type":3112,"tag":3395,"props":13888,"children":13889},{"class":3397,"line":3021},[13890],{"type":3112,"tag":3395,"props":13891,"children":13892},{"emptyLinePlaceholder":1200},[13893],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":13895,"children":13896},{"class":3397,"line":3658},[13897],{"type":3112,"tag":3395,"props":13898,"children":13899},{"style":3460},[13900],{"type":3117,"value":13901},"# Generate type stubs\n",{"type":3112,"tag":3395,"props":13903,"children":13904},{"class":3397,"line":3667},[13905,13909,13914],{"type":3112,"tag":3395,"props":13906,"children":13907},{"style":3401},[13908],{"type":3117,"value":13881},{"type":3112,"tag":3395,"props":13910,"children":13911},{"style":3407},[13912],{"type":3117,"value":13913}," run",{"type":3112,"tag":3395,"props":13915,"children":13916},{"style":3407},[13917],{"type":3117,"value":13918}," dev:prepare\n",{"type":3112,"tag":3395,"props":13920,"children":13921},{"class":3397,"line":3684},[13922],{"type":3112,"tag":3395,"props":13923,"children":13924},{"emptyLinePlaceholder":1200},[13925],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":13927,"children":13928},{"class":3397,"line":3017},[13929],{"type":3112,"tag":3395,"props":13930,"children":13931},{"style":3460},[13932],{"type":3117,"value":13933},"# Develop with the playground\n",{"type":3112,"tag":3395,"props":13935,"children":13936},{"class":3397,"line":3013},[13937,13941,13945],{"type":3112,"tag":3395,"props":13938,"children":13939},{"style":3401},[13940],{"type":3117,"value":13881},{"type":3112,"tag":3395,"props":13942,"children":13943},{"style":3407},[13944],{"type":3117,"value":13913},{"type":3112,"tag":3395,"props":13946,"children":13947},{"style":3407},[13948],{"type":3117,"value":13949}," dev\n",{"type":3112,"tag":3395,"props":13951,"children":13952},{"class":3397,"line":3009},[13953],{"type":3112,"tag":3395,"props":13954,"children":13955},{"emptyLinePlaceholder":1200},[13956],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":13958,"children":13959},{"class":3397,"line":3846},[13960],{"type":3112,"tag":3395,"props":13961,"children":13962},{"style":3460},[13963],{"type":3117,"value":13964},"# Build the playground\n",{"type":3112,"tag":3395,"props":13966,"children":13967},{"class":3397,"line":3100},[13968,13972,13976],{"type":3112,"tag":3395,"props":13969,"children":13970},{"style":3401},[13971],{"type":3117,"value":13881},{"type":3112,"tag":3395,"props":13973,"children":13974},{"style":3407},[13975],{"type":3117,"value":13913},{"type":3112,"tag":3395,"props":13977,"children":13978},{"style":3407},[13979],{"type":3117,"value":13980}," dev:build\n",{"type":3112,"tag":3395,"props":13982,"children":13983},{"class":3397,"line":3883},[13984],{"type":3112,"tag":3395,"props":13985,"children":13986},{"emptyLinePlaceholder":1200},[13987],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":13989,"children":13990},{"class":3397,"line":3916},[13991],{"type":3112,"tag":3395,"props":13992,"children":13993},{"style":3460},[13994],{"type":3117,"value":13995},"# Run ESLint\n",{"type":3112,"tag":3395,"props":13997,"children":13998},{"class":3397,"line":3971},[13999,14003,14007],{"type":3112,"tag":3395,"props":14000,"children":14001},{"style":3401},[14002],{"type":3117,"value":13881},{"type":3112,"tag":3395,"props":14004,"children":14005},{"style":3407},[14006],{"type":3117,"value":13913},{"type":3112,"tag":3395,"props":14008,"children":14009},{"style":3407},[14010],{"type":3117,"value":14011}," lint\n",{"type":3112,"tag":3395,"props":14013,"children":14014},{"class":3397,"line":3980},[14015],{"type":3112,"tag":3395,"props":14016,"children":14017},{"emptyLinePlaceholder":1200},[14018],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":14020,"children":14021},{"class":3397,"line":3005},[14022],{"type":3112,"tag":3395,"props":14023,"children":14024},{"style":3460},[14025],{"type":3117,"value":14026},"# Run Vitest\n",{"type":3112,"tag":3395,"props":14028,"children":14029},{"class":3397,"line":4048},[14030,14034,14038],{"type":3112,"tag":3395,"props":14031,"children":14032},{"style":3401},[14033],{"type":3117,"value":13881},{"type":3112,"tag":3395,"props":14035,"children":14036},{"style":3407},[14037],{"type":3117,"value":13913},{"type":3112,"tag":3395,"props":14039,"children":14040},{"style":3407},[14041],{"type":3117,"value":14042}," test\n",{"type":3112,"tag":3395,"props":14044,"children":14045},{"class":3397,"line":4318},[14046,14050,14054],{"type":3112,"tag":3395,"props":14047,"children":14048},{"style":3401},[14049],{"type":3117,"value":13881},{"type":3112,"tag":3395,"props":14051,"children":14052},{"style":3407},[14053],{"type":3117,"value":13913},{"type":3112,"tag":3395,"props":14055,"children":14056},{"style":3407},[14057],{"type":3117,"value":14058}," test:watch\n",{"type":3112,"tag":3395,"props":14060,"children":14061},{"class":3397,"line":4326},[14062],{"type":3112,"tag":3395,"props":14063,"children":14064},{"emptyLinePlaceholder":1200},[14065],{"type":3117,"value":3664},{"type":3112,"tag":3395,"props":14067,"children":14068},{"class":3397,"line":4335},[14069],{"type":3112,"tag":3395,"props":14070,"children":14071},{"style":3460},[14072],{"type":3117,"value":14073},"# Release new version\n",{"type":3112,"tag":3395,"props":14075,"children":14076},{"class":3397,"line":4343},[14077,14081,14085],{"type":3112,"tag":3395,"props":14078,"children":14079},{"style":3401},[14080],{"type":3117,"value":13881},{"type":3112,"tag":3395,"props":14082,"children":14083},{"style":3407},[14084],{"type":3117,"value":13913},{"type":3112,"tag":3395,"props":14086,"children":14087},{"style":3407},[14088],{"type":3117,"value":14089}," release\n",{"type":3112,"tag":14091,"props":14092,"children":14093},"style",{},[14094],{"type":3117,"value":14095},"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":2985,"searchDepth":3037,"depth":3037,"links":14097},[14098,14099,14100,14101,14104,14112,14113,14118,14119,14120,14121],{"id":3205,"depth":3037,"text":399},{"id":3323,"depth":3037,"text":3326},{"id":3364,"depth":3037,"text":3367},{"id":3505,"depth":3037,"text":3508,"children":14102},[14103],{"id":3517,"depth":3021,"text":3520},{"id":4598,"depth":3037,"text":4601,"children":14105},[14106,14107,14108,14109,14110,14111],{"id":4617,"depth":3021,"text":4620},{"id":5211,"depth":3021,"text":5214},{"id":6212,"depth":3021,"text":3239},{"id":6664,"depth":3021,"text":6667},{"id":6814,"depth":3021,"text":3248},{"id":10728,"depth":3021,"text":10731},{"id":11021,"depth":3037,"text":11024},{"id":11296,"depth":3037,"text":3219,"children":14114},[14115,14116],{"id":11467,"depth":3021,"text":11470},{"id":11595,"depth":3021,"text":14117},"\u003CAuthState> component",{"id":12300,"depth":3037,"text":12303},{"id":13324,"depth":3037,"text":29},{"id":13829,"depth":3037,"text":13832},{"id":13855,"depth":3037,"text":13858}]