[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fGCo9l1hMtNdUiA6QzdUX5X3kLqaWcC5t2kdz4LrvCvc":3,"module-auth-utils":2975,"versions":14117},[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",{"name":2976,"description":2977,"repo":2978,"npm":2979,"icon":2980,"github":2981,"website":2981,"learn_more":2980,"category":2982,"type":2983,"maintainers":2984,"compatibility":2989,"generatedAt":2992,"contributors":2993,"stats":3091,"readme":3100},"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",[2985],{"name":2986,"github":2987,"twitter":2987,"bluesky":2988},"Sébastien Chopin","atinux","atinux.com",{"nuxt":2990,"requires":2991},">=3.0.0",{},"2026-06-26T06:54:14.431Z",[2994,2997,3001,3005,3009,3013,3017,3020,3023,3026,3029,3033,3036,3039,3042,3045,3048,3051,3054,3057,3060,3063,3067,3070,3073,3076,3079,3082,3085,3088],{"id":2995,"username":2987,"contributions":2996},904724,197,{"id":2998,"username":2999,"contributions":3000},28706372,"danielroe",16,{"id":3002,"username":3003,"contributions":3004},50090595,"ahmedrangel",9,{"id":3006,"username":3007,"contributions":3008},12988935,"Gerbuuun",8,{"id":3010,"username":3011,"contributions":3012},45267552,"Barbapapazes",7,{"id":3014,"username":3015,"contributions":3016},13056429,"sandros94",3,{"id":3018,"username":3019,"contributions":3016},16264115,"Yizack",{"id":3021,"username":3022,"contributions":3016},967369,"acidjazz",{"id":3024,"username":3025,"contributions":3016},15887916,"blumgart",{"id":3027,"username":3028,"contributions":3016},67746033,"justserdar",{"id":3030,"username":3031,"contributions":3032},10636392,"brianacdev",2,{"id":3034,"username":3035,"contributions":3032},67898185,"larsrickert",{"id":3037,"username":3038,"contributions":3032},40021217,"kingyue737",{"id":3040,"username":3041,"contributions":3032},59120414,"cth-latest",{"id":3043,"username":3044,"contributions":3032},19751938,"noook",{"id":3046,"username":3047,"contributions":3032},1409645,"mariosant",{"id":3049,"username":3050,"contributions":3032},24661232,"Jorgagu",{"id":3052,"username":3053,"contributions":3032},5326365,"harlan-zw",{"id":3055,"username":3056,"contributions":3032},61092270,"stranavad",{"id":3058,"username":3059,"contributions":3032},1592441,"mendrinos",{"id":3061,"username":3062,"contributions":3032},376963,"bisand",{"id":3064,"username":3065,"contributions":3066},18315316,"Syrex-o",1,{"id":3068,"username":3069,"contributions":3066},3109921,"silvio-e",{"id":3071,"username":3072,"contributions":3066},18753964,"sifferhans",{"id":3074,"username":3075,"contributions":3066},17186421,"samulefevre",{"id":3077,"username":3078,"contributions":3066},15785987,"samydoesit",{"id":3080,"username":3081,"contributions":3066},31662219,"rudokemper",{"id":3083,"username":3084,"contributions":3066},29805551,"RobertHaba",{"id":3086,"username":3087,"contributions":3066},1231105,"SteinRobert",{"id":3089,"username":3090,"contributions":3066},5472296,"robert-hoffmann",{"version":3092,"downloads":3093,"stars":3094,"watchers":3095,"forks":3096,"defaultBranch":3097,"publishedAt":3098,"createdAt":3099},"0.5.29",317892,1579,11,187,"main",1771335673386,1699356484873,{"data":3101,"body":3103,"toc":14091},{"title":3102,"description":2980},"Nuxt Auth Utils",{"type":3104,"children":3105},"root",[3106,3113,3159,3163,3197,3203,3302,3316,3322,3334,3346,3357,3363,3379,3421,3443,3478,3490,3498,3504,3509,3516,4057,4066,4569,4591,4597,4610,4616,4993,5013,5192,5204,5210,5215,5235,5256,5283,5461,5466,5487,5495,5502,5745,5758,5764,5775,6180,6192,6205,6210,6240,6366,6379,6490,6501,6657,6663,6668,6673,6681,6715,6728,6807,6812,6817,6822,6829,6861,6873,6952,6957,6962,6976,7296,7436,7466,8394,8429,9266,9300,9813,9818,10657,10675,10681,10710,10721,10727,10732,11014,11020,11039,11265,11289,11294,11314,11319,11327,11346,11434,11460,11466,11483,11570,11588,11598,11610,11615,11868,11880,11892,12265,12293,12299,12312,12330,12433,12453,12803,12817,13317,13322,13349,13360,13530,13535,13681,13701,13804,13822,13828,13848,13854,14085],{"type":3107,"tag":3108,"props":3109,"children":3110},"element","h1",{"id":2979},[3111],{"type":3112,"value":3102},"text",{"type":3107,"tag":3114,"props":3115,"children":3116},"p",{},[3117,3130,3140,3149],{"type":3107,"tag":3118,"props":3119,"children":3123},"a",{"href":3120,"rel":3121},"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fnuxt-auth-utils",[3122],"nofollow",[3124],{"type":3107,"tag":3125,"props":3126,"children":3129},"img",{"alt":3127,"src":3128},"npm version","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fnuxt-auth-utils\u002Flatest.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3107,"tag":3118,"props":3131,"children":3134},{"href":3132,"rel":3133},"https:\u002F\u002Fnpm.chart.dev\u002Fnuxt-auth-utils",[3122],[3135],{"type":3107,"tag":3125,"props":3136,"children":3139},{"alt":3137,"src":3138},"npm downloads","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3107,"tag":3118,"props":3141,"children":3143},{"href":3120,"rel":3142},[3122],[3144],{"type":3107,"tag":3125,"props":3145,"children":3148},{"alt":3146,"src":3147},"License","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3107,"tag":3118,"props":3150,"children":3153},{"href":3151,"rel":3152},"https:\u002F\u002Fnuxt.com",[3122],[3154],{"type":3107,"tag":3125,"props":3155,"children":3158},{"alt":3156,"src":3157},"Nuxt","https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNuxt-020420?logo=nuxt.js",[],{"type":3107,"tag":3114,"props":3160,"children":3161},{},[3162],{"type":3112,"value":2977},{"type":3107,"tag":3164,"props":3165,"children":3166},"ul",{},[3167,3177,3187],{"type":3107,"tag":3168,"props":3169,"children":3170},"li",{},[3171],{"type":3107,"tag":3118,"props":3172,"children":3174},{"href":3173},"\u002FCHANGELOG.md",[3175],{"type":3112,"value":3176},"Release Notes",{"type":3107,"tag":3168,"props":3178,"children":3179},{},[3180],{"type":3107,"tag":3118,"props":3181,"children":3184},{"href":3182,"rel":3183},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fatidone",[3122],[3185],{"type":3112,"value":3186},"Demo with OAuth",{"type":3107,"tag":3168,"props":3188,"children":3189},{},[3190],{"type":3107,"tag":3118,"props":3191,"children":3194},{"href":3192,"rel":3193},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Ftodo-passkeys",[3122],[3195],{"type":3112,"value":3196},"Demo with Passkeys",{"type":3107,"tag":3198,"props":3199,"children":3201},"h2",{"id":3200},"features",[3202],{"type":3112,"value":399},{"type":3107,"tag":3164,"props":3204,"children":3205},{},[3206,3217,3226,3235,3244,3260,3269,3284,3293],{"type":3107,"tag":3168,"props":3207,"children":3208},{},[3209,3215],{"type":3107,"tag":3118,"props":3210,"children":3212},{"href":3211},"#hybrid-rendering",[3213],{"type":3112,"value":3214},"Hybrid Rendering",{"type":3112,"value":3216}," support (SSR \u002F CSR \u002F SWR \u002F Prerendering)",{"type":3107,"tag":3168,"props":3218,"children":3219},{},[3220],{"type":3107,"tag":3118,"props":3221,"children":3223},{"href":3222},"#supported-oauth-providers",[3224],{"type":3112,"value":3225},"40+ OAuth Providers",{"type":3107,"tag":3168,"props":3227,"children":3228},{},[3229],{"type":3107,"tag":3118,"props":3230,"children":3232},{"href":3231},"#password-hashing",[3233],{"type":3112,"value":3234},"Password Hashing",{"type":3107,"tag":3168,"props":3236,"children":3237},{},[3238],{"type":3107,"tag":3118,"props":3239,"children":3241},{"href":3240},"#webauthn-passkey",[3242],{"type":3112,"value":3243},"WebAuthn (passkey)",{"type":3107,"tag":3168,"props":3245,"children":3246},{},[3247],{"type":3107,"tag":3118,"props":3248,"children":3250},{"href":3249},"#vue-composable",[3251,3258],{"type":3107,"tag":3252,"props":3253,"children":3255},"code",{"className":3254},[],[3256],{"type":3112,"value":3257},"useUserSession()",{"type":3112,"value":3259}," Vue composable",{"type":3107,"tag":3168,"props":3261,"children":3262},{},[3263],{"type":3107,"tag":3118,"props":3264,"children":3266},{"href":3265},"#server-utils",[3267],{"type":3112,"value":3268},"Tree-shakable server utils",{"type":3107,"tag":3168,"props":3270,"children":3271},{},[3272],{"type":3107,"tag":3118,"props":3273,"children":3275},{"href":3274},"#authstate-component",[3276,3282],{"type":3107,"tag":3252,"props":3277,"children":3279},{"className":3278},[],[3280],{"type":3112,"value":3281},"\u003CAuthState>",{"type":3112,"value":3283}," component",{"type":3107,"tag":3168,"props":3285,"children":3286},{},[3287],{"type":3107,"tag":3118,"props":3288,"children":3290},{"href":3289},"#extend-session",[3291],{"type":3112,"value":3292},"Extendable with hooks",{"type":3107,"tag":3168,"props":3294,"children":3295},{},[3296],{"type":3107,"tag":3118,"props":3297,"children":3299},{"href":3298},"#websocket-support",[3300],{"type":3112,"value":3301},"WebSocket support",{"type":3107,"tag":3114,"props":3303,"children":3304},{},[3305,3307,3314],{"type":3112,"value":3306},"It has few dependencies (only from ",{"type":3107,"tag":3118,"props":3308,"children":3311},{"href":3309,"rel":3310},"https:\u002F\u002Fgithub.com\u002Funjs",[3122],[3312],{"type":3112,"value":3313},"UnJS",{"type":3112,"value":3315},"), run on multiple JS environments (Node, Deno, Workers) and is fully typed with TypeScript.",{"type":3107,"tag":3198,"props":3317,"children":3319},{"id":3318},"requirements",[3320],{"type":3112,"value":3321},"Requirements",{"type":3107,"tag":3114,"props":3323,"children":3324},{},[3325,3327,3332],{"type":3112,"value":3326},"This module only works with a Nuxt server running as it uses server API routes (",{"type":3107,"tag":3252,"props":3328,"children":3330},{"className":3329},[],[3331],{"type":3112,"value":765},{"type":3112,"value":3333},").",{"type":3107,"tag":3114,"props":3335,"children":3336},{},[3337,3339,3344],{"type":3112,"value":3338},"This means that you cannot use this module with ",{"type":3107,"tag":3252,"props":3340,"children":3342},{"className":3341},[],[3343],{"type":3112,"value":785},{"type":3112,"value":3345},".",{"type":3107,"tag":3114,"props":3347,"children":3348},{},[3349,3351,3355],{"type":3112,"value":3350},"You can anyway use ",{"type":3107,"tag":3118,"props":3352,"children":3353},{"href":3211},[3354],{"type":3112,"value":3214},{"type":3112,"value":3356}," to pre-render pages of your application or disable server-side rendering completely.",{"type":3107,"tag":3198,"props":3358,"children":3360},{"id":3359},"quick-setup",[3361],{"type":3112,"value":3362},"Quick Setup",{"type":3107,"tag":3364,"props":3365,"children":3366},"ol",{},[3367],{"type":3107,"tag":3168,"props":3368,"children":3369},{},[3370,3372,3377],{"type":3112,"value":3371},"Add ",{"type":3107,"tag":3252,"props":3373,"children":3375},{"className":3374},[],[3376],{"type":3112,"value":2979},{"type":3112,"value":3378}," in your Nuxt project",{"type":3107,"tag":3380,"props":3381,"children":3385},"pre",{"className":3382,"code":3383,"language":3384,"meta":2980,"style":2980},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","npx nuxi@latest module add auth-utils\n","bash",[3386],{"type":3107,"tag":3252,"props":3387,"children":3388},{"__ignoreMap":2980},[3389],{"type":3107,"tag":3390,"props":3391,"children":3393},"span",{"class":3392,"line":3066},"line",[3394,3400,3406,3411,3416],{"type":3107,"tag":3390,"props":3395,"children":3397},{"style":3396},"--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B",[3398],{"type":3112,"value":3399},"npx",{"type":3107,"tag":3390,"props":3401,"children":3403},{"style":3402},"--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D",[3404],{"type":3112,"value":3405}," nuxi@latest",{"type":3107,"tag":3390,"props":3407,"children":3408},{"style":3402},[3409],{"type":3112,"value":3410}," module",{"type":3107,"tag":3390,"props":3412,"children":3413},{"style":3402},[3414],{"type":3112,"value":3415}," add",{"type":3107,"tag":3390,"props":3417,"children":3418},{"style":3402},[3419],{"type":3112,"value":3420}," auth-utils\n",{"type":3107,"tag":3364,"props":3422,"children":3423},{"start":3032},[3424],{"type":3107,"tag":3168,"props":3425,"children":3426},{},[3427,3429,3435,3437,3442],{"type":3112,"value":3428},"Add a ",{"type":3107,"tag":3252,"props":3430,"children":3432},{"className":3431},[],[3433],{"type":3112,"value":3434},"NUXT_SESSION_PASSWORD",{"type":3112,"value":3436}," env variable with at least 32 characters in the ",{"type":3107,"tag":3252,"props":3438,"children":3440},{"className":3439},[],[3441],{"type":3112,"value":200},{"type":3112,"value":3345},{"type":3107,"tag":3380,"props":3444,"children":3446},{"className":3382,"code":3445,"language":3384,"meta":2980,"style":2980},"# .env\nNUXT_SESSION_PASSWORD=password-with-at-least-32-characters\n",[3447],{"type":3107,"tag":3252,"props":3448,"children":3449},{"__ignoreMap":2980},[3450,3459],{"type":3107,"tag":3390,"props":3451,"children":3452},{"class":3392,"line":3066},[3453],{"type":3107,"tag":3390,"props":3454,"children":3456},{"style":3455},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[3457],{"type":3112,"value":3458},"# .env\n",{"type":3107,"tag":3390,"props":3460,"children":3461},{"class":3392,"line":3032},[3462,3467,3473],{"type":3107,"tag":3390,"props":3463,"children":3465},{"style":3464},"--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8",[3466],{"type":3112,"value":3434},{"type":3107,"tag":3390,"props":3468,"children":3470},{"style":3469},"--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF",[3471],{"type":3112,"value":3472},"=",{"type":3107,"tag":3390,"props":3474,"children":3475},{"style":3402},[3476],{"type":3112,"value":3477},"password-with-at-least-32-characters\n",{"type":3107,"tag":3114,"props":3479,"children":3480},{},[3481,3483,3488],{"type":3112,"value":3482},"Nuxt Auth Utils generates one for you when running Nuxt in development the first time if no ",{"type":3107,"tag":3252,"props":3484,"children":3486},{"className":3485},[],[3487],{"type":3112,"value":3434},{"type":3112,"value":3489}," is set.",{"type":3107,"tag":3364,"props":3491,"children":3492},{"start":3016},[3493],{"type":3107,"tag":3168,"props":3494,"children":3495},{},[3496],{"type":3112,"value":3497},"That's it! You can now add authentication to your Nuxt app ✨",{"type":3107,"tag":3198,"props":3499,"children":3501},{"id":3500},"vue-composable",[3502],{"type":3112,"value":3503},"Vue Composable",{"type":3107,"tag":3114,"props":3505,"children":3506},{},[3507],{"type":3112,"value":3508},"Nuxt Auth Utils automatically adds some plugins to fetch the current user session to let you access it from your Vue components.",{"type":3107,"tag":3510,"props":3511,"children":3513},"h3",{"id":3512},"user-session",[3514],{"type":3112,"value":3515},"User Session",{"type":3107,"tag":3380,"props":3517,"children":3521},{"className":3518,"code":3519,"language":3520,"meta":2980,"style":2980},"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",[3522],{"type":3107,"tag":3252,"props":3523,"children":3524},{"__ignoreMap":2980},[3525,3550,3635,3651,3660,3677,3718,3752,3784,3839,3856,3876,3909,3964,3973,4026,4041],{"type":3107,"tag":3390,"props":3526,"children":3527},{"class":3392,"line":3066},[3528,3533,3539,3545],{"type":3107,"tag":3390,"props":3529,"children":3530},{"style":3469},[3531],{"type":3112,"value":3532},"\u003C",{"type":3107,"tag":3390,"props":3534,"children":3536},{"style":3535},"--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178",[3537],{"type":3112,"value":3538},"script",{"type":3107,"tag":3390,"props":3540,"children":3542},{"style":3541},"--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA",[3543],{"type":3112,"value":3544}," setup",{"type":3107,"tag":3390,"props":3546,"children":3547},{"style":3469},[3548],{"type":3112,"value":3549},">\n",{"type":3107,"tag":3390,"props":3551,"children":3552},{"class":3392,"line":3032},[3553,3558,3563,3568,3573,3578,3582,3587,3591,3596,3600,3605,3609,3614,3619,3624,3630],{"type":3107,"tag":3390,"props":3554,"children":3555},{"style":3541},[3556],{"type":3112,"value":3557},"const",{"type":3107,"tag":3390,"props":3559,"children":3560},{"style":3469},[3561],{"type":3112,"value":3562}," {",{"type":3107,"tag":3390,"props":3564,"children":3565},{"style":3464},[3566],{"type":3112,"value":3567}," loggedIn",{"type":3107,"tag":3390,"props":3569,"children":3570},{"style":3469},[3571],{"type":3112,"value":3572},",",{"type":3107,"tag":3390,"props":3574,"children":3575},{"style":3464},[3576],{"type":3112,"value":3577}," user",{"type":3107,"tag":3390,"props":3579,"children":3580},{"style":3469},[3581],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":3583,"children":3584},{"style":3464},[3585],{"type":3112,"value":3586}," session",{"type":3107,"tag":3390,"props":3588,"children":3589},{"style":3469},[3590],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":3592,"children":3593},{"style":3464},[3594],{"type":3112,"value":3595}," fetch",{"type":3107,"tag":3390,"props":3597,"children":3598},{"style":3469},[3599],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":3601,"children":3602},{"style":3464},[3603],{"type":3112,"value":3604}," clear",{"type":3107,"tag":3390,"props":3606,"children":3607},{"style":3469},[3608],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":3610,"children":3611},{"style":3464},[3612],{"type":3112,"value":3613}," openInPopup ",{"type":3107,"tag":3390,"props":3615,"children":3616},{"style":3469},[3617],{"type":3112,"value":3618},"}",{"type":3107,"tag":3390,"props":3620,"children":3621},{"style":3469},[3622],{"type":3112,"value":3623}," =",{"type":3107,"tag":3390,"props":3625,"children":3627},{"style":3626},"--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF",[3628],{"type":3112,"value":3629}," useUserSession",{"type":3107,"tag":3390,"props":3631,"children":3632},{"style":3464},[3633],{"type":3112,"value":3634},"()\n",{"type":3107,"tag":3390,"props":3636,"children":3637},{"class":3392,"line":3016},[3638,3643,3647],{"type":3107,"tag":3390,"props":3639,"children":3640},{"style":3469},[3641],{"type":3112,"value":3642},"\u003C\u002F",{"type":3107,"tag":3390,"props":3644,"children":3645},{"style":3535},[3646],{"type":3112,"value":3538},{"type":3107,"tag":3390,"props":3648,"children":3649},{"style":3469},[3650],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":3652,"children":3654},{"class":3392,"line":3653},4,[3655],{"type":3107,"tag":3390,"props":3656,"children":3657},{"emptyLinePlaceholder":1200},[3658],{"type":3112,"value":3659},"\n",{"type":3107,"tag":3390,"props":3661,"children":3663},{"class":3392,"line":3662},5,[3664,3668,3673],{"type":3107,"tag":3390,"props":3665,"children":3666},{"style":3469},[3667],{"type":3112,"value":3532},{"type":3107,"tag":3390,"props":3669,"children":3670},{"style":3535},[3671],{"type":3112,"value":3672},"template",{"type":3107,"tag":3390,"props":3674,"children":3675},{"style":3469},[3676],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":3678,"children":3680},{"class":3392,"line":3679},6,[3681,3686,3691,3696,3700,3705,3710,3714],{"type":3107,"tag":3390,"props":3682,"children":3683},{"style":3469},[3684],{"type":3112,"value":3685},"  \u003C",{"type":3107,"tag":3390,"props":3687,"children":3688},{"style":3535},[3689],{"type":3112,"value":3690},"div",{"type":3107,"tag":3390,"props":3692,"children":3693},{"style":3541},[3694],{"type":3112,"value":3695}," v-if",{"type":3107,"tag":3390,"props":3697,"children":3698},{"style":3469},[3699],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":3701,"children":3702},{"style":3469},[3703],{"type":3112,"value":3704},"\"",{"type":3107,"tag":3390,"props":3706,"children":3707},{"style":3402},[3708],{"type":3112,"value":3709},"loggedIn",{"type":3107,"tag":3390,"props":3711,"children":3712},{"style":3469},[3713],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":3715,"children":3716},{"style":3469},[3717],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":3719,"children":3720},{"class":3392,"line":3012},[3721,3726,3730,3735,3740,3744,3748],{"type":3107,"tag":3390,"props":3722,"children":3723},{"style":3469},[3724],{"type":3112,"value":3725},"    \u003C",{"type":3107,"tag":3390,"props":3727,"children":3728},{"style":3535},[3729],{"type":3112,"value":3108},{"type":3107,"tag":3390,"props":3731,"children":3732},{"style":3469},[3733],{"type":3112,"value":3734},">",{"type":3107,"tag":3390,"props":3736,"children":3737},{"style":3464},[3738],{"type":3112,"value":3739},"Welcome {{ user.login }}!",{"type":3107,"tag":3390,"props":3741,"children":3742},{"style":3469},[3743],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":3745,"children":3746},{"style":3535},[3747],{"type":3112,"value":3108},{"type":3107,"tag":3390,"props":3749,"children":3750},{"style":3469},[3751],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":3753,"children":3754},{"class":3392,"line":3008},[3755,3759,3763,3767,3772,3776,3780],{"type":3107,"tag":3390,"props":3756,"children":3757},{"style":3469},[3758],{"type":3112,"value":3725},{"type":3107,"tag":3390,"props":3760,"children":3761},{"style":3535},[3762],{"type":3112,"value":3114},{"type":3107,"tag":3390,"props":3764,"children":3765},{"style":3469},[3766],{"type":3112,"value":3734},{"type":3107,"tag":3390,"props":3768,"children":3769},{"style":3464},[3770],{"type":3112,"value":3771},"Logged in since {{ session.loggedInAt }}",{"type":3107,"tag":3390,"props":3773,"children":3774},{"style":3469},[3775],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":3777,"children":3778},{"style":3535},[3779],{"type":3112,"value":3114},{"type":3107,"tag":3390,"props":3781,"children":3782},{"style":3469},[3783],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":3785,"children":3786},{"class":3392,"line":3004},[3787,3791,3796,3801,3805,3809,3814,3818,3822,3827,3831,3835],{"type":3107,"tag":3390,"props":3788,"children":3789},{"style":3469},[3790],{"type":3112,"value":3725},{"type":3107,"tag":3390,"props":3792,"children":3793},{"style":3535},[3794],{"type":3112,"value":3795},"button",{"type":3107,"tag":3390,"props":3797,"children":3798},{"style":3541},[3799],{"type":3112,"value":3800}," @click",{"type":3107,"tag":3390,"props":3802,"children":3803},{"style":3469},[3804],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":3806,"children":3807},{"style":3469},[3808],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":3810,"children":3811},{"style":3402},[3812],{"type":3112,"value":3813},"clear",{"type":3107,"tag":3390,"props":3815,"children":3816},{"style":3469},[3817],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":3819,"children":3820},{"style":3469},[3821],{"type":3112,"value":3734},{"type":3107,"tag":3390,"props":3823,"children":3824},{"style":3464},[3825],{"type":3112,"value":3826},"Logout",{"type":3107,"tag":3390,"props":3828,"children":3829},{"style":3469},[3830],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":3832,"children":3833},{"style":3535},[3834],{"type":3112,"value":3795},{"type":3107,"tag":3390,"props":3836,"children":3837},{"style":3469},[3838],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":3840,"children":3842},{"class":3392,"line":3841},10,[3843,3848,3852],{"type":3107,"tag":3390,"props":3844,"children":3845},{"style":3469},[3846],{"type":3112,"value":3847},"  \u003C\u002F",{"type":3107,"tag":3390,"props":3849,"children":3850},{"style":3535},[3851],{"type":3112,"value":3690},{"type":3107,"tag":3390,"props":3853,"children":3854},{"style":3469},[3855],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":3857,"children":3858},{"class":3392,"line":3095},[3859,3863,3867,3872],{"type":3107,"tag":3390,"props":3860,"children":3861},{"style":3469},[3862],{"type":3112,"value":3685},{"type":3107,"tag":3390,"props":3864,"children":3865},{"style":3535},[3866],{"type":3112,"value":3690},{"type":3107,"tag":3390,"props":3868,"children":3869},{"style":3541},[3870],{"type":3112,"value":3871}," v-else",{"type":3107,"tag":3390,"props":3873,"children":3874},{"style":3469},[3875],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":3877,"children":3879},{"class":3392,"line":3878},12,[3880,3884,3888,3892,3897,3901,3905],{"type":3107,"tag":3390,"props":3881,"children":3882},{"style":3469},[3883],{"type":3112,"value":3725},{"type":3107,"tag":3390,"props":3885,"children":3886},{"style":3535},[3887],{"type":3112,"value":3108},{"type":3107,"tag":3390,"props":3889,"children":3890},{"style":3469},[3891],{"type":3112,"value":3734},{"type":3107,"tag":3390,"props":3893,"children":3894},{"style":3464},[3895],{"type":3112,"value":3896},"Not logged in",{"type":3107,"tag":3390,"props":3898,"children":3899},{"style":3469},[3900],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":3902,"children":3903},{"style":3535},[3904],{"type":3112,"value":3108},{"type":3107,"tag":3390,"props":3906,"children":3907},{"style":3469},[3908],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":3910,"children":3912},{"class":3392,"line":3911},13,[3913,3917,3921,3926,3930,3934,3939,3943,3947,3952,3956,3960],{"type":3107,"tag":3390,"props":3914,"children":3915},{"style":3469},[3916],{"type":3112,"value":3725},{"type":3107,"tag":3390,"props":3918,"children":3919},{"style":3535},[3920],{"type":3112,"value":3118},{"type":3107,"tag":3390,"props":3922,"children":3923},{"style":3541},[3924],{"type":3112,"value":3925}," href",{"type":3107,"tag":3390,"props":3927,"children":3928},{"style":3469},[3929],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":3931,"children":3932},{"style":3469},[3933],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":3935,"children":3936},{"style":3402},[3937],{"type":3112,"value":3938},"\u002Fauth\u002Fgithub",{"type":3107,"tag":3390,"props":3940,"children":3941},{"style":3469},[3942],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":3944,"children":3945},{"style":3469},[3946],{"type":3112,"value":3734},{"type":3107,"tag":3390,"props":3948,"children":3949},{"style":3464},[3950],{"type":3112,"value":3951},"Login with GitHub",{"type":3107,"tag":3390,"props":3953,"children":3954},{"style":3469},[3955],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":3957,"children":3958},{"style":3535},[3959],{"type":3112,"value":3118},{"type":3107,"tag":3390,"props":3961,"children":3962},{"style":3469},[3963],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":3965,"children":3967},{"class":3392,"line":3966},14,[3968],{"type":3107,"tag":3390,"props":3969,"children":3970},{"style":3455},[3971],{"type":3112,"value":3972},"    \u003C!-- or open the OAuth route in a popup -->\n",{"type":3107,"tag":3390,"props":3974,"children":3976},{"class":3392,"line":3975},15,[3977,3981,3985,3989,3993,3997,4002,4006,4010,4014,4018,4022],{"type":3107,"tag":3390,"props":3978,"children":3979},{"style":3469},[3980],{"type":3112,"value":3725},{"type":3107,"tag":3390,"props":3982,"children":3983},{"style":3535},[3984],{"type":3112,"value":3795},{"type":3107,"tag":3390,"props":3986,"children":3987},{"style":3541},[3988],{"type":3112,"value":3800},{"type":3107,"tag":3390,"props":3990,"children":3991},{"style":3469},[3992],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":3994,"children":3995},{"style":3469},[3996],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":3998,"children":3999},{"style":3402},[4000],{"type":3112,"value":4001},"openInPopup('\u002Fauth\u002Fgithub')",{"type":3107,"tag":3390,"props":4003,"children":4004},{"style":3469},[4005],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":4007,"children":4008},{"style":3469},[4009],{"type":3112,"value":3734},{"type":3107,"tag":3390,"props":4011,"children":4012},{"style":3464},[4013],{"type":3112,"value":3951},{"type":3107,"tag":3390,"props":4015,"children":4016},{"style":3469},[4017],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":4019,"children":4020},{"style":3535},[4021],{"type":3112,"value":3795},{"type":3107,"tag":3390,"props":4023,"children":4024},{"style":3469},[4025],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":4027,"children":4028},{"class":3392,"line":3000},[4029,4033,4037],{"type":3107,"tag":3390,"props":4030,"children":4031},{"style":3469},[4032],{"type":3112,"value":3847},{"type":3107,"tag":3390,"props":4034,"children":4035},{"style":3535},[4036],{"type":3112,"value":3690},{"type":3107,"tag":3390,"props":4038,"children":4039},{"style":3469},[4040],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":4042,"children":4044},{"class":3392,"line":4043},17,[4045,4049,4053],{"type":3107,"tag":3390,"props":4046,"children":4047},{"style":3469},[4048],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":4050,"children":4051},{"style":3535},[4052],{"type":3112,"value":3672},{"type":3107,"tag":3390,"props":4054,"children":4055},{"style":3469},[4056],{"type":3112,"value":3549},{"type":3107,"tag":3114,"props":4058,"children":4059},{},[4060],{"type":3107,"tag":4061,"props":4062,"children":4063},"strong",{},[4064],{"type":3112,"value":4065},"TypeScript Signature:",{"type":3107,"tag":3380,"props":4067,"children":4071},{"className":4068,"code":4069,"language":4070,"meta":2980,"style":2980},"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",[4072],{"type":3107,"tag":3252,"props":4073,"children":4074},{"__ignoreMap":2980},[4075,4093,4101,4109,4117,4148,4155,4163,4170,4198,4205,4213,4220,4259,4266,4274,4281,4311,4319,4328,4336,4377,4385,4394,4402,4439,4447,4456,4464,4560],{"type":3107,"tag":3390,"props":4076,"children":4077},{"class":3392,"line":3066},[4078,4083,4088],{"type":3107,"tag":3390,"props":4079,"children":4080},{"style":3541},[4081],{"type":3112,"value":4082},"interface",{"type":3107,"tag":3390,"props":4084,"children":4085},{"style":3396},[4086],{"type":3112,"value":4087}," UserSessionComposable",{"type":3107,"tag":3390,"props":4089,"children":4090},{"style":3469},[4091],{"type":3112,"value":4092}," {\n",{"type":3107,"tag":3390,"props":4094,"children":4095},{"class":3392,"line":3032},[4096],{"type":3107,"tag":3390,"props":4097,"children":4098},{"style":3455},[4099],{"type":3112,"value":4100},"  \u002F**\n",{"type":3107,"tag":3390,"props":4102,"children":4103},{"class":3392,"line":3016},[4104],{"type":3107,"tag":3390,"props":4105,"children":4106},{"style":3455},[4107],{"type":3112,"value":4108},"   * Computed indicating if the auth session is ready\n",{"type":3107,"tag":3390,"props":4110,"children":4111},{"class":3392,"line":3653},[4112],{"type":3107,"tag":3390,"props":4113,"children":4114},{"style":3455},[4115],{"type":3112,"value":4116},"   *\u002F\n",{"type":3107,"tag":3390,"props":4118,"children":4119},{"class":3392,"line":3662},[4120,4125,4130,4135,4139,4144],{"type":3107,"tag":3390,"props":4121,"children":4122},{"style":3535},[4123],{"type":3112,"value":4124},"  ready",{"type":3107,"tag":3390,"props":4126,"children":4127},{"style":3469},[4128],{"type":3112,"value":4129},":",{"type":3107,"tag":3390,"props":4131,"children":4132},{"style":3396},[4133],{"type":3112,"value":4134}," ComputedRef",{"type":3107,"tag":3390,"props":4136,"children":4137},{"style":3469},[4138],{"type":3112,"value":3532},{"type":3107,"tag":3390,"props":4140,"children":4141},{"style":3396},[4142],{"type":3112,"value":4143},"boolean",{"type":3107,"tag":3390,"props":4145,"children":4146},{"style":3469},[4147],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":4149,"children":4150},{"class":3392,"line":3679},[4151],{"type":3107,"tag":3390,"props":4152,"children":4153},{"style":3455},[4154],{"type":3112,"value":4100},{"type":3107,"tag":3390,"props":4156,"children":4157},{"class":3392,"line":3012},[4158],{"type":3107,"tag":3390,"props":4159,"children":4160},{"style":3455},[4161],{"type":3112,"value":4162},"   * Computed indicating if the user is logged in.\n",{"type":3107,"tag":3390,"props":4164,"children":4165},{"class":3392,"line":3008},[4166],{"type":3107,"tag":3390,"props":4167,"children":4168},{"style":3455},[4169],{"type":3112,"value":4116},{"type":3107,"tag":3390,"props":4171,"children":4172},{"class":3392,"line":3004},[4173,4178,4182,4186,4190,4194],{"type":3107,"tag":3390,"props":4174,"children":4175},{"style":3535},[4176],{"type":3112,"value":4177},"  loggedIn",{"type":3107,"tag":3390,"props":4179,"children":4180},{"style":3469},[4181],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":4183,"children":4184},{"style":3396},[4185],{"type":3112,"value":4134},{"type":3107,"tag":3390,"props":4187,"children":4188},{"style":3469},[4189],{"type":3112,"value":3532},{"type":3107,"tag":3390,"props":4191,"children":4192},{"style":3396},[4193],{"type":3112,"value":4143},{"type":3107,"tag":3390,"props":4195,"children":4196},{"style":3469},[4197],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":4199,"children":4200},{"class":3392,"line":3841},[4201],{"type":3107,"tag":3390,"props":4202,"children":4203},{"style":3455},[4204],{"type":3112,"value":4100},{"type":3107,"tag":3390,"props":4206,"children":4207},{"class":3392,"line":3095},[4208],{"type":3107,"tag":3390,"props":4209,"children":4210},{"style":3455},[4211],{"type":3112,"value":4212},"   * The user object if logged in, null otherwise.\n",{"type":3107,"tag":3390,"props":4214,"children":4215},{"class":3392,"line":3878},[4216],{"type":3107,"tag":3390,"props":4217,"children":4218},{"style":3455},[4219],{"type":3112,"value":4116},{"type":3107,"tag":3390,"props":4221,"children":4222},{"class":3392,"line":3911},[4223,4228,4232,4236,4240,4245,4250,4255],{"type":3107,"tag":3390,"props":4224,"children":4225},{"style":3535},[4226],{"type":3112,"value":4227},"  user",{"type":3107,"tag":3390,"props":4229,"children":4230},{"style":3469},[4231],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":4233,"children":4234},{"style":3396},[4235],{"type":3112,"value":4134},{"type":3107,"tag":3390,"props":4237,"children":4238},{"style":3469},[4239],{"type":3112,"value":3532},{"type":3107,"tag":3390,"props":4241,"children":4242},{"style":3396},[4243],{"type":3112,"value":4244},"User",{"type":3107,"tag":3390,"props":4246,"children":4247},{"style":3469},[4248],{"type":3112,"value":4249}," |",{"type":3107,"tag":3390,"props":4251,"children":4252},{"style":3396},[4253],{"type":3112,"value":4254}," null",{"type":3107,"tag":3390,"props":4256,"children":4257},{"style":3469},[4258],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":4260,"children":4261},{"class":3392,"line":3966},[4262],{"type":3107,"tag":3390,"props":4263,"children":4264},{"style":3455},[4265],{"type":3112,"value":4100},{"type":3107,"tag":3390,"props":4267,"children":4268},{"class":3392,"line":3975},[4269],{"type":3107,"tag":3390,"props":4270,"children":4271},{"style":3455},[4272],{"type":3112,"value":4273},"   * The session object.\n",{"type":3107,"tag":3390,"props":4275,"children":4276},{"class":3392,"line":3000},[4277],{"type":3107,"tag":3390,"props":4278,"children":4279},{"style":3455},[4280],{"type":3112,"value":4116},{"type":3107,"tag":3390,"props":4282,"children":4283},{"class":3392,"line":4043},[4284,4289,4293,4298,4302,4307],{"type":3107,"tag":3390,"props":4285,"children":4286},{"style":3535},[4287],{"type":3112,"value":4288},"  session",{"type":3107,"tag":3390,"props":4290,"children":4291},{"style":3469},[4292],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":4294,"children":4295},{"style":3396},[4296],{"type":3112,"value":4297}," Ref",{"type":3107,"tag":3390,"props":4299,"children":4300},{"style":3469},[4301],{"type":3112,"value":3532},{"type":3107,"tag":3390,"props":4303,"children":4304},{"style":3396},[4305],{"type":3112,"value":4306},"UserSession",{"type":3107,"tag":3390,"props":4308,"children":4309},{"style":3469},[4310],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":4312,"children":4314},{"class":3392,"line":4313},18,[4315],{"type":3107,"tag":3390,"props":4316,"children":4317},{"style":3455},[4318],{"type":3112,"value":4100},{"type":3107,"tag":3390,"props":4320,"children":4322},{"class":3392,"line":4321},19,[4323],{"type":3107,"tag":3390,"props":4324,"children":4325},{"style":3455},[4326],{"type":3112,"value":4327},"   * Fetch the user session from the server.\n",{"type":3107,"tag":3390,"props":4329,"children":4331},{"class":3392,"line":4330},20,[4332],{"type":3107,"tag":3390,"props":4333,"children":4334},{"style":3455},[4335],{"type":3112,"value":4116},{"type":3107,"tag":3390,"props":4337,"children":4339},{"class":3392,"line":4338},21,[4340,4345,4349,4354,4359,4364,4368,4373],{"type":3107,"tag":3390,"props":4341,"children":4342},{"style":3535},[4343],{"type":3112,"value":4344},"  fetch",{"type":3107,"tag":3390,"props":4346,"children":4347},{"style":3469},[4348],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":4350,"children":4351},{"style":3469},[4352],{"type":3112,"value":4353}," ()",{"type":3107,"tag":3390,"props":4355,"children":4356},{"style":3541},[4357],{"type":3112,"value":4358}," =>",{"type":3107,"tag":3390,"props":4360,"children":4361},{"style":3396},[4362],{"type":3112,"value":4363}," Promise",{"type":3107,"tag":3390,"props":4365,"children":4366},{"style":3469},[4367],{"type":3112,"value":3532},{"type":3107,"tag":3390,"props":4369,"children":4370},{"style":3396},[4371],{"type":3112,"value":4372},"void",{"type":3107,"tag":3390,"props":4374,"children":4375},{"style":3469},[4376],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":4378,"children":4380},{"class":3392,"line":4379},22,[4381],{"type":3107,"tag":3390,"props":4382,"children":4383},{"style":3455},[4384],{"type":3112,"value":4100},{"type":3107,"tag":3390,"props":4386,"children":4388},{"class":3392,"line":4387},23,[4389],{"type":3107,"tag":3390,"props":4390,"children":4391},{"style":3455},[4392],{"type":3112,"value":4393},"   * Clear the user session and remove the session cookie.\n",{"type":3107,"tag":3390,"props":4395,"children":4397},{"class":3392,"line":4396},24,[4398],{"type":3107,"tag":3390,"props":4399,"children":4400},{"style":3455},[4401],{"type":3112,"value":4116},{"type":3107,"tag":3390,"props":4403,"children":4405},{"class":3392,"line":4404},25,[4406,4411,4415,4419,4423,4427,4431,4435],{"type":3107,"tag":3390,"props":4407,"children":4408},{"style":3535},[4409],{"type":3112,"value":4410},"  clear",{"type":3107,"tag":3390,"props":4412,"children":4413},{"style":3469},[4414],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":4416,"children":4417},{"style":3469},[4418],{"type":3112,"value":4353},{"type":3107,"tag":3390,"props":4420,"children":4421},{"style":3541},[4422],{"type":3112,"value":4358},{"type":3107,"tag":3390,"props":4424,"children":4425},{"style":3396},[4426],{"type":3112,"value":4363},{"type":3107,"tag":3390,"props":4428,"children":4429},{"style":3469},[4430],{"type":3112,"value":3532},{"type":3107,"tag":3390,"props":4432,"children":4433},{"style":3396},[4434],{"type":3112,"value":4372},{"type":3107,"tag":3390,"props":4436,"children":4437},{"style":3469},[4438],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":4440,"children":4442},{"class":3392,"line":4441},26,[4443],{"type":3107,"tag":3390,"props":4444,"children":4445},{"style":3455},[4446],{"type":3112,"value":4100},{"type":3107,"tag":3390,"props":4448,"children":4450},{"class":3392,"line":4449},27,[4451],{"type":3107,"tag":3390,"props":4452,"children":4453},{"style":3455},[4454],{"type":3112,"value":4455},"   * Open the OAuth route in a popup that auto-closes when successful.\n",{"type":3107,"tag":3390,"props":4457,"children":4459},{"class":3392,"line":4458},28,[4460],{"type":3107,"tag":3390,"props":4461,"children":4462},{"style":3455},[4463],{"type":3112,"value":4116},{"type":3107,"tag":3390,"props":4465,"children":4467},{"class":3392,"line":4466},29,[4468,4473,4477,4482,4488,4492,4497,4501,4506,4511,4515,4520,4524,4529,4533,4538,4542,4546,4551,4555],{"type":3107,"tag":3390,"props":4469,"children":4470},{"style":3535},[4471],{"type":3112,"value":4472},"  openInPopup",{"type":3107,"tag":3390,"props":4474,"children":4475},{"style":3469},[4476],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":4478,"children":4479},{"style":3469},[4480],{"type":3112,"value":4481}," (",{"type":3107,"tag":3390,"props":4483,"children":4485},{"style":4484},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[4486],{"type":3112,"value":4487},"route",{"type":3107,"tag":3390,"props":4489,"children":4490},{"style":3469},[4491],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":4493,"children":4494},{"style":3396},[4495],{"type":3112,"value":4496}," string",{"type":3107,"tag":3390,"props":4498,"children":4499},{"style":3469},[4500],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":4502,"children":4503},{"style":4484},[4504],{"type":3112,"value":4505}," size",{"type":3107,"tag":3390,"props":4507,"children":4508},{"style":3469},[4509],{"type":3112,"value":4510},"?:",{"type":3107,"tag":3390,"props":4512,"children":4513},{"style":3469},[4514],{"type":3112,"value":3562},{"type":3107,"tag":3390,"props":4516,"children":4517},{"style":3535},[4518],{"type":3112,"value":4519}," width",{"type":3107,"tag":3390,"props":4521,"children":4522},{"style":3469},[4523],{"type":3112,"value":4510},{"type":3107,"tag":3390,"props":4525,"children":4526},{"style":3396},[4527],{"type":3112,"value":4528}," number",{"type":3107,"tag":3390,"props":4530,"children":4531},{"style":3469},[4532],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":4534,"children":4535},{"style":3535},[4536],{"type":3112,"value":4537}," height",{"type":3107,"tag":3390,"props":4539,"children":4540},{"style":3469},[4541],{"type":3112,"value":4510},{"type":3107,"tag":3390,"props":4543,"children":4544},{"style":3396},[4545],{"type":3112,"value":4528},{"type":3107,"tag":3390,"props":4547,"children":4548},{"style":3469},[4549],{"type":3112,"value":4550}," })",{"type":3107,"tag":3390,"props":4552,"children":4553},{"style":3541},[4554],{"type":3112,"value":4358},{"type":3107,"tag":3390,"props":4556,"children":4557},{"style":3396},[4558],{"type":3112,"value":4559}," void\n",{"type":3107,"tag":3390,"props":4561,"children":4563},{"class":3392,"line":4562},30,[4564],{"type":3107,"tag":3390,"props":4565,"children":4566},{"style":3469},[4567],{"type":3112,"value":4568},"}\n",{"type":3107,"tag":4570,"props":4571,"children":4572},"blockquote",{},[4573],{"type":3107,"tag":3114,"props":4574,"children":4575},{},[4576,4581,4583,4589],{"type":3107,"tag":3390,"props":4577,"children":4578},{},[4579],{"type":3112,"value":4580},"!IMPORTANT",{"type":3112,"value":4582},"\nNuxt Auth Utils uses the ",{"type":3107,"tag":3252,"props":4584,"children":4586},{"className":4585},[],[4587],{"type":3112,"value":4588},"\u002Fapi\u002F_auth\u002Fsession",{"type":3112,"value":4590}," route for session management. Ensure your API route middleware doesn't interfere with this path.",{"type":3107,"tag":3198,"props":4592,"children":4594},{"id":4593},"server-utils",[4595],{"type":3112,"value":4596},"Server Utils",{"type":3107,"tag":3114,"props":4598,"children":4599},{},[4600,4602,4608],{"type":3112,"value":4601},"The following helpers are auto-imported in your ",{"type":3107,"tag":3252,"props":4603,"children":4605},{"className":4604},[],[4606],{"type":3112,"value":4607},"server\u002F",{"type":3112,"value":4609}," directory.",{"type":3107,"tag":3510,"props":4611,"children":4613},{"id":4612},"session-management",[4614],{"type":3112,"value":4615},"Session Management",{"type":3107,"tag":3380,"props":4617,"children":4619},{"className":4068,"code":4618,"language":4070,"meta":2980,"style":2980},"\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",[4620],{"type":3107,"tag":3252,"props":4621,"children":4622},{"__ignoreMap":2980},[4623,4631,4639,4647,4674,4682,4697,4723,4731,4739,4755,4780,4787,4795,4821,4833,4840,4848,4873,4880,4888,4919,4926,4934,4950,4957,4965],{"type":3107,"tag":3390,"props":4624,"children":4625},{"class":3392,"line":3066},[4626],{"type":3107,"tag":3390,"props":4627,"children":4628},{"style":3455},[4629],{"type":3112,"value":4630},"\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":3107,"tag":3390,"props":4632,"children":4633},{"class":3392,"line":3032},[4634],{"type":3107,"tag":3390,"props":4635,"children":4636},{"style":3455},[4637],{"type":3112,"value":4638},"\u002F\u002F Only store the data that allow you to recognize a user, but do not store sensitive data\n",{"type":3107,"tag":3390,"props":4640,"children":4641},{"class":3392,"line":3016},[4642],{"type":3107,"tag":3390,"props":4643,"children":4644},{"style":3455},[4645],{"type":3112,"value":4646},"\u002F\u002F Merges new data with existing data using unjs\u002Fdefu library\n",{"type":3107,"tag":3390,"props":4648,"children":4649},{"class":3392,"line":3653},[4650,4656,4661,4666,4670],{"type":3107,"tag":3390,"props":4651,"children":4653},{"style":4652},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[4654],{"type":3112,"value":4655},"await",{"type":3107,"tag":3390,"props":4657,"children":4658},{"style":3626},[4659],{"type":3112,"value":4660}," setUserSession",{"type":3107,"tag":3390,"props":4662,"children":4663},{"style":3464},[4664],{"type":3112,"value":4665},"(event",{"type":3107,"tag":3390,"props":4667,"children":4668},{"style":3469},[4669],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":4671,"children":4672},{"style":3469},[4673],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":4675,"children":4676},{"class":3392,"line":3662},[4677],{"type":3107,"tag":3390,"props":4678,"children":4679},{"style":3455},[4680],{"type":3112,"value":4681},"  \u002F\u002F User data\n",{"type":3107,"tag":3390,"props":4683,"children":4684},{"class":3392,"line":3679},[4685,4689,4693],{"type":3107,"tag":3390,"props":4686,"children":4687},{"style":3535},[4688],{"type":3112,"value":4227},{"type":3107,"tag":3390,"props":4690,"children":4691},{"style":3469},[4692],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":4694,"children":4695},{"style":3469},[4696],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":4698,"children":4699},{"class":3392,"line":3012},[4700,4705,4709,4714,4718],{"type":3107,"tag":3390,"props":4701,"children":4702},{"style":3535},[4703],{"type":3112,"value":4704},"    login",{"type":3107,"tag":3390,"props":4706,"children":4707},{"style":3469},[4708],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":4710,"children":4711},{"style":3469},[4712],{"type":3112,"value":4713}," '",{"type":3107,"tag":3390,"props":4715,"children":4716},{"style":3402},[4717],{"type":3112,"value":2987},{"type":3107,"tag":3390,"props":4719,"children":4720},{"style":3469},[4721],{"type":3112,"value":4722},"'\n",{"type":3107,"tag":3390,"props":4724,"children":4725},{"class":3392,"line":3008},[4726],{"type":3107,"tag":3390,"props":4727,"children":4728},{"style":3469},[4729],{"type":3112,"value":4730},"  },\n",{"type":3107,"tag":3390,"props":4732,"children":4733},{"class":3392,"line":3004},[4734],{"type":3107,"tag":3390,"props":4735,"children":4736},{"style":3455},[4737],{"type":3112,"value":4738},"  \u002F\u002F Private data accessible only on server\u002F routes\n",{"type":3107,"tag":3390,"props":4740,"children":4741},{"class":3392,"line":3841},[4742,4747,4751],{"type":3107,"tag":3390,"props":4743,"children":4744},{"style":3535},[4745],{"type":3112,"value":4746},"  secure",{"type":3107,"tag":3390,"props":4748,"children":4749},{"style":3469},[4750],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":4752,"children":4753},{"style":3469},[4754],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":4756,"children":4757},{"class":3392,"line":3095},[4758,4763,4767,4771,4776],{"type":3107,"tag":3390,"props":4759,"children":4760},{"style":3535},[4761],{"type":3112,"value":4762},"    apiToken",{"type":3107,"tag":3390,"props":4764,"children":4765},{"style":3469},[4766],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":4768,"children":4769},{"style":3469},[4770],{"type":3112,"value":4713},{"type":3107,"tag":3390,"props":4772,"children":4773},{"style":3402},[4774],{"type":3112,"value":4775},"1234567890",{"type":3107,"tag":3390,"props":4777,"children":4778},{"style":3469},[4779],{"type":3112,"value":4722},{"type":3107,"tag":3390,"props":4781,"children":4782},{"class":3392,"line":3878},[4783],{"type":3107,"tag":3390,"props":4784,"children":4785},{"style":3469},[4786],{"type":3112,"value":4730},{"type":3107,"tag":3390,"props":4788,"children":4789},{"class":3392,"line":3911},[4790],{"type":3107,"tag":3390,"props":4791,"children":4792},{"style":3455},[4793],{"type":3112,"value":4794},"  \u002F\u002F Any extra fields for the session data\n",{"type":3107,"tag":3390,"props":4796,"children":4797},{"class":3392,"line":3966},[4798,4803,4807,4812,4817],{"type":3107,"tag":3390,"props":4799,"children":4800},{"style":3535},[4801],{"type":3112,"value":4802},"  loggedInAt",{"type":3107,"tag":3390,"props":4804,"children":4805},{"style":3469},[4806],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":4808,"children":4809},{"style":3469},[4810],{"type":3112,"value":4811}," new",{"type":3107,"tag":3390,"props":4813,"children":4814},{"style":3626},[4815],{"type":3112,"value":4816}," Date",{"type":3107,"tag":3390,"props":4818,"children":4819},{"style":3464},[4820],{"type":3112,"value":3634},{"type":3107,"tag":3390,"props":4822,"children":4823},{"class":3392,"line":3975},[4824,4828],{"type":3107,"tag":3390,"props":4825,"children":4826},{"style":3469},[4827],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":4829,"children":4830},{"style":3464},[4831],{"type":3112,"value":4832},")\n",{"type":3107,"tag":3390,"props":4834,"children":4835},{"class":3392,"line":3000},[4836],{"type":3107,"tag":3390,"props":4837,"children":4838},{"emptyLinePlaceholder":1200},[4839],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":4841,"children":4842},{"class":3392,"line":4043},[4843],{"type":3107,"tag":3390,"props":4844,"children":4845},{"style":3455},[4846],{"type":3112,"value":4847},"\u002F\u002F Replace a user session. Same behaviour as setUserSession, except it does not merge data with existing data\n",{"type":3107,"tag":3390,"props":4849,"children":4850},{"class":3392,"line":4313},[4851,4855,4860,4864,4868],{"type":3107,"tag":3390,"props":4852,"children":4853},{"style":4652},[4854],{"type":3112,"value":4655},{"type":3107,"tag":3390,"props":4856,"children":4857},{"style":3626},[4858],{"type":3112,"value":4859}," replaceUserSession",{"type":3107,"tag":3390,"props":4861,"children":4862},{"style":3464},[4863],{"type":3112,"value":4665},{"type":3107,"tag":3390,"props":4865,"children":4866},{"style":3469},[4867],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":4869,"children":4870},{"style":3464},[4871],{"type":3112,"value":4872}," data)\n",{"type":3107,"tag":3390,"props":4874,"children":4875},{"class":3392,"line":4321},[4876],{"type":3107,"tag":3390,"props":4877,"children":4878},{"emptyLinePlaceholder":1200},[4879],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":4881,"children":4882},{"class":3392,"line":4330},[4883],{"type":3107,"tag":3390,"props":4884,"children":4885},{"style":3455},[4886],{"type":3112,"value":4887},"\u002F\u002F Get the current user session\n",{"type":3107,"tag":3390,"props":4889,"children":4890},{"class":3392,"line":4338},[4891,4895,4900,4904,4909,4914],{"type":3107,"tag":3390,"props":4892,"children":4893},{"style":3541},[4894],{"type":3112,"value":3557},{"type":3107,"tag":3390,"props":4896,"children":4897},{"style":3464},[4898],{"type":3112,"value":4899}," session ",{"type":3107,"tag":3390,"props":4901,"children":4902},{"style":3469},[4903],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":4905,"children":4906},{"style":4652},[4907],{"type":3112,"value":4908}," await",{"type":3107,"tag":3390,"props":4910,"children":4911},{"style":3626},[4912],{"type":3112,"value":4913}," getUserSession",{"type":3107,"tag":3390,"props":4915,"children":4916},{"style":3464},[4917],{"type":3112,"value":4918},"(event)\n",{"type":3107,"tag":3390,"props":4920,"children":4921},{"class":3392,"line":4379},[4922],{"type":3107,"tag":3390,"props":4923,"children":4924},{"emptyLinePlaceholder":1200},[4925],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":4927,"children":4928},{"class":3392,"line":4387},[4929],{"type":3107,"tag":3390,"props":4930,"children":4931},{"style":3455},[4932],{"type":3112,"value":4933},"\u002F\u002F Clear the current user session\n",{"type":3107,"tag":3390,"props":4935,"children":4936},{"class":3392,"line":4396},[4937,4941,4946],{"type":3107,"tag":3390,"props":4938,"children":4939},{"style":4652},[4940],{"type":3112,"value":4655},{"type":3107,"tag":3390,"props":4942,"children":4943},{"style":3626},[4944],{"type":3112,"value":4945}," clearUserSession",{"type":3107,"tag":3390,"props":4947,"children":4948},{"style":3464},[4949],{"type":3112,"value":4918},{"type":3107,"tag":3390,"props":4951,"children":4952},{"class":3392,"line":4404},[4953],{"type":3107,"tag":3390,"props":4954,"children":4955},{"emptyLinePlaceholder":1200},[4956],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":4958,"children":4959},{"class":3392,"line":4441},[4960],{"type":3107,"tag":3390,"props":4961,"children":4962},{"style":3455},[4963],{"type":3112,"value":4964},"\u002F\u002F Require a user session (send back 401 if no `user` key in session)\n",{"type":3107,"tag":3390,"props":4966,"children":4967},{"class":3392,"line":4449},[4968,4972,4976,4980,4984,4989],{"type":3107,"tag":3390,"props":4969,"children":4970},{"style":3541},[4971],{"type":3112,"value":3557},{"type":3107,"tag":3390,"props":4973,"children":4974},{"style":3464},[4975],{"type":3112,"value":4899},{"type":3107,"tag":3390,"props":4977,"children":4978},{"style":3469},[4979],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":4981,"children":4982},{"style":4652},[4983],{"type":3112,"value":4908},{"type":3107,"tag":3390,"props":4985,"children":4986},{"style":3626},[4987],{"type":3112,"value":4988}," requireUserSession",{"type":3107,"tag":3390,"props":4990,"children":4991},{"style":3464},[4992],{"type":3112,"value":4918},{"type":3107,"tag":3114,"props":4994,"children":4995},{},[4996,4998,5004,5006,5011],{"type":3112,"value":4997},"You can define the type for your user session by creating a type declaration file (for example, ",{"type":3107,"tag":3252,"props":4999,"children":5001},{"className":5000},[],[5002],{"type":3112,"value":5003},"auth.d.ts",{"type":3112,"value":5005},") in your project to augment the ",{"type":3107,"tag":3252,"props":5007,"children":5009},{"className":5008},[],[5010],{"type":3112,"value":4306},{"type":3112,"value":5012}," type:",{"type":3107,"tag":3380,"props":5014,"children":5016},{"className":4068,"code":5015,"language":4070,"meta":2980,"style":2980},"\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",[5017],{"type":3107,"tag":3252,"props":5018,"children":5019},{"__ignoreMap":2980},[5020,5028,5058,5075,5083,5091,5098,5114,5121,5128,5135,5151,5158,5165,5172,5179],{"type":3107,"tag":3390,"props":5021,"children":5022},{"class":3392,"line":3066},[5023],{"type":3107,"tag":3390,"props":5024,"children":5025},{"style":3455},[5026],{"type":3112,"value":5027},"\u002F\u002F shared\u002Ftypes\u002Fauth.d.ts\n",{"type":3107,"tag":3390,"props":5029,"children":5030},{"class":3392,"line":3032},[5031,5036,5040,5044,5049,5054],{"type":3107,"tag":3390,"props":5032,"children":5033},{"style":3541},[5034],{"type":3112,"value":5035},"declare",{"type":3107,"tag":3390,"props":5037,"children":5038},{"style":3541},[5039],{"type":3112,"value":3410},{"type":3107,"tag":3390,"props":5041,"children":5042},{"style":3469},[5043],{"type":3112,"value":4713},{"type":3107,"tag":3390,"props":5045,"children":5046},{"style":3402},[5047],{"type":3112,"value":5048},"#auth-utils",{"type":3107,"tag":3390,"props":5050,"children":5051},{"style":3469},[5052],{"type":3112,"value":5053},"'",{"type":3107,"tag":3390,"props":5055,"children":5056},{"style":3469},[5057],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":5059,"children":5060},{"class":3392,"line":3016},[5061,5066,5071],{"type":3107,"tag":3390,"props":5062,"children":5063},{"style":3541},[5064],{"type":3112,"value":5065},"  interface",{"type":3107,"tag":3390,"props":5067,"children":5068},{"style":3396},[5069],{"type":3112,"value":5070}," User",{"type":3107,"tag":3390,"props":5072,"children":5073},{"style":3469},[5074],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":5076,"children":5077},{"class":3392,"line":3653},[5078],{"type":3107,"tag":3390,"props":5079,"children":5080},{"style":3455},[5081],{"type":3112,"value":5082},"    \u002F\u002F Add your own fields\n",{"type":3107,"tag":3390,"props":5084,"children":5085},{"class":3392,"line":3662},[5086],{"type":3107,"tag":3390,"props":5087,"children":5088},{"style":3469},[5089],{"type":3112,"value":5090},"  }\n",{"type":3107,"tag":3390,"props":5092,"children":5093},{"class":3392,"line":3679},[5094],{"type":3107,"tag":3390,"props":5095,"children":5096},{"emptyLinePlaceholder":1200},[5097],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":5099,"children":5100},{"class":3392,"line":3012},[5101,5105,5110],{"type":3107,"tag":3390,"props":5102,"children":5103},{"style":3541},[5104],{"type":3112,"value":5065},{"type":3107,"tag":3390,"props":5106,"children":5107},{"style":3396},[5108],{"type":3112,"value":5109}," UserSession",{"type":3107,"tag":3390,"props":5111,"children":5112},{"style":3469},[5113],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":5115,"children":5116},{"class":3392,"line":3008},[5117],{"type":3107,"tag":3390,"props":5118,"children":5119},{"style":3455},[5120],{"type":3112,"value":5082},{"type":3107,"tag":3390,"props":5122,"children":5123},{"class":3392,"line":3004},[5124],{"type":3107,"tag":3390,"props":5125,"children":5126},{"style":3469},[5127],{"type":3112,"value":5090},{"type":3107,"tag":3390,"props":5129,"children":5130},{"class":3392,"line":3841},[5131],{"type":3107,"tag":3390,"props":5132,"children":5133},{"emptyLinePlaceholder":1200},[5134],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":5136,"children":5137},{"class":3392,"line":3095},[5138,5142,5147],{"type":3107,"tag":3390,"props":5139,"children":5140},{"style":3541},[5141],{"type":3112,"value":5065},{"type":3107,"tag":3390,"props":5143,"children":5144},{"style":3396},[5145],{"type":3112,"value":5146}," SecureSessionData",{"type":3107,"tag":3390,"props":5148,"children":5149},{"style":3469},[5150],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":5152,"children":5153},{"class":3392,"line":3878},[5154],{"type":3107,"tag":3390,"props":5155,"children":5156},{"style":3455},[5157],{"type":3112,"value":5082},{"type":3107,"tag":3390,"props":5159,"children":5160},{"class":3392,"line":3911},[5161],{"type":3107,"tag":3390,"props":5162,"children":5163},{"style":3469},[5164],{"type":3112,"value":5090},{"type":3107,"tag":3390,"props":5166,"children":5167},{"class":3392,"line":3966},[5168],{"type":3107,"tag":3390,"props":5169,"children":5170},{"style":3469},[5171],{"type":3112,"value":4568},{"type":3107,"tag":3390,"props":5173,"children":5174},{"class":3392,"line":3975},[5175],{"type":3107,"tag":3390,"props":5176,"children":5177},{"emptyLinePlaceholder":1200},[5178],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":5180,"children":5181},{"class":3392,"line":3000},[5182,5187],{"type":3107,"tag":3390,"props":5183,"children":5184},{"style":4652},[5185],{"type":3112,"value":5186},"export",{"type":3107,"tag":3390,"props":5188,"children":5189},{"style":3469},[5190],{"type":3112,"value":5191}," {}\n",{"type":3107,"tag":4570,"props":5193,"children":5194},{},[5195],{"type":3107,"tag":3114,"props":5196,"children":5197},{},[5198,5202],{"type":3107,"tag":3390,"props":5199,"children":5200},{},[5201],{"type":3112,"value":4580},{"type":3112,"value":5203},"\nSince we encrypt and store session data in cookies, we're constrained by the 4096-byte cookie size limit. Store only essential information.",{"type":3107,"tag":3510,"props":5205,"children":5207},{"id":5206},"oauth-event-handlers",[5208],{"type":3112,"value":5209},"OAuth Event Handlers",{"type":3107,"tag":3114,"props":5211,"children":5212},{},[5213],{"type":3112,"value":5214},"All handlers can be auto-imported and used in your server routes or API routes.",{"type":3107,"tag":3114,"props":5216,"children":5217},{},[5218,5220,5226,5228,5234],{"type":3112,"value":5219},"The pattern is ",{"type":3107,"tag":3252,"props":5221,"children":5223},{"className":5222},[],[5224],{"type":3112,"value":5225},"defineOAuth\u003CProvider>EventHandler({ onSuccess, config?, onError? })",{"type":3112,"value":5227},", example: ",{"type":3107,"tag":3252,"props":5229,"children":5231},{"className":5230},[],[5232],{"type":3112,"value":5233},"defineOAuthGitHubEventHandler",{"type":3112,"value":3345},{"type":3107,"tag":3114,"props":5236,"children":5237},{},[5238,5240,5246,5248,5254],{"type":3112,"value":5239},"The helper returns an event handler that automatically redirects to the provider authorization page and then calls ",{"type":3107,"tag":3252,"props":5241,"children":5243},{"className":5242},[],[5244],{"type":3112,"value":5245},"onSuccess",{"type":3112,"value":5247}," or ",{"type":3107,"tag":3252,"props":5249,"children":5251},{"className":5250},[],[5252],{"type":3112,"value":5253},"onError",{"type":3112,"value":5255}," depending on the result.",{"type":3107,"tag":3114,"props":5257,"children":5258},{},[5259,5261,5267,5269,5275,5277,5282],{"type":3112,"value":5260},"The ",{"type":3107,"tag":3252,"props":5262,"children":5264},{"className":5263},[],[5265],{"type":3112,"value":5266},"config",{"type":3112,"value":5268}," can be defined directly from the ",{"type":3107,"tag":3252,"props":5270,"children":5272},{"className":5271},[],[5273],{"type":3112,"value":5274},"runtimeConfig",{"type":3112,"value":5276}," in your ",{"type":3107,"tag":3252,"props":5278,"children":5280},{"className":5279},[],[5281],{"type":3112,"value":233},{"type":3112,"value":4129},{"type":3107,"tag":3380,"props":5284,"children":5286},{"className":4068,"code":5285,"language":4070,"meta":2980,"style":2980},"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",[5287],{"type":3107,"tag":3252,"props":5288,"children":5289},{"__ignoreMap":2980},[5290,5317,5333,5349,5357,5373,5403,5427,5435,5443,5450],{"type":3107,"tag":3390,"props":5291,"children":5292},{"class":3392,"line":3066},[5293,5297,5302,5307,5312],{"type":3107,"tag":3390,"props":5294,"children":5295},{"style":4652},[5296],{"type":3112,"value":5186},{"type":3107,"tag":3390,"props":5298,"children":5299},{"style":4652},[5300],{"type":3112,"value":5301}," default",{"type":3107,"tag":3390,"props":5303,"children":5304},{"style":3626},[5305],{"type":3112,"value":5306}," defineNuxtConfig",{"type":3107,"tag":3390,"props":5308,"children":5309},{"style":3464},[5310],{"type":3112,"value":5311},"(",{"type":3107,"tag":3390,"props":5313,"children":5314},{"style":3469},[5315],{"type":3112,"value":5316},"{\n",{"type":3107,"tag":3390,"props":5318,"children":5319},{"class":3392,"line":3032},[5320,5325,5329],{"type":3107,"tag":3390,"props":5321,"children":5322},{"style":3535},[5323],{"type":3112,"value":5324},"  runtimeConfig",{"type":3107,"tag":3390,"props":5326,"children":5327},{"style":3469},[5328],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":5330,"children":5331},{"style":3469},[5332],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":5334,"children":5335},{"class":3392,"line":3016},[5336,5341,5345],{"type":3107,"tag":3390,"props":5337,"children":5338},{"style":3535},[5339],{"type":3112,"value":5340},"    oauth",{"type":3107,"tag":3390,"props":5342,"children":5343},{"style":3469},[5344],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":5346,"children":5347},{"style":3469},[5348],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":5350,"children":5351},{"class":3392,"line":3653},[5352],{"type":3107,"tag":3390,"props":5353,"children":5354},{"style":3455},[5355],{"type":3112,"value":5356},"      \u002F\u002F provider in lowercase (github, google, etc.)\n",{"type":3107,"tag":3390,"props":5358,"children":5359},{"class":3392,"line":3662},[5360,5365,5369],{"type":3107,"tag":3390,"props":5361,"children":5362},{"style":3464},[5363],{"type":3112,"value":5364},"      \u003Cprovider>",{"type":3107,"tag":3390,"props":5366,"children":5367},{"style":3469},[5368],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":5370,"children":5371},{"style":3469},[5372],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":5374,"children":5375},{"class":3392,"line":3679},[5376,5381,5385,5389,5394,5398],{"type":3107,"tag":3390,"props":5377,"children":5378},{"style":3535},[5379],{"type":3112,"value":5380},"        clientId",{"type":3107,"tag":3390,"props":5382,"children":5383},{"style":3469},[5384],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":5386,"children":5387},{"style":3469},[5388],{"type":3112,"value":4713},{"type":3107,"tag":3390,"props":5390,"children":5391},{"style":3402},[5392],{"type":3112,"value":5393},"...",{"type":3107,"tag":3390,"props":5395,"children":5396},{"style":3469},[5397],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":5399,"children":5400},{"style":3469},[5401],{"type":3112,"value":5402},",\n",{"type":3107,"tag":3390,"props":5404,"children":5405},{"class":3392,"line":3012},[5406,5411,5415,5419,5423],{"type":3107,"tag":3390,"props":5407,"children":5408},{"style":3535},[5409],{"type":3112,"value":5410},"        clientSecret",{"type":3107,"tag":3390,"props":5412,"children":5413},{"style":3469},[5414],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":5416,"children":5417},{"style":3469},[5418],{"type":3112,"value":4713},{"type":3107,"tag":3390,"props":5420,"children":5421},{"style":3402},[5422],{"type":3112,"value":5393},{"type":3107,"tag":3390,"props":5424,"children":5425},{"style":3469},[5426],{"type":3112,"value":4722},{"type":3107,"tag":3390,"props":5428,"children":5429},{"class":3392,"line":3008},[5430],{"type":3107,"tag":3390,"props":5431,"children":5432},{"style":3469},[5433],{"type":3112,"value":5434},"      }\n",{"type":3107,"tag":3390,"props":5436,"children":5437},{"class":3392,"line":3004},[5438],{"type":3107,"tag":3390,"props":5439,"children":5440},{"style":3469},[5441],{"type":3112,"value":5442},"    }\n",{"type":3107,"tag":3390,"props":5444,"children":5445},{"class":3392,"line":3841},[5446],{"type":3107,"tag":3390,"props":5447,"children":5448},{"style":3469},[5449],{"type":3112,"value":5090},{"type":3107,"tag":3390,"props":5451,"children":5452},{"class":3392,"line":3095},[5453,5457],{"type":3107,"tag":3390,"props":5454,"children":5455},{"style":3469},[5456],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":5458,"children":5459},{"style":3464},[5460],{"type":3112,"value":4832},{"type":3107,"tag":3114,"props":5462,"children":5463},{},[5464],{"type":3112,"value":5465},"It can also be set using environment variables:",{"type":3107,"tag":3164,"props":5467,"children":5468},{},[5469,5478],{"type":3107,"tag":3168,"props":5470,"children":5471},{},[5472],{"type":3107,"tag":3252,"props":5473,"children":5475},{"className":5474},[],[5476],{"type":3112,"value":5477},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_ID",{"type":3107,"tag":3168,"props":5479,"children":5480},{},[5481],{"type":3107,"tag":3252,"props":5482,"children":5484},{"className":5483},[],[5485],{"type":3112,"value":5486},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_SECRET",{"type":3107,"tag":4570,"props":5488,"children":5489},{},[5490],{"type":3107,"tag":3114,"props":5491,"children":5492},{},[5493],{"type":3112,"value":5494},"Provider is in uppercase (GITHUB, GOOGLE, etc.)",{"type":3107,"tag":5496,"props":5497,"children":5499},"h4",{"id":5498},"supported-oauth-providers",[5500],{"type":3112,"value":5501},"Supported OAuth Providers",{"type":3107,"tag":3164,"props":5503,"children":5504},{},[5505,5510,5515,5520,5525,5530,5535,5540,5545,5550,5555,5560,5565,5570,5575,5580,5585,5590,5595,5600,5605,5610,5615,5620,5625,5630,5635,5640,5645,5650,5655,5660,5665,5670,5675,5680,5685,5690,5695,5700,5705,5710,5715,5720,5725,5730,5735,5740],{"type":3107,"tag":3168,"props":5506,"children":5507},{},[5508],{"type":3112,"value":5509},"Apple",{"type":3107,"tag":3168,"props":5511,"children":5512},{},[5513],{"type":3112,"value":5514},"Atlassian",{"type":3107,"tag":3168,"props":5516,"children":5517},{},[5518],{"type":3112,"value":5519},"Auth0",{"type":3107,"tag":3168,"props":5521,"children":5522},{},[5523],{"type":3112,"value":5524},"Authentik",{"type":3107,"tag":3168,"props":5526,"children":5527},{},[5528],{"type":3112,"value":5529},"AWS Cognito",{"type":3107,"tag":3168,"props":5531,"children":5532},{},[5533],{"type":3112,"value":5534},"Azure B2C",{"type":3107,"tag":3168,"props":5536,"children":5537},{},[5538],{"type":3112,"value":5539},"Battle.net",{"type":3107,"tag":3168,"props":5541,"children":5542},{},[5543],{"type":3112,"value":5544},"Bluesky (AT Protocol)",{"type":3107,"tag":3168,"props":5546,"children":5547},{},[5548],{"type":3112,"value":5549},"Box.com",{"type":3107,"tag":3168,"props":5551,"children":5552},{},[5553],{"type":3112,"value":5554},"Discord",{"type":3107,"tag":3168,"props":5556,"children":5557},{},[5558],{"type":3112,"value":5559},"Dropbox",{"type":3107,"tag":3168,"props":5561,"children":5562},{},[5563],{"type":3112,"value":5564},"Facebook",{"type":3107,"tag":3168,"props":5566,"children":5567},{},[5568],{"type":3112,"value":5569},"GitHub",{"type":3107,"tag":3168,"props":5571,"children":5572},{},[5573],{"type":3112,"value":5574},"GitLab",{"type":3107,"tag":3168,"props":5576,"children":5577},{},[5578],{"type":3112,"value":5579},"Gitea",{"type":3107,"tag":3168,"props":5581,"children":5582},{},[5583],{"type":3112,"value":5584},"Google",{"type":3107,"tag":3168,"props":5586,"children":5587},{},[5588],{"type":3112,"value":5589},"Heroku",{"type":3107,"tag":3168,"props":5591,"children":5592},{},[5593],{"type":3112,"value":5594},"Hubspot",{"type":3107,"tag":3168,"props":5596,"children":5597},{},[5598],{"type":3112,"value":5599},"Instagram",{"type":3107,"tag":3168,"props":5601,"children":5602},{},[5603],{"type":3112,"value":5604},"Kick",{"type":3107,"tag":3168,"props":5606,"children":5607},{},[5608],{"type":3112,"value":5609},"Keycloak",{"type":3107,"tag":3168,"props":5611,"children":5612},{},[5613],{"type":3112,"value":5614},"Line",{"type":3107,"tag":3168,"props":5616,"children":5617},{},[5618],{"type":3112,"value":5619},"Linear",{"type":3107,"tag":3168,"props":5621,"children":5622},{},[5623],{"type":3112,"value":5624},"LinkedIn",{"type":3107,"tag":3168,"props":5626,"children":5627},{},[5628],{"type":3112,"value":5629},"LiveChat",{"type":3107,"tag":3168,"props":5631,"children":5632},{},[5633],{"type":3112,"value":5634},"Microsoft",{"type":3107,"tag":3168,"props":5636,"children":5637},{},[5638],{"type":3112,"value":5639},"OIDC \u002F OpenID Connect (Generic)",{"type":3107,"tag":3168,"props":5641,"children":5642},{},[5643],{"type":3112,"value":5644},"Okta",{"type":3107,"tag":3168,"props":5646,"children":5647},{},[5648],{"type":3112,"value":5649},"Ory",{"type":3107,"tag":3168,"props":5651,"children":5652},{},[5653],{"type":3112,"value":5654},"osu!",{"type":3107,"tag":3168,"props":5656,"children":5657},{},[5658],{"type":3112,"value":5659},"PayPal",{"type":3107,"tag":3168,"props":5661,"children":5662},{},[5663],{"type":3112,"value":5664},"Polar",{"type":3107,"tag":3168,"props":5666,"children":5667},{},[5668],{"type":3112,"value":5669},"Riot Games",{"type":3107,"tag":3168,"props":5671,"children":5672},{},[5673],{"type":3112,"value":5674},"Salesforce",{"type":3107,"tag":3168,"props":5676,"children":5677},{},[5678],{"type":3112,"value":5679},"Seznam",{"type":3107,"tag":3168,"props":5681,"children":5682},{},[5683],{"type":3112,"value":5684},"Shopify Customer",{"type":3107,"tag":3168,"props":5686,"children":5687},{},[5688],{"type":3112,"value":5689},"Slack",{"type":3107,"tag":3168,"props":5691,"children":5692},{},[5693],{"type":3112,"value":5694},"Spotify",{"type":3107,"tag":3168,"props":5696,"children":5697},{},[5698],{"type":3112,"value":5699},"Steam",{"type":3107,"tag":3168,"props":5701,"children":5702},{},[5703],{"type":3112,"value":5704},"Strava",{"type":3107,"tag":3168,"props":5706,"children":5707},{},[5708],{"type":3112,"value":5709},"TikTok",{"type":3107,"tag":3168,"props":5711,"children":5712},{},[5713],{"type":3112,"value":5714},"Twitch",{"type":3107,"tag":3168,"props":5716,"children":5717},{},[5718],{"type":3112,"value":5719},"VK",{"type":3107,"tag":3168,"props":5721,"children":5722},{},[5723],{"type":3112,"value":5724},"WorkOS",{"type":3107,"tag":3168,"props":5726,"children":5727},{},[5728],{"type":3112,"value":5729},"X (Twitter)",{"type":3107,"tag":3168,"props":5731,"children":5732},{},[5733],{"type":3112,"value":5734},"XSUAA",{"type":3107,"tag":3168,"props":5736,"children":5737},{},[5738],{"type":3112,"value":5739},"Yandex",{"type":3107,"tag":3168,"props":5741,"children":5742},{},[5743],{"type":3112,"value":5744},"Zitadel",{"type":3107,"tag":3114,"props":5746,"children":5747},{},[5748,5750,5757],{"type":3112,"value":5749},"You can add your favorite provider by creating a new file in ",{"type":3107,"tag":3118,"props":5751,"children":5754},{"href":5752,"rel":5753},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Ftree\u002Fmain\u002Fsrc\u002Fruntime\u002Fserver\u002Flib\u002Foauth",[3122],[5755],{"type":3112,"value":5756},"src\u002Fruntime\u002Fserver\u002Flib\u002Foauth\u002F",{"type":3112,"value":3345},{"type":3107,"tag":5496,"props":5759,"children":5761},{"id":5760},"example",[5762],{"type":3112,"value":5763},"Example",{"type":3107,"tag":3114,"props":5765,"children":5766},{},[5767,5769],{"type":3112,"value":5768},"Example: ",{"type":3107,"tag":3252,"props":5770,"children":5772},{"className":5771},[],[5773],{"type":3112,"value":5774},"~\u002Fserver\u002Froutes\u002Fauth\u002Fgithub.get.ts",{"type":3107,"tag":3380,"props":5776,"children":5778},{"className":4068,"code":5777,"language":4070,"meta":2980,"style":2980},"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",[5779],{"type":3107,"tag":3252,"props":5780,"children":5781},{"__ignoreMap":2980},[5782,5806,5822,5840,5847,5898,5926,5942,5967,5974,5986,6028,6035,6043,6077,6123,6162,6169],{"type":3107,"tag":3390,"props":5783,"children":5784},{"class":3392,"line":3066},[5785,5789,5793,5798,5802],{"type":3107,"tag":3390,"props":5786,"children":5787},{"style":4652},[5788],{"type":3112,"value":5186},{"type":3107,"tag":3390,"props":5790,"children":5791},{"style":4652},[5792],{"type":3112,"value":5301},{"type":3107,"tag":3390,"props":5794,"children":5795},{"style":3626},[5796],{"type":3112,"value":5797}," defineOAuthGitHubEventHandler",{"type":3107,"tag":3390,"props":5799,"children":5800},{"style":3464},[5801],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":5803,"children":5804},{"style":3469},[5805],{"type":3112,"value":5316},{"type":3107,"tag":3390,"props":5807,"children":5808},{"class":3392,"line":3032},[5809,5814,5818],{"type":3107,"tag":3390,"props":5810,"children":5811},{"style":3535},[5812],{"type":3112,"value":5813},"  config",{"type":3107,"tag":3390,"props":5815,"children":5816},{"style":3469},[5817],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":5819,"children":5820},{"style":3469},[5821],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":5823,"children":5824},{"class":3392,"line":3016},[5825,5830,5834],{"type":3107,"tag":3390,"props":5826,"children":5827},{"style":3535},[5828],{"type":3112,"value":5829},"    emailRequired",{"type":3107,"tag":3390,"props":5831,"children":5832},{"style":3469},[5833],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":5835,"children":5837},{"style":5836},"--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC",[5838],{"type":3112,"value":5839}," true\n",{"type":3107,"tag":3390,"props":5841,"children":5842},{"class":3392,"line":3653},[5843],{"type":3107,"tag":3390,"props":5844,"children":5845},{"style":3469},[5846],{"type":3112,"value":4730},{"type":3107,"tag":3390,"props":5848,"children":5849},{"class":3392,"line":3662},[5850,5855,5860,5864,5869,5873,5877,5881,5885,5890,5894],{"type":3107,"tag":3390,"props":5851,"children":5852},{"style":3541},[5853],{"type":3112,"value":5854},"  async",{"type":3107,"tag":3390,"props":5856,"children":5857},{"style":3535},[5858],{"type":3112,"value":5859}," onSuccess",{"type":3107,"tag":3390,"props":5861,"children":5862},{"style":3469},[5863],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":5865,"children":5866},{"style":4484},[5867],{"type":3112,"value":5868},"event",{"type":3107,"tag":3390,"props":5870,"children":5871},{"style":3469},[5872],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":5874,"children":5875},{"style":3469},[5876],{"type":3112,"value":3562},{"type":3107,"tag":3390,"props":5878,"children":5879},{"style":4484},[5880],{"type":3112,"value":3577},{"type":3107,"tag":3390,"props":5882,"children":5883},{"style":3469},[5884],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":5886,"children":5887},{"style":4484},[5888],{"type":3112,"value":5889}," tokens",{"type":3107,"tag":3390,"props":5891,"children":5892},{"style":3469},[5893],{"type":3112,"value":4550},{"type":3107,"tag":3390,"props":5895,"children":5896},{"style":3469},[5897],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":5899,"children":5900},{"class":3392,"line":3679},[5901,5906,5910,5914,5918,5922],{"type":3107,"tag":3390,"props":5902,"children":5903},{"style":4652},[5904],{"type":3112,"value":5905},"    await",{"type":3107,"tag":3390,"props":5907,"children":5908},{"style":3626},[5909],{"type":3112,"value":4660},{"type":3107,"tag":3390,"props":5911,"children":5912},{"style":3535},[5913],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":5915,"children":5916},{"style":3464},[5917],{"type":3112,"value":5868},{"type":3107,"tag":3390,"props":5919,"children":5920},{"style":3469},[5921],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":5923,"children":5924},{"style":3469},[5925],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":5927,"children":5928},{"class":3392,"line":3012},[5929,5934,5938],{"type":3107,"tag":3390,"props":5930,"children":5931},{"style":3535},[5932],{"type":3112,"value":5933},"      user",{"type":3107,"tag":3390,"props":5935,"children":5936},{"style":3469},[5937],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":5939,"children":5940},{"style":3469},[5941],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":5943,"children":5944},{"class":3392,"line":3008},[5945,5950,5954,5958,5962],{"type":3107,"tag":3390,"props":5946,"children":5947},{"style":3535},[5948],{"type":3112,"value":5949},"        githubId",{"type":3107,"tag":3390,"props":5951,"children":5952},{"style":3469},[5953],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":5955,"children":5956},{"style":3464},[5957],{"type":3112,"value":3577},{"type":3107,"tag":3390,"props":5959,"children":5960},{"style":3469},[5961],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":5963,"children":5964},{"style":3464},[5965],{"type":3112,"value":5966},"id\n",{"type":3107,"tag":3390,"props":5968,"children":5969},{"class":3392,"line":3004},[5970],{"type":3107,"tag":3390,"props":5971,"children":5972},{"style":3469},[5973],{"type":3112,"value":5434},{"type":3107,"tag":3390,"props":5975,"children":5976},{"class":3392,"line":3841},[5977,5982],{"type":3107,"tag":3390,"props":5978,"children":5979},{"style":3469},[5980],{"type":3112,"value":5981},"    }",{"type":3107,"tag":3390,"props":5983,"children":5984},{"style":3535},[5985],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":5987,"children":5988},{"class":3392,"line":3095},[5989,5994,5999,6003,6007,6011,6015,6020,6024],{"type":3107,"tag":3390,"props":5990,"children":5991},{"style":4652},[5992],{"type":3112,"value":5993},"    return",{"type":3107,"tag":3390,"props":5995,"children":5996},{"style":3626},[5997],{"type":3112,"value":5998}," sendRedirect",{"type":3107,"tag":3390,"props":6000,"children":6001},{"style":3535},[6002],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":6004,"children":6005},{"style":3464},[6006],{"type":3112,"value":5868},{"type":3107,"tag":3390,"props":6008,"children":6009},{"style":3469},[6010],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":6012,"children":6013},{"style":3469},[6014],{"type":3112,"value":4713},{"type":3107,"tag":3390,"props":6016,"children":6017},{"style":3402},[6018],{"type":3112,"value":6019},"\u002F",{"type":3107,"tag":3390,"props":6021,"children":6022},{"style":3469},[6023],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":6025,"children":6026},{"style":3535},[6027],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":6029,"children":6030},{"class":3392,"line":3878},[6031],{"type":3107,"tag":3390,"props":6032,"children":6033},{"style":3469},[6034],{"type":3112,"value":4730},{"type":3107,"tag":3390,"props":6036,"children":6037},{"class":3392,"line":3911},[6038],{"type":3107,"tag":3390,"props":6039,"children":6040},{"style":3455},[6041],{"type":3112,"value":6042},"  \u002F\u002F Optional, will return a json error and 401 status code by default\n",{"type":3107,"tag":3390,"props":6044,"children":6045},{"class":3392,"line":3966},[6046,6051,6055,6059,6063,6068,6073],{"type":3107,"tag":3390,"props":6047,"children":6048},{"style":3535},[6049],{"type":3112,"value":6050},"  onError",{"type":3107,"tag":3390,"props":6052,"children":6053},{"style":3469},[6054],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":6056,"children":6057},{"style":4484},[6058],{"type":3112,"value":5868},{"type":3107,"tag":3390,"props":6060,"children":6061},{"style":3469},[6062],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":6064,"children":6065},{"style":4484},[6066],{"type":3112,"value":6067}," error",{"type":3107,"tag":3390,"props":6069,"children":6070},{"style":3469},[6071],{"type":3112,"value":6072},")",{"type":3107,"tag":3390,"props":6074,"children":6075},{"style":3469},[6076],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":6078,"children":6079},{"class":3392,"line":3975},[6080,6085,6089,6094,6098,6102,6107,6111,6115,6119],{"type":3107,"tag":3390,"props":6081,"children":6082},{"style":3464},[6083],{"type":3112,"value":6084},"    console",{"type":3107,"tag":3390,"props":6086,"children":6087},{"style":3469},[6088],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":6090,"children":6091},{"style":3626},[6092],{"type":3112,"value":6093},"error",{"type":3107,"tag":3390,"props":6095,"children":6096},{"style":3535},[6097],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":6099,"children":6100},{"style":3469},[6101],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":6103,"children":6104},{"style":3402},[6105],{"type":3112,"value":6106},"GitHub OAuth error:",{"type":3107,"tag":3390,"props":6108,"children":6109},{"style":3469},[6110],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":6112,"children":6113},{"style":3469},[6114],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":6116,"children":6117},{"style":3464},[6118],{"type":3112,"value":6067},{"type":3107,"tag":3390,"props":6120,"children":6121},{"style":3535},[6122],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":6124,"children":6125},{"class":3392,"line":3000},[6126,6130,6134,6138,6142,6146,6150,6154,6158],{"type":3107,"tag":3390,"props":6127,"children":6128},{"style":4652},[6129],{"type":3112,"value":5993},{"type":3107,"tag":3390,"props":6131,"children":6132},{"style":3626},[6133],{"type":3112,"value":5998},{"type":3107,"tag":3390,"props":6135,"children":6136},{"style":3535},[6137],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":6139,"children":6140},{"style":3464},[6141],{"type":3112,"value":5868},{"type":3107,"tag":3390,"props":6143,"children":6144},{"style":3469},[6145],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":6147,"children":6148},{"style":3469},[6149],{"type":3112,"value":4713},{"type":3107,"tag":3390,"props":6151,"children":6152},{"style":3402},[6153],{"type":3112,"value":6019},{"type":3107,"tag":3390,"props":6155,"children":6156},{"style":3469},[6157],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":6159,"children":6160},{"style":3535},[6161],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":6163,"children":6164},{"class":3392,"line":4043},[6165],{"type":3107,"tag":3390,"props":6166,"children":6167},{"style":3469},[6168],{"type":3112,"value":4730},{"type":3107,"tag":3390,"props":6170,"children":6171},{"class":3392,"line":4313},[6172,6176],{"type":3107,"tag":3390,"props":6173,"children":6174},{"style":3469},[6175],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":6177,"children":6178},{"style":3464},[6179],{"type":3112,"value":4832},{"type":3107,"tag":3114,"props":6181,"children":6182},{},[6183,6185,6191],{"type":3112,"value":6184},"Make sure to set the callback URL in your OAuth app settings as ",{"type":3107,"tag":3252,"props":6186,"children":6188},{"className":6187},[],[6189],{"type":3112,"value":6190},"\u003Cyour-domain>\u002Fauth\u002Fgithub",{"type":3112,"value":3345},{"type":3107,"tag":3114,"props":6193,"children":6194},{},[6195,6197,6203],{"type":3112,"value":6196},"If the redirect URL mismatch in production, this means that the module cannot guess the right redirect URL. You can set the ",{"type":3107,"tag":3252,"props":6198,"children":6200},{"className":6199},[],[6201],{"type":3112,"value":6202},"NUXT_OAUTH_\u003CPROVIDER>_REDIRECT_URL",{"type":3112,"value":6204}," env variable to overwrite the default one.",{"type":3107,"tag":3510,"props":6206,"children":6208},{"id":6207},"password-hashing",[6209],{"type":3112,"value":3234},{"type":3107,"tag":3114,"props":6211,"children":6212},{},[6213,6215,6221,6223,6229,6231,6238],{"type":3112,"value":6214},"Nuxt Auth Utils provides password hashing utilities like ",{"type":3107,"tag":3252,"props":6216,"children":6218},{"className":6217},[],[6219],{"type":3112,"value":6220},"hashPassword",{"type":3112,"value":6222}," and ",{"type":3107,"tag":3252,"props":6224,"children":6226},{"className":6225},[],[6227],{"type":3112,"value":6228},"verifyPassword",{"type":3112,"value":6230}," to hash and verify passwords by using ",{"type":3107,"tag":3118,"props":6232,"children":6235},{"href":6233,"rel":6234},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FScrypt",[3122],[6236],{"type":3112,"value":6237},"scrypt",{"type":3112,"value":6239}," as it is supported in many JS runtime.",{"type":3107,"tag":3380,"props":6241,"children":6243},{"className":4068,"code":6242,"language":4070,"meta":2980,"style":2980},"const hashedPassword = await hashPassword('user_password')\n\nif (await verifyPassword(hashedPassword, 'user_password')) {\n  \u002F\u002F Password is valid\n}\n",[6244],{"type":3107,"tag":3252,"props":6245,"children":6246},{"__ignoreMap":2980},[6247,6293,6300,6351,6359],{"type":3107,"tag":3390,"props":6248,"children":6249},{"class":3392,"line":3066},[6250,6254,6259,6263,6267,6272,6276,6280,6285,6289],{"type":3107,"tag":3390,"props":6251,"children":6252},{"style":3541},[6253],{"type":3112,"value":3557},{"type":3107,"tag":3390,"props":6255,"children":6256},{"style":3464},[6257],{"type":3112,"value":6258}," hashedPassword ",{"type":3107,"tag":3390,"props":6260,"children":6261},{"style":3469},[6262],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":6264,"children":6265},{"style":4652},[6266],{"type":3112,"value":4908},{"type":3107,"tag":3390,"props":6268,"children":6269},{"style":3626},[6270],{"type":3112,"value":6271}," hashPassword",{"type":3107,"tag":3390,"props":6273,"children":6274},{"style":3464},[6275],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":6277,"children":6278},{"style":3469},[6279],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":6281,"children":6282},{"style":3402},[6283],{"type":3112,"value":6284},"user_password",{"type":3107,"tag":3390,"props":6286,"children":6287},{"style":3469},[6288],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":6290,"children":6291},{"style":3464},[6292],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":6294,"children":6295},{"class":3392,"line":3032},[6296],{"type":3107,"tag":3390,"props":6297,"children":6298},{"emptyLinePlaceholder":1200},[6299],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":6301,"children":6302},{"class":3392,"line":3016},[6303,6308,6312,6316,6321,6326,6330,6334,6338,6342,6347],{"type":3107,"tag":3390,"props":6304,"children":6305},{"style":4652},[6306],{"type":3112,"value":6307},"if",{"type":3107,"tag":3390,"props":6309,"children":6310},{"style":3464},[6311],{"type":3112,"value":4481},{"type":3107,"tag":3390,"props":6313,"children":6314},{"style":4652},[6315],{"type":3112,"value":4655},{"type":3107,"tag":3390,"props":6317,"children":6318},{"style":3626},[6319],{"type":3112,"value":6320}," verifyPassword",{"type":3107,"tag":3390,"props":6322,"children":6323},{"style":3464},[6324],{"type":3112,"value":6325},"(hashedPassword",{"type":3107,"tag":3390,"props":6327,"children":6328},{"style":3469},[6329],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":6331,"children":6332},{"style":3469},[6333],{"type":3112,"value":4713},{"type":3107,"tag":3390,"props":6335,"children":6336},{"style":3402},[6337],{"type":3112,"value":6284},{"type":3107,"tag":3390,"props":6339,"children":6340},{"style":3469},[6341],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":6343,"children":6344},{"style":3464},[6345],{"type":3112,"value":6346},")) ",{"type":3107,"tag":3390,"props":6348,"children":6349},{"style":3469},[6350],{"type":3112,"value":5316},{"type":3107,"tag":3390,"props":6352,"children":6353},{"class":3392,"line":3653},[6354],{"type":3107,"tag":3390,"props":6355,"children":6356},{"style":3455},[6357],{"type":3112,"value":6358},"  \u002F\u002F Password is valid\n",{"type":3107,"tag":3390,"props":6360,"children":6361},{"class":3392,"line":3662},[6362],{"type":3107,"tag":3390,"props":6363,"children":6364},{"style":3469},[6365],{"type":3112,"value":4568},{"type":3107,"tag":3114,"props":6367,"children":6368},{},[6369,6371,6377],{"type":3112,"value":6370},"It also provides a ",{"type":3107,"tag":3252,"props":6372,"children":6374},{"className":6373},[],[6375],{"type":3112,"value":6376},"passwordNeedsRehash",{"type":3112,"value":6378}," 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":3107,"tag":3380,"props":6380,"children":6382},{"className":4068,"code":6381,"language":4070,"meta":2980,"style":2980},"const needsRehash = passwordNeedsRehash(hashedPassword)\n\nif (needsRehash) {\n  \u002F\u002F Password needs to be rehashed\n  hashedPassword = await hashPassword('user_password')\n}\n",[6383],{"type":3107,"tag":3252,"props":6384,"children":6385},{"__ignoreMap":2980},[6386,6412,6419,6435,6443,6483],{"type":3107,"tag":3390,"props":6387,"children":6388},{"class":3392,"line":3066},[6389,6393,6398,6402,6407],{"type":3107,"tag":3390,"props":6390,"children":6391},{"style":3541},[6392],{"type":3112,"value":3557},{"type":3107,"tag":3390,"props":6394,"children":6395},{"style":3464},[6396],{"type":3112,"value":6397}," needsRehash ",{"type":3107,"tag":3390,"props":6399,"children":6400},{"style":3469},[6401],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":6403,"children":6404},{"style":3626},[6405],{"type":3112,"value":6406}," passwordNeedsRehash",{"type":3107,"tag":3390,"props":6408,"children":6409},{"style":3464},[6410],{"type":3112,"value":6411},"(hashedPassword)\n",{"type":3107,"tag":3390,"props":6413,"children":6414},{"class":3392,"line":3032},[6415],{"type":3107,"tag":3390,"props":6416,"children":6417},{"emptyLinePlaceholder":1200},[6418],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":6420,"children":6421},{"class":3392,"line":3016},[6422,6426,6431],{"type":3107,"tag":3390,"props":6423,"children":6424},{"style":4652},[6425],{"type":3112,"value":6307},{"type":3107,"tag":3390,"props":6427,"children":6428},{"style":3464},[6429],{"type":3112,"value":6430}," (needsRehash) ",{"type":3107,"tag":3390,"props":6432,"children":6433},{"style":3469},[6434],{"type":3112,"value":5316},{"type":3107,"tag":3390,"props":6436,"children":6437},{"class":3392,"line":3653},[6438],{"type":3107,"tag":3390,"props":6439,"children":6440},{"style":3455},[6441],{"type":3112,"value":6442},"  \u002F\u002F Password needs to be rehashed\n",{"type":3107,"tag":3390,"props":6444,"children":6445},{"class":3392,"line":3662},[6446,6451,6455,6459,6463,6467,6471,6475,6479],{"type":3107,"tag":3390,"props":6447,"children":6448},{"style":3464},[6449],{"type":3112,"value":6450},"  hashedPassword",{"type":3107,"tag":3390,"props":6452,"children":6453},{"style":3469},[6454],{"type":3112,"value":3623},{"type":3107,"tag":3390,"props":6456,"children":6457},{"style":4652},[6458],{"type":3112,"value":4908},{"type":3107,"tag":3390,"props":6460,"children":6461},{"style":3626},[6462],{"type":3112,"value":6271},{"type":3107,"tag":3390,"props":6464,"children":6465},{"style":3535},[6466],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":6468,"children":6469},{"style":3469},[6470],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":6472,"children":6473},{"style":3402},[6474],{"type":3112,"value":6284},{"type":3107,"tag":3390,"props":6476,"children":6477},{"style":3469},[6478],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":6480,"children":6481},{"style":3535},[6482],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":6484,"children":6485},{"class":3392,"line":3679},[6486],{"type":3107,"tag":3390,"props":6487,"children":6488},{"style":3469},[6489],{"type":3112,"value":4568},{"type":3107,"tag":3114,"props":6491,"children":6492},{},[6493,6495,6500],{"type":3112,"value":6494},"You can configure the scrypt options in your ",{"type":3107,"tag":3252,"props":6496,"children":6498},{"className":6497},[],[6499],{"type":3112,"value":233},{"type":3112,"value":4129},{"type":3107,"tag":3380,"props":6502,"children":6504},{"className":4068,"code":6503,"language":4070,"meta":2980,"style":2980},"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",[6505],{"type":3107,"tag":3252,"props":6506,"children":6507},{"__ignoreMap":2980},[6508,6531,6569,6585,6601,6617,6625,6632,6639,6646],{"type":3107,"tag":3390,"props":6509,"children":6510},{"class":3392,"line":3066},[6511,6515,6519,6523,6527],{"type":3107,"tag":3390,"props":6512,"children":6513},{"style":4652},[6514],{"type":3112,"value":5186},{"type":3107,"tag":3390,"props":6516,"children":6517},{"style":4652},[6518],{"type":3112,"value":5301},{"type":3107,"tag":3390,"props":6520,"children":6521},{"style":3626},[6522],{"type":3112,"value":5306},{"type":3107,"tag":3390,"props":6524,"children":6525},{"style":3464},[6526],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":6528,"children":6529},{"style":3469},[6530],{"type":3112,"value":5316},{"type":3107,"tag":3390,"props":6532,"children":6533},{"class":3392,"line":3032},[6534,6539,6543,6548,6552,6556,6560,6565],{"type":3107,"tag":3390,"props":6535,"children":6536},{"style":3535},[6537],{"type":3112,"value":6538},"  modules",{"type":3107,"tag":3390,"props":6540,"children":6541},{"style":3469},[6542],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":6544,"children":6545},{"style":3464},[6546],{"type":3112,"value":6547}," [",{"type":3107,"tag":3390,"props":6549,"children":6550},{"style":3469},[6551],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":6553,"children":6554},{"style":3402},[6555],{"type":3112,"value":2979},{"type":3107,"tag":3390,"props":6557,"children":6558},{"style":3469},[6559],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":6561,"children":6562},{"style":3464},[6563],{"type":3112,"value":6564},"]",{"type":3107,"tag":3390,"props":6566,"children":6567},{"style":3469},[6568],{"type":3112,"value":5402},{"type":3107,"tag":3390,"props":6570,"children":6571},{"class":3392,"line":3016},[6572,6577,6581],{"type":3107,"tag":3390,"props":6573,"children":6574},{"style":3535},[6575],{"type":3112,"value":6576},"  auth",{"type":3107,"tag":3390,"props":6578,"children":6579},{"style":3469},[6580],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":6582,"children":6583},{"style":3469},[6584],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":6586,"children":6587},{"class":3392,"line":3653},[6588,6593,6597],{"type":3107,"tag":3390,"props":6589,"children":6590},{"style":3535},[6591],{"type":3112,"value":6592},"    hash",{"type":3107,"tag":3390,"props":6594,"children":6595},{"style":3469},[6596],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":6598,"children":6599},{"style":3469},[6600],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":6602,"children":6603},{"class":3392,"line":3662},[6604,6609,6613],{"type":3107,"tag":3390,"props":6605,"children":6606},{"style":3535},[6607],{"type":3112,"value":6608},"      scrypt",{"type":3107,"tag":3390,"props":6610,"children":6611},{"style":3469},[6612],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":6614,"children":6615},{"style":3469},[6616],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":6618,"children":6619},{"class":3392,"line":3679},[6620],{"type":3107,"tag":3390,"props":6621,"children":6622},{"style":3455},[6623],{"type":3112,"value":6624},"        \u002F\u002F See https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fhash\u002Fblob\u002F94637029cd526783ac0a763ec581306d98db2036\u002Fsrc\u002Ftypes.ts#L144\n",{"type":3107,"tag":3390,"props":6626,"children":6627},{"class":3392,"line":3012},[6628],{"type":3107,"tag":3390,"props":6629,"children":6630},{"style":3469},[6631],{"type":3112,"value":5434},{"type":3107,"tag":3390,"props":6633,"children":6634},{"class":3392,"line":3008},[6635],{"type":3107,"tag":3390,"props":6636,"children":6637},{"style":3469},[6638],{"type":3112,"value":5442},{"type":3107,"tag":3390,"props":6640,"children":6641},{"class":3392,"line":3004},[6642],{"type":3107,"tag":3390,"props":6643,"children":6644},{"style":3469},[6645],{"type":3112,"value":5090},{"type":3107,"tag":3390,"props":6647,"children":6648},{"class":3392,"line":3841},[6649,6653],{"type":3107,"tag":3390,"props":6650,"children":6651},{"style":3469},[6652],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":6654,"children":6655},{"style":3464},[6656],{"type":3112,"value":4832},{"type":3107,"tag":3510,"props":6658,"children":6660},{"id":6659},"at-protocol",[6661],{"type":3112,"value":6662},"AT Protocol",{"type":3107,"tag":3114,"props":6664,"children":6665},{},[6666],{"type":3112,"value":6667},"Social networks that rely on AT Protocol (e.g., Bluesky) slightly differ from a regular OAuth flow.",{"type":3107,"tag":3114,"props":6669,"children":6670},{},[6671],{"type":3112,"value":6672},"To enable OAuth with AT Protocol, you need to:",{"type":3107,"tag":3364,"props":6674,"children":6675},{},[6676],{"type":3107,"tag":3168,"props":6677,"children":6678},{},[6679],{"type":3112,"value":6680},"Install the peer dependencies:",{"type":3107,"tag":3380,"props":6682,"children":6684},{"className":3382,"code":6683,"language":3384,"meta":2980,"style":2980},"npx nypm i @atproto\u002Foauth-client-node @atproto\u002Fapi\n",[6685],{"type":3107,"tag":3252,"props":6686,"children":6687},{"__ignoreMap":2980},[6688],{"type":3107,"tag":3390,"props":6689,"children":6690},{"class":3392,"line":3066},[6691,6695,6700,6705,6710],{"type":3107,"tag":3390,"props":6692,"children":6693},{"style":3396},[6694],{"type":3112,"value":3399},{"type":3107,"tag":3390,"props":6696,"children":6697},{"style":3402},[6698],{"type":3112,"value":6699}," nypm",{"type":3107,"tag":3390,"props":6701,"children":6702},{"style":3402},[6703],{"type":3112,"value":6704}," i",{"type":3107,"tag":3390,"props":6706,"children":6707},{"style":3402},[6708],{"type":3112,"value":6709}," @atproto\u002Foauth-client-node",{"type":3107,"tag":3390,"props":6711,"children":6712},{"style":3402},[6713],{"type":3112,"value":6714}," @atproto\u002Fapi\n",{"type":3107,"tag":3364,"props":6716,"children":6717},{"start":3032},[6718],{"type":3107,"tag":3168,"props":6719,"children":6720},{},[6721,6723],{"type":3112,"value":6722},"Enable it in your ",{"type":3107,"tag":3252,"props":6724,"children":6726},{"className":6725},[],[6727],{"type":3112,"value":233},{"type":3107,"tag":3380,"props":6729,"children":6731},{"className":4068,"code":6730,"language":4070,"meta":2980,"style":2980},"export default defineNuxtConfig({\n  auth: {\n    atproto: true\n  }\n})\n",[6732],{"type":3107,"tag":3252,"props":6733,"children":6734},{"__ignoreMap":2980},[6735,6758,6773,6789,6796],{"type":3107,"tag":3390,"props":6736,"children":6737},{"class":3392,"line":3066},[6738,6742,6746,6750,6754],{"type":3107,"tag":3390,"props":6739,"children":6740},{"style":4652},[6741],{"type":3112,"value":5186},{"type":3107,"tag":3390,"props":6743,"children":6744},{"style":4652},[6745],{"type":3112,"value":5301},{"type":3107,"tag":3390,"props":6747,"children":6748},{"style":3626},[6749],{"type":3112,"value":5306},{"type":3107,"tag":3390,"props":6751,"children":6752},{"style":3464},[6753],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":6755,"children":6756},{"style":3469},[6757],{"type":3112,"value":5316},{"type":3107,"tag":3390,"props":6759,"children":6760},{"class":3392,"line":3032},[6761,6765,6769],{"type":3107,"tag":3390,"props":6762,"children":6763},{"style":3535},[6764],{"type":3112,"value":6576},{"type":3107,"tag":3390,"props":6766,"children":6767},{"style":3469},[6768],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":6770,"children":6771},{"style":3469},[6772],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":6774,"children":6775},{"class":3392,"line":3016},[6776,6781,6785],{"type":3107,"tag":3390,"props":6777,"children":6778},{"style":3535},[6779],{"type":3112,"value":6780},"    atproto",{"type":3107,"tag":3390,"props":6782,"children":6783},{"style":3469},[6784],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":6786,"children":6787},{"style":5836},[6788],{"type":3112,"value":5839},{"type":3107,"tag":3390,"props":6790,"children":6791},{"class":3392,"line":3653},[6792],{"type":3107,"tag":3390,"props":6793,"children":6794},{"style":3469},[6795],{"type":3112,"value":5090},{"type":3107,"tag":3390,"props":6797,"children":6798},{"class":3392,"line":3662},[6799,6803],{"type":3107,"tag":3390,"props":6800,"children":6801},{"style":3469},[6802],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":6804,"children":6805},{"style":3464},[6806],{"type":3112,"value":4832},{"type":3107,"tag":3510,"props":6808,"children":6810},{"id":6809},"webauthn-passkey",[6811],{"type":3112,"value":3243},{"type":3107,"tag":3114,"props":6813,"children":6814},{},[6815],{"type":3112,"value":6816},"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":3107,"tag":3114,"props":6818,"children":6819},{},[6820],{"type":3112,"value":6821},"To enable WebAuthn you need to:",{"type":3107,"tag":3364,"props":6823,"children":6824},{},[6825],{"type":3107,"tag":3168,"props":6826,"children":6827},{},[6828],{"type":3112,"value":6680},{"type":3107,"tag":3380,"props":6830,"children":6832},{"className":3382,"code":6831,"language":3384,"meta":2980,"style":2980},"npx nypm i @simplewebauthn\u002Fserver@11 @simplewebauthn\u002Fbrowser@11\n",[6833],{"type":3107,"tag":3252,"props":6834,"children":6835},{"__ignoreMap":2980},[6836],{"type":3107,"tag":3390,"props":6837,"children":6838},{"class":3392,"line":3066},[6839,6843,6847,6851,6856],{"type":3107,"tag":3390,"props":6840,"children":6841},{"style":3396},[6842],{"type":3112,"value":3399},{"type":3107,"tag":3390,"props":6844,"children":6845},{"style":3402},[6846],{"type":3112,"value":6699},{"type":3107,"tag":3390,"props":6848,"children":6849},{"style":3402},[6850],{"type":3112,"value":6704},{"type":3107,"tag":3390,"props":6852,"children":6853},{"style":3402},[6854],{"type":3112,"value":6855}," @simplewebauthn\u002Fserver@11",{"type":3107,"tag":3390,"props":6857,"children":6858},{"style":3402},[6859],{"type":3112,"value":6860}," @simplewebauthn\u002Fbrowser@11\n",{"type":3107,"tag":3364,"props":6862,"children":6863},{"start":3032},[6864],{"type":3107,"tag":3168,"props":6865,"children":6866},{},[6867,6868],{"type":3112,"value":6722},{"type":3107,"tag":3252,"props":6869,"children":6871},{"className":6870},[],[6872],{"type":3112,"value":233},{"type":3107,"tag":3380,"props":6874,"children":6876},{"className":4068,"code":6875,"language":4070,"meta":2980,"style":2980},"export default defineNuxtConfig({\n  auth: {\n    webAuthn: true\n  }\n})\n",[6877],{"type":3107,"tag":3252,"props":6878,"children":6879},{"__ignoreMap":2980},[6880,6903,6918,6934,6941],{"type":3107,"tag":3390,"props":6881,"children":6882},{"class":3392,"line":3066},[6883,6887,6891,6895,6899],{"type":3107,"tag":3390,"props":6884,"children":6885},{"style":4652},[6886],{"type":3112,"value":5186},{"type":3107,"tag":3390,"props":6888,"children":6889},{"style":4652},[6890],{"type":3112,"value":5301},{"type":3107,"tag":3390,"props":6892,"children":6893},{"style":3626},[6894],{"type":3112,"value":5306},{"type":3107,"tag":3390,"props":6896,"children":6897},{"style":3464},[6898],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":6900,"children":6901},{"style":3469},[6902],{"type":3112,"value":5316},{"type":3107,"tag":3390,"props":6904,"children":6905},{"class":3392,"line":3032},[6906,6910,6914],{"type":3107,"tag":3390,"props":6907,"children":6908},{"style":3535},[6909],{"type":3112,"value":6576},{"type":3107,"tag":3390,"props":6911,"children":6912},{"style":3469},[6913],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":6915,"children":6916},{"style":3469},[6917],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":6919,"children":6920},{"class":3392,"line":3016},[6921,6926,6930],{"type":3107,"tag":3390,"props":6922,"children":6923},{"style":3535},[6924],{"type":3112,"value":6925},"    webAuthn",{"type":3107,"tag":3390,"props":6927,"children":6928},{"style":3469},[6929],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":6931,"children":6932},{"style":5836},[6933],{"type":3112,"value":5839},{"type":3107,"tag":3390,"props":6935,"children":6936},{"class":3392,"line":3653},[6937],{"type":3107,"tag":3390,"props":6938,"children":6939},{"style":3469},[6940],{"type":3112,"value":5090},{"type":3107,"tag":3390,"props":6942,"children":6943},{"class":3392,"line":3662},[6944,6948],{"type":3107,"tag":3390,"props":6945,"children":6946},{"style":3469},[6947],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":6949,"children":6950},{"style":3464},[6951],{"type":3112,"value":4832},{"type":3107,"tag":5496,"props":6953,"children":6955},{"id":6954},"example-1",[6956],{"type":3112,"value":5763},{"type":3107,"tag":3114,"props":6958,"children":6959},{},[6960],{"type":3112,"value":6961},"In this example we will implement the very basic steps to register and authenticate a credential.",{"type":3107,"tag":3114,"props":6963,"children":6964},{},[6965,6967,6974],{"type":3112,"value":6966},"The full code can be found in the ",{"type":3107,"tag":3118,"props":6968,"children":6971},{"href":6969,"rel":6970},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn",[3122],[6972],{"type":3112,"value":6973},"playground",{"type":3112,"value":6975},". The example uses a SQLite database with the following minimal tables:",{"type":3107,"tag":3380,"props":6977,"children":6981},{"className":6978,"code":6979,"language":6980,"meta":2980,"style":2980},"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",[6982],{"type":3107,"tag":3252,"props":6983,"children":6984},{"__ignoreMap":2980},[6985,7009,7032,7050,7058,7065,7096,7137,7161,7181,7202,7222,7242,7289],{"type":3107,"tag":3390,"props":6986,"children":6987},{"class":3392,"line":3066},[6988,6994,6999,7004],{"type":3107,"tag":3390,"props":6989,"children":6991},{"style":6990},"--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C",[6992],{"type":3112,"value":6993},"CREATE",{"type":3107,"tag":3390,"props":6995,"children":6996},{"style":6990},[6997],{"type":3112,"value":6998}," TABLE",{"type":3107,"tag":3390,"props":7000,"children":7001},{"style":3626},[7002],{"type":3112,"value":7003}," users",{"type":3107,"tag":3390,"props":7005,"children":7006},{"style":3464},[7007],{"type":3112,"value":7008}," (\n",{"type":3107,"tag":3390,"props":7010,"children":7011},{"class":3392,"line":3032},[7012,7017,7022,7027],{"type":3107,"tag":3390,"props":7013,"children":7014},{"style":3464},[7015],{"type":3112,"value":7016},"  id ",{"type":3107,"tag":3390,"props":7018,"children":7019},{"style":3541},[7020],{"type":3112,"value":7021},"INTEGER",{"type":3107,"tag":3390,"props":7023,"children":7024},{"style":3541},[7025],{"type":3112,"value":7026}," PRIMARY KEY",{"type":3107,"tag":3390,"props":7028,"children":7029},{"style":3464},[7030],{"type":3112,"value":7031}," AUTOINCREMENT,\n",{"type":3107,"tag":3390,"props":7033,"children":7034},{"class":3392,"line":3016},[7035,7040,7045],{"type":3107,"tag":3390,"props":7036,"children":7037},{"style":3464},[7038],{"type":3112,"value":7039},"  email ",{"type":3107,"tag":3390,"props":7041,"children":7042},{"style":3541},[7043],{"type":3112,"value":7044},"TEXT",{"type":3107,"tag":3390,"props":7046,"children":7047},{"style":6990},[7048],{"type":3112,"value":7049}," NOT NULL\n",{"type":3107,"tag":3390,"props":7051,"children":7052},{"class":3392,"line":3653},[7053],{"type":3107,"tag":3390,"props":7054,"children":7055},{"style":3464},[7056],{"type":3112,"value":7057},");\n",{"type":3107,"tag":3390,"props":7059,"children":7060},{"class":3392,"line":3662},[7061],{"type":3107,"tag":3390,"props":7062,"children":7063},{"emptyLinePlaceholder":1200},[7064],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":7066,"children":7067},{"class":3392,"line":3679},[7068,7072,7076,7081,7086,7091],{"type":3107,"tag":3390,"props":7069,"children":7070},{"style":6990},[7071],{"type":3112,"value":6993},{"type":3107,"tag":3390,"props":7073,"children":7074},{"style":6990},[7075],{"type":3112,"value":6998},{"type":3107,"tag":3390,"props":7077,"children":7078},{"style":3626},[7079],{"type":3112,"value":7080}," IF",{"type":3107,"tag":3390,"props":7082,"children":7083},{"style":6990},[7084],{"type":3112,"value":7085}," NOT",{"type":3107,"tag":3390,"props":7087,"children":7088},{"style":6990},[7089],{"type":3112,"value":7090}," EXISTS",{"type":3107,"tag":3390,"props":7092,"children":7093},{"style":3464},[7094],{"type":3112,"value":7095}," credentials (\n",{"type":3107,"tag":3390,"props":7097,"children":7098},{"class":3392,"line":3012},[7099,7104,7108,7113,7118,7123,7128,7133],{"type":3107,"tag":3390,"props":7100,"children":7101},{"style":3464},[7102],{"type":3112,"value":7103},"  userId ",{"type":3107,"tag":3390,"props":7105,"children":7106},{"style":3541},[7107],{"type":3112,"value":7021},{"type":3107,"tag":3390,"props":7109,"children":7110},{"style":6990},[7111],{"type":3112,"value":7112}," NOT NULL",{"type":3107,"tag":3390,"props":7114,"children":7115},{"style":3541},[7116],{"type":3112,"value":7117}," REFERENCES",{"type":3107,"tag":3390,"props":7119,"children":7120},{"style":3464},[7121],{"type":3112,"value":7122}," users(id) ",{"type":3107,"tag":3390,"props":7124,"children":7125},{"style":3541},[7126],{"type":3112,"value":7127},"ON DELETE CASCADE",{"type":3107,"tag":3390,"props":7129,"children":7130},{"style":3541},[7131],{"type":3112,"value":7132}," ON UPDATE CASCADE",{"type":3107,"tag":3390,"props":7134,"children":7135},{"style":3464},[7136],{"type":3112,"value":5402},{"type":3107,"tag":3390,"props":7138,"children":7139},{"class":3392,"line":3008},[7140,7144,7148,7153,7157],{"type":3107,"tag":3390,"props":7141,"children":7142},{"style":3464},[7143],{"type":3112,"value":7016},{"type":3107,"tag":3390,"props":7145,"children":7146},{"style":3541},[7147],{"type":3112,"value":7044},{"type":3107,"tag":3390,"props":7149,"children":7150},{"style":6990},[7151],{"type":3112,"value":7152}," UNIQUE",{"type":3107,"tag":3390,"props":7154,"children":7155},{"style":6990},[7156],{"type":3112,"value":7112},{"type":3107,"tag":3390,"props":7158,"children":7159},{"style":3464},[7160],{"type":3112,"value":5402},{"type":3107,"tag":3390,"props":7162,"children":7163},{"class":3392,"line":3004},[7164,7169,7173,7177],{"type":3107,"tag":3390,"props":7165,"children":7166},{"style":3464},[7167],{"type":3112,"value":7168},"  publicKey ",{"type":3107,"tag":3390,"props":7170,"children":7171},{"style":3541},[7172],{"type":3112,"value":7044},{"type":3107,"tag":3390,"props":7174,"children":7175},{"style":6990},[7176],{"type":3112,"value":7112},{"type":3107,"tag":3390,"props":7178,"children":7179},{"style":3464},[7180],{"type":3112,"value":5402},{"type":3107,"tag":3390,"props":7182,"children":7183},{"class":3392,"line":3841},[7184,7189,7194,7198],{"type":3107,"tag":3390,"props":7185,"children":7186},{"style":6990},[7187],{"type":3112,"value":7188},"  counter",{"type":3107,"tag":3390,"props":7190,"children":7191},{"style":3541},[7192],{"type":3112,"value":7193}," INTEGER",{"type":3107,"tag":3390,"props":7195,"children":7196},{"style":6990},[7197],{"type":3112,"value":7112},{"type":3107,"tag":3390,"props":7199,"children":7200},{"style":3464},[7201],{"type":3112,"value":5402},{"type":3107,"tag":3390,"props":7203,"children":7204},{"class":3392,"line":3095},[7205,7210,7214,7218],{"type":3107,"tag":3390,"props":7206,"children":7207},{"style":3464},[7208],{"type":3112,"value":7209},"  backedUp ",{"type":3107,"tag":3390,"props":7211,"children":7212},{"style":3541},[7213],{"type":3112,"value":7021},{"type":3107,"tag":3390,"props":7215,"children":7216},{"style":6990},[7217],{"type":3112,"value":7112},{"type":3107,"tag":3390,"props":7219,"children":7220},{"style":3464},[7221],{"type":3112,"value":5402},{"type":3107,"tag":3390,"props":7223,"children":7224},{"class":3392,"line":3878},[7225,7230,7234,7238],{"type":3107,"tag":3390,"props":7226,"children":7227},{"style":3464},[7228],{"type":3112,"value":7229},"  transports ",{"type":3107,"tag":3390,"props":7231,"children":7232},{"style":3541},[7233],{"type":3112,"value":7044},{"type":3107,"tag":3390,"props":7235,"children":7236},{"style":6990},[7237],{"type":3112,"value":7112},{"type":3107,"tag":3390,"props":7239,"children":7240},{"style":3464},[7241],{"type":3112,"value":5402},{"type":3107,"tag":3390,"props":7243,"children":7244},{"class":3392,"line":3911},[7245,7250,7254,7258,7263,7267,7272,7276,7281,7285],{"type":3107,"tag":3390,"props":7246,"children":7247},{"style":3541},[7248],{"type":3112,"value":7249},"  PRIMARY KEY",{"type":3107,"tag":3390,"props":7251,"children":7252},{"style":3464},[7253],{"type":3112,"value":4481},{"type":3107,"tag":3390,"props":7255,"children":7256},{"style":3469},[7257],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":7259,"children":7260},{"style":3402},[7261],{"type":3112,"value":7262},"userId",{"type":3107,"tag":3390,"props":7264,"children":7265},{"style":3469},[7266],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":7268,"children":7269},{"style":3464},[7270],{"type":3112,"value":7271},", ",{"type":3107,"tag":3390,"props":7273,"children":7274},{"style":3469},[7275],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":7277,"children":7278},{"style":3402},[7279],{"type":3112,"value":7280},"id",{"type":3107,"tag":3390,"props":7282,"children":7283},{"style":3469},[7284],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":7286,"children":7287},{"style":3464},[7288],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":7290,"children":7291},{"class":3392,"line":3966},[7292],{"type":3107,"tag":3390,"props":7293,"children":7294},{"style":3464},[7295],{"type":3112,"value":7057},{"type":3107,"tag":3164,"props":7297,"children":7298},{},[7299,7312],{"type":3107,"tag":3168,"props":7300,"children":7301},{},[7302,7304,7310],{"type":3112,"value":7303},"For the ",{"type":3107,"tag":3252,"props":7305,"children":7307},{"className":7306},[],[7308],{"type":3112,"value":7309},"users",{"type":3112,"value":7311}," 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":3107,"tag":3168,"props":7313,"children":7314},{},[7315,7316,7322,7324],{"type":3112,"value":5260},{"type":3107,"tag":3252,"props":7317,"children":7319},{"className":7318},[],[7320],{"type":3112,"value":7321},"credentials",{"type":3112,"value":7323}," table stores:\n",{"type":3107,"tag":3164,"props":7325,"children":7326},{},[7327,7345,7357,7367,7396,7417],{"type":3107,"tag":3168,"props":7328,"children":7329},{},[7330,7331,7336,7338,7343],{"type":3112,"value":5260},{"type":3107,"tag":3252,"props":7332,"children":7334},{"className":7333},[],[7335],{"type":3112,"value":7262},{"type":3112,"value":7337}," from the ",{"type":3107,"tag":3252,"props":7339,"children":7341},{"className":7340},[],[7342],{"type":3112,"value":7309},{"type":3112,"value":7344}," table.",{"type":3107,"tag":3168,"props":7346,"children":7347},{},[7348,7350,7355],{"type":3112,"value":7349},"The credential ",{"type":3107,"tag":3252,"props":7351,"children":7353},{"className":7352},[],[7354],{"type":3112,"value":7280},{"type":3112,"value":7356}," (as unique index)",{"type":3107,"tag":3168,"props":7358,"children":7359},{},[7360,7361],{"type":3112,"value":7349},{"type":3107,"tag":3252,"props":7362,"children":7364},{"className":7363},[],[7365],{"type":3112,"value":7366},"publicKey",{"type":3107,"tag":3168,"props":7368,"children":7369},{},[7370,7372,7378,7380,7385,7387,7394],{"type":3112,"value":7371},"A ",{"type":3107,"tag":3252,"props":7373,"children":7375},{"className":7374},[],[7376],{"type":3112,"value":7377},"counter",{"type":3112,"value":7379},". Each time a credential is used, the counter is incremented. We can use this value to perform extra security checks. More about ",{"type":3107,"tag":3252,"props":7381,"children":7383},{"className":7382},[],[7384],{"type":3112,"value":7377},{"type":3112,"value":7386}," can be read ",{"type":3107,"tag":3118,"props":7388,"children":7391},{"href":7389,"rel":7390},"https:\u002F\u002Fsimplewebauthn.dev\u002Fdocs\u002Fpackages\u002Fserver#3-post-registration-responsibilities",[3122],[7392],{"type":3112,"value":7393},"here",{"type":3112,"value":7395},". For this example, we won't be using the counter. But you should update the counter in your database with the new value.",{"type":3107,"tag":3168,"props":7397,"children":7398},{},[7399,7400,7406,7408,7415],{"type":3112,"value":7371},{"type":3107,"tag":3252,"props":7401,"children":7403},{"className":7402},[],[7404],{"type":3112,"value":7405},"backedUp",{"type":3112,"value":7407}," 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":3107,"tag":3118,"props":7409,"children":7412},{"href":7410,"rel":7411},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fugaemxot",[3122],[7413],{"type":3112,"value":7414},"this section",{"type":3112,"value":7416}," for more details.",{"type":3107,"tag":3168,"props":7418,"children":7419},{},[7420,7421,7427,7429,7435],{"type":3112,"value":7349},{"type":3107,"tag":3252,"props":7422,"children":7424},{"className":7423},[],[7425],{"type":3112,"value":7426},"transports",{"type":3112,"value":7428},". 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":3107,"tag":3118,"props":7430,"children":7433},{"href":7431,"rel":7432},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fycxtiorp",[3122],[7434],{"type":3112,"value":7414},{"type":3112,"value":7416},{"type":3107,"tag":3114,"props":7437,"children":7438},{},[7439,7441,7448,7449,7456,7458,7465],{"type":3112,"value":7440},"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":3107,"tag":3118,"props":7442,"children":7445},{"href":7443,"rel":7444},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fregister.post.ts",[3122],[7446],{"type":3112,"value":7447},"registration",{"type":3112,"value":7271},{"type":3107,"tag":3118,"props":7450,"children":7453},{"href":7451,"rel":7452},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts",[3122],[7454],{"type":3112,"value":7455},"authentication",{"type":3112,"value":7457}," and the ",{"type":3107,"tag":3118,"props":7459,"children":7462},{"href":7460,"rel":7461},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fplugins\u002Fdatabase.ts",[3122],[7463],{"type":3112,"value":7464},"database setup",{"type":3112,"value":3345},{"type":3107,"tag":3380,"props":7467,"children":7469},{"className":4068,"code":7468,"language":4070,"meta":2980,"style":2980},"\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",[7470],{"type":3107,"tag":3252,"props":7471,"children":7472},{"__ignoreMap":2980},[7473,7481,7521,7545,7553,7591,7599,7607,7615,7651,7740,7810,7817,7824,7832,7860,7868,7910,7942,7949,7997,8005,8013,8038,8045,8053,8100,8129,8137,8177,8184,8192,8201,8233,8241,8250,8278,8294,8319,8328,8362,8374,8382],{"type":3107,"tag":3390,"props":7474,"children":7475},{"class":3392,"line":3066},[7476],{"type":3107,"tag":3390,"props":7477,"children":7478},{"style":3455},[7479],{"type":3112,"value":7480},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fregister.post.ts\n",{"type":3107,"tag":3390,"props":7482,"children":7483},{"class":3392,"line":3032},[7484,7489,7493,7498,7503,7508,7512,7517],{"type":3107,"tag":3390,"props":7485,"children":7486},{"style":4652},[7487],{"type":3112,"value":7488},"import",{"type":3107,"tag":3390,"props":7490,"children":7491},{"style":3469},[7492],{"type":3112,"value":3562},{"type":3107,"tag":3390,"props":7494,"children":7495},{"style":3464},[7496],{"type":3112,"value":7497}," z",{"type":3107,"tag":3390,"props":7499,"children":7500},{"style":3469},[7501],{"type":3112,"value":7502}," }",{"type":3107,"tag":3390,"props":7504,"children":7505},{"style":4652},[7506],{"type":3112,"value":7507}," from",{"type":3107,"tag":3390,"props":7509,"children":7510},{"style":3469},[7511],{"type":3112,"value":4713},{"type":3107,"tag":3390,"props":7513,"children":7514},{"style":3402},[7515],{"type":3112,"value":7516},"zod",{"type":3107,"tag":3390,"props":7518,"children":7519},{"style":3469},[7520],{"type":3112,"value":4722},{"type":3107,"tag":3390,"props":7522,"children":7523},{"class":3392,"line":3016},[7524,7528,7532,7537,7541],{"type":3107,"tag":3390,"props":7525,"children":7526},{"style":4652},[7527],{"type":3112,"value":5186},{"type":3107,"tag":3390,"props":7529,"children":7530},{"style":4652},[7531],{"type":3112,"value":5301},{"type":3107,"tag":3390,"props":7533,"children":7534},{"style":3626},[7535],{"type":3112,"value":7536}," defineWebAuthnRegisterEventHandler",{"type":3107,"tag":3390,"props":7538,"children":7539},{"style":3464},[7540],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":7542,"children":7543},{"style":3469},[7544],{"type":3112,"value":5316},{"type":3107,"tag":3390,"props":7546,"children":7547},{"class":3392,"line":3653},[7548],{"type":3107,"tag":3390,"props":7549,"children":7550},{"style":3455},[7551],{"type":3112,"value":7552},"  \u002F\u002F optional\n",{"type":3107,"tag":3390,"props":7554,"children":7555},{"class":3392,"line":3662},[7556,7560,7565,7569,7574,7578,7583,7587],{"type":3107,"tag":3390,"props":7557,"children":7558},{"style":3541},[7559],{"type":3112,"value":5854},{"type":3107,"tag":3390,"props":7561,"children":7562},{"style":3535},[7563],{"type":3112,"value":7564}," validateUser",{"type":3107,"tag":3390,"props":7566,"children":7567},{"style":3469},[7568],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":7570,"children":7571},{"style":4484},[7572],{"type":3112,"value":7573},"userBody",{"type":3107,"tag":3390,"props":7575,"children":7576},{"style":3469},[7577],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":7579,"children":7580},{"style":4484},[7581],{"type":3112,"value":7582}," event",{"type":3107,"tag":3390,"props":7584,"children":7585},{"style":3469},[7586],{"type":3112,"value":6072},{"type":3107,"tag":3390,"props":7588,"children":7589},{"style":3469},[7590],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":7592,"children":7593},{"class":3392,"line":3679},[7594],{"type":3107,"tag":3390,"props":7595,"children":7596},{"style":3455},[7597],{"type":3112,"value":7598},"    \u002F\u002F bonus: check if the user is already authenticated to link a credential to his account\n",{"type":3107,"tag":3390,"props":7600,"children":7601},{"class":3392,"line":3012},[7602],{"type":3107,"tag":3390,"props":7603,"children":7604},{"style":3455},[7605],{"type":3112,"value":7606},"    \u002F\u002F We first check if the user is already authenticated by getting the session\n",{"type":3107,"tag":3390,"props":7608,"children":7609},{"class":3392,"line":3008},[7610],{"type":3107,"tag":3390,"props":7611,"children":7612},{"style":3455},[7613],{"type":3112,"value":7614},"    \u002F\u002F And verify that the email is the same as the one in session\n",{"type":3107,"tag":3390,"props":7616,"children":7617},{"class":3392,"line":3004},[7618,7623,7627,7631,7635,7639,7643,7647],{"type":3107,"tag":3390,"props":7619,"children":7620},{"style":3541},[7621],{"type":3112,"value":7622},"    const",{"type":3107,"tag":3390,"props":7624,"children":7625},{"style":3464},[7626],{"type":3112,"value":3586},{"type":3107,"tag":3390,"props":7628,"children":7629},{"style":3469},[7630],{"type":3112,"value":3623},{"type":3107,"tag":3390,"props":7632,"children":7633},{"style":4652},[7634],{"type":3112,"value":4908},{"type":3107,"tag":3390,"props":7636,"children":7637},{"style":3626},[7638],{"type":3112,"value":4913},{"type":3107,"tag":3390,"props":7640,"children":7641},{"style":3535},[7642],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":7644,"children":7645},{"style":3464},[7646],{"type":3112,"value":5868},{"type":3107,"tag":3390,"props":7648,"children":7649},{"style":3535},[7650],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":7652,"children":7653},{"class":3392,"line":3841},[7654,7659,7663,7668,7672,7677,7682,7687,7692,7696,7700,7704,7708,7712,7717,7722,7726,7731,7736],{"type":3107,"tag":3390,"props":7655,"children":7656},{"style":4652},[7657],{"type":3112,"value":7658},"    if",{"type":3107,"tag":3390,"props":7660,"children":7661},{"style":3535},[7662],{"type":3112,"value":4481},{"type":3107,"tag":3390,"props":7664,"children":7665},{"style":3464},[7666],{"type":3112,"value":7667},"session",{"type":3107,"tag":3390,"props":7669,"children":7670},{"style":3469},[7671],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":7673,"children":7674},{"style":3464},[7675],{"type":3112,"value":7676},"user",{"type":3107,"tag":3390,"props":7678,"children":7679},{"style":3469},[7680],{"type":3112,"value":7681},"?.",{"type":3107,"tag":3390,"props":7683,"children":7684},{"style":3464},[7685],{"type":3112,"value":7686},"email",{"type":3107,"tag":3390,"props":7688,"children":7689},{"style":3469},[7690],{"type":3112,"value":7691}," &&",{"type":3107,"tag":3390,"props":7693,"children":7694},{"style":3464},[7695],{"type":3112,"value":3586},{"type":3107,"tag":3390,"props":7697,"children":7698},{"style":3469},[7699],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":7701,"children":7702},{"style":3464},[7703],{"type":3112,"value":7676},{"type":3107,"tag":3390,"props":7705,"children":7706},{"style":3469},[7707],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":7709,"children":7710},{"style":3464},[7711],{"type":3112,"value":7686},{"type":3107,"tag":3390,"props":7713,"children":7714},{"style":3469},[7715],{"type":3112,"value":7716}," !==",{"type":3107,"tag":3390,"props":7718,"children":7719},{"style":3464},[7720],{"type":3112,"value":7721}," userBody",{"type":3107,"tag":3390,"props":7723,"children":7724},{"style":3469},[7725],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":7727,"children":7728},{"style":3464},[7729],{"type":3112,"value":7730},"userName",{"type":3107,"tag":3390,"props":7732,"children":7733},{"style":3535},[7734],{"type":3112,"value":7735},") ",{"type":3107,"tag":3390,"props":7737,"children":7738},{"style":3469},[7739],{"type":3112,"value":5316},{"type":3107,"tag":3390,"props":7741,"children":7742},{"class":3392,"line":3095},[7743,7748,7753,7757,7762,7767,7771,7776,7780,7785,7789,7793,7798,7802,7806],{"type":3107,"tag":3390,"props":7744,"children":7745},{"style":4652},[7746],{"type":3112,"value":7747},"      throw",{"type":3107,"tag":3390,"props":7749,"children":7750},{"style":3626},[7751],{"type":3112,"value":7752}," createError",{"type":3107,"tag":3390,"props":7754,"children":7755},{"style":3535},[7756],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":7758,"children":7759},{"style":3469},[7760],{"type":3112,"value":7761},"{",{"type":3107,"tag":3390,"props":7763,"children":7764},{"style":3535},[7765],{"type":3112,"value":7766}," statusCode",{"type":3107,"tag":3390,"props":7768,"children":7769},{"style":3469},[7770],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":7772,"children":7773},{"style":6990},[7774],{"type":3112,"value":7775}," 400",{"type":3107,"tag":3390,"props":7777,"children":7778},{"style":3469},[7779],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":7781,"children":7782},{"style":3535},[7783],{"type":3112,"value":7784}," message",{"type":3107,"tag":3390,"props":7786,"children":7787},{"style":3469},[7788],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":7790,"children":7791},{"style":3469},[7792],{"type":3112,"value":4713},{"type":3107,"tag":3390,"props":7794,"children":7795},{"style":3402},[7796],{"type":3112,"value":7797},"Email not matching curent session",{"type":3107,"tag":3390,"props":7799,"children":7800},{"style":3469},[7801],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":7803,"children":7804},{"style":3469},[7805],{"type":3112,"value":7502},{"type":3107,"tag":3390,"props":7807,"children":7808},{"style":3535},[7809],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":7811,"children":7812},{"class":3392,"line":3878},[7813],{"type":3107,"tag":3390,"props":7814,"children":7815},{"style":3469},[7816],{"type":3112,"value":5442},{"type":3107,"tag":3390,"props":7818,"children":7819},{"class":3392,"line":3911},[7820],{"type":3107,"tag":3390,"props":7821,"children":7822},{"emptyLinePlaceholder":1200},[7823],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":7825,"children":7826},{"class":3392,"line":3966},[7827],{"type":3107,"tag":3390,"props":7828,"children":7829},{"style":3455},[7830],{"type":3112,"value":7831},"    \u002F\u002F If he registers a new account with credentials\n",{"type":3107,"tag":3390,"props":7833,"children":7834},{"class":3392,"line":3975},[7835,7839,7843,7847,7852,7856],{"type":3107,"tag":3390,"props":7836,"children":7837},{"style":4652},[7838],{"type":3112,"value":5993},{"type":3107,"tag":3390,"props":7840,"children":7841},{"style":3464},[7842],{"type":3112,"value":7497},{"type":3107,"tag":3390,"props":7844,"children":7845},{"style":3469},[7846],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":7848,"children":7849},{"style":3626},[7850],{"type":3112,"value":7851},"object",{"type":3107,"tag":3390,"props":7853,"children":7854},{"style":3535},[7855],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":7857,"children":7858},{"style":3469},[7859],{"type":3112,"value":5316},{"type":3107,"tag":3390,"props":7861,"children":7862},{"class":3392,"line":3000},[7863],{"type":3107,"tag":3390,"props":7864,"children":7865},{"style":3455},[7866],{"type":3112,"value":7867},"      \u002F\u002F we want the userName to be a valid email\n",{"type":3107,"tag":3390,"props":7869,"children":7870},{"class":3392,"line":4043},[7871,7876,7880,7884,7888,7893,7898,7902,7906],{"type":3107,"tag":3390,"props":7872,"children":7873},{"style":3535},[7874],{"type":3112,"value":7875},"      userName",{"type":3107,"tag":3390,"props":7877,"children":7878},{"style":3469},[7879],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":7881,"children":7882},{"style":3464},[7883],{"type":3112,"value":7497},{"type":3107,"tag":3390,"props":7885,"children":7886},{"style":3469},[7887],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":7889,"children":7890},{"style":3626},[7891],{"type":3112,"value":7892},"string",{"type":3107,"tag":3390,"props":7894,"children":7895},{"style":3535},[7896],{"type":3112,"value":7897},"()",{"type":3107,"tag":3390,"props":7899,"children":7900},{"style":3469},[7901],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":7903,"children":7904},{"style":3626},[7905],{"type":3112,"value":7686},{"type":3107,"tag":3390,"props":7907,"children":7908},{"style":3535},[7909],{"type":3112,"value":3634},{"type":3107,"tag":3390,"props":7911,"children":7912},{"class":3392,"line":4313},[7913,7917,7921,7925,7930,7934,7938],{"type":3107,"tag":3390,"props":7914,"children":7915},{"style":3469},[7916],{"type":3112,"value":5981},{"type":3107,"tag":3390,"props":7918,"children":7919},{"style":3535},[7920],{"type":3112,"value":6072},{"type":3107,"tag":3390,"props":7922,"children":7923},{"style":3469},[7924],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":7926,"children":7927},{"style":3626},[7928],{"type":3112,"value":7929},"parse",{"type":3107,"tag":3390,"props":7931,"children":7932},{"style":3535},[7933],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":7935,"children":7936},{"style":3464},[7937],{"type":3112,"value":7573},{"type":3107,"tag":3390,"props":7939,"children":7940},{"style":3535},[7941],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":7943,"children":7944},{"class":3392,"line":4321},[7945],{"type":3107,"tag":3390,"props":7946,"children":7947},{"style":3469},[7948],{"type":3112,"value":4730},{"type":3107,"tag":3390,"props":7950,"children":7951},{"class":3392,"line":4330},[7952,7956,7960,7964,7968,7972,7976,7981,7985,7989,7993],{"type":3107,"tag":3390,"props":7953,"children":7954},{"style":3541},[7955],{"type":3112,"value":5854},{"type":3107,"tag":3390,"props":7957,"children":7958},{"style":3535},[7959],{"type":3112,"value":5859},{"type":3107,"tag":3390,"props":7961,"children":7962},{"style":3469},[7963],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":7965,"children":7966},{"style":4484},[7967],{"type":3112,"value":5868},{"type":3107,"tag":3390,"props":7969,"children":7970},{"style":3469},[7971],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":7973,"children":7974},{"style":3469},[7975],{"type":3112,"value":3562},{"type":3107,"tag":3390,"props":7977,"children":7978},{"style":4484},[7979],{"type":3112,"value":7980}," credential",{"type":3107,"tag":3390,"props":7982,"children":7983},{"style":3469},[7984],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":7986,"children":7987},{"style":4484},[7988],{"type":3112,"value":3577},{"type":3107,"tag":3390,"props":7990,"children":7991},{"style":3469},[7992],{"type":3112,"value":4550},{"type":3107,"tag":3390,"props":7994,"children":7995},{"style":3469},[7996],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":7998,"children":7999},{"class":3392,"line":4338},[8000],{"type":3107,"tag":3390,"props":8001,"children":8002},{"style":3455},[8003],{"type":3112,"value":8004},"    \u002F\u002F The credential creation has been successful\n",{"type":3107,"tag":3390,"props":8006,"children":8007},{"class":3392,"line":4379},[8008],{"type":3107,"tag":3390,"props":8009,"children":8010},{"style":3455},[8011],{"type":3112,"value":8012},"    \u002F\u002F We need to create a user if it does not exist\n",{"type":3107,"tag":3390,"props":8014,"children":8015},{"class":3392,"line":4387},[8016,8020,8025,8029,8034],{"type":3107,"tag":3390,"props":8017,"children":8018},{"style":3541},[8019],{"type":3112,"value":7622},{"type":3107,"tag":3390,"props":8021,"children":8022},{"style":3464},[8023],{"type":3112,"value":8024}," db",{"type":3107,"tag":3390,"props":8026,"children":8027},{"style":3469},[8028],{"type":3112,"value":3623},{"type":3107,"tag":3390,"props":8030,"children":8031},{"style":3626},[8032],{"type":3112,"value":8033}," useDatabase",{"type":3107,"tag":3390,"props":8035,"children":8036},{"style":3535},[8037],{"type":3112,"value":3634},{"type":3107,"tag":3390,"props":8039,"children":8040},{"class":3392,"line":4396},[8041],{"type":3107,"tag":3390,"props":8042,"children":8043},{"emptyLinePlaceholder":1200},[8044],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":8046,"children":8047},{"class":3392,"line":4404},[8048],{"type":3107,"tag":3390,"props":8049,"children":8050},{"style":3455},[8051],{"type":3112,"value":8052},"    \u002F\u002F Get the user from the database\n",{"type":3107,"tag":3390,"props":8054,"children":8055},{"class":3392,"line":4441},[8056,8061,8066,8070,8074,8078,8082,8086,8091,8095],{"type":3107,"tag":3390,"props":8057,"children":8058},{"style":3541},[8059],{"type":3112,"value":8060},"    let",{"type":3107,"tag":3390,"props":8062,"children":8063},{"style":3464},[8064],{"type":3112,"value":8065}," dbUser",{"type":3107,"tag":3390,"props":8067,"children":8068},{"style":3469},[8069],{"type":3112,"value":3623},{"type":3107,"tag":3390,"props":8071,"children":8072},{"style":4652},[8073],{"type":3112,"value":4908},{"type":3107,"tag":3390,"props":8075,"children":8076},{"style":3464},[8077],{"type":3112,"value":8024},{"type":3107,"tag":3390,"props":8079,"children":8080},{"style":3469},[8081],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":8083,"children":8084},{"style":3626},[8085],{"type":3112,"value":6980},{"type":3107,"tag":3390,"props":8087,"children":8088},{"style":3469},[8089],{"type":3112,"value":8090},"`",{"type":3107,"tag":3390,"props":8092,"children":8093},{"style":3402},[8094],{"type":3112,"value":5393},{"type":3107,"tag":3390,"props":8096,"children":8097},{"style":3469},[8098],{"type":3112,"value":8099},"`\n",{"type":3107,"tag":3390,"props":8101,"children":8102},{"class":3392,"line":4449},[8103,8107,8111,8116,8121,8125],{"type":3107,"tag":3390,"props":8104,"children":8105},{"style":4652},[8106],{"type":3112,"value":7658},{"type":3107,"tag":3390,"props":8108,"children":8109},{"style":3535},[8110],{"type":3112,"value":4481},{"type":3107,"tag":3390,"props":8112,"children":8113},{"style":3469},[8114],{"type":3112,"value":8115},"!",{"type":3107,"tag":3390,"props":8117,"children":8118},{"style":3464},[8119],{"type":3112,"value":8120},"dbUser",{"type":3107,"tag":3390,"props":8122,"children":8123},{"style":3535},[8124],{"type":3112,"value":7735},{"type":3107,"tag":3390,"props":8126,"children":8127},{"style":3469},[8128],{"type":3112,"value":5316},{"type":3107,"tag":3390,"props":8130,"children":8131},{"class":3392,"line":4458},[8132],{"type":3107,"tag":3390,"props":8133,"children":8134},{"style":3455},[8135],{"type":3112,"value":8136},"      \u002F\u002F Store new user in database & its credentials\n",{"type":3107,"tag":3390,"props":8138,"children":8139},{"class":3392,"line":4466},[8140,8145,8149,8153,8157,8161,8165,8169,8173],{"type":3107,"tag":3390,"props":8141,"children":8142},{"style":3464},[8143],{"type":3112,"value":8144},"      dbUser",{"type":3107,"tag":3390,"props":8146,"children":8147},{"style":3469},[8148],{"type":3112,"value":3623},{"type":3107,"tag":3390,"props":8150,"children":8151},{"style":4652},[8152],{"type":3112,"value":4908},{"type":3107,"tag":3390,"props":8154,"children":8155},{"style":3464},[8156],{"type":3112,"value":8024},{"type":3107,"tag":3390,"props":8158,"children":8159},{"style":3469},[8160],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":8162,"children":8163},{"style":3626},[8164],{"type":3112,"value":6980},{"type":3107,"tag":3390,"props":8166,"children":8167},{"style":3469},[8168],{"type":3112,"value":8090},{"type":3107,"tag":3390,"props":8170,"children":8171},{"style":3402},[8172],{"type":3112,"value":5393},{"type":3107,"tag":3390,"props":8174,"children":8175},{"style":3469},[8176],{"type":3112,"value":8099},{"type":3107,"tag":3390,"props":8178,"children":8179},{"class":3392,"line":4562},[8180],{"type":3107,"tag":3390,"props":8181,"children":8182},{"style":3469},[8183],{"type":3112,"value":5442},{"type":3107,"tag":3390,"props":8185,"children":8187},{"class":3392,"line":8186},31,[8188],{"type":3107,"tag":3390,"props":8189,"children":8190},{"emptyLinePlaceholder":1200},[8191],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":8193,"children":8195},{"class":3392,"line":8194},32,[8196],{"type":3107,"tag":3390,"props":8197,"children":8198},{"style":3455},[8199],{"type":3112,"value":8200},"    \u002F\u002F we now need to store the credential in our database and link it to the user\n",{"type":3107,"tag":3390,"props":8202,"children":8204},{"class":3392,"line":8203},33,[8205,8209,8213,8217,8221,8225,8229],{"type":3107,"tag":3390,"props":8206,"children":8207},{"style":4652},[8208],{"type":3112,"value":5905},{"type":3107,"tag":3390,"props":8210,"children":8211},{"style":3464},[8212],{"type":3112,"value":8024},{"type":3107,"tag":3390,"props":8214,"children":8215},{"style":3469},[8216],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":8218,"children":8219},{"style":3626},[8220],{"type":3112,"value":6980},{"type":3107,"tag":3390,"props":8222,"children":8223},{"style":3469},[8224],{"type":3112,"value":8090},{"type":3107,"tag":3390,"props":8226,"children":8227},{"style":3402},[8228],{"type":3112,"value":5393},{"type":3107,"tag":3390,"props":8230,"children":8231},{"style":3469},[8232],{"type":3112,"value":8099},{"type":3107,"tag":3390,"props":8234,"children":8236},{"class":3392,"line":8235},34,[8237],{"type":3107,"tag":3390,"props":8238,"children":8239},{"emptyLinePlaceholder":1200},[8240],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":8242,"children":8244},{"class":3392,"line":8243},35,[8245],{"type":3107,"tag":3390,"props":8246,"children":8247},{"style":3455},[8248],{"type":3112,"value":8249},"    \u002F\u002F Set the user session\n",{"type":3107,"tag":3390,"props":8251,"children":8253},{"class":3392,"line":8252},36,[8254,8258,8262,8266,8270,8274],{"type":3107,"tag":3390,"props":8255,"children":8256},{"style":4652},[8257],{"type":3112,"value":5905},{"type":3107,"tag":3390,"props":8259,"children":8260},{"style":3626},[8261],{"type":3112,"value":4660},{"type":3107,"tag":3390,"props":8263,"children":8264},{"style":3535},[8265],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":8267,"children":8268},{"style":3464},[8269],{"type":3112,"value":5868},{"type":3107,"tag":3390,"props":8271,"children":8272},{"style":3469},[8273],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":8275,"children":8276},{"style":3469},[8277],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":8279,"children":8281},{"class":3392,"line":8280},37,[8282,8286,8290],{"type":3107,"tag":3390,"props":8283,"children":8284},{"style":3535},[8285],{"type":3112,"value":5933},{"type":3107,"tag":3390,"props":8287,"children":8288},{"style":3469},[8289],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":8291,"children":8292},{"style":3469},[8293],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":8295,"children":8297},{"class":3392,"line":8296},38,[8298,8303,8307,8311,8315],{"type":3107,"tag":3390,"props":8299,"children":8300},{"style":3535},[8301],{"type":3112,"value":8302},"        id",{"type":3107,"tag":3390,"props":8304,"children":8305},{"style":3469},[8306],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":8308,"children":8309},{"style":3464},[8310],{"type":3112,"value":8065},{"type":3107,"tag":3390,"props":8312,"children":8313},{"style":3469},[8314],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":8316,"children":8317},{"style":3464},[8318],{"type":3112,"value":5966},{"type":3107,"tag":3390,"props":8320,"children":8322},{"class":3392,"line":8321},39,[8323],{"type":3107,"tag":3390,"props":8324,"children":8325},{"style":3469},[8326],{"type":3112,"value":8327},"      },\n",{"type":3107,"tag":3390,"props":8329,"children":8331},{"class":3392,"line":8330},40,[8332,8337,8341,8345,8349,8354,8358],{"type":3107,"tag":3390,"props":8333,"children":8334},{"style":3535},[8335],{"type":3112,"value":8336},"      loggedInAt",{"type":3107,"tag":3390,"props":8338,"children":8339},{"style":3469},[8340],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":8342,"children":8343},{"style":3464},[8344],{"type":3112,"value":4816},{"type":3107,"tag":3390,"props":8346,"children":8347},{"style":3469},[8348],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":8350,"children":8351},{"style":3626},[8352],{"type":3112,"value":8353},"now",{"type":3107,"tag":3390,"props":8355,"children":8356},{"style":3535},[8357],{"type":3112,"value":7897},{"type":3107,"tag":3390,"props":8359,"children":8360},{"style":3469},[8361],{"type":3112,"value":5402},{"type":3107,"tag":3390,"props":8363,"children":8365},{"class":3392,"line":8364},41,[8366,8370],{"type":3107,"tag":3390,"props":8367,"children":8368},{"style":3469},[8369],{"type":3112,"value":5981},{"type":3107,"tag":3390,"props":8371,"children":8372},{"style":3535},[8373],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":8375,"children":8377},{"class":3392,"line":8376},42,[8378],{"type":3107,"tag":3390,"props":8379,"children":8380},{"style":3469},[8381],{"type":3112,"value":4730},{"type":3107,"tag":3390,"props":8383,"children":8385},{"class":3392,"line":8384},43,[8386,8390],{"type":3107,"tag":3390,"props":8387,"children":8388},{"style":3469},[8389],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":8391,"children":8392},{"style":3464},[8393],{"type":3112,"value":4832},{"type":3107,"tag":4570,"props":8395,"children":8396},{},[8397],{"type":3107,"tag":3114,"props":8398,"children":8399},{},[8400,8405,8407,8414,8416,8422,8424],{"type":3107,"tag":3390,"props":8401,"children":8402},{},[8403],{"type":3112,"value":8404},"!TIP",{"type":3112,"value":8406},"\nIf you want to plug in and use the ",{"type":3107,"tag":3118,"props":8408,"children":8411},{"href":8409,"rel":8410},"https:\u002F\u002Fgithub.com\u002Fpasskeydeveloper\u002Fpasskey-authenticator-aaguids",[3122],[8412],{"type":3112,"value":8413},"Community sourced list of AAGUIDS",{"type":3112,"value":8415}," to decorate your display of added passkeys, you can access the the ID via ",{"type":3107,"tag":3252,"props":8417,"children":8419},{"className":8418},[],[8420],{"type":3112,"value":8421},"credential.aaguid",{"type":3112,"value":8423}," inside ",{"type":3107,"tag":3252,"props":8425,"children":8427},{"className":8426},[],[8428],{"type":3112,"value":5245},{"type":3107,"tag":3380,"props":8430,"children":8432},{"className":4068,"code":8431,"language":4070,"meta":2980,"style":2980},"\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",[8433],{"type":3107,"tag":3252,"props":8434,"children":8435},{"__ignoreMap":2980},[8436,8444,8468,8476,8513,8561,8569,8601,8665,8672,8680,8688,8696,8708,8716,8723,8760,8768,8815,8822,8830,8854,8918,8925,8937,8944,8992,9000,9008,9031,9074,9081,9089,9120,9127,9134,9161,9176,9199,9206,9237,9248,9255],{"type":3107,"tag":3390,"props":8437,"children":8438},{"class":3392,"line":3066},[8439],{"type":3107,"tag":3390,"props":8440,"children":8441},{"style":3455},[8442],{"type":3112,"value":8443},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts\n",{"type":3107,"tag":3390,"props":8445,"children":8446},{"class":3392,"line":3032},[8447,8451,8455,8460,8464],{"type":3107,"tag":3390,"props":8448,"children":8449},{"style":4652},[8450],{"type":3112,"value":5186},{"type":3107,"tag":3390,"props":8452,"children":8453},{"style":4652},[8454],{"type":3112,"value":5301},{"type":3107,"tag":3390,"props":8456,"children":8457},{"style":3626},[8458],{"type":3112,"value":8459}," defineWebAuthnAuthenticateEventHandler",{"type":3107,"tag":3390,"props":8461,"children":8462},{"style":3464},[8463],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":8465,"children":8466},{"style":3469},[8467],{"type":3112,"value":5316},{"type":3107,"tag":3390,"props":8469,"children":8470},{"class":3392,"line":3016},[8471],{"type":3107,"tag":3390,"props":8472,"children":8473},{"style":3455},[8474],{"type":3112,"value":8475},"  \u002F\u002F Optionally, we can prefetch the credentials if the user gives their userName during login\n",{"type":3107,"tag":3390,"props":8477,"children":8478},{"class":3392,"line":3653},[8479,8483,8488,8492,8496,8500,8505,8509],{"type":3107,"tag":3390,"props":8480,"children":8481},{"style":3541},[8482],{"type":3112,"value":5854},{"type":3107,"tag":3390,"props":8484,"children":8485},{"style":3535},[8486],{"type":3112,"value":8487}," allowCredentials",{"type":3107,"tag":3390,"props":8489,"children":8490},{"style":3469},[8491],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":8493,"children":8494},{"style":4484},[8495],{"type":3112,"value":5868},{"type":3107,"tag":3390,"props":8497,"children":8498},{"style":3469},[8499],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":8501,"children":8502},{"style":4484},[8503],{"type":3112,"value":8504}," userName",{"type":3107,"tag":3390,"props":8506,"children":8507},{"style":3469},[8508],{"type":3112,"value":6072},{"type":3107,"tag":3390,"props":8510,"children":8511},{"style":3469},[8512],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":8514,"children":8515},{"class":3392,"line":3662},[8516,8520,8525,8529,8533,8537,8541,8545,8549,8553,8557],{"type":3107,"tag":3390,"props":8517,"children":8518},{"style":3541},[8519],{"type":3112,"value":7622},{"type":3107,"tag":3390,"props":8521,"children":8522},{"style":3464},[8523],{"type":3112,"value":8524}," credentials",{"type":3107,"tag":3390,"props":8526,"children":8527},{"style":3469},[8528],{"type":3112,"value":3623},{"type":3107,"tag":3390,"props":8530,"children":8531},{"style":4652},[8532],{"type":3112,"value":4908},{"type":3107,"tag":3390,"props":8534,"children":8535},{"style":3626},[8536],{"type":3112,"value":8033},{"type":3107,"tag":3390,"props":8538,"children":8539},{"style":3535},[8540],{"type":3112,"value":7897},{"type":3107,"tag":3390,"props":8542,"children":8543},{"style":3469},[8544],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":8546,"children":8547},{"style":3626},[8548],{"type":3112,"value":6980},{"type":3107,"tag":3390,"props":8550,"children":8551},{"style":3469},[8552],{"type":3112,"value":8090},{"type":3107,"tag":3390,"props":8554,"children":8555},{"style":3402},[8556],{"type":3112,"value":5393},{"type":3107,"tag":3390,"props":8558,"children":8559},{"style":3469},[8560],{"type":3112,"value":8099},{"type":3107,"tag":3390,"props":8562,"children":8563},{"class":3392,"line":3679},[8564],{"type":3107,"tag":3390,"props":8565,"children":8566},{"style":3455},[8567],{"type":3112,"value":8568},"    \u002F\u002F If no credentials are found, the authentication cannot be completed\n",{"type":3107,"tag":3390,"props":8570,"children":8571},{"class":3392,"line":3012},[8572,8576,8580,8584,8588,8592,8597],{"type":3107,"tag":3390,"props":8573,"children":8574},{"style":4652},[8575],{"type":3112,"value":7658},{"type":3107,"tag":3390,"props":8577,"children":8578},{"style":3535},[8579],{"type":3112,"value":4481},{"type":3107,"tag":3390,"props":8581,"children":8582},{"style":3469},[8583],{"type":3112,"value":8115},{"type":3107,"tag":3390,"props":8585,"children":8586},{"style":3464},[8587],{"type":3112,"value":7321},{"type":3107,"tag":3390,"props":8589,"children":8590},{"style":3469},[8591],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":8593,"children":8594},{"style":3464},[8595],{"type":3112,"value":8596},"length",{"type":3107,"tag":3390,"props":8598,"children":8599},{"style":3535},[8600],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":8602,"children":8603},{"class":3392,"line":3008},[8604,8608,8612,8616,8620,8624,8628,8632,8636,8640,8644,8648,8653,8657,8661],{"type":3107,"tag":3390,"props":8605,"children":8606},{"style":4652},[8607],{"type":3112,"value":7747},{"type":3107,"tag":3390,"props":8609,"children":8610},{"style":3626},[8611],{"type":3112,"value":7752},{"type":3107,"tag":3390,"props":8613,"children":8614},{"style":3535},[8615],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":8617,"children":8618},{"style":3469},[8619],{"type":3112,"value":7761},{"type":3107,"tag":3390,"props":8621,"children":8622},{"style":3535},[8623],{"type":3112,"value":7766},{"type":3107,"tag":3390,"props":8625,"children":8626},{"style":3469},[8627],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":8629,"children":8630},{"style":6990},[8631],{"type":3112,"value":7775},{"type":3107,"tag":3390,"props":8633,"children":8634},{"style":3469},[8635],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":8637,"children":8638},{"style":3535},[8639],{"type":3112,"value":7784},{"type":3107,"tag":3390,"props":8641,"children":8642},{"style":3469},[8643],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":8645,"children":8646},{"style":3469},[8647],{"type":3112,"value":4713},{"type":3107,"tag":3390,"props":8649,"children":8650},{"style":3402},[8651],{"type":3112,"value":8652},"User not found",{"type":3107,"tag":3390,"props":8654,"children":8655},{"style":3469},[8656],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":8658,"children":8659},{"style":3469},[8660],{"type":3112,"value":7502},{"type":3107,"tag":3390,"props":8662,"children":8663},{"style":3535},[8664],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":8666,"children":8667},{"class":3392,"line":3004},[8668],{"type":3107,"tag":3390,"props":8669,"children":8670},{"emptyLinePlaceholder":1200},[8671],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":8673,"children":8674},{"class":3392,"line":3841},[8675],{"type":3107,"tag":3390,"props":8676,"children":8677},{"style":3455},[8678],{"type":3112,"value":8679},"    \u002F\u002F If user is found, only allow credentials that are registered\n",{"type":3107,"tag":3390,"props":8681,"children":8682},{"class":3392,"line":3095},[8683],{"type":3107,"tag":3390,"props":8684,"children":8685},{"style":3455},[8686],{"type":3112,"value":8687},"    \u002F\u002F The browser will automatically try to use the credential that it knows about\n",{"type":3107,"tag":3390,"props":8689,"children":8690},{"class":3392,"line":3878},[8691],{"type":3107,"tag":3390,"props":8692,"children":8693},{"style":3455},[8694],{"type":3112,"value":8695},"    \u002F\u002F Skipping the step for the user to select a credential for a better user experience\n",{"type":3107,"tag":3390,"props":8697,"children":8698},{"class":3392,"line":3911},[8699,8703],{"type":3107,"tag":3390,"props":8700,"children":8701},{"style":4652},[8702],{"type":3112,"value":5993},{"type":3107,"tag":3390,"props":8704,"children":8705},{"style":3464},[8706],{"type":3112,"value":8707}," credentials\n",{"type":3107,"tag":3390,"props":8709,"children":8710},{"class":3392,"line":3966},[8711],{"type":3107,"tag":3390,"props":8712,"children":8713},{"style":3455},[8714],{"type":3112,"value":8715},"    \u002F\u002F example: [{ id: '...' }]\n",{"type":3107,"tag":3390,"props":8717,"children":8718},{"class":3392,"line":3975},[8719],{"type":3107,"tag":3390,"props":8720,"children":8721},{"style":3469},[8722],{"type":3112,"value":4730},{"type":3107,"tag":3390,"props":8724,"children":8725},{"class":3392,"line":3000},[8726,8730,8735,8739,8743,8747,8752,8756],{"type":3107,"tag":3390,"props":8727,"children":8728},{"style":3541},[8729],{"type":3112,"value":5854},{"type":3107,"tag":3390,"props":8731,"children":8732},{"style":3535},[8733],{"type":3112,"value":8734}," getCredential",{"type":3107,"tag":3390,"props":8736,"children":8737},{"style":3469},[8738],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":8740,"children":8741},{"style":4484},[8742],{"type":3112,"value":5868},{"type":3107,"tag":3390,"props":8744,"children":8745},{"style":3469},[8746],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":8748,"children":8749},{"style":4484},[8750],{"type":3112,"value":8751}," credentialId",{"type":3107,"tag":3390,"props":8753,"children":8754},{"style":3469},[8755],{"type":3112,"value":6072},{"type":3107,"tag":3390,"props":8757,"children":8758},{"style":3469},[8759],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":8761,"children":8762},{"class":3392,"line":4043},[8763],{"type":3107,"tag":3390,"props":8764,"children":8765},{"style":3455},[8766],{"type":3112,"value":8767},"    \u002F\u002F Look for the credential in our database\n",{"type":3107,"tag":3390,"props":8769,"children":8770},{"class":3392,"line":4313},[8771,8775,8779,8783,8787,8791,8795,8799,8803,8807,8811],{"type":3107,"tag":3390,"props":8772,"children":8773},{"style":3541},[8774],{"type":3112,"value":7622},{"type":3107,"tag":3390,"props":8776,"children":8777},{"style":3464},[8778],{"type":3112,"value":7980},{"type":3107,"tag":3390,"props":8780,"children":8781},{"style":3469},[8782],{"type":3112,"value":3623},{"type":3107,"tag":3390,"props":8784,"children":8785},{"style":4652},[8786],{"type":3112,"value":4908},{"type":3107,"tag":3390,"props":8788,"children":8789},{"style":3626},[8790],{"type":3112,"value":8033},{"type":3107,"tag":3390,"props":8792,"children":8793},{"style":3535},[8794],{"type":3112,"value":7897},{"type":3107,"tag":3390,"props":8796,"children":8797},{"style":3469},[8798],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":8800,"children":8801},{"style":3626},[8802],{"type":3112,"value":6980},{"type":3107,"tag":3390,"props":8804,"children":8805},{"style":3469},[8806],{"type":3112,"value":8090},{"type":3107,"tag":3390,"props":8808,"children":8809},{"style":3402},[8810],{"type":3112,"value":5393},{"type":3107,"tag":3390,"props":8812,"children":8813},{"style":3469},[8814],{"type":3112,"value":8099},{"type":3107,"tag":3390,"props":8816,"children":8817},{"class":3392,"line":4321},[8818],{"type":3107,"tag":3390,"props":8819,"children":8820},{"emptyLinePlaceholder":1200},[8821],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":8823,"children":8824},{"class":3392,"line":4330},[8825],{"type":3107,"tag":3390,"props":8826,"children":8827},{"style":3455},[8828],{"type":3112,"value":8829},"    \u002F\u002F If the credential is not found, there is no account to log in to\n",{"type":3107,"tag":3390,"props":8831,"children":8832},{"class":3392,"line":4338},[8833,8837,8841,8845,8850],{"type":3107,"tag":3390,"props":8834,"children":8835},{"style":4652},[8836],{"type":3112,"value":7658},{"type":3107,"tag":3390,"props":8838,"children":8839},{"style":3535},[8840],{"type":3112,"value":4481},{"type":3107,"tag":3390,"props":8842,"children":8843},{"style":3469},[8844],{"type":3112,"value":8115},{"type":3107,"tag":3390,"props":8846,"children":8847},{"style":3464},[8848],{"type":3112,"value":8849},"credential",{"type":3107,"tag":3390,"props":8851,"children":8852},{"style":3535},[8853],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":8855,"children":8856},{"class":3392,"line":4379},[8857,8861,8865,8869,8873,8877,8881,8885,8889,8893,8897,8901,8906,8910,8914],{"type":3107,"tag":3390,"props":8858,"children":8859},{"style":4652},[8860],{"type":3112,"value":7747},{"type":3107,"tag":3390,"props":8862,"children":8863},{"style":3626},[8864],{"type":3112,"value":7752},{"type":3107,"tag":3390,"props":8866,"children":8867},{"style":3535},[8868],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":8870,"children":8871},{"style":3469},[8872],{"type":3112,"value":7761},{"type":3107,"tag":3390,"props":8874,"children":8875},{"style":3535},[8876],{"type":3112,"value":7766},{"type":3107,"tag":3390,"props":8878,"children":8879},{"style":3469},[8880],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":8882,"children":8883},{"style":6990},[8884],{"type":3112,"value":7775},{"type":3107,"tag":3390,"props":8886,"children":8887},{"style":3469},[8888],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":8890,"children":8891},{"style":3535},[8892],{"type":3112,"value":7784},{"type":3107,"tag":3390,"props":8894,"children":8895},{"style":3469},[8896],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":8898,"children":8899},{"style":3469},[8900],{"type":3112,"value":4713},{"type":3107,"tag":3390,"props":8902,"children":8903},{"style":3402},[8904],{"type":3112,"value":8905},"Credential not found",{"type":3107,"tag":3390,"props":8907,"children":8908},{"style":3469},[8909],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":8911,"children":8912},{"style":3469},[8913],{"type":3112,"value":7502},{"type":3107,"tag":3390,"props":8915,"children":8916},{"style":3535},[8917],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":8919,"children":8920},{"class":3392,"line":4387},[8921],{"type":3107,"tag":3390,"props":8922,"children":8923},{"emptyLinePlaceholder":1200},[8924],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":8926,"children":8927},{"class":3392,"line":4396},[8928,8932],{"type":3107,"tag":3390,"props":8929,"children":8930},{"style":4652},[8931],{"type":3112,"value":5993},{"type":3107,"tag":3390,"props":8933,"children":8934},{"style":3464},[8935],{"type":3112,"value":8936}," credential\n",{"type":3107,"tag":3390,"props":8938,"children":8939},{"class":3392,"line":4404},[8940],{"type":3107,"tag":3390,"props":8941,"children":8942},{"style":3469},[8943],{"type":3112,"value":4730},{"type":3107,"tag":3390,"props":8945,"children":8946},{"class":3392,"line":4441},[8947,8951,8955,8959,8963,8967,8971,8975,8979,8984,8988],{"type":3107,"tag":3390,"props":8948,"children":8949},{"style":3541},[8950],{"type":3112,"value":5854},{"type":3107,"tag":3390,"props":8952,"children":8953},{"style":3535},[8954],{"type":3112,"value":5859},{"type":3107,"tag":3390,"props":8956,"children":8957},{"style":3469},[8958],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":8960,"children":8961},{"style":4484},[8962],{"type":3112,"value":5868},{"type":3107,"tag":3390,"props":8964,"children":8965},{"style":3469},[8966],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":8968,"children":8969},{"style":3469},[8970],{"type":3112,"value":3562},{"type":3107,"tag":3390,"props":8972,"children":8973},{"style":4484},[8974],{"type":3112,"value":7980},{"type":3107,"tag":3390,"props":8976,"children":8977},{"style":3469},[8978],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":8980,"children":8981},{"style":4484},[8982],{"type":3112,"value":8983}," authenticationInfo",{"type":3107,"tag":3390,"props":8985,"children":8986},{"style":3469},[8987],{"type":3112,"value":4550},{"type":3107,"tag":3390,"props":8989,"children":8990},{"style":3469},[8991],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":8993,"children":8994},{"class":3392,"line":4449},[8995],{"type":3107,"tag":3390,"props":8996,"children":8997},{"style":3455},[8998],{"type":3112,"value":8999},"    \u002F\u002F The credential authentication has been successful\n",{"type":3107,"tag":3390,"props":9001,"children":9002},{"class":3392,"line":4458},[9003],{"type":3107,"tag":3390,"props":9004,"children":9005},{"style":3455},[9006],{"type":3112,"value":9007},"    \u002F\u002F We can look it up in our database and get the corresponding user\n",{"type":3107,"tag":3390,"props":9009,"children":9010},{"class":3392,"line":4466},[9011,9015,9019,9023,9027],{"type":3107,"tag":3390,"props":9012,"children":9013},{"style":3541},[9014],{"type":3112,"value":7622},{"type":3107,"tag":3390,"props":9016,"children":9017},{"style":3464},[9018],{"type":3112,"value":8024},{"type":3107,"tag":3390,"props":9020,"children":9021},{"style":3469},[9022],{"type":3112,"value":3623},{"type":3107,"tag":3390,"props":9024,"children":9025},{"style":3626},[9026],{"type":3112,"value":8033},{"type":3107,"tag":3390,"props":9028,"children":9029},{"style":3535},[9030],{"type":3112,"value":3634},{"type":3107,"tag":3390,"props":9032,"children":9033},{"class":3392,"line":4562},[9034,9038,9042,9046,9050,9054,9058,9062,9066,9070],{"type":3107,"tag":3390,"props":9035,"children":9036},{"style":3541},[9037],{"type":3112,"value":7622},{"type":3107,"tag":3390,"props":9039,"children":9040},{"style":3464},[9041],{"type":3112,"value":3577},{"type":3107,"tag":3390,"props":9043,"children":9044},{"style":3469},[9045],{"type":3112,"value":3623},{"type":3107,"tag":3390,"props":9047,"children":9048},{"style":4652},[9049],{"type":3112,"value":4908},{"type":3107,"tag":3390,"props":9051,"children":9052},{"style":3464},[9053],{"type":3112,"value":8024},{"type":3107,"tag":3390,"props":9055,"children":9056},{"style":3469},[9057],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":9059,"children":9060},{"style":3626},[9061],{"type":3112,"value":6980},{"type":3107,"tag":3390,"props":9063,"children":9064},{"style":3469},[9065],{"type":3112,"value":8090},{"type":3107,"tag":3390,"props":9067,"children":9068},{"style":3402},[9069],{"type":3112,"value":5393},{"type":3107,"tag":3390,"props":9071,"children":9072},{"style":3469},[9073],{"type":3112,"value":8099},{"type":3107,"tag":3390,"props":9075,"children":9076},{"class":3392,"line":8186},[9077],{"type":3107,"tag":3390,"props":9078,"children":9079},{"emptyLinePlaceholder":1200},[9080],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":9082,"children":9083},{"class":3392,"line":8194},[9084],{"type":3107,"tag":3390,"props":9085,"children":9086},{"style":3455},[9087],{"type":3112,"value":9088},"    \u002F\u002F Update the counter in the database (authenticationInfo.newCounter)\n",{"type":3107,"tag":3390,"props":9090,"children":9091},{"class":3392,"line":8203},[9092,9096,9100,9104,9108,9112,9116],{"type":3107,"tag":3390,"props":9093,"children":9094},{"style":4652},[9095],{"type":3112,"value":5905},{"type":3107,"tag":3390,"props":9097,"children":9098},{"style":3464},[9099],{"type":3112,"value":8024},{"type":3107,"tag":3390,"props":9101,"children":9102},{"style":3469},[9103],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":9105,"children":9106},{"style":3626},[9107],{"type":3112,"value":6980},{"type":3107,"tag":3390,"props":9109,"children":9110},{"style":3469},[9111],{"type":3112,"value":8090},{"type":3107,"tag":3390,"props":9113,"children":9114},{"style":3402},[9115],{"type":3112,"value":5393},{"type":3107,"tag":3390,"props":9117,"children":9118},{"style":3469},[9119],{"type":3112,"value":8099},{"type":3107,"tag":3390,"props":9121,"children":9122},{"class":3392,"line":8235},[9123],{"type":3107,"tag":3390,"props":9124,"children":9125},{"emptyLinePlaceholder":1200},[9126],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":9128,"children":9129},{"class":3392,"line":8243},[9130],{"type":3107,"tag":3390,"props":9131,"children":9132},{"style":3455},[9133],{"type":3112,"value":8249},{"type":3107,"tag":3390,"props":9135,"children":9136},{"class":3392,"line":8252},[9137,9141,9145,9149,9153,9157],{"type":3107,"tag":3390,"props":9138,"children":9139},{"style":4652},[9140],{"type":3112,"value":5905},{"type":3107,"tag":3390,"props":9142,"children":9143},{"style":3626},[9144],{"type":3112,"value":4660},{"type":3107,"tag":3390,"props":9146,"children":9147},{"style":3535},[9148],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":9150,"children":9151},{"style":3464},[9152],{"type":3112,"value":5868},{"type":3107,"tag":3390,"props":9154,"children":9155},{"style":3469},[9156],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":9158,"children":9159},{"style":3469},[9160],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":9162,"children":9163},{"class":3392,"line":8280},[9164,9168,9172],{"type":3107,"tag":3390,"props":9165,"children":9166},{"style":3535},[9167],{"type":3112,"value":5933},{"type":3107,"tag":3390,"props":9169,"children":9170},{"style":3469},[9171],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":9173,"children":9174},{"style":3469},[9175],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":9177,"children":9178},{"class":3392,"line":8296},[9179,9183,9187,9191,9195],{"type":3107,"tag":3390,"props":9180,"children":9181},{"style":3535},[9182],{"type":3112,"value":8302},{"type":3107,"tag":3390,"props":9184,"children":9185},{"style":3469},[9186],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":9188,"children":9189},{"style":3464},[9190],{"type":3112,"value":3577},{"type":3107,"tag":3390,"props":9192,"children":9193},{"style":3469},[9194],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":9196,"children":9197},{"style":3464},[9198],{"type":3112,"value":5966},{"type":3107,"tag":3390,"props":9200,"children":9201},{"class":3392,"line":8321},[9202],{"type":3107,"tag":3390,"props":9203,"children":9204},{"style":3469},[9205],{"type":3112,"value":8327},{"type":3107,"tag":3390,"props":9207,"children":9208},{"class":3392,"line":8330},[9209,9213,9217,9221,9225,9229,9233],{"type":3107,"tag":3390,"props":9210,"children":9211},{"style":3535},[9212],{"type":3112,"value":8336},{"type":3107,"tag":3390,"props":9214,"children":9215},{"style":3469},[9216],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":9218,"children":9219},{"style":3464},[9220],{"type":3112,"value":4816},{"type":3107,"tag":3390,"props":9222,"children":9223},{"style":3469},[9224],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":9226,"children":9227},{"style":3626},[9228],{"type":3112,"value":8353},{"type":3107,"tag":3390,"props":9230,"children":9231},{"style":3535},[9232],{"type":3112,"value":7897},{"type":3107,"tag":3390,"props":9234,"children":9235},{"style":3469},[9236],{"type":3112,"value":5402},{"type":3107,"tag":3390,"props":9238,"children":9239},{"class":3392,"line":8364},[9240,9244],{"type":3107,"tag":3390,"props":9241,"children":9242},{"style":3469},[9243],{"type":3112,"value":5981},{"type":3107,"tag":3390,"props":9245,"children":9246},{"style":3535},[9247],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":9249,"children":9250},{"class":3392,"line":8376},[9251],{"type":3107,"tag":3390,"props":9252,"children":9253},{"style":3469},[9254],{"type":3112,"value":4730},{"type":3107,"tag":3390,"props":9256,"children":9257},{"class":3392,"line":8384},[9258,9262],{"type":3107,"tag":3390,"props":9259,"children":9260},{"style":3469},[9261],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":9263,"children":9264},{"style":3464},[9265],{"type":3112,"value":4832},{"type":3107,"tag":4570,"props":9267,"children":9268},{},[9269],{"type":3107,"tag":3114,"props":9270,"children":9271},{},[9272,9276,9278,9283,9285,9291,9292,9298],{"type":3107,"tag":3390,"props":9273,"children":9274},{},[9275],{"type":3112,"value":4580},{"type":3112,"value":9277},"\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":3107,"tag":4061,"props":9279,"children":9280},{},[9281],{"type":3112,"value":9282},"which is highly recommended",{"type":3112,"value":9284},"), the ",{"type":3107,"tag":3252,"props":9286,"children":9288},{"className":9287},[],[9289],{"type":3112,"value":9290},"storeChallenge",{"type":3112,"value":6222},{"type":3107,"tag":3252,"props":9293,"children":9295},{"className":9294},[],[9296],{"type":3112,"value":9297},"getChallenge",{"type":3112,"value":9299}," 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":3107,"tag":4570,"props":9301,"children":9302},{},[9303],{"type":3107,"tag":3380,"props":9304,"children":9306},{"className":4068,"code":9305,"language":4070,"meta":2980,"style":2980},"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",[9307],{"type":3107,"tag":3252,"props":9308,"children":9309},{"__ignoreMap":2980},[9310,9333,9379,9387,9452,9459,9495,9559,9566,9574,9626,9633,9657,9721,9728,9740,9747,9787,9795,9802],{"type":3107,"tag":3390,"props":9311,"children":9312},{"class":3392,"line":3066},[9313,9317,9321,9325,9329],{"type":3107,"tag":3390,"props":9314,"children":9315},{"style":4652},[9316],{"type":3112,"value":5186},{"type":3107,"tag":3390,"props":9318,"children":9319},{"style":4652},[9320],{"type":3112,"value":5301},{"type":3107,"tag":3390,"props":9322,"children":9323},{"style":3626},[9324],{"type":3112,"value":8459},{"type":3107,"tag":3390,"props":9326,"children":9327},{"style":3464},[9328],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":9330,"children":9331},{"style":3469},[9332],{"type":3112,"value":5316},{"type":3107,"tag":3390,"props":9334,"children":9335},{"class":3392,"line":3032},[9336,9340,9345,9349,9353,9357,9362,9366,9371,9375],{"type":3107,"tag":3390,"props":9337,"children":9338},{"style":3541},[9339],{"type":3112,"value":5854},{"type":3107,"tag":3390,"props":9341,"children":9342},{"style":3535},[9343],{"type":3112,"value":9344}," storeChallenge",{"type":3107,"tag":3390,"props":9346,"children":9347},{"style":3469},[9348],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":9350,"children":9351},{"style":4484},[9352],{"type":3112,"value":5868},{"type":3107,"tag":3390,"props":9354,"children":9355},{"style":3469},[9356],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":9358,"children":9359},{"style":4484},[9360],{"type":3112,"value":9361}," challenge",{"type":3107,"tag":3390,"props":9363,"children":9364},{"style":3469},[9365],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":9367,"children":9368},{"style":4484},[9369],{"type":3112,"value":9370}," attemptId",{"type":3107,"tag":3390,"props":9372,"children":9373},{"style":3469},[9374],{"type":3112,"value":6072},{"type":3107,"tag":3390,"props":9376,"children":9377},{"style":3469},[9378],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":9380,"children":9381},{"class":3392,"line":3016},[9382],{"type":3107,"tag":3390,"props":9383,"children":9384},{"style":3455},[9385],{"type":3112,"value":9386},"    \u002F\u002F Store the challenge in a KV store or DB\n",{"type":3107,"tag":3390,"props":9388,"children":9389},{"class":3392,"line":3653},[9390,9394,9399,9403,9407,9412,9416,9420,9425,9430,9435,9440,9444,9448],{"type":3107,"tag":3390,"props":9391,"children":9392},{"style":4652},[9393],{"type":3112,"value":5905},{"type":3107,"tag":3390,"props":9395,"children":9396},{"style":3626},[9397],{"type":3112,"value":9398}," useStorage",{"type":3107,"tag":3390,"props":9400,"children":9401},{"style":3535},[9402],{"type":3112,"value":7897},{"type":3107,"tag":3390,"props":9404,"children":9405},{"style":3469},[9406],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":9408,"children":9409},{"style":3626},[9410],{"type":3112,"value":9411},"setItem",{"type":3107,"tag":3390,"props":9413,"children":9414},{"style":3535},[9415],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":9417,"children":9418},{"style":3469},[9419],{"type":3112,"value":8090},{"type":3107,"tag":3390,"props":9421,"children":9422},{"style":3402},[9423],{"type":3112,"value":9424},"attempt:",{"type":3107,"tag":3390,"props":9426,"children":9427},{"style":3469},[9428],{"type":3112,"value":9429},"${",{"type":3107,"tag":3390,"props":9431,"children":9432},{"style":3464},[9433],{"type":3112,"value":9434},"attemptId",{"type":3107,"tag":3390,"props":9436,"children":9437},{"style":3469},[9438],{"type":3112,"value":9439},"}`",{"type":3107,"tag":3390,"props":9441,"children":9442},{"style":3469},[9443],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":9445,"children":9446},{"style":3464},[9447],{"type":3112,"value":9361},{"type":3107,"tag":3390,"props":9449,"children":9450},{"style":3535},[9451],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":9453,"children":9454},{"class":3392,"line":3662},[9455],{"type":3107,"tag":3390,"props":9456,"children":9457},{"style":3469},[9458],{"type":3112,"value":4730},{"type":3107,"tag":3390,"props":9460,"children":9461},{"class":3392,"line":3679},[9462,9466,9471,9475,9479,9483,9487,9491],{"type":3107,"tag":3390,"props":9463,"children":9464},{"style":3541},[9465],{"type":3112,"value":5854},{"type":3107,"tag":3390,"props":9467,"children":9468},{"style":3535},[9469],{"type":3112,"value":9470}," getChallenge",{"type":3107,"tag":3390,"props":9472,"children":9473},{"style":3469},[9474],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":9476,"children":9477},{"style":4484},[9478],{"type":3112,"value":5868},{"type":3107,"tag":3390,"props":9480,"children":9481},{"style":3469},[9482],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":9484,"children":9485},{"style":4484},[9486],{"type":3112,"value":9370},{"type":3107,"tag":3390,"props":9488,"children":9489},{"style":3469},[9490],{"type":3112,"value":6072},{"type":3107,"tag":3390,"props":9492,"children":9493},{"style":3469},[9494],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":9496,"children":9497},{"class":3392,"line":3012},[9498,9502,9506,9510,9514,9518,9522,9526,9531,9535,9539,9543,9547,9551,9555],{"type":3107,"tag":3390,"props":9499,"children":9500},{"style":3541},[9501],{"type":3112,"value":7622},{"type":3107,"tag":3390,"props":9503,"children":9504},{"style":3464},[9505],{"type":3112,"value":9361},{"type":3107,"tag":3390,"props":9507,"children":9508},{"style":3469},[9509],{"type":3112,"value":3623},{"type":3107,"tag":3390,"props":9511,"children":9512},{"style":4652},[9513],{"type":3112,"value":4908},{"type":3107,"tag":3390,"props":9515,"children":9516},{"style":3626},[9517],{"type":3112,"value":9398},{"type":3107,"tag":3390,"props":9519,"children":9520},{"style":3535},[9521],{"type":3112,"value":7897},{"type":3107,"tag":3390,"props":9523,"children":9524},{"style":3469},[9525],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":9527,"children":9528},{"style":3626},[9529],{"type":3112,"value":9530},"getItem",{"type":3107,"tag":3390,"props":9532,"children":9533},{"style":3535},[9534],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":9536,"children":9537},{"style":3469},[9538],{"type":3112,"value":8090},{"type":3107,"tag":3390,"props":9540,"children":9541},{"style":3402},[9542],{"type":3112,"value":9424},{"type":3107,"tag":3390,"props":9544,"children":9545},{"style":3469},[9546],{"type":3112,"value":9429},{"type":3107,"tag":3390,"props":9548,"children":9549},{"style":3464},[9550],{"type":3112,"value":9434},{"type":3107,"tag":3390,"props":9552,"children":9553},{"style":3469},[9554],{"type":3112,"value":9439},{"type":3107,"tag":3390,"props":9556,"children":9557},{"style":3535},[9558],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":9560,"children":9561},{"class":3392,"line":3008},[9562],{"type":3107,"tag":3390,"props":9563,"children":9564},{"emptyLinePlaceholder":1200},[9565],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":9567,"children":9568},{"class":3392,"line":3004},[9569],{"type":3107,"tag":3390,"props":9570,"children":9571},{"style":3455},[9572],{"type":3112,"value":9573},"    \u002F\u002F Make sure to always remove the attempt because they are single use only!\n",{"type":3107,"tag":3390,"props":9575,"children":9576},{"class":3392,"line":3841},[9577,9581,9585,9589,9593,9598,9602,9606,9610,9614,9618,9622],{"type":3107,"tag":3390,"props":9578,"children":9579},{"style":4652},[9580],{"type":3112,"value":5905},{"type":3107,"tag":3390,"props":9582,"children":9583},{"style":3626},[9584],{"type":3112,"value":9398},{"type":3107,"tag":3390,"props":9586,"children":9587},{"style":3535},[9588],{"type":3112,"value":7897},{"type":3107,"tag":3390,"props":9590,"children":9591},{"style":3469},[9592],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":9594,"children":9595},{"style":3626},[9596],{"type":3112,"value":9597},"removeItem",{"type":3107,"tag":3390,"props":9599,"children":9600},{"style":3535},[9601],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":9603,"children":9604},{"style":3469},[9605],{"type":3112,"value":8090},{"type":3107,"tag":3390,"props":9607,"children":9608},{"style":3402},[9609],{"type":3112,"value":9424},{"type":3107,"tag":3390,"props":9611,"children":9612},{"style":3469},[9613],{"type":3112,"value":9429},{"type":3107,"tag":3390,"props":9615,"children":9616},{"style":3464},[9617],{"type":3112,"value":9434},{"type":3107,"tag":3390,"props":9619,"children":9620},{"style":3469},[9621],{"type":3112,"value":9439},{"type":3107,"tag":3390,"props":9623,"children":9624},{"style":3535},[9625],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":9627,"children":9628},{"class":3392,"line":3095},[9629],{"type":3107,"tag":3390,"props":9630,"children":9631},{"emptyLinePlaceholder":1200},[9632],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":9634,"children":9635},{"class":3392,"line":3878},[9636,9640,9644,9648,9653],{"type":3107,"tag":3390,"props":9637,"children":9638},{"style":4652},[9639],{"type":3112,"value":7658},{"type":3107,"tag":3390,"props":9641,"children":9642},{"style":3535},[9643],{"type":3112,"value":4481},{"type":3107,"tag":3390,"props":9645,"children":9646},{"style":3469},[9647],{"type":3112,"value":8115},{"type":3107,"tag":3390,"props":9649,"children":9650},{"style":3464},[9651],{"type":3112,"value":9652},"challenge",{"type":3107,"tag":3390,"props":9654,"children":9655},{"style":3535},[9656],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":9658,"children":9659},{"class":3392,"line":3911},[9660,9664,9668,9672,9676,9680,9684,9688,9692,9696,9700,9704,9709,9713,9717],{"type":3107,"tag":3390,"props":9661,"children":9662},{"style":4652},[9663],{"type":3112,"value":7747},{"type":3107,"tag":3390,"props":9665,"children":9666},{"style":3626},[9667],{"type":3112,"value":7752},{"type":3107,"tag":3390,"props":9669,"children":9670},{"style":3535},[9671],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":9673,"children":9674},{"style":3469},[9675],{"type":3112,"value":7761},{"type":3107,"tag":3390,"props":9677,"children":9678},{"style":3535},[9679],{"type":3112,"value":7766},{"type":3107,"tag":3390,"props":9681,"children":9682},{"style":3469},[9683],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":9685,"children":9686},{"style":6990},[9687],{"type":3112,"value":7775},{"type":3107,"tag":3390,"props":9689,"children":9690},{"style":3469},[9691],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":9693,"children":9694},{"style":3535},[9695],{"type":3112,"value":7784},{"type":3107,"tag":3390,"props":9697,"children":9698},{"style":3469},[9699],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":9701,"children":9702},{"style":3469},[9703],{"type":3112,"value":4713},{"type":3107,"tag":3390,"props":9705,"children":9706},{"style":3402},[9707],{"type":3112,"value":9708},"Challenge expired",{"type":3107,"tag":3390,"props":9710,"children":9711},{"style":3469},[9712],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":9714,"children":9715},{"style":3469},[9716],{"type":3112,"value":7502},{"type":3107,"tag":3390,"props":9718,"children":9719},{"style":3535},[9720],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":9722,"children":9723},{"class":3392,"line":3966},[9724],{"type":3107,"tag":3390,"props":9725,"children":9726},{"emptyLinePlaceholder":1200},[9727],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":9729,"children":9730},{"class":3392,"line":3975},[9731,9735],{"type":3107,"tag":3390,"props":9732,"children":9733},{"style":4652},[9734],{"type":3112,"value":5993},{"type":3107,"tag":3390,"props":9736,"children":9737},{"style":3464},[9738],{"type":3112,"value":9739}," challenge\n",{"type":3107,"tag":3390,"props":9741,"children":9742},{"class":3392,"line":3000},[9743],{"type":3107,"tag":3390,"props":9744,"children":9745},{"style":3469},[9746],{"type":3112,"value":4730},{"type":3107,"tag":3390,"props":9748,"children":9749},{"class":3392,"line":4043},[9750,9754,9758,9762,9766,9770,9774,9779,9783],{"type":3107,"tag":3390,"props":9751,"children":9752},{"style":3541},[9753],{"type":3112,"value":5854},{"type":3107,"tag":3390,"props":9755,"children":9756},{"style":3535},[9757],{"type":3112,"value":5859},{"type":3107,"tag":3390,"props":9759,"children":9760},{"style":3469},[9761],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":9763,"children":9764},{"style":4484},[9765],{"type":3112,"value":5868},{"type":3107,"tag":3390,"props":9767,"children":9768},{"style":3469},[9769],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":9771,"children":9772},{"style":3469},[9773],{"type":3112,"value":3562},{"type":3107,"tag":3390,"props":9775,"children":9776},{"style":4484},[9777],{"type":3112,"value":9778}," authenticator",{"type":3107,"tag":3390,"props":9780,"children":9781},{"style":3469},[9782],{"type":3112,"value":4550},{"type":3107,"tag":3390,"props":9784,"children":9785},{"style":3469},[9786],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":9788,"children":9789},{"class":3392,"line":4313},[9790],{"type":3107,"tag":3390,"props":9791,"children":9792},{"style":3455},[9793],{"type":3112,"value":9794},"    \u002F\u002F ...\n",{"type":3107,"tag":3390,"props":9796,"children":9797},{"class":3392,"line":4321},[9798],{"type":3107,"tag":3390,"props":9799,"children":9800},{"style":3469},[9801],{"type":3112,"value":4730},{"type":3107,"tag":3390,"props":9803,"children":9804},{"class":3392,"line":4330},[9805,9809],{"type":3107,"tag":3390,"props":9806,"children":9807},{"style":3469},[9808],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":9810,"children":9811},{"style":3464},[9812],{"type":3112,"value":4832},{"type":3107,"tag":3114,"props":9814,"children":9815},{},[9816],{"type":3112,"value":9817},"On the frontend it is as simple as:",{"type":3107,"tag":3380,"props":9819,"children":9821},{"className":3518,"code":9820,"language":3520,"meta":2980,"style":2980},"\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",[9822],{"type":3107,"tag":3252,"props":9823,"children":9824},{"__ignoreMap":2980},[9825,9865,9911,9945,9978,9989,10029,10036,10070,10096,10145,10176,10183,10190,10214,10246,10273,10280,10295,10302,10317,10355,10415,10469,10484,10520,10575,10627,10642],{"type":3107,"tag":3390,"props":9826,"children":9827},{"class":3392,"line":3066},[9828,9832,9836,9840,9845,9849,9853,9857,9861],{"type":3107,"tag":3390,"props":9829,"children":9830},{"style":3469},[9831],{"type":3112,"value":3532},{"type":3107,"tag":3390,"props":9833,"children":9834},{"style":3535},[9835],{"type":3112,"value":3538},{"type":3107,"tag":3390,"props":9837,"children":9838},{"style":3541},[9839],{"type":3112,"value":3544},{"type":3107,"tag":3390,"props":9841,"children":9842},{"style":3541},[9843],{"type":3112,"value":9844}," lang",{"type":3107,"tag":3390,"props":9846,"children":9847},{"style":3469},[9848],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":9850,"children":9851},{"style":3469},[9852],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":9854,"children":9855},{"style":3402},[9856],{"type":3112,"value":4070},{"type":3107,"tag":3390,"props":9858,"children":9859},{"style":3469},[9860],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":9862,"children":9863},{"style":3469},[9864],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":9866,"children":9867},{"class":3392,"line":3032},[9868,9872,9876,9881,9885,9890,9894,9898,9903,9907],{"type":3107,"tag":3390,"props":9869,"children":9870},{"style":3541},[9871],{"type":3112,"value":3557},{"type":3107,"tag":3390,"props":9873,"children":9874},{"style":3469},[9875],{"type":3112,"value":3562},{"type":3107,"tag":3390,"props":9877,"children":9878},{"style":3464},[9879],{"type":3112,"value":9880}," register",{"type":3107,"tag":3390,"props":9882,"children":9883},{"style":3469},[9884],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":9886,"children":9887},{"style":3464},[9888],{"type":3112,"value":9889}," authenticate ",{"type":3107,"tag":3390,"props":9891,"children":9892},{"style":3469},[9893],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":9895,"children":9896},{"style":3469},[9897],{"type":3112,"value":3623},{"type":3107,"tag":3390,"props":9899,"children":9900},{"style":3626},[9901],{"type":3112,"value":9902}," useWebAuthn",{"type":3107,"tag":3390,"props":9904,"children":9905},{"style":3464},[9906],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":9908,"children":9909},{"style":3469},[9910],{"type":3112,"value":5316},{"type":3107,"tag":3390,"props":9912,"children":9913},{"class":3392,"line":3016},[9914,9919,9923,9927,9932,9936,9940],{"type":3107,"tag":3390,"props":9915,"children":9916},{"style":3535},[9917],{"type":3112,"value":9918},"  registerEndpoint",{"type":3107,"tag":3390,"props":9920,"children":9921},{"style":3469},[9922],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":9924,"children":9925},{"style":3469},[9926],{"type":3112,"value":4713},{"type":3107,"tag":3390,"props":9928,"children":9929},{"style":3402},[9930],{"type":3112,"value":9931},"\u002Fapi\u002Fwebauthn\u002Fregister",{"type":3107,"tag":3390,"props":9933,"children":9934},{"style":3469},[9935],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":9937,"children":9938},{"style":3469},[9939],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":9941,"children":9942},{"style":3455},[9943],{"type":3112,"value":9944}," \u002F\u002F Default\n",{"type":3107,"tag":3390,"props":9946,"children":9947},{"class":3392,"line":3653},[9948,9953,9957,9961,9966,9970,9974],{"type":3107,"tag":3390,"props":9949,"children":9950},{"style":3535},[9951],{"type":3112,"value":9952},"  authenticateEndpoint",{"type":3107,"tag":3390,"props":9954,"children":9955},{"style":3469},[9956],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":9958,"children":9959},{"style":3469},[9960],{"type":3112,"value":4713},{"type":3107,"tag":3390,"props":9962,"children":9963},{"style":3402},[9964],{"type":3112,"value":9965},"\u002Fapi\u002Fwebauthn\u002Fauthenticate",{"type":3107,"tag":3390,"props":9967,"children":9968},{"style":3469},[9969],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":9971,"children":9972},{"style":3469},[9973],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":9975,"children":9976},{"style":3455},[9977],{"type":3112,"value":9944},{"type":3107,"tag":3390,"props":9979,"children":9980},{"class":3392,"line":3662},[9981,9985],{"type":3107,"tag":3390,"props":9982,"children":9983},{"style":3469},[9984],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":9986,"children":9987},{"style":3464},[9988],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":9990,"children":9991},{"class":3392,"line":3679},[9992,9996,10000,10004,10008,10013,10017,10021,10025],{"type":3107,"tag":3390,"props":9993,"children":9994},{"style":3541},[9995],{"type":3112,"value":3557},{"type":3107,"tag":3390,"props":9997,"children":9998},{"style":3469},[9999],{"type":3112,"value":3562},{"type":3107,"tag":3390,"props":10001,"children":10002},{"style":3535},[10003],{"type":3112,"value":3595},{"type":3107,"tag":3390,"props":10005,"children":10006},{"style":3469},[10007],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":10009,"children":10010},{"style":3464},[10011],{"type":3112,"value":10012}," fetchUserSession ",{"type":3107,"tag":3390,"props":10014,"children":10015},{"style":3469},[10016],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":10018,"children":10019},{"style":3469},[10020],{"type":3112,"value":3623},{"type":3107,"tag":3390,"props":10022,"children":10023},{"style":3626},[10024],{"type":3112,"value":3629},{"type":3107,"tag":3390,"props":10026,"children":10027},{"style":3464},[10028],{"type":3112,"value":3634},{"type":3107,"tag":3390,"props":10030,"children":10031},{"class":3392,"line":3012},[10032],{"type":3107,"tag":3390,"props":10033,"children":10034},{"emptyLinePlaceholder":1200},[10035],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":10037,"children":10038},{"class":3392,"line":3008},[10039,10043,10048,10052,10057,10061,10066],{"type":3107,"tag":3390,"props":10040,"children":10041},{"style":3541},[10042],{"type":3112,"value":3557},{"type":3107,"tag":3390,"props":10044,"children":10045},{"style":3464},[10046],{"type":3112,"value":10047}," userName ",{"type":3107,"tag":3390,"props":10049,"children":10050},{"style":3469},[10051],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":10053,"children":10054},{"style":3626},[10055],{"type":3112,"value":10056}," ref",{"type":3107,"tag":3390,"props":10058,"children":10059},{"style":3464},[10060],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":10062,"children":10063},{"style":3469},[10064],{"type":3112,"value":10065},"''",{"type":3107,"tag":3390,"props":10067,"children":10068},{"style":3464},[10069],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":10071,"children":10072},{"class":3392,"line":3004},[10073,10078,10083,10088,10092],{"type":3107,"tag":3390,"props":10074,"children":10075},{"style":3541},[10076],{"type":3112,"value":10077},"async",{"type":3107,"tag":3390,"props":10079,"children":10080},{"style":3541},[10081],{"type":3112,"value":10082}," function",{"type":3107,"tag":3390,"props":10084,"children":10085},{"style":3626},[10086],{"type":3112,"value":10087}," signUp",{"type":3107,"tag":3390,"props":10089,"children":10090},{"style":3469},[10091],{"type":3112,"value":7897},{"type":3107,"tag":3390,"props":10093,"children":10094},{"style":3469},[10095],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":10097,"children":10098},{"class":3392,"line":3841},[10099,10104,10108,10112,10116,10120,10124,10128,10132,10137,10141],{"type":3107,"tag":3390,"props":10100,"children":10101},{"style":4652},[10102],{"type":3112,"value":10103},"  await",{"type":3107,"tag":3390,"props":10105,"children":10106},{"style":3626},[10107],{"type":3112,"value":9880},{"type":3107,"tag":3390,"props":10109,"children":10110},{"style":3535},[10111],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":10113,"children":10114},{"style":3469},[10115],{"type":3112,"value":7761},{"type":3107,"tag":3390,"props":10117,"children":10118},{"style":3535},[10119],{"type":3112,"value":8504},{"type":3107,"tag":3390,"props":10121,"children":10122},{"style":3469},[10123],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":10125,"children":10126},{"style":3464},[10127],{"type":3112,"value":8504},{"type":3107,"tag":3390,"props":10129,"children":10130},{"style":3469},[10131],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":10133,"children":10134},{"style":3464},[10135],{"type":3112,"value":10136},"value",{"type":3107,"tag":3390,"props":10138,"children":10139},{"style":3469},[10140],{"type":3112,"value":7502},{"type":3107,"tag":3390,"props":10142,"children":10143},{"style":3535},[10144],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":10146,"children":10147},{"class":3392,"line":3095},[10148,10153,10158,10162,10167,10171],{"type":3107,"tag":3390,"props":10149,"children":10150},{"style":3469},[10151],{"type":3112,"value":10152},"    .",{"type":3107,"tag":3390,"props":10154,"children":10155},{"style":3626},[10156],{"type":3112,"value":10157},"then",{"type":3107,"tag":3390,"props":10159,"children":10160},{"style":3535},[10161],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":10163,"children":10164},{"style":3464},[10165],{"type":3112,"value":10166},"fetchUserSession",{"type":3107,"tag":3390,"props":10168,"children":10169},{"style":3535},[10170],{"type":3112,"value":7735},{"type":3107,"tag":3390,"props":10172,"children":10173},{"style":3455},[10174],{"type":3112,"value":10175},"\u002F\u002F refetch the user session\n",{"type":3107,"tag":3390,"props":10177,"children":10178},{"class":3392,"line":3878},[10179],{"type":3107,"tag":3390,"props":10180,"children":10181},{"style":3469},[10182],{"type":3112,"value":4568},{"type":3107,"tag":3390,"props":10184,"children":10185},{"class":3392,"line":3911},[10186],{"type":3107,"tag":3390,"props":10187,"children":10188},{"emptyLinePlaceholder":1200},[10189],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":10191,"children":10192},{"class":3392,"line":3966},[10193,10197,10201,10206,10210],{"type":3107,"tag":3390,"props":10194,"children":10195},{"style":3541},[10196],{"type":3112,"value":10077},{"type":3107,"tag":3390,"props":10198,"children":10199},{"style":3541},[10200],{"type":3112,"value":10082},{"type":3107,"tag":3390,"props":10202,"children":10203},{"style":3626},[10204],{"type":3112,"value":10205}," signIn",{"type":3107,"tag":3390,"props":10207,"children":10208},{"style":3469},[10209],{"type":3112,"value":7897},{"type":3107,"tag":3390,"props":10211,"children":10212},{"style":3469},[10213],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":10215,"children":10216},{"class":3392,"line":3975},[10217,10221,10226,10230,10234,10238,10242],{"type":3107,"tag":3390,"props":10218,"children":10219},{"style":4652},[10220],{"type":3112,"value":10103},{"type":3107,"tag":3390,"props":10222,"children":10223},{"style":3626},[10224],{"type":3112,"value":10225}," authenticate",{"type":3107,"tag":3390,"props":10227,"children":10228},{"style":3535},[10229],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":10231,"children":10232},{"style":3464},[10233],{"type":3112,"value":7730},{"type":3107,"tag":3390,"props":10235,"children":10236},{"style":3469},[10237],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":10239,"children":10240},{"style":3464},[10241],{"type":3112,"value":10136},{"type":3107,"tag":3390,"props":10243,"children":10244},{"style":3535},[10245],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":10247,"children":10248},{"class":3392,"line":3000},[10249,10253,10257,10261,10265,10269],{"type":3107,"tag":3390,"props":10250,"children":10251},{"style":3469},[10252],{"type":3112,"value":10152},{"type":3107,"tag":3390,"props":10254,"children":10255},{"style":3626},[10256],{"type":3112,"value":10157},{"type":3107,"tag":3390,"props":10258,"children":10259},{"style":3535},[10260],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":10262,"children":10263},{"style":3464},[10264],{"type":3112,"value":10166},{"type":3107,"tag":3390,"props":10266,"children":10267},{"style":3535},[10268],{"type":3112,"value":7735},{"type":3107,"tag":3390,"props":10270,"children":10271},{"style":3455},[10272],{"type":3112,"value":10175},{"type":3107,"tag":3390,"props":10274,"children":10275},{"class":3392,"line":4043},[10276],{"type":3107,"tag":3390,"props":10277,"children":10278},{"style":3469},[10279],{"type":3112,"value":4568},{"type":3107,"tag":3390,"props":10281,"children":10282},{"class":3392,"line":4313},[10283,10287,10291],{"type":3107,"tag":3390,"props":10284,"children":10285},{"style":3469},[10286],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":10288,"children":10289},{"style":3535},[10290],{"type":3112,"value":3538},{"type":3107,"tag":3390,"props":10292,"children":10293},{"style":3469},[10294],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":10296,"children":10297},{"class":3392,"line":4321},[10298],{"type":3107,"tag":3390,"props":10299,"children":10300},{"emptyLinePlaceholder":1200},[10301],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":10303,"children":10304},{"class":3392,"line":4330},[10305,10309,10313],{"type":3107,"tag":3390,"props":10306,"children":10307},{"style":3469},[10308],{"type":3112,"value":3532},{"type":3107,"tag":3390,"props":10310,"children":10311},{"style":3535},[10312],{"type":3112,"value":3672},{"type":3107,"tag":3390,"props":10314,"children":10315},{"style":3469},[10316],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":10318,"children":10319},{"class":3392,"line":4338},[10320,10324,10329,10334,10338,10342,10347,10351],{"type":3107,"tag":3390,"props":10321,"children":10322},{"style":3469},[10323],{"type":3112,"value":3685},{"type":3107,"tag":3390,"props":10325,"children":10326},{"style":3535},[10327],{"type":3112,"value":10328},"form",{"type":3107,"tag":3390,"props":10330,"children":10331},{"style":3541},[10332],{"type":3112,"value":10333}," @submit.prevent",{"type":3107,"tag":3390,"props":10335,"children":10336},{"style":3469},[10337],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":10339,"children":10340},{"style":3469},[10341],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":10343,"children":10344},{"style":3402},[10345],{"type":3112,"value":10346},"signUp",{"type":3107,"tag":3390,"props":10348,"children":10349},{"style":3469},[10350],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":10352,"children":10353},{"style":3469},[10354],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":10356,"children":10357},{"class":3392,"line":4379},[10358,10362,10367,10372,10376,10380,10384,10388,10393,10397,10401,10406,10410],{"type":3107,"tag":3390,"props":10359,"children":10360},{"style":3469},[10361],{"type":3112,"value":3725},{"type":3107,"tag":3390,"props":10363,"children":10364},{"style":3535},[10365],{"type":3112,"value":10366},"input",{"type":3107,"tag":3390,"props":10368,"children":10369},{"style":3541},[10370],{"type":3112,"value":10371}," v-model",{"type":3107,"tag":3390,"props":10373,"children":10374},{"style":3469},[10375],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":10377,"children":10378},{"style":3469},[10379],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":10381,"children":10382},{"style":3402},[10383],{"type":3112,"value":7730},{"type":3107,"tag":3390,"props":10385,"children":10386},{"style":3469},[10387],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":10389,"children":10390},{"style":3541},[10391],{"type":3112,"value":10392}," placeholder",{"type":3107,"tag":3390,"props":10394,"children":10395},{"style":3469},[10396],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":10398,"children":10399},{"style":3469},[10400],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":10402,"children":10403},{"style":3402},[10404],{"type":3112,"value":10405},"Email or username",{"type":3107,"tag":3390,"props":10407,"children":10408},{"style":3469},[10409],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":10411,"children":10412},{"style":3469},[10413],{"type":3112,"value":10414}," \u002F>\n",{"type":3107,"tag":3390,"props":10416,"children":10417},{"class":3392,"line":4387},[10418,10422,10426,10431,10435,10439,10444,10448,10452,10457,10461,10465],{"type":3107,"tag":3390,"props":10419,"children":10420},{"style":3469},[10421],{"type":3112,"value":3725},{"type":3107,"tag":3390,"props":10423,"children":10424},{"style":3535},[10425],{"type":3112,"value":3795},{"type":3107,"tag":3390,"props":10427,"children":10428},{"style":3541},[10429],{"type":3112,"value":10430}," type",{"type":3107,"tag":3390,"props":10432,"children":10433},{"style":3469},[10434],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":10436,"children":10437},{"style":3469},[10438],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":10440,"children":10441},{"style":3402},[10442],{"type":3112,"value":10443},"submit",{"type":3107,"tag":3390,"props":10445,"children":10446},{"style":3469},[10447],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":10449,"children":10450},{"style":3469},[10451],{"type":3112,"value":3734},{"type":3107,"tag":3390,"props":10453,"children":10454},{"style":3464},[10455],{"type":3112,"value":10456},"Sign up",{"type":3107,"tag":3390,"props":10458,"children":10459},{"style":3469},[10460],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":10462,"children":10463},{"style":3535},[10464],{"type":3112,"value":3795},{"type":3107,"tag":3390,"props":10466,"children":10467},{"style":3469},[10468],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":10470,"children":10471},{"class":3392,"line":4396},[10472,10476,10480],{"type":3107,"tag":3390,"props":10473,"children":10474},{"style":3469},[10475],{"type":3112,"value":3847},{"type":3107,"tag":3390,"props":10477,"children":10478},{"style":3535},[10479],{"type":3112,"value":10328},{"type":3107,"tag":3390,"props":10481,"children":10482},{"style":3469},[10483],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":10485,"children":10486},{"class":3392,"line":4404},[10487,10491,10495,10499,10503,10507,10512,10516],{"type":3107,"tag":3390,"props":10488,"children":10489},{"style":3469},[10490],{"type":3112,"value":3685},{"type":3107,"tag":3390,"props":10492,"children":10493},{"style":3535},[10494],{"type":3112,"value":10328},{"type":3107,"tag":3390,"props":10496,"children":10497},{"style":3541},[10498],{"type":3112,"value":10333},{"type":3107,"tag":3390,"props":10500,"children":10501},{"style":3469},[10502],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":10504,"children":10505},{"style":3469},[10506],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":10508,"children":10509},{"style":3402},[10510],{"type":3112,"value":10511},"signIn",{"type":3107,"tag":3390,"props":10513,"children":10514},{"style":3469},[10515],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":10517,"children":10518},{"style":3469},[10519],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":10521,"children":10522},{"class":3392,"line":4441},[10523,10527,10531,10535,10539,10543,10547,10551,10555,10559,10563,10567,10571],{"type":3107,"tag":3390,"props":10524,"children":10525},{"style":3469},[10526],{"type":3112,"value":3725},{"type":3107,"tag":3390,"props":10528,"children":10529},{"style":3535},[10530],{"type":3112,"value":10366},{"type":3107,"tag":3390,"props":10532,"children":10533},{"style":3541},[10534],{"type":3112,"value":10371},{"type":3107,"tag":3390,"props":10536,"children":10537},{"style":3469},[10538],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":10540,"children":10541},{"style":3469},[10542],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":10544,"children":10545},{"style":3402},[10546],{"type":3112,"value":7730},{"type":3107,"tag":3390,"props":10548,"children":10549},{"style":3469},[10550],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":10552,"children":10553},{"style":3541},[10554],{"type":3112,"value":10392},{"type":3107,"tag":3390,"props":10556,"children":10557},{"style":3469},[10558],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":10560,"children":10561},{"style":3469},[10562],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":10564,"children":10565},{"style":3402},[10566],{"type":3112,"value":10405},{"type":3107,"tag":3390,"props":10568,"children":10569},{"style":3469},[10570],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":10572,"children":10573},{"style":3469},[10574],{"type":3112,"value":10414},{"type":3107,"tag":3390,"props":10576,"children":10577},{"class":3392,"line":4449},[10578,10582,10586,10590,10594,10598,10602,10606,10610,10615,10619,10623],{"type":3107,"tag":3390,"props":10579,"children":10580},{"style":3469},[10581],{"type":3112,"value":3725},{"type":3107,"tag":3390,"props":10583,"children":10584},{"style":3535},[10585],{"type":3112,"value":3795},{"type":3107,"tag":3390,"props":10587,"children":10588},{"style":3541},[10589],{"type":3112,"value":10430},{"type":3107,"tag":3390,"props":10591,"children":10592},{"style":3469},[10593],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":10595,"children":10596},{"style":3469},[10597],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":10599,"children":10600},{"style":3402},[10601],{"type":3112,"value":10443},{"type":3107,"tag":3390,"props":10603,"children":10604},{"style":3469},[10605],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":10607,"children":10608},{"style":3469},[10609],{"type":3112,"value":3734},{"type":3107,"tag":3390,"props":10611,"children":10612},{"style":3464},[10613],{"type":3112,"value":10614},"Sign in",{"type":3107,"tag":3390,"props":10616,"children":10617},{"style":3469},[10618],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":10620,"children":10621},{"style":3535},[10622],{"type":3112,"value":3795},{"type":3107,"tag":3390,"props":10624,"children":10625},{"style":3469},[10626],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":10628,"children":10629},{"class":3392,"line":4458},[10630,10634,10638],{"type":3107,"tag":3390,"props":10631,"children":10632},{"style":3469},[10633],{"type":3112,"value":3847},{"type":3107,"tag":3390,"props":10635,"children":10636},{"style":3535},[10637],{"type":3112,"value":10328},{"type":3107,"tag":3390,"props":10639,"children":10640},{"style":3469},[10641],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":10643,"children":10644},{"class":3392,"line":4466},[10645,10649,10653],{"type":3107,"tag":3390,"props":10646,"children":10647},{"style":3469},[10648],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":10650,"children":10651},{"style":3535},[10652],{"type":3112,"value":3672},{"type":3107,"tag":3390,"props":10654,"children":10655},{"style":3469},[10656],{"type":3112,"value":3549},{"type":3107,"tag":3114,"props":10658,"children":10659},{},[10660,10662,10673],{"type":3112,"value":10661},"Take a look at the ",{"type":3107,"tag":3118,"props":10663,"children":10666},{"href":10664,"rel":10665},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fcomponents\u002FWebAuthnModal.vue",[3122],[10667],{"type":3107,"tag":3252,"props":10668,"children":10670},{"className":10669},[],[10671],{"type":3112,"value":10672},"WebAuthnModal.vue",{"type":3112,"value":10674}," for a full example.",{"type":3107,"tag":5496,"props":10676,"children":10678},{"id":10677},"demo",[10679],{"type":3112,"value":10680},"Demo",{"type":3107,"tag":3114,"props":10682,"children":10683},{},[10684,10686,10692,10694,10701,10702,10709],{"type":3112,"value":10685},"A full demo can be found on ",{"type":3107,"tag":3118,"props":10687,"children":10690},{"href":10688,"rel":10689},"https:\u002F\u002Ftodo-passkeys.nuxt.dev",[3122],[10691],{"type":3112,"value":10688},{"type":3112,"value":10693}," using ",{"type":3107,"tag":3118,"props":10695,"children":10698},{"href":10696,"rel":10697},"https:\u002F\u002Form.drizzle.team\u002F",[3122],[10699],{"type":3112,"value":10700},"Drizzle ORM",{"type":3112,"value":6222},{"type":3107,"tag":3118,"props":10703,"children":10706},{"href":10704,"rel":10705},"https:\u002F\u002Fhub.nuxt.com",[3122],[10707],{"type":3112,"value":10708},"NuxtHub",{"type":3112,"value":3345},{"type":3107,"tag":3114,"props":10711,"children":10712},{},[10713,10715,10720],{"type":3112,"value":10714},"The source code of the demo is available on ",{"type":3107,"tag":3118,"props":10716,"children":10718},{"href":3192,"rel":10717},[3122],[10719],{"type":3112,"value":3192},{"type":3112,"value":3345},{"type":3107,"tag":3510,"props":10722,"children":10724},{"id":10723},"extend-session",[10725],{"type":3112,"value":10726},"Extend Session",{"type":3107,"tag":3114,"props":10728,"children":10729},{},[10730],{"type":3112,"value":10731},"We leverage hooks to let you extend the session data with your own data or log when the user clears the session.",{"type":3107,"tag":3380,"props":10733,"children":10735},{"className":4068,"code":10734,"language":4070,"meta":2980,"style":2980},"\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",[10736],{"type":3107,"tag":3252,"props":10737,"children":10738},{"__ignoreMap":2980},[10739,10747,10779,10787,10795,10866,10874,10882,10890,10902,10909,10917,10984,10992,11003],{"type":3107,"tag":3390,"props":10740,"children":10741},{"class":3392,"line":3066},[10742],{"type":3107,"tag":3390,"props":10743,"children":10744},{"style":3455},[10745],{"type":3112,"value":10746},"\u002F\u002F server\u002Fplugins\u002Fsession.ts\n",{"type":3107,"tag":3390,"props":10748,"children":10749},{"class":3392,"line":3032},[10750,10754,10758,10763,10767,10771,10775],{"type":3107,"tag":3390,"props":10751,"children":10752},{"style":4652},[10753],{"type":3112,"value":5186},{"type":3107,"tag":3390,"props":10755,"children":10756},{"style":4652},[10757],{"type":3112,"value":5301},{"type":3107,"tag":3390,"props":10759,"children":10760},{"style":3626},[10761],{"type":3112,"value":10762}," defineNitroPlugin",{"type":3107,"tag":3390,"props":10764,"children":10765},{"style":3464},[10766],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":10768,"children":10769},{"style":3469},[10770],{"type":3112,"value":7897},{"type":3107,"tag":3390,"props":10772,"children":10773},{"style":3541},[10774],{"type":3112,"value":4358},{"type":3107,"tag":3390,"props":10776,"children":10777},{"style":3469},[10778],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":10780,"children":10781},{"class":3392,"line":3016},[10782],{"type":3107,"tag":3390,"props":10783,"children":10784},{"style":3455},[10785],{"type":3112,"value":10786},"  \u002F\u002F Called when the session is fetched during SSR for the Vue composable (\u002Fapi\u002F_auth\u002Fsession)\n",{"type":3107,"tag":3390,"props":10788,"children":10789},{"class":3392,"line":3653},[10790],{"type":3107,"tag":3390,"props":10791,"children":10792},{"style":3455},[10793],{"type":3112,"value":10794},"  \u002F\u002F Or when we call useUserSession().fetch()\n",{"type":3107,"tag":3390,"props":10796,"children":10797},{"class":3392,"line":3662},[10798,10803,10807,10812,10816,10820,10825,10829,10833,10838,10842,10846,10850,10854,10858,10862],{"type":3107,"tag":3390,"props":10799,"children":10800},{"style":3464},[10801],{"type":3112,"value":10802},"  sessionHooks",{"type":3107,"tag":3390,"props":10804,"children":10805},{"style":3469},[10806],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":10808,"children":10809},{"style":3626},[10810],{"type":3112,"value":10811},"hook",{"type":3107,"tag":3390,"props":10813,"children":10814},{"style":3535},[10815],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":10817,"children":10818},{"style":3469},[10819],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":10821,"children":10822},{"style":3402},[10823],{"type":3112,"value":10824},"fetch",{"type":3107,"tag":3390,"props":10826,"children":10827},{"style":3469},[10828],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":10830,"children":10831},{"style":3469},[10832],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":10834,"children":10835},{"style":3541},[10836],{"type":3112,"value":10837}," async",{"type":3107,"tag":3390,"props":10839,"children":10840},{"style":3469},[10841],{"type":3112,"value":4481},{"type":3107,"tag":3390,"props":10843,"children":10844},{"style":4484},[10845],{"type":3112,"value":7667},{"type":3107,"tag":3390,"props":10847,"children":10848},{"style":3469},[10849],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":10851,"children":10852},{"style":4484},[10853],{"type":3112,"value":7582},{"type":3107,"tag":3390,"props":10855,"children":10856},{"style":3469},[10857],{"type":3112,"value":6072},{"type":3107,"tag":3390,"props":10859,"children":10860},{"style":3541},[10861],{"type":3112,"value":4358},{"type":3107,"tag":3390,"props":10863,"children":10864},{"style":3469},[10865],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":10867,"children":10868},{"class":3392,"line":3679},[10869],{"type":3107,"tag":3390,"props":10870,"children":10871},{"style":3455},[10872],{"type":3112,"value":10873},"    \u002F\u002F extend User Session by calling your database\n",{"type":3107,"tag":3390,"props":10875,"children":10876},{"class":3392,"line":3012},[10877],{"type":3107,"tag":3390,"props":10878,"children":10879},{"style":3455},[10880],{"type":3112,"value":10881},"    \u002F\u002F or\n",{"type":3107,"tag":3390,"props":10883,"children":10884},{"class":3392,"line":3008},[10885],{"type":3107,"tag":3390,"props":10886,"children":10887},{"style":3455},[10888],{"type":3112,"value":10889},"    \u002F\u002F throw createError({ ... }) if session is invalid for example\n",{"type":3107,"tag":3390,"props":10891,"children":10892},{"class":3392,"line":3004},[10893,10898],{"type":3107,"tag":3390,"props":10894,"children":10895},{"style":3469},[10896],{"type":3112,"value":10897},"  }",{"type":3107,"tag":3390,"props":10899,"children":10900},{"style":3535},[10901],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":10903,"children":10904},{"class":3392,"line":3841},[10905],{"type":3107,"tag":3390,"props":10906,"children":10907},{"emptyLinePlaceholder":1200},[10908],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":10910,"children":10911},{"class":3392,"line":3095},[10912],{"type":3107,"tag":3390,"props":10913,"children":10914},{"style":3455},[10915],{"type":3112,"value":10916},"  \u002F\u002F Called when we call useUserSession().clear() or clearUserSession(event)\n",{"type":3107,"tag":3390,"props":10918,"children":10919},{"class":3392,"line":3878},[10920,10924,10928,10932,10936,10940,10944,10948,10952,10956,10960,10964,10968,10972,10976,10980],{"type":3107,"tag":3390,"props":10921,"children":10922},{"style":3464},[10923],{"type":3112,"value":10802},{"type":3107,"tag":3390,"props":10925,"children":10926},{"style":3469},[10927],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":10929,"children":10930},{"style":3626},[10931],{"type":3112,"value":10811},{"type":3107,"tag":3390,"props":10933,"children":10934},{"style":3535},[10935],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":10937,"children":10938},{"style":3469},[10939],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":10941,"children":10942},{"style":3402},[10943],{"type":3112,"value":3813},{"type":3107,"tag":3390,"props":10945,"children":10946},{"style":3469},[10947],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":10949,"children":10950},{"style":3469},[10951],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":10953,"children":10954},{"style":3541},[10955],{"type":3112,"value":10837},{"type":3107,"tag":3390,"props":10957,"children":10958},{"style":3469},[10959],{"type":3112,"value":4481},{"type":3107,"tag":3390,"props":10961,"children":10962},{"style":4484},[10963],{"type":3112,"value":7667},{"type":3107,"tag":3390,"props":10965,"children":10966},{"style":3469},[10967],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":10969,"children":10970},{"style":4484},[10971],{"type":3112,"value":7582},{"type":3107,"tag":3390,"props":10973,"children":10974},{"style":3469},[10975],{"type":3112,"value":6072},{"type":3107,"tag":3390,"props":10977,"children":10978},{"style":3541},[10979],{"type":3112,"value":4358},{"type":3107,"tag":3390,"props":10981,"children":10982},{"style":3469},[10983],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":10985,"children":10986},{"class":3392,"line":3911},[10987],{"type":3107,"tag":3390,"props":10988,"children":10989},{"style":3455},[10990],{"type":3112,"value":10991},"    \u002F\u002F Log that user logged out\n",{"type":3107,"tag":3390,"props":10993,"children":10994},{"class":3392,"line":3966},[10995,10999],{"type":3107,"tag":3390,"props":10996,"children":10997},{"style":3469},[10998],{"type":3112,"value":10897},{"type":3107,"tag":3390,"props":11000,"children":11001},{"style":3535},[11002],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":11004,"children":11005},{"class":3392,"line":3975},[11006,11010],{"type":3107,"tag":3390,"props":11007,"children":11008},{"style":3469},[11009],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":11011,"children":11012},{"style":3464},[11013],{"type":3112,"value":4832},{"type":3107,"tag":3198,"props":11015,"children":11017},{"id":11016},"server-side-rendering",[11018],{"type":3112,"value":11019},"Server-Side Rendering",{"type":3107,"tag":3114,"props":11021,"children":11022},{},[11023,11025,11031,11033],{"type":3112,"value":11024},"You can make authenticated requests both from the client and the server. However, you must use ",{"type":3107,"tag":3252,"props":11026,"children":11028},{"className":11027},[],[11029],{"type":3112,"value":11030},"useRequestFetch()",{"type":3112,"value":11032}," to make authenticated requests during SSR if you are not using ",{"type":3107,"tag":3252,"props":11034,"children":11036},{"className":11035},[],[11037],{"type":3112,"value":11038},"useFetch()",{"type":3107,"tag":3380,"props":11040,"children":11042},{"className":3518,"code":11041,"language":3520,"meta":2980,"style":2980},"\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",[11043],{"type":3107,"tag":3252,"props":11044,"children":11045},{"__ignoreMap":2980},[11046,11085,11093,11183,11190,11198,11250],{"type":3107,"tag":3390,"props":11047,"children":11048},{"class":3392,"line":3066},[11049,11053,11057,11061,11065,11069,11073,11077,11081],{"type":3107,"tag":3390,"props":11050,"children":11051},{"style":3469},[11052],{"type":3112,"value":3532},{"type":3107,"tag":3390,"props":11054,"children":11055},{"style":3535},[11056],{"type":3112,"value":3538},{"type":3107,"tag":3390,"props":11058,"children":11059},{"style":3541},[11060],{"type":3112,"value":3544},{"type":3107,"tag":3390,"props":11062,"children":11063},{"style":3541},[11064],{"type":3112,"value":9844},{"type":3107,"tag":3390,"props":11066,"children":11067},{"style":3469},[11068],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":11070,"children":11071},{"style":3469},[11072],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":11074,"children":11075},{"style":3402},[11076],{"type":3112,"value":4070},{"type":3107,"tag":3390,"props":11078,"children":11079},{"style":3469},[11080],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":11082,"children":11083},{"style":3469},[11084],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":11086,"children":11087},{"class":3392,"line":3032},[11088],{"type":3107,"tag":3390,"props":11089,"children":11090},{"style":3455},[11091],{"type":3112,"value":11092},"\u002F\u002F When using useAsyncData\n",{"type":3107,"tag":3390,"props":11094,"children":11095},{"class":3392,"line":3016},[11096,11100,11104,11109,11113,11117,11121,11126,11130,11134,11139,11143,11147,11151,11155,11160,11165,11169,11174,11178],{"type":3107,"tag":3390,"props":11097,"children":11098},{"style":3541},[11099],{"type":3112,"value":3557},{"type":3107,"tag":3390,"props":11101,"children":11102},{"style":3469},[11103],{"type":3112,"value":3562},{"type":3107,"tag":3390,"props":11105,"children":11106},{"style":3464},[11107],{"type":3112,"value":11108}," data ",{"type":3107,"tag":3390,"props":11110,"children":11111},{"style":3469},[11112],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":11114,"children":11115},{"style":3469},[11116],{"type":3112,"value":3623},{"type":3107,"tag":3390,"props":11118,"children":11119},{"style":4652},[11120],{"type":3112,"value":4908},{"type":3107,"tag":3390,"props":11122,"children":11123},{"style":3626},[11124],{"type":3112,"value":11125}," useAsyncData",{"type":3107,"tag":3390,"props":11127,"children":11128},{"style":3464},[11129],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":11131,"children":11132},{"style":3469},[11133],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":11135,"children":11136},{"style":3402},[11137],{"type":3112,"value":11138},"team",{"type":3107,"tag":3390,"props":11140,"children":11141},{"style":3469},[11142],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":11144,"children":11145},{"style":3469},[11146],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":11148,"children":11149},{"style":3469},[11150],{"type":3112,"value":4353},{"type":3107,"tag":3390,"props":11152,"children":11153},{"style":3541},[11154],{"type":3112,"value":4358},{"type":3107,"tag":3390,"props":11156,"children":11157},{"style":3626},[11158],{"type":3112,"value":11159}," useRequestFetch",{"type":3107,"tag":3390,"props":11161,"children":11162},{"style":3464},[11163],{"type":3112,"value":11164},"()(",{"type":3107,"tag":3390,"props":11166,"children":11167},{"style":3469},[11168],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":11170,"children":11171},{"style":3402},[11172],{"type":3112,"value":11173},"\u002Fapi\u002Fprotected-endpoint",{"type":3107,"tag":3390,"props":11175,"children":11176},{"style":3469},[11177],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":11179,"children":11180},{"style":3464},[11181],{"type":3112,"value":11182},"))\n",{"type":3107,"tag":3390,"props":11184,"children":11185},{"class":3392,"line":3653},[11186],{"type":3107,"tag":3390,"props":11187,"children":11188},{"emptyLinePlaceholder":1200},[11189],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":11191,"children":11192},{"class":3392,"line":3662},[11193],{"type":3107,"tag":3390,"props":11194,"children":11195},{"style":3455},[11196],{"type":3112,"value":11197},"\u002F\u002F useFetch will automatically use useRequestFetch during SSR\n",{"type":3107,"tag":3390,"props":11199,"children":11200},{"class":3392,"line":3679},[11201,11205,11209,11213,11217,11221,11225,11230,11234,11238,11242,11246],{"type":3107,"tag":3390,"props":11202,"children":11203},{"style":3541},[11204],{"type":3112,"value":3557},{"type":3107,"tag":3390,"props":11206,"children":11207},{"style":3469},[11208],{"type":3112,"value":3562},{"type":3107,"tag":3390,"props":11210,"children":11211},{"style":3464},[11212],{"type":3112,"value":11108},{"type":3107,"tag":3390,"props":11214,"children":11215},{"style":3469},[11216],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":11218,"children":11219},{"style":3469},[11220],{"type":3112,"value":3623},{"type":3107,"tag":3390,"props":11222,"children":11223},{"style":4652},[11224],{"type":3112,"value":4908},{"type":3107,"tag":3390,"props":11226,"children":11227},{"style":3626},[11228],{"type":3112,"value":11229}," useFetch",{"type":3107,"tag":3390,"props":11231,"children":11232},{"style":3464},[11233],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":11235,"children":11236},{"style":3469},[11237],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":11239,"children":11240},{"style":3402},[11241],{"type":3112,"value":11173},{"type":3107,"tag":3390,"props":11243,"children":11244},{"style":3469},[11245],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":11247,"children":11248},{"style":3464},[11249],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":11251,"children":11252},{"class":3392,"line":3012},[11253,11257,11261],{"type":3107,"tag":3390,"props":11254,"children":11255},{"style":3469},[11256],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":11258,"children":11259},{"style":3535},[11260],{"type":3112,"value":3538},{"type":3107,"tag":3390,"props":11262,"children":11263},{"style":3469},[11264],{"type":3112,"value":3549},{"type":3107,"tag":4570,"props":11266,"children":11267},{},[11268],{"type":3107,"tag":3114,"props":11269,"children":11270},{},[11271,11273,11280,11282,11287],{"type":3112,"value":11272},"There's ",{"type":3107,"tag":3118,"props":11274,"children":11277},{"href":11275,"rel":11276},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F24813",[3122],[11278],{"type":3112,"value":11279},"an open issue",{"type":3112,"value":11281}," to include credentials in ",{"type":3107,"tag":3252,"props":11283,"children":11285},{"className":11284},[],[11286],{"type":3112,"value":634},{"type":3112,"value":11288}," in Nuxt.",{"type":3107,"tag":3198,"props":11290,"children":11292},{"id":11291},"hybrid-rendering",[11293],{"type":3112,"value":3214},{"type":3107,"tag":3114,"props":11295,"children":11296},{},[11297,11299,11312],{"type":3112,"value":11298},"When using ",{"type":3107,"tag":3118,"props":11300,"children":11303},{"href":11301,"rel":11302},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fguide\u002Fconcepts\u002Frendering#hybrid-rendering",[3122],[11304,11306],{"type":3112,"value":11305},"Nuxt ",{"type":3107,"tag":3252,"props":11307,"children":11309},{"className":11308},[],[11310],{"type":3112,"value":11311},"routeRules",{"type":3112,"value":11313}," 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":3107,"tag":3114,"props":11315,"children":11316},{},[11317],{"type":3112,"value":11318},"This is because the user session is stored in a secure cookie and cannot be accessed during prerendering.",{"type":3107,"tag":3114,"props":11320,"children":11321},{},[11322],{"type":3107,"tag":4061,"props":11323,"children":11324},{},[11325],{"type":3112,"value":11326},"This means that you should not rely on the user session during prerendering.",{"type":3107,"tag":3114,"props":11328,"children":11329},{},[11330,11332,11338,11340,11345],{"type":3112,"value":11331},"You may also choose to instruct Nuxt Auth Utils to fetch the user session only on the client side, with the ",{"type":3107,"tag":3252,"props":11333,"children":11335},{"className":11334},[],[11336],{"type":3112,"value":11337},"loadStrategy",{"type":3112,"value":11339}," option in your ",{"type":3107,"tag":3252,"props":11341,"children":11343},{"className":11342},[],[11344],{"type":3112,"value":233},{"type":3112,"value":4129},{"type":3107,"tag":3380,"props":11347,"children":11349},{"className":4068,"code":11348,"language":4070,"meta":2980,"style":2980},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'client-only'\n  }\n})\n",[11350],{"type":3107,"tag":3252,"props":11351,"children":11352},{"__ignoreMap":2980},[11353,11376,11391,11416,11423],{"type":3107,"tag":3390,"props":11354,"children":11355},{"class":3392,"line":3066},[11356,11360,11364,11368,11372],{"type":3107,"tag":3390,"props":11357,"children":11358},{"style":4652},[11359],{"type":3112,"value":5186},{"type":3107,"tag":3390,"props":11361,"children":11362},{"style":4652},[11363],{"type":3112,"value":5301},{"type":3107,"tag":3390,"props":11365,"children":11366},{"style":3626},[11367],{"type":3112,"value":5306},{"type":3107,"tag":3390,"props":11369,"children":11370},{"style":3464},[11371],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":11373,"children":11374},{"style":3469},[11375],{"type":3112,"value":5316},{"type":3107,"tag":3390,"props":11377,"children":11378},{"class":3392,"line":3032},[11379,11383,11387],{"type":3107,"tag":3390,"props":11380,"children":11381},{"style":3535},[11382],{"type":3112,"value":6576},{"type":3107,"tag":3390,"props":11384,"children":11385},{"style":3469},[11386],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":11388,"children":11389},{"style":3469},[11390],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":11392,"children":11393},{"class":3392,"line":3016},[11394,11399,11403,11407,11412],{"type":3107,"tag":3390,"props":11395,"children":11396},{"style":3535},[11397],{"type":3112,"value":11398},"    loadStrategy",{"type":3107,"tag":3390,"props":11400,"children":11401},{"style":3469},[11402],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":11404,"children":11405},{"style":3469},[11406],{"type":3112,"value":4713},{"type":3107,"tag":3390,"props":11408,"children":11409},{"style":3402},[11410],{"type":3112,"value":11411},"client-only",{"type":3107,"tag":3390,"props":11413,"children":11414},{"style":3469},[11415],{"type":3112,"value":4722},{"type":3107,"tag":3390,"props":11417,"children":11418},{"class":3392,"line":3653},[11419],{"type":3107,"tag":3390,"props":11420,"children":11421},{"style":3469},[11422],{"type":3112,"value":5090},{"type":3107,"tag":3390,"props":11424,"children":11425},{"class":3392,"line":3662},[11426,11430],{"type":3107,"tag":3390,"props":11427,"children":11428},{"style":3469},[11429],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":11431,"children":11432},{"style":3464},[11433],{"type":3112,"value":4832},{"type":3107,"tag":3114,"props":11435,"children":11436},{},[11437,11439,11444,11446,11451,11452,11458],{"type":3112,"value":11438},"When using the ",{"type":3107,"tag":3252,"props":11440,"children":11442},{"className":11441},[],[11443],{"type":3112,"value":11411},{"type":3112,"value":11445}," load strategy, the user session can still be manually fetched on the server side by calling ",{"type":3107,"tag":3252,"props":11447,"children":11449},{"className":11448},[],[11450],{"type":3112,"value":10824},{"type":3112,"value":7337},{"type":3107,"tag":3252,"props":11453,"children":11455},{"className":11454},[],[11456],{"type":3112,"value":11457},"useUserSession",{"type":3112,"value":11459}," composable.",{"type":3107,"tag":3510,"props":11461,"children":11463},{"id":11462},"disable-session-loading",[11464],{"type":3112,"value":11465},"Disable session loading",{"type":3107,"tag":3114,"props":11467,"children":11468},{},[11469,11471,11476,11477,11482],{"type":3112,"value":11470},"You may also choose to disable session loading entirely, with the ",{"type":3107,"tag":3252,"props":11472,"children":11474},{"className":11473},[],[11475],{"type":3112,"value":11337},{"type":3112,"value":11339},{"type":3107,"tag":3252,"props":11478,"children":11480},{"className":11479},[],[11481],{"type":3112,"value":233},{"type":3112,"value":4129},{"type":3107,"tag":3380,"props":11484,"children":11486},{"className":4068,"code":11485,"language":4070,"meta":2980,"style":2980},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'none'\n  }\n})\n",[11487],{"type":3107,"tag":3252,"props":11488,"children":11489},{"__ignoreMap":2980},[11490,11513,11528,11552,11559],{"type":3107,"tag":3390,"props":11491,"children":11492},{"class":3392,"line":3066},[11493,11497,11501,11505,11509],{"type":3107,"tag":3390,"props":11494,"children":11495},{"style":4652},[11496],{"type":3112,"value":5186},{"type":3107,"tag":3390,"props":11498,"children":11499},{"style":4652},[11500],{"type":3112,"value":5301},{"type":3107,"tag":3390,"props":11502,"children":11503},{"style":3626},[11504],{"type":3112,"value":5306},{"type":3107,"tag":3390,"props":11506,"children":11507},{"style":3464},[11508],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":11510,"children":11511},{"style":3469},[11512],{"type":3112,"value":5316},{"type":3107,"tag":3390,"props":11514,"children":11515},{"class":3392,"line":3032},[11516,11520,11524],{"type":3107,"tag":3390,"props":11517,"children":11518},{"style":3535},[11519],{"type":3112,"value":6576},{"type":3107,"tag":3390,"props":11521,"children":11522},{"style":3469},[11523],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":11525,"children":11526},{"style":3469},[11527],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":11529,"children":11530},{"class":3392,"line":3016},[11531,11535,11539,11543,11548],{"type":3107,"tag":3390,"props":11532,"children":11533},{"style":3535},[11534],{"type":3112,"value":11398},{"type":3107,"tag":3390,"props":11536,"children":11537},{"style":3469},[11538],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":11540,"children":11541},{"style":3469},[11542],{"type":3112,"value":4713},{"type":3107,"tag":3390,"props":11544,"children":11545},{"style":3402},[11546],{"type":3112,"value":11547},"none",{"type":3107,"tag":3390,"props":11549,"children":11550},{"style":3469},[11551],{"type":3112,"value":4722},{"type":3107,"tag":3390,"props":11553,"children":11554},{"class":3392,"line":3653},[11555],{"type":3107,"tag":3390,"props":11556,"children":11557},{"style":3469},[11558],{"type":3112,"value":5090},{"type":3107,"tag":3390,"props":11560,"children":11561},{"class":3392,"line":3662},[11562,11566],{"type":3107,"tag":3390,"props":11563,"children":11564},{"style":3469},[11565],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":11567,"children":11568},{"style":3464},[11569],{"type":3112,"value":4832},{"type":3107,"tag":3114,"props":11571,"children":11572},{},[11573,11574,11579,11581,11587],{"type":3112,"value":11438},{"type":3107,"tag":3252,"props":11575,"children":11577},{"className":11576},[],[11578],{"type":3112,"value":11547},{"type":3112,"value":11580}," load strategy, the user session can still be manually fetched by calling ",{"type":3107,"tag":3252,"props":11582,"children":11584},{"className":11583},[],[11585],{"type":3112,"value":11586},"useUserSession().fetch()",{"type":3112,"value":3345},{"type":3107,"tag":3510,"props":11589,"children":11591},{"id":11590},"authstate-component",[11592,11597],{"type":3107,"tag":3252,"props":11593,"children":11595},{"className":11594},[],[11596],{"type":3112,"value":3281},{"type":3112,"value":3283},{"type":3107,"tag":3114,"props":11599,"children":11600},{},[11601,11603,11608],{"type":3112,"value":11602},"You can use the ",{"type":3107,"tag":3252,"props":11604,"children":11606},{"className":11605},[],[11607],{"type":3112,"value":3281},{"type":3112,"value":11609}," component to safely display auth-related data in your components without worrying about the rendering mode.",{"type":3107,"tag":3114,"props":11611,"children":11612},{},[11613],{"type":3112,"value":11614},"One common use case if the Login button in the header:",{"type":3107,"tag":3380,"props":11616,"children":11618},{"className":3518,"code":11617,"language":3520,"meta":2980,"style":2980},"\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",[11619],{"type":3107,"tag":3252,"props":11620,"children":11621},{"__ignoreMap":2980},[11622,11637,11653,11691,11763,11822,11838,11853],{"type":3107,"tag":3390,"props":11623,"children":11624},{"class":3392,"line":3066},[11625,11629,11633],{"type":3107,"tag":3390,"props":11626,"children":11627},{"style":3469},[11628],{"type":3112,"value":3532},{"type":3107,"tag":3390,"props":11630,"children":11631},{"style":3535},[11632],{"type":3112,"value":3672},{"type":3107,"tag":3390,"props":11634,"children":11635},{"style":3469},[11636],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":11638,"children":11639},{"class":3392,"line":3032},[11640,11644,11649],{"type":3107,"tag":3390,"props":11641,"children":11642},{"style":3469},[11643],{"type":3112,"value":3685},{"type":3107,"tag":3390,"props":11645,"children":11646},{"style":3535},[11647],{"type":3112,"value":11648},"header",{"type":3107,"tag":3390,"props":11650,"children":11651},{"style":3469},[11652],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":11654,"children":11655},{"class":3392,"line":3016},[11656,11660,11665,11670,11674,11678,11683,11687],{"type":3107,"tag":3390,"props":11657,"children":11658},{"style":3469},[11659],{"type":3112,"value":3725},{"type":3107,"tag":3390,"props":11661,"children":11662},{"style":3535},[11663],{"type":3112,"value":11664},"AuthState",{"type":3107,"tag":3390,"props":11666,"children":11667},{"style":3541},[11668],{"type":3112,"value":11669}," v-slot",{"type":3107,"tag":3390,"props":11671,"children":11672},{"style":3469},[11673],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":11675,"children":11676},{"style":3469},[11677],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":11679,"children":11680},{"style":3402},[11681],{"type":3112,"value":11682},"{ loggedIn, clear }",{"type":3107,"tag":3390,"props":11684,"children":11685},{"style":3469},[11686],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":11688,"children":11689},{"style":3469},[11690],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":11692,"children":11693},{"class":3392,"line":3653},[11694,11699,11703,11707,11711,11715,11719,11723,11727,11731,11735,11739,11743,11747,11751,11755,11759],{"type":3107,"tag":3390,"props":11695,"children":11696},{"style":3469},[11697],{"type":3112,"value":11698},"      \u003C",{"type":3107,"tag":3390,"props":11700,"children":11701},{"style":3535},[11702],{"type":3112,"value":3795},{"type":3107,"tag":3390,"props":11704,"children":11705},{"style":3541},[11706],{"type":3112,"value":3695},{"type":3107,"tag":3390,"props":11708,"children":11709},{"style":3469},[11710],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":11712,"children":11713},{"style":3469},[11714],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":11716,"children":11717},{"style":3402},[11718],{"type":3112,"value":3709},{"type":3107,"tag":3390,"props":11720,"children":11721},{"style":3469},[11722],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":11724,"children":11725},{"style":3541},[11726],{"type":3112,"value":3800},{"type":3107,"tag":3390,"props":11728,"children":11729},{"style":3469},[11730],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":11732,"children":11733},{"style":3469},[11734],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":11736,"children":11737},{"style":3402},[11738],{"type":3112,"value":3813},{"type":3107,"tag":3390,"props":11740,"children":11741},{"style":3469},[11742],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":11744,"children":11745},{"style":3469},[11746],{"type":3112,"value":3734},{"type":3107,"tag":3390,"props":11748,"children":11749},{"style":3464},[11750],{"type":3112,"value":3826},{"type":3107,"tag":3390,"props":11752,"children":11753},{"style":3469},[11754],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":11756,"children":11757},{"style":3535},[11758],{"type":3112,"value":3795},{"type":3107,"tag":3390,"props":11760,"children":11761},{"style":3469},[11762],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":11764,"children":11765},{"class":3392,"line":3662},[11766,11770,11775,11779,11784,11788,11792,11797,11801,11805,11810,11814,11818],{"type":3107,"tag":3390,"props":11767,"children":11768},{"style":3469},[11769],{"type":3112,"value":11698},{"type":3107,"tag":3390,"props":11771,"children":11772},{"style":3535},[11773],{"type":3112,"value":11774},"NuxtLink",{"type":3107,"tag":3390,"props":11776,"children":11777},{"style":3541},[11778],{"type":3112,"value":3871},{"type":3107,"tag":3390,"props":11780,"children":11781},{"style":3541},[11782],{"type":3112,"value":11783}," to",{"type":3107,"tag":3390,"props":11785,"children":11786},{"style":3469},[11787],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":11789,"children":11790},{"style":3469},[11791],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":11793,"children":11794},{"style":3402},[11795],{"type":3112,"value":11796},"\u002Flogin",{"type":3107,"tag":3390,"props":11798,"children":11799},{"style":3469},[11800],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":11802,"children":11803},{"style":3469},[11804],{"type":3112,"value":3734},{"type":3107,"tag":3390,"props":11806,"children":11807},{"style":3464},[11808],{"type":3112,"value":11809},"Login",{"type":3107,"tag":3390,"props":11811,"children":11812},{"style":3469},[11813],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":11815,"children":11816},{"style":3535},[11817],{"type":3112,"value":11774},{"type":3107,"tag":3390,"props":11819,"children":11820},{"style":3469},[11821],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":11823,"children":11824},{"class":3392,"line":3679},[11825,11830,11834],{"type":3107,"tag":3390,"props":11826,"children":11827},{"style":3469},[11828],{"type":3112,"value":11829},"    \u003C\u002F",{"type":3107,"tag":3390,"props":11831,"children":11832},{"style":3535},[11833],{"type":3112,"value":11664},{"type":3107,"tag":3390,"props":11835,"children":11836},{"style":3469},[11837],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":11839,"children":11840},{"class":3392,"line":3012},[11841,11845,11849],{"type":3107,"tag":3390,"props":11842,"children":11843},{"style":3469},[11844],{"type":3112,"value":3847},{"type":3107,"tag":3390,"props":11846,"children":11847},{"style":3535},[11848],{"type":3112,"value":11648},{"type":3107,"tag":3390,"props":11850,"children":11851},{"style":3469},[11852],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":11854,"children":11855},{"class":3392,"line":3008},[11856,11860,11864],{"type":3107,"tag":3390,"props":11857,"children":11858},{"style":3469},[11859],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":11861,"children":11862},{"style":3535},[11863],{"type":3112,"value":3672},{"type":3107,"tag":3390,"props":11865,"children":11866},{"style":3469},[11867],{"type":3112,"value":3549},{"type":3107,"tag":3114,"props":11869,"children":11870},{},[11871,11873,11878],{"type":3112,"value":11872},"If the page is cached or prerendered or the load strategy set as ",{"type":3107,"tag":3252,"props":11874,"children":11876},{"className":11875},[],[11877],{"type":3112,"value":11411},{"type":3112,"value":11879},", nothing will be rendered until the user session is fetched on the client-side.",{"type":3107,"tag":3114,"props":11881,"children":11882},{},[11883,11884,11890],{"type":3112,"value":11602},{"type":3107,"tag":3252,"props":11885,"children":11887},{"className":11886},[],[11888],{"type":3112,"value":11889},"placeholder",{"type":3112,"value":11891}," slot to show a placeholder on server-side and while the user session is being fetched on client-side for the prerendered pages:",{"type":3107,"tag":3380,"props":11893,"children":11895},{"className":3518,"code":11894,"language":3520,"meta":2980,"style":2980},"\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",[11896],{"type":3107,"tag":3252,"props":11897,"children":11898},{"__ignoreMap":2980},[11899,11914,11929,11944,12002,12074,12129,12145,12168,12205,12220,12235,12250],{"type":3107,"tag":3390,"props":11900,"children":11901},{"class":3392,"line":3066},[11902,11906,11910],{"type":3107,"tag":3390,"props":11903,"children":11904},{"style":3469},[11905],{"type":3112,"value":3532},{"type":3107,"tag":3390,"props":11907,"children":11908},{"style":3535},[11909],{"type":3112,"value":3672},{"type":3107,"tag":3390,"props":11911,"children":11912},{"style":3469},[11913],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":11915,"children":11916},{"class":3392,"line":3032},[11917,11921,11925],{"type":3107,"tag":3390,"props":11918,"children":11919},{"style":3469},[11920],{"type":3112,"value":3685},{"type":3107,"tag":3390,"props":11922,"children":11923},{"style":3535},[11924],{"type":3112,"value":11648},{"type":3107,"tag":3390,"props":11926,"children":11927},{"style":3469},[11928],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":11930,"children":11931},{"class":3392,"line":3016},[11932,11936,11940],{"type":3107,"tag":3390,"props":11933,"children":11934},{"style":3469},[11935],{"type":3112,"value":3725},{"type":3107,"tag":3390,"props":11937,"children":11938},{"style":3535},[11939],{"type":3112,"value":11664},{"type":3107,"tag":3390,"props":11941,"children":11942},{"style":3469},[11943],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":11945,"children":11946},{"class":3392,"line":3653},[11947,11951,11955,11960,11965,11969,11973,11977,11981,11985,11990,11994,11998],{"type":3107,"tag":3390,"props":11948,"children":11949},{"style":3469},[11950],{"type":3112,"value":11698},{"type":3107,"tag":3390,"props":11952,"children":11953},{"style":3535},[11954],{"type":3112,"value":3672},{"type":3107,"tag":3390,"props":11956,"children":11957},{"style":3469},[11958],{"type":3112,"value":11959}," #",{"type":3107,"tag":3390,"props":11961,"children":11962},{"style":3541},[11963],{"type":3112,"value":11964},"default",{"type":3107,"tag":3390,"props":11966,"children":11967},{"style":3469},[11968],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":11970,"children":11971},{"style":3469},[11972],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":11974,"children":11975},{"style":3469},[11976],{"type":3112,"value":7761},{"type":3107,"tag":3390,"props":11978,"children":11979},{"style":3464},[11980],{"type":3112,"value":3567},{"type":3107,"tag":3390,"props":11982,"children":11983},{"style":3469},[11984],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":11986,"children":11987},{"style":3464},[11988],{"type":3112,"value":11989}," clear ",{"type":3107,"tag":3390,"props":11991,"children":11992},{"style":3469},[11993],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":11995,"children":11996},{"style":3469},[11997],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":11999,"children":12000},{"style":3469},[12001],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":12003,"children":12004},{"class":3392,"line":3662},[12005,12010,12014,12018,12022,12026,12030,12034,12038,12042,12046,12050,12054,12058,12062,12066,12070],{"type":3107,"tag":3390,"props":12006,"children":12007},{"style":3469},[12008],{"type":3112,"value":12009},"        \u003C",{"type":3107,"tag":3390,"props":12011,"children":12012},{"style":3535},[12013],{"type":3112,"value":3795},{"type":3107,"tag":3390,"props":12015,"children":12016},{"style":3541},[12017],{"type":3112,"value":3695},{"type":3107,"tag":3390,"props":12019,"children":12020},{"style":3469},[12021],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":12023,"children":12024},{"style":3469},[12025],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":12027,"children":12028},{"style":3402},[12029],{"type":3112,"value":3709},{"type":3107,"tag":3390,"props":12031,"children":12032},{"style":3469},[12033],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":12035,"children":12036},{"style":3541},[12037],{"type":3112,"value":3800},{"type":3107,"tag":3390,"props":12039,"children":12040},{"style":3469},[12041],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":12043,"children":12044},{"style":3469},[12045],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":12047,"children":12048},{"style":3402},[12049],{"type":3112,"value":3813},{"type":3107,"tag":3390,"props":12051,"children":12052},{"style":3469},[12053],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":12055,"children":12056},{"style":3469},[12057],{"type":3112,"value":3734},{"type":3107,"tag":3390,"props":12059,"children":12060},{"style":3464},[12061],{"type":3112,"value":3826},{"type":3107,"tag":3390,"props":12063,"children":12064},{"style":3469},[12065],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":12067,"children":12068},{"style":3535},[12069],{"type":3112,"value":3795},{"type":3107,"tag":3390,"props":12071,"children":12072},{"style":3469},[12073],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":12075,"children":12076},{"class":3392,"line":3679},[12077,12081,12085,12089,12093,12097,12101,12105,12109,12113,12117,12121,12125],{"type":3107,"tag":3390,"props":12078,"children":12079},{"style":3469},[12080],{"type":3112,"value":12009},{"type":3107,"tag":3390,"props":12082,"children":12083},{"style":3535},[12084],{"type":3112,"value":11774},{"type":3107,"tag":3390,"props":12086,"children":12087},{"style":3541},[12088],{"type":3112,"value":3871},{"type":3107,"tag":3390,"props":12090,"children":12091},{"style":3541},[12092],{"type":3112,"value":11783},{"type":3107,"tag":3390,"props":12094,"children":12095},{"style":3469},[12096],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":12098,"children":12099},{"style":3469},[12100],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":12102,"children":12103},{"style":3402},[12104],{"type":3112,"value":11796},{"type":3107,"tag":3390,"props":12106,"children":12107},{"style":3469},[12108],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":12110,"children":12111},{"style":3469},[12112],{"type":3112,"value":3734},{"type":3107,"tag":3390,"props":12114,"children":12115},{"style":3464},[12116],{"type":3112,"value":11809},{"type":3107,"tag":3390,"props":12118,"children":12119},{"style":3469},[12120],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":12122,"children":12123},{"style":3535},[12124],{"type":3112,"value":11774},{"type":3107,"tag":3390,"props":12126,"children":12127},{"style":3469},[12128],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":12130,"children":12131},{"class":3392,"line":3012},[12132,12137,12141],{"type":3107,"tag":3390,"props":12133,"children":12134},{"style":3469},[12135],{"type":3112,"value":12136},"      \u003C\u002F",{"type":3107,"tag":3390,"props":12138,"children":12139},{"style":3535},[12140],{"type":3112,"value":3672},{"type":3107,"tag":3390,"props":12142,"children":12143},{"style":3469},[12144],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":12146,"children":12147},{"class":3392,"line":3008},[12148,12152,12156,12160,12164],{"type":3107,"tag":3390,"props":12149,"children":12150},{"style":3469},[12151],{"type":3112,"value":11698},{"type":3107,"tag":3390,"props":12153,"children":12154},{"style":3535},[12155],{"type":3112,"value":3672},{"type":3107,"tag":3390,"props":12157,"children":12158},{"style":3469},[12159],{"type":3112,"value":11959},{"type":3107,"tag":3390,"props":12161,"children":12162},{"style":3541},[12163],{"type":3112,"value":11889},{"type":3107,"tag":3390,"props":12165,"children":12166},{"style":3469},[12167],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":12169,"children":12170},{"class":3392,"line":3004},[12171,12175,12179,12184,12188,12193,12197,12201],{"type":3107,"tag":3390,"props":12172,"children":12173},{"style":3469},[12174],{"type":3112,"value":12009},{"type":3107,"tag":3390,"props":12176,"children":12177},{"style":3535},[12178],{"type":3112,"value":3795},{"type":3107,"tag":3390,"props":12180,"children":12181},{"style":3541},[12182],{"type":3112,"value":12183}," disabled",{"type":3107,"tag":3390,"props":12185,"children":12186},{"style":3469},[12187],{"type":3112,"value":3734},{"type":3107,"tag":3390,"props":12189,"children":12190},{"style":3464},[12191],{"type":3112,"value":12192},"Loading...",{"type":3107,"tag":3390,"props":12194,"children":12195},{"style":3469},[12196],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":12198,"children":12199},{"style":3535},[12200],{"type":3112,"value":3795},{"type":3107,"tag":3390,"props":12202,"children":12203},{"style":3469},[12204],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":12206,"children":12207},{"class":3392,"line":3841},[12208,12212,12216],{"type":3107,"tag":3390,"props":12209,"children":12210},{"style":3469},[12211],{"type":3112,"value":12136},{"type":3107,"tag":3390,"props":12213,"children":12214},{"style":3535},[12215],{"type":3112,"value":3672},{"type":3107,"tag":3390,"props":12217,"children":12218},{"style":3469},[12219],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":12221,"children":12222},{"class":3392,"line":3095},[12223,12227,12231],{"type":3107,"tag":3390,"props":12224,"children":12225},{"style":3469},[12226],{"type":3112,"value":11829},{"type":3107,"tag":3390,"props":12228,"children":12229},{"style":3535},[12230],{"type":3112,"value":11664},{"type":3107,"tag":3390,"props":12232,"children":12233},{"style":3469},[12234],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":12236,"children":12237},{"class":3392,"line":3878},[12238,12242,12246],{"type":3107,"tag":3390,"props":12239,"children":12240},{"style":3469},[12241],{"type":3112,"value":3847},{"type":3107,"tag":3390,"props":12243,"children":12244},{"style":3535},[12245],{"type":3112,"value":11648},{"type":3107,"tag":3390,"props":12247,"children":12248},{"style":3469},[12249],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":12251,"children":12252},{"class":3392,"line":3911},[12253,12257,12261],{"type":3107,"tag":3390,"props":12254,"children":12255},{"style":3469},[12256],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":12258,"children":12259},{"style":3535},[12260],{"type":3112,"value":3672},{"type":3107,"tag":3390,"props":12262,"children":12263},{"style":3469},[12264],{"type":3112,"value":3549},{"type":3107,"tag":3114,"props":12266,"children":12267},{},[12268,12270,12275,12277,12283,12285,12291],{"type":3112,"value":12269},"If you are caching your routes with ",{"type":3107,"tag":3252,"props":12271,"children":12273},{"className":12272},[],[12274],{"type":3112,"value":11311},{"type":3112,"value":12276},", please make sure to use ",{"type":3107,"tag":3118,"props":12278,"children":12281},{"href":12279,"rel":12280},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fnitro",[3122],[12282],{"type":3112,"value":837},{"type":3112,"value":12284}," >= ",{"type":3107,"tag":3252,"props":12286,"children":12288},{"className":12287},[],[12289],{"type":3112,"value":12290},"2.9.7",{"type":3112,"value":12292}," to support the client-side fetching of the user session.",{"type":3107,"tag":3198,"props":12294,"children":12296},{"id":12295},"websocket-support",[12297],{"type":3112,"value":12298},"WebSocket Support",{"type":3107,"tag":3114,"props":12300,"children":12301},{},[12302,12304,12311],{"type":3112,"value":12303},"Nuxt Auth Utils is compatible with ",{"type":3107,"tag":3118,"props":12305,"children":12308},{"href":12306,"rel":12307},"https:\u002F\u002Fnitro.build\u002Fguide\u002Fwebsocket",[3122],[12309],{"type":3112,"value":12310},"Nitro WebSockets",{"type":3112,"value":3345},{"type":3107,"tag":3114,"props":12313,"children":12314},{},[12315,12317,12323,12324,12329],{"type":3112,"value":12316},"Make sure to enable the ",{"type":3107,"tag":3252,"props":12318,"children":12320},{"className":12319},[],[12321],{"type":3112,"value":12322},"experimental.websocket",{"type":3112,"value":11339},{"type":3107,"tag":3252,"props":12325,"children":12327},{"className":12326},[],[12328],{"type":3112,"value":233},{"type":3112,"value":4129},{"type":3107,"tag":3380,"props":12331,"children":12333},{"className":4068,"code":12332,"language":4070,"meta":2980,"style":2980},"export default defineNuxtConfig({\n  nitro: {\n    experimental: {\n      websocket: true\n    }\n  }\n})\n",[12334],{"type":3107,"tag":3252,"props":12335,"children":12336},{"__ignoreMap":2980},[12337,12360,12376,12392,12408,12415,12422],{"type":3107,"tag":3390,"props":12338,"children":12339},{"class":3392,"line":3066},[12340,12344,12348,12352,12356],{"type":3107,"tag":3390,"props":12341,"children":12342},{"style":4652},[12343],{"type":3112,"value":5186},{"type":3107,"tag":3390,"props":12345,"children":12346},{"style":4652},[12347],{"type":3112,"value":5301},{"type":3107,"tag":3390,"props":12349,"children":12350},{"style":3626},[12351],{"type":3112,"value":5306},{"type":3107,"tag":3390,"props":12353,"children":12354},{"style":3464},[12355],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":12357,"children":12358},{"style":3469},[12359],{"type":3112,"value":5316},{"type":3107,"tag":3390,"props":12361,"children":12362},{"class":3392,"line":3032},[12363,12368,12372],{"type":3107,"tag":3390,"props":12364,"children":12365},{"style":3535},[12366],{"type":3112,"value":12367},"  nitro",{"type":3107,"tag":3390,"props":12369,"children":12370},{"style":3469},[12371],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":12373,"children":12374},{"style":3469},[12375],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":12377,"children":12378},{"class":3392,"line":3016},[12379,12384,12388],{"type":3107,"tag":3390,"props":12380,"children":12381},{"style":3535},[12382],{"type":3112,"value":12383},"    experimental",{"type":3107,"tag":3390,"props":12385,"children":12386},{"style":3469},[12387],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":12389,"children":12390},{"style":3469},[12391],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":12393,"children":12394},{"class":3392,"line":3653},[12395,12400,12404],{"type":3107,"tag":3390,"props":12396,"children":12397},{"style":3535},[12398],{"type":3112,"value":12399},"      websocket",{"type":3107,"tag":3390,"props":12401,"children":12402},{"style":3469},[12403],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":12405,"children":12406},{"style":5836},[12407],{"type":3112,"value":5839},{"type":3107,"tag":3390,"props":12409,"children":12410},{"class":3392,"line":3662},[12411],{"type":3107,"tag":3390,"props":12412,"children":12413},{"style":3469},[12414],{"type":3112,"value":5442},{"type":3107,"tag":3390,"props":12416,"children":12417},{"class":3392,"line":3679},[12418],{"type":3107,"tag":3390,"props":12419,"children":12420},{"style":3469},[12421],{"type":3112,"value":5090},{"type":3107,"tag":3390,"props":12423,"children":12424},{"class":3392,"line":3012},[12425,12429],{"type":3107,"tag":3390,"props":12426,"children":12427},{"style":3469},[12428],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":12430,"children":12431},{"style":3464},[12432],{"type":3112,"value":4832},{"type":3107,"tag":3114,"props":12434,"children":12435},{},[12436,12437,12443,12445,12451],{"type":3112,"value":11602},{"type":3107,"tag":3252,"props":12438,"children":12440},{"className":12439},[],[12441],{"type":3112,"value":12442},"requireUserSession",{"type":3112,"value":12444}," function in the ",{"type":3107,"tag":3252,"props":12446,"children":12448},{"className":12447},[],[12449],{"type":3112,"value":12450},"upgrade",{"type":3112,"value":12452}," function to check if the user is authenticated before upgrading the WebSocket connection.",{"type":3107,"tag":3380,"props":12454,"children":12456},{"className":4068,"code":12455,"language":4070,"meta":2980,"style":2980},"\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",[12457],{"type":3107,"tag":3252,"props":12458,"children":12459},{"__ignoreMap":2980},[12460,12468,12492,12521,12529,12552,12559,12588,12631,12638,12701,12708,12740,12785,12792],{"type":3107,"tag":3390,"props":12461,"children":12462},{"class":3392,"line":3066},[12463],{"type":3107,"tag":3390,"props":12464,"children":12465},{"style":3455},[12466],{"type":3112,"value":12467},"\u002F\u002F server\u002Froutes\u002Fws.ts\n",{"type":3107,"tag":3390,"props":12469,"children":12470},{"class":3392,"line":3032},[12471,12475,12479,12484,12488],{"type":3107,"tag":3390,"props":12472,"children":12473},{"style":4652},[12474],{"type":3112,"value":5186},{"type":3107,"tag":3390,"props":12476,"children":12477},{"style":4652},[12478],{"type":3112,"value":5301},{"type":3107,"tag":3390,"props":12480,"children":12481},{"style":3626},[12482],{"type":3112,"value":12483}," defineWebSocketHandler",{"type":3107,"tag":3390,"props":12485,"children":12486},{"style":3464},[12487],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":12489,"children":12490},{"style":3469},[12491],{"type":3112,"value":5316},{"type":3107,"tag":3390,"props":12493,"children":12494},{"class":3392,"line":3016},[12495,12499,12504,12508,12513,12517],{"type":3107,"tag":3390,"props":12496,"children":12497},{"style":3541},[12498],{"type":3112,"value":5854},{"type":3107,"tag":3390,"props":12500,"children":12501},{"style":3535},[12502],{"type":3112,"value":12503}," upgrade",{"type":3107,"tag":3390,"props":12505,"children":12506},{"style":3469},[12507],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":12509,"children":12510},{"style":4484},[12511],{"type":3112,"value":12512},"request",{"type":3107,"tag":3390,"props":12514,"children":12515},{"style":3469},[12516],{"type":3112,"value":6072},{"type":3107,"tag":3390,"props":12518,"children":12519},{"style":3469},[12520],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":12522,"children":12523},{"class":3392,"line":3653},[12524],{"type":3107,"tag":3390,"props":12525,"children":12526},{"style":3455},[12527],{"type":3112,"value":12528},"    \u002F\u002F Make sure the user is authenticated before upgrading the WebSocket connection\n",{"type":3107,"tag":3390,"props":12530,"children":12531},{"class":3392,"line":3662},[12532,12536,12540,12544,12548],{"type":3107,"tag":3390,"props":12533,"children":12534},{"style":4652},[12535],{"type":3112,"value":5905},{"type":3107,"tag":3390,"props":12537,"children":12538},{"style":3626},[12539],{"type":3112,"value":4988},{"type":3107,"tag":3390,"props":12541,"children":12542},{"style":3535},[12543],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":12545,"children":12546},{"style":3464},[12547],{"type":3112,"value":12512},{"type":3107,"tag":3390,"props":12549,"children":12550},{"style":3535},[12551],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":12553,"children":12554},{"class":3392,"line":3679},[12555],{"type":3107,"tag":3390,"props":12556,"children":12557},{"style":3469},[12558],{"type":3112,"value":4730},{"type":3107,"tag":3390,"props":12560,"children":12561},{"class":3392,"line":3012},[12562,12566,12571,12575,12580,12584],{"type":3107,"tag":3390,"props":12563,"children":12564},{"style":3541},[12565],{"type":3112,"value":5854},{"type":3107,"tag":3390,"props":12567,"children":12568},{"style":3535},[12569],{"type":3112,"value":12570}," open",{"type":3107,"tag":3390,"props":12572,"children":12573},{"style":3469},[12574],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":12576,"children":12577},{"style":4484},[12578],{"type":3112,"value":12579},"peer",{"type":3107,"tag":3390,"props":12581,"children":12582},{"style":3469},[12583],{"type":3112,"value":6072},{"type":3107,"tag":3390,"props":12585,"children":12586},{"style":3469},[12587],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":12589,"children":12590},{"class":3392,"line":3008},[12591,12595,12599,12603,12607,12611,12615,12619,12623,12627],{"type":3107,"tag":3390,"props":12592,"children":12593},{"style":3541},[12594],{"type":3112,"value":7622},{"type":3107,"tag":3390,"props":12596,"children":12597},{"style":3469},[12598],{"type":3112,"value":3562},{"type":3107,"tag":3390,"props":12600,"children":12601},{"style":3464},[12602],{"type":3112,"value":3577},{"type":3107,"tag":3390,"props":12604,"children":12605},{"style":3469},[12606],{"type":3112,"value":7502},{"type":3107,"tag":3390,"props":12608,"children":12609},{"style":3469},[12610],{"type":3112,"value":3623},{"type":3107,"tag":3390,"props":12612,"children":12613},{"style":4652},[12614],{"type":3112,"value":4908},{"type":3107,"tag":3390,"props":12616,"children":12617},{"style":3626},[12618],{"type":3112,"value":4988},{"type":3107,"tag":3390,"props":12620,"children":12621},{"style":3535},[12622],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":12624,"children":12625},{"style":3464},[12626],{"type":3112,"value":12579},{"type":3107,"tag":3390,"props":12628,"children":12629},{"style":3535},[12630],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":12632,"children":12633},{"class":3392,"line":3004},[12634],{"type":3107,"tag":3390,"props":12635,"children":12636},{"emptyLinePlaceholder":1200},[12637],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":12639,"children":12640},{"class":3392,"line":3841},[12641,12646,12650,12655,12659,12663,12668,12672,12676,12680,12685,12689,12693,12697],{"type":3107,"tag":3390,"props":12642,"children":12643},{"style":3464},[12644],{"type":3112,"value":12645},"    peer",{"type":3107,"tag":3390,"props":12647,"children":12648},{"style":3469},[12649],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":12651,"children":12652},{"style":3626},[12653],{"type":3112,"value":12654},"send",{"type":3107,"tag":3390,"props":12656,"children":12657},{"style":3535},[12658],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":12660,"children":12661},{"style":3469},[12662],{"type":3112,"value":8090},{"type":3107,"tag":3390,"props":12664,"children":12665},{"style":3402},[12666],{"type":3112,"value":12667},"Hello, ",{"type":3107,"tag":3390,"props":12669,"children":12670},{"style":3469},[12671],{"type":3112,"value":9429},{"type":3107,"tag":3390,"props":12673,"children":12674},{"style":3464},[12675],{"type":3112,"value":7676},{"type":3107,"tag":3390,"props":12677,"children":12678},{"style":3469},[12679],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":12681,"children":12682},{"style":3464},[12683],{"type":3112,"value":12684},"name",{"type":3107,"tag":3390,"props":12686,"children":12687},{"style":3469},[12688],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":12690,"children":12691},{"style":3402},[12692],{"type":3112,"value":8115},{"type":3107,"tag":3390,"props":12694,"children":12695},{"style":3469},[12696],{"type":3112,"value":8090},{"type":3107,"tag":3390,"props":12698,"children":12699},{"style":3535},[12700],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":12702,"children":12703},{"class":3392,"line":3095},[12704],{"type":3107,"tag":3390,"props":12705,"children":12706},{"style":3469},[12707],{"type":3112,"value":4730},{"type":3107,"tag":3390,"props":12709,"children":12710},{"class":3392,"line":3878},[12711,12716,12720,12724,12728,12732,12736],{"type":3107,"tag":3390,"props":12712,"children":12713},{"style":3535},[12714],{"type":3112,"value":12715},"  message",{"type":3107,"tag":3390,"props":12717,"children":12718},{"style":3469},[12719],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":12721,"children":12722},{"style":4484},[12723],{"type":3112,"value":12579},{"type":3107,"tag":3390,"props":12725,"children":12726},{"style":3469},[12727],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":12729,"children":12730},{"style":4484},[12731],{"type":3112,"value":7784},{"type":3107,"tag":3390,"props":12733,"children":12734},{"style":3469},[12735],{"type":3112,"value":6072},{"type":3107,"tag":3390,"props":12737,"children":12738},{"style":3469},[12739],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":12741,"children":12742},{"class":3392,"line":3911},[12743,12747,12751,12755,12759,12763,12768,12772,12777,12781],{"type":3107,"tag":3390,"props":12744,"children":12745},{"style":3464},[12746],{"type":3112,"value":12645},{"type":3107,"tag":3390,"props":12748,"children":12749},{"style":3469},[12750],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":12752,"children":12753},{"style":3626},[12754],{"type":3112,"value":12654},{"type":3107,"tag":3390,"props":12756,"children":12757},{"style":3535},[12758],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":12760,"children":12761},{"style":3469},[12762],{"type":3112,"value":8090},{"type":3107,"tag":3390,"props":12764,"children":12765},{"style":3402},[12766],{"type":3112,"value":12767},"Echo: ",{"type":3107,"tag":3390,"props":12769,"children":12770},{"style":3469},[12771],{"type":3112,"value":9429},{"type":3107,"tag":3390,"props":12773,"children":12774},{"style":3464},[12775],{"type":3112,"value":12776},"message",{"type":3107,"tag":3390,"props":12778,"children":12779},{"style":3469},[12780],{"type":3112,"value":9439},{"type":3107,"tag":3390,"props":12782,"children":12783},{"style":3535},[12784],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":12786,"children":12787},{"class":3392,"line":3966},[12788],{"type":3107,"tag":3390,"props":12789,"children":12790},{"style":3469},[12791],{"type":3112,"value":4730},{"type":3107,"tag":3390,"props":12793,"children":12794},{"class":3392,"line":3975},[12795,12799],{"type":3107,"tag":3390,"props":12796,"children":12797},{"style":3469},[12798],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":12800,"children":12801},{"style":3464},[12802],{"type":3112,"value":4832},{"type":3107,"tag":3114,"props":12804,"children":12805},{},[12806,12808,12815],{"type":3112,"value":12807},"Then, in your application, you can use the ",{"type":3107,"tag":3118,"props":12809,"children":12812},{"href":12810,"rel":12811},"https:\u002F\u002Fvueuse.org\u002Fcore\u002FuseWebSocket\u002F",[3122],[12813],{"type":3112,"value":12814},"useWebSocket",{"type":3112,"value":12816}," composable to connect to the WebSocket:",{"type":3107,"tag":3380,"props":12818,"children":12820},{"className":3518,"code":12819,"language":3520,"meta":2980,"style":2980},"\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",[12821],{"type":3107,"tag":3252,"props":12822,"children":12823},{"__ignoreMap":2980},[12824,12843,12954,12961,12969,12982,12997,13004,13019,13034,13066,13098,13113,13166,13219,13272,13287,13302],{"type":3107,"tag":3390,"props":12825,"children":12826},{"class":3392,"line":3066},[12827,12831,12835,12839],{"type":3107,"tag":3390,"props":12828,"children":12829},{"style":3469},[12830],{"type":3112,"value":3532},{"type":3107,"tag":3390,"props":12832,"children":12833},{"style":3535},[12834],{"type":3112,"value":3538},{"type":3107,"tag":3390,"props":12836,"children":12837},{"style":3541},[12838],{"type":3112,"value":3544},{"type":3107,"tag":3390,"props":12840,"children":12841},{"style":3469},[12842],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":12844,"children":12845},{"class":3392,"line":3032},[12846,12850,12854,12859,12863,12868,12872,12877,12881,12885,12889,12894,12898,12902,12907,12911,12915,12920,12924,12928,12932,12937,12941,12946,12950],{"type":3107,"tag":3390,"props":12847,"children":12848},{"style":3541},[12849],{"type":3112,"value":3557},{"type":3107,"tag":3390,"props":12851,"children":12852},{"style":3469},[12853],{"type":3112,"value":3562},{"type":3107,"tag":3390,"props":12855,"children":12856},{"style":3464},[12857],{"type":3112,"value":12858}," status",{"type":3107,"tag":3390,"props":12860,"children":12861},{"style":3469},[12862],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":12864,"children":12865},{"style":3464},[12866],{"type":3112,"value":12867}," data",{"type":3107,"tag":3390,"props":12869,"children":12870},{"style":3469},[12871],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":12873,"children":12874},{"style":3464},[12875],{"type":3112,"value":12876}," send",{"type":3107,"tag":3390,"props":12878,"children":12879},{"style":3469},[12880],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":12882,"children":12883},{"style":3464},[12884],{"type":3112,"value":12570},{"type":3107,"tag":3390,"props":12886,"children":12887},{"style":3469},[12888],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":12890,"children":12891},{"style":3464},[12892],{"type":3112,"value":12893}," close ",{"type":3107,"tag":3390,"props":12895,"children":12896},{"style":3469},[12897],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":12899,"children":12900},{"style":3469},[12901],{"type":3112,"value":3623},{"type":3107,"tag":3390,"props":12903,"children":12904},{"style":3626},[12905],{"type":3112,"value":12906}," useWebSocket",{"type":3107,"tag":3390,"props":12908,"children":12909},{"style":3464},[12910],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":12912,"children":12913},{"style":3469},[12914],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":12916,"children":12917},{"style":3402},[12918],{"type":3112,"value":12919},"\u002Fws",{"type":3107,"tag":3390,"props":12921,"children":12922},{"style":3469},[12923],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":12925,"children":12926},{"style":3469},[12927],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":12929,"children":12930},{"style":3469},[12931],{"type":3112,"value":3562},{"type":3107,"tag":3390,"props":12933,"children":12934},{"style":3535},[12935],{"type":3112,"value":12936}," immediate",{"type":3107,"tag":3390,"props":12938,"children":12939},{"style":3469},[12940],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":12942,"children":12943},{"style":5836},[12944],{"type":3112,"value":12945}," false",{"type":3107,"tag":3390,"props":12947,"children":12948},{"style":3469},[12949],{"type":3112,"value":7502},{"type":3107,"tag":3390,"props":12951,"children":12952},{"style":3464},[12953],{"type":3112,"value":4832},{"type":3107,"tag":3390,"props":12955,"children":12956},{"class":3392,"line":3016},[12957],{"type":3107,"tag":3390,"props":12958,"children":12959},{"emptyLinePlaceholder":1200},[12960],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":12962,"children":12963},{"class":3392,"line":3653},[12964],{"type":3107,"tag":3390,"props":12965,"children":12966},{"style":3455},[12967],{"type":3112,"value":12968},"\u002F\u002F Only open the websocket after the page is hydrated (client-only)\n",{"type":3107,"tag":3390,"props":12970,"children":12971},{"class":3392,"line":3662},[12972,12977],{"type":3107,"tag":3390,"props":12973,"children":12974},{"style":3626},[12975],{"type":3112,"value":12976},"onMounted",{"type":3107,"tag":3390,"props":12978,"children":12979},{"style":3464},[12980],{"type":3112,"value":12981},"(open)\n",{"type":3107,"tag":3390,"props":12983,"children":12984},{"class":3392,"line":3679},[12985,12989,12993],{"type":3107,"tag":3390,"props":12986,"children":12987},{"style":3469},[12988],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":12990,"children":12991},{"style":3535},[12992],{"type":3112,"value":3538},{"type":3107,"tag":3390,"props":12994,"children":12995},{"style":3469},[12996],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":12998,"children":12999},{"class":3392,"line":3012},[13000],{"type":3107,"tag":3390,"props":13001,"children":13002},{"emptyLinePlaceholder":1200},[13003],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":13005,"children":13006},{"class":3392,"line":3008},[13007,13011,13015],{"type":3107,"tag":3390,"props":13008,"children":13009},{"style":3469},[13010],{"type":3112,"value":3532},{"type":3107,"tag":3390,"props":13012,"children":13013},{"style":3535},[13014],{"type":3112,"value":3672},{"type":3107,"tag":3390,"props":13016,"children":13017},{"style":3469},[13018],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":13020,"children":13021},{"class":3392,"line":3004},[13022,13026,13030],{"type":3107,"tag":3390,"props":13023,"children":13024},{"style":3469},[13025],{"type":3112,"value":3685},{"type":3107,"tag":3390,"props":13027,"children":13028},{"style":3535},[13029],{"type":3112,"value":3690},{"type":3107,"tag":3390,"props":13031,"children":13032},{"style":3469},[13033],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":13035,"children":13036},{"class":3392,"line":3841},[13037,13041,13045,13049,13054,13058,13062],{"type":3107,"tag":3390,"props":13038,"children":13039},{"style":3469},[13040],{"type":3112,"value":3725},{"type":3107,"tag":3390,"props":13042,"children":13043},{"style":3535},[13044],{"type":3112,"value":3114},{"type":3107,"tag":3390,"props":13046,"children":13047},{"style":3469},[13048],{"type":3112,"value":3734},{"type":3107,"tag":3390,"props":13050,"children":13051},{"style":3464},[13052],{"type":3112,"value":13053},"Status: {{ status }}",{"type":3107,"tag":3390,"props":13055,"children":13056},{"style":3469},[13057],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":13059,"children":13060},{"style":3535},[13061],{"type":3112,"value":3114},{"type":3107,"tag":3390,"props":13063,"children":13064},{"style":3469},[13065],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":13067,"children":13068},{"class":3392,"line":3095},[13069,13073,13077,13081,13086,13090,13094],{"type":3107,"tag":3390,"props":13070,"children":13071},{"style":3469},[13072],{"type":3112,"value":3725},{"type":3107,"tag":3390,"props":13074,"children":13075},{"style":3535},[13076],{"type":3112,"value":3114},{"type":3107,"tag":3390,"props":13078,"children":13079},{"style":3469},[13080],{"type":3112,"value":3734},{"type":3107,"tag":3390,"props":13082,"children":13083},{"style":3464},[13084],{"type":3112,"value":13085},"Data: {{ data }}",{"type":3107,"tag":3390,"props":13087,"children":13088},{"style":3469},[13089],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":13091,"children":13092},{"style":3535},[13093],{"type":3112,"value":3114},{"type":3107,"tag":3390,"props":13095,"children":13096},{"style":3469},[13097],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":13099,"children":13100},{"class":3392,"line":3878},[13101,13105,13109],{"type":3107,"tag":3390,"props":13102,"children":13103},{"style":3469},[13104],{"type":3112,"value":3725},{"type":3107,"tag":3390,"props":13106,"children":13107},{"style":3535},[13108],{"type":3112,"value":3114},{"type":3107,"tag":3390,"props":13110,"children":13111},{"style":3469},[13112],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":13114,"children":13115},{"class":3392,"line":3911},[13116,13120,13124,13128,13132,13136,13141,13145,13149,13154,13158,13162],{"type":3107,"tag":3390,"props":13117,"children":13118},{"style":3469},[13119],{"type":3112,"value":11698},{"type":3107,"tag":3390,"props":13121,"children":13122},{"style":3535},[13123],{"type":3112,"value":3795},{"type":3107,"tag":3390,"props":13125,"children":13126},{"style":3541},[13127],{"type":3112,"value":3800},{"type":3107,"tag":3390,"props":13129,"children":13130},{"style":3469},[13131],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":13133,"children":13134},{"style":3469},[13135],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":13137,"children":13138},{"style":3402},[13139],{"type":3112,"value":13140},"open",{"type":3107,"tag":3390,"props":13142,"children":13143},{"style":3469},[13144],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":13146,"children":13147},{"style":3469},[13148],{"type":3112,"value":3734},{"type":3107,"tag":3390,"props":13150,"children":13151},{"style":3464},[13152],{"type":3112,"value":13153},"Open",{"type":3107,"tag":3390,"props":13155,"children":13156},{"style":3469},[13157],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":13159,"children":13160},{"style":3535},[13161],{"type":3112,"value":3795},{"type":3107,"tag":3390,"props":13163,"children":13164},{"style":3469},[13165],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":13167,"children":13168},{"class":3392,"line":3966},[13169,13173,13177,13181,13185,13189,13194,13198,13202,13207,13211,13215],{"type":3107,"tag":3390,"props":13170,"children":13171},{"style":3469},[13172],{"type":3112,"value":11698},{"type":3107,"tag":3390,"props":13174,"children":13175},{"style":3535},[13176],{"type":3112,"value":3795},{"type":3107,"tag":3390,"props":13178,"children":13179},{"style":3541},[13180],{"type":3112,"value":3800},{"type":3107,"tag":3390,"props":13182,"children":13183},{"style":3469},[13184],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":13186,"children":13187},{"style":3469},[13188],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":13190,"children":13191},{"style":3402},[13192],{"type":3112,"value":13193},"close(1000, 'Closing')",{"type":3107,"tag":3390,"props":13195,"children":13196},{"style":3469},[13197],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":13199,"children":13200},{"style":3469},[13201],{"type":3112,"value":3734},{"type":3107,"tag":3390,"props":13203,"children":13204},{"style":3464},[13205],{"type":3112,"value":13206},"Close",{"type":3107,"tag":3390,"props":13208,"children":13209},{"style":3469},[13210],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":13212,"children":13213},{"style":3535},[13214],{"type":3112,"value":3795},{"type":3107,"tag":3390,"props":13216,"children":13217},{"style":3469},[13218],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":13220,"children":13221},{"class":3392,"line":3975},[13222,13226,13230,13234,13238,13242,13247,13251,13255,13260,13264,13268],{"type":3107,"tag":3390,"props":13223,"children":13224},{"style":3469},[13225],{"type":3112,"value":11698},{"type":3107,"tag":3390,"props":13227,"children":13228},{"style":3535},[13229],{"type":3112,"value":3795},{"type":3107,"tag":3390,"props":13231,"children":13232},{"style":3541},[13233],{"type":3112,"value":3800},{"type":3107,"tag":3390,"props":13235,"children":13236},{"style":3469},[13237],{"type":3112,"value":3472},{"type":3107,"tag":3390,"props":13239,"children":13240},{"style":3469},[13241],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":13243,"children":13244},{"style":3402},[13245],{"type":3112,"value":13246},"send('hello')",{"type":3107,"tag":3390,"props":13248,"children":13249},{"style":3469},[13250],{"type":3112,"value":3704},{"type":3107,"tag":3390,"props":13252,"children":13253},{"style":3469},[13254],{"type":3112,"value":3734},{"type":3107,"tag":3390,"props":13256,"children":13257},{"style":3464},[13258],{"type":3112,"value":13259},"Send hello",{"type":3107,"tag":3390,"props":13261,"children":13262},{"style":3469},[13263],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":13265,"children":13266},{"style":3535},[13267],{"type":3112,"value":3795},{"type":3107,"tag":3390,"props":13269,"children":13270},{"style":3469},[13271],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":13273,"children":13274},{"class":3392,"line":3000},[13275,13279,13283],{"type":3107,"tag":3390,"props":13276,"children":13277},{"style":3469},[13278],{"type":3112,"value":11829},{"type":3107,"tag":3390,"props":13280,"children":13281},{"style":3535},[13282],{"type":3112,"value":3114},{"type":3107,"tag":3390,"props":13284,"children":13285},{"style":3469},[13286],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":13288,"children":13289},{"class":3392,"line":4043},[13290,13294,13298],{"type":3107,"tag":3390,"props":13291,"children":13292},{"style":3469},[13293],{"type":3112,"value":3847},{"type":3107,"tag":3390,"props":13295,"children":13296},{"style":3535},[13297],{"type":3112,"value":3690},{"type":3107,"tag":3390,"props":13299,"children":13300},{"style":3469},[13301],{"type":3112,"value":3549},{"type":3107,"tag":3390,"props":13303,"children":13304},{"class":3392,"line":4313},[13305,13309,13313],{"type":3107,"tag":3390,"props":13306,"children":13307},{"style":3469},[13308],{"type":3112,"value":3642},{"type":3107,"tag":3390,"props":13310,"children":13311},{"style":3535},[13312],{"type":3112,"value":3672},{"type":3107,"tag":3390,"props":13314,"children":13315},{"style":3469},[13316],{"type":3112,"value":3549},{"type":3107,"tag":3198,"props":13318,"children":13320},{"id":13319},"configuration",[13321],{"type":3112,"value":29},{"type":3107,"tag":3114,"props":13323,"children":13324},{},[13325,13327,13333,13335,13348],{"type":3112,"value":13326},"We leverage ",{"type":3107,"tag":3252,"props":13328,"children":13330},{"className":13329},[],[13331],{"type":3112,"value":13332},"runtimeConfig.session",{"type":3112,"value":13334}," to give the defaults option to ",{"type":3107,"tag":3118,"props":13336,"children":13339},{"href":13337,"rel":13338},"https:\u002F\u002Fh3.unjs.io\u002Fexamples\u002Fhandle-session",[3122],[13340,13342],{"type":3112,"value":13341},"h3 ",{"type":3107,"tag":3252,"props":13343,"children":13345},{"className":13344},[],[13346],{"type":3112,"value":13347},"useSession",{"type":3112,"value":3345},{"type":3107,"tag":3114,"props":13350,"children":13351},{},[13352,13354,13359],{"type":3112,"value":13353},"You can overwrite the options in your ",{"type":3107,"tag":3252,"props":13355,"children":13357},{"className":13356},[],[13358],{"type":3112,"value":233},{"type":3112,"value":4129},{"type":3107,"tag":3380,"props":13361,"children":13363},{"className":4068,"code":13362,"language":4070,"meta":2980,"style":2980},"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",[13364],{"type":3107,"tag":3252,"props":13365,"children":13366},{"__ignoreMap":2980},[13367,13390,13425,13440,13456,13505,13512,13519],{"type":3107,"tag":3390,"props":13368,"children":13369},{"class":3392,"line":3066},[13370,13374,13378,13382,13386],{"type":3107,"tag":3390,"props":13371,"children":13372},{"style":4652},[13373],{"type":3112,"value":5186},{"type":3107,"tag":3390,"props":13375,"children":13376},{"style":4652},[13377],{"type":3112,"value":5301},{"type":3107,"tag":3390,"props":13379,"children":13380},{"style":3626},[13381],{"type":3112,"value":5306},{"type":3107,"tag":3390,"props":13383,"children":13384},{"style":3464},[13385],{"type":3112,"value":5311},{"type":3107,"tag":3390,"props":13387,"children":13388},{"style":3469},[13389],{"type":3112,"value":5316},{"type":3107,"tag":3390,"props":13391,"children":13392},{"class":3392,"line":3032},[13393,13397,13401,13405,13409,13413,13417,13421],{"type":3107,"tag":3390,"props":13394,"children":13395},{"style":3535},[13396],{"type":3112,"value":6538},{"type":3107,"tag":3390,"props":13398,"children":13399},{"style":3469},[13400],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":13402,"children":13403},{"style":3464},[13404],{"type":3112,"value":6547},{"type":3107,"tag":3390,"props":13406,"children":13407},{"style":3469},[13408],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":13410,"children":13411},{"style":3402},[13412],{"type":3112,"value":2979},{"type":3107,"tag":3390,"props":13414,"children":13415},{"style":3469},[13416],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":13418,"children":13419},{"style":3464},[13420],{"type":3112,"value":6564},{"type":3107,"tag":3390,"props":13422,"children":13423},{"style":3469},[13424],{"type":3112,"value":5402},{"type":3107,"tag":3390,"props":13426,"children":13427},{"class":3392,"line":3016},[13428,13432,13436],{"type":3107,"tag":3390,"props":13429,"children":13430},{"style":3535},[13431],{"type":3112,"value":5324},{"type":3107,"tag":3390,"props":13433,"children":13434},{"style":3469},[13435],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":13437,"children":13438},{"style":3469},[13439],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":13441,"children":13442},{"class":3392,"line":3653},[13443,13448,13452],{"type":3107,"tag":3390,"props":13444,"children":13445},{"style":3535},[13446],{"type":3112,"value":13447},"    session",{"type":3107,"tag":3390,"props":13449,"children":13450},{"style":3469},[13451],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":13453,"children":13454},{"style":3469},[13455],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":13457,"children":13458},{"class":3392,"line":3662},[13459,13464,13468,13473,13478,13482,13486,13491,13495,13500],{"type":3107,"tag":3390,"props":13460,"children":13461},{"style":3535},[13462],{"type":3112,"value":13463},"      maxAge",{"type":3107,"tag":3390,"props":13465,"children":13466},{"style":3469},[13467],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":13469,"children":13470},{"style":6990},[13471],{"type":3112,"value":13472}," 60",{"type":3107,"tag":3390,"props":13474,"children":13475},{"style":3469},[13476],{"type":3112,"value":13477}," *",{"type":3107,"tag":3390,"props":13479,"children":13480},{"style":6990},[13481],{"type":3112,"value":13472},{"type":3107,"tag":3390,"props":13483,"children":13484},{"style":3469},[13485],{"type":3112,"value":13477},{"type":3107,"tag":3390,"props":13487,"children":13488},{"style":6990},[13489],{"type":3112,"value":13490}," 24",{"type":3107,"tag":3390,"props":13492,"children":13493},{"style":3469},[13494],{"type":3112,"value":13477},{"type":3107,"tag":3390,"props":13496,"children":13497},{"style":6990},[13498],{"type":3112,"value":13499}," 7",{"type":3107,"tag":3390,"props":13501,"children":13502},{"style":3455},[13503],{"type":3112,"value":13504}," \u002F\u002F 1 week\n",{"type":3107,"tag":3390,"props":13506,"children":13507},{"class":3392,"line":3679},[13508],{"type":3107,"tag":3390,"props":13509,"children":13510},{"style":3469},[13511],{"type":3112,"value":5442},{"type":3107,"tag":3390,"props":13513,"children":13514},{"class":3392,"line":3012},[13515],{"type":3107,"tag":3390,"props":13516,"children":13517},{"style":3469},[13518],{"type":3112,"value":5090},{"type":3107,"tag":3390,"props":13520,"children":13521},{"class":3392,"line":3008},[13522,13526],{"type":3107,"tag":3390,"props":13523,"children":13524},{"style":3469},[13525],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":13527,"children":13528},{"style":3464},[13529],{"type":3112,"value":4832},{"type":3107,"tag":3114,"props":13531,"children":13532},{},[13533],{"type":3112,"value":13534},"Our defaults are:",{"type":3107,"tag":3380,"props":13536,"children":13538},{"className":4068,"code":13537,"language":4070,"meta":2980,"style":2980},"{\n  name: 'nuxt-session',\n  password: process.env.NUXT_SESSION_PASSWORD || '',\n  cookie: {\n    sameSite: 'lax'\n  }\n}\n",[13539],{"type":3107,"tag":3252,"props":13540,"children":13541},{"__ignoreMap":2980},[13542,13549,13578,13626,13642,13667,13674],{"type":3107,"tag":3390,"props":13543,"children":13544},{"class":3392,"line":3066},[13545],{"type":3107,"tag":3390,"props":13546,"children":13547},{"style":3469},[13548],{"type":3112,"value":5316},{"type":3107,"tag":3390,"props":13550,"children":13551},{"class":3392,"line":3032},[13552,13557,13561,13565,13570,13574],{"type":3107,"tag":3390,"props":13553,"children":13554},{"style":3396},[13555],{"type":3112,"value":13556},"  name",{"type":3107,"tag":3390,"props":13558,"children":13559},{"style":3469},[13560],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":13562,"children":13563},{"style":3469},[13564],{"type":3112,"value":4713},{"type":3107,"tag":3390,"props":13566,"children":13567},{"style":3402},[13568],{"type":3112,"value":13569},"nuxt-session",{"type":3107,"tag":3390,"props":13571,"children":13572},{"style":3469},[13573],{"type":3112,"value":5053},{"type":3107,"tag":3390,"props":13575,"children":13576},{"style":3469},[13577],{"type":3112,"value":5402},{"type":3107,"tag":3390,"props":13579,"children":13580},{"class":3392,"line":3016},[13581,13586,13590,13595,13599,13604,13608,13612,13617,13622],{"type":3107,"tag":3390,"props":13582,"children":13583},{"style":3396},[13584],{"type":3112,"value":13585},"  password",{"type":3107,"tag":3390,"props":13587,"children":13588},{"style":3469},[13589],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":13591,"children":13592},{"style":3464},[13593],{"type":3112,"value":13594}," process",{"type":3107,"tag":3390,"props":13596,"children":13597},{"style":3469},[13598],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":13600,"children":13601},{"style":3464},[13602],{"type":3112,"value":13603},"env",{"type":3107,"tag":3390,"props":13605,"children":13606},{"style":3469},[13607],{"type":3112,"value":3345},{"type":3107,"tag":3390,"props":13609,"children":13610},{"style":3464},[13611],{"type":3112,"value":3434},{"type":3107,"tag":3390,"props":13613,"children":13614},{"style":3469},[13615],{"type":3112,"value":13616}," ||",{"type":3107,"tag":3390,"props":13618,"children":13619},{"style":3469},[13620],{"type":3112,"value":13621}," ''",{"type":3107,"tag":3390,"props":13623,"children":13624},{"style":3469},[13625],{"type":3112,"value":5402},{"type":3107,"tag":3390,"props":13627,"children":13628},{"class":3392,"line":3653},[13629,13634,13638],{"type":3107,"tag":3390,"props":13630,"children":13631},{"style":3396},[13632],{"type":3112,"value":13633},"  cookie",{"type":3107,"tag":3390,"props":13635,"children":13636},{"style":3469},[13637],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":13639,"children":13640},{"style":3469},[13641],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":13643,"children":13644},{"class":3392,"line":3662},[13645,13650,13654,13658,13663],{"type":3107,"tag":3390,"props":13646,"children":13647},{"style":3396},[13648],{"type":3112,"value":13649},"    sameSite",{"type":3107,"tag":3390,"props":13651,"children":13652},{"style":3469},[13653],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":13655,"children":13656},{"style":3469},[13657],{"type":3112,"value":4713},{"type":3107,"tag":3390,"props":13659,"children":13660},{"style":3402},[13661],{"type":3112,"value":13662},"lax",{"type":3107,"tag":3390,"props":13664,"children":13665},{"style":3469},[13666],{"type":3112,"value":4722},{"type":3107,"tag":3390,"props":13668,"children":13669},{"class":3392,"line":3679},[13670],{"type":3107,"tag":3390,"props":13671,"children":13672},{"style":3469},[13673],{"type":3112,"value":5090},{"type":3107,"tag":3390,"props":13675,"children":13676},{"class":3392,"line":3012},[13677],{"type":3107,"tag":3390,"props":13678,"children":13679},{"style":3469},[13680],{"type":3112,"value":4568},{"type":3107,"tag":3114,"props":13682,"children":13683},{},[13684,13686,13692,13693,13699],{"type":3112,"value":13685},"You can also overwrite the session config by passing it as 3rd argument of the ",{"type":3107,"tag":3252,"props":13687,"children":13689},{"className":13688},[],[13690],{"type":3112,"value":13691},"setUserSession",{"type":3112,"value":6222},{"type":3107,"tag":3252,"props":13694,"children":13696},{"className":13695},[],[13697],{"type":3112,"value":13698},"replaceUserSession",{"type":3112,"value":13700}," functions:",{"type":3107,"tag":3380,"props":13702,"children":13704},{"className":4068,"code":13703,"language":4070,"meta":2980,"style":2980},"await setUserSession(event, { ... } , {\n  maxAge: 60 * 60 * 24 * 7 \u002F\u002F 1 week\n})\n",[13705],{"type":3107,"tag":3252,"props":13706,"children":13707},{"__ignoreMap":2980},[13708,13749,13793],{"type":3107,"tag":3390,"props":13709,"children":13710},{"class":3392,"line":3066},[13711,13715,13719,13723,13727,13731,13736,13740,13745],{"type":3107,"tag":3390,"props":13712,"children":13713},{"style":4652},[13714],{"type":3112,"value":4655},{"type":3107,"tag":3390,"props":13716,"children":13717},{"style":3626},[13718],{"type":3112,"value":4660},{"type":3107,"tag":3390,"props":13720,"children":13721},{"style":3464},[13722],{"type":3112,"value":4665},{"type":3107,"tag":3390,"props":13724,"children":13725},{"style":3469},[13726],{"type":3112,"value":3572},{"type":3107,"tag":3390,"props":13728,"children":13729},{"style":3469},[13730],{"type":3112,"value":3562},{"type":3107,"tag":3390,"props":13732,"children":13733},{"style":3469},[13734],{"type":3112,"value":13735}," ...",{"type":3107,"tag":3390,"props":13737,"children":13738},{"style":3469},[13739],{"type":3112,"value":7502},{"type":3107,"tag":3390,"props":13741,"children":13742},{"style":3469},[13743],{"type":3112,"value":13744}," ,",{"type":3107,"tag":3390,"props":13746,"children":13747},{"style":3469},[13748],{"type":3112,"value":4092},{"type":3107,"tag":3390,"props":13750,"children":13751},{"class":3392,"line":3032},[13752,13757,13761,13765,13769,13773,13777,13781,13785,13789],{"type":3107,"tag":3390,"props":13753,"children":13754},{"style":3535},[13755],{"type":3112,"value":13756},"  maxAge",{"type":3107,"tag":3390,"props":13758,"children":13759},{"style":3469},[13760],{"type":3112,"value":4129},{"type":3107,"tag":3390,"props":13762,"children":13763},{"style":6990},[13764],{"type":3112,"value":13472},{"type":3107,"tag":3390,"props":13766,"children":13767},{"style":3469},[13768],{"type":3112,"value":13477},{"type":3107,"tag":3390,"props":13770,"children":13771},{"style":6990},[13772],{"type":3112,"value":13472},{"type":3107,"tag":3390,"props":13774,"children":13775},{"style":3469},[13776],{"type":3112,"value":13477},{"type":3107,"tag":3390,"props":13778,"children":13779},{"style":6990},[13780],{"type":3112,"value":13490},{"type":3107,"tag":3390,"props":13782,"children":13783},{"style":3469},[13784],{"type":3112,"value":13477},{"type":3107,"tag":3390,"props":13786,"children":13787},{"style":6990},[13788],{"type":3112,"value":13499},{"type":3107,"tag":3390,"props":13790,"children":13791},{"style":3455},[13792],{"type":3112,"value":13504},{"type":3107,"tag":3390,"props":13794,"children":13795},{"class":3392,"line":3016},[13796,13800],{"type":3107,"tag":3390,"props":13797,"children":13798},{"style":3469},[13799],{"type":3112,"value":3618},{"type":3107,"tag":3390,"props":13801,"children":13802},{"style":3464},[13803],{"type":3112,"value":4832},{"type":3107,"tag":3114,"props":13805,"children":13806},{},[13807,13809,13820],{"type":3112,"value":13808},"Checkout the ",{"type":3107,"tag":3118,"props":13810,"children":13813},{"href":13811,"rel":13812},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fh3\u002Fblob\u002Fc04c458810e34eb15c1647e1369e7d7ef19f567d\u002Fsrc\u002Futils\u002Fsession.ts#L20",[3122],[13814],{"type":3107,"tag":3252,"props":13815,"children":13817},{"className":13816},[],[13818],{"type":3112,"value":13819},"SessionConfig",{"type":3112,"value":13821}," for all options.",{"type":3107,"tag":3198,"props":13823,"children":13825},{"id":13824},"more",[13826],{"type":3112,"value":13827},"More",{"type":3107,"tag":3164,"props":13829,"children":13830},{},[13831],{"type":3107,"tag":3168,"props":13832,"children":13833},{},[13834,13841,13843],{"type":3107,"tag":3118,"props":13835,"children":13838},{"href":13836,"rel":13837},"https:\u002F\u002Fgithub.com\u002Fbarbapapazes\u002Fnuxt-authorization",[3122],[13839],{"type":3112,"value":13840},"nuxt-authorization",{"type":3112,"value":13842},": Authorization module for managing permissions inside a Nuxt app, compatible with ",{"type":3107,"tag":3252,"props":13844,"children":13846},{"className":13845},[],[13847],{"type":3112,"value":2979},{"type":3107,"tag":3198,"props":13849,"children":13851},{"id":13850},"development",[13852],{"type":3112,"value":13853},"Development",{"type":3107,"tag":3380,"props":13855,"children":13857},{"className":3382,"code":13856,"language":3384,"meta":2980,"style":2980},"# 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",[13858],{"type":3107,"tag":3252,"props":13859,"children":13860},{"__ignoreMap":2980},[13861,13869,13882,13889,13897,13914,13921,13929,13945,13952,13960,13976,13983,13991,14007,14014,14022,14038,14054,14061,14069],{"type":3107,"tag":3390,"props":13862,"children":13863},{"class":3392,"line":3066},[13864],{"type":3107,"tag":3390,"props":13865,"children":13866},{"style":3455},[13867],{"type":3112,"value":13868},"# Install dependencies\n",{"type":3107,"tag":3390,"props":13870,"children":13871},{"class":3392,"line":3032},[13872,13877],{"type":3107,"tag":3390,"props":13873,"children":13874},{"style":3396},[13875],{"type":3112,"value":13876},"pnpm",{"type":3107,"tag":3390,"props":13878,"children":13879},{"style":3402},[13880],{"type":3112,"value":13881}," install\n",{"type":3107,"tag":3390,"props":13883,"children":13884},{"class":3392,"line":3016},[13885],{"type":3107,"tag":3390,"props":13886,"children":13887},{"emptyLinePlaceholder":1200},[13888],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":13890,"children":13891},{"class":3392,"line":3653},[13892],{"type":3107,"tag":3390,"props":13893,"children":13894},{"style":3455},[13895],{"type":3112,"value":13896},"# Generate type stubs\n",{"type":3107,"tag":3390,"props":13898,"children":13899},{"class":3392,"line":3662},[13900,13904,13909],{"type":3107,"tag":3390,"props":13901,"children":13902},{"style":3396},[13903],{"type":3112,"value":13876},{"type":3107,"tag":3390,"props":13905,"children":13906},{"style":3402},[13907],{"type":3112,"value":13908}," run",{"type":3107,"tag":3390,"props":13910,"children":13911},{"style":3402},[13912],{"type":3112,"value":13913}," dev:prepare\n",{"type":3107,"tag":3390,"props":13915,"children":13916},{"class":3392,"line":3679},[13917],{"type":3107,"tag":3390,"props":13918,"children":13919},{"emptyLinePlaceholder":1200},[13920],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":13922,"children":13923},{"class":3392,"line":3012},[13924],{"type":3107,"tag":3390,"props":13925,"children":13926},{"style":3455},[13927],{"type":3112,"value":13928},"# Develop with the playground\n",{"type":3107,"tag":3390,"props":13930,"children":13931},{"class":3392,"line":3008},[13932,13936,13940],{"type":3107,"tag":3390,"props":13933,"children":13934},{"style":3396},[13935],{"type":3112,"value":13876},{"type":3107,"tag":3390,"props":13937,"children":13938},{"style":3402},[13939],{"type":3112,"value":13908},{"type":3107,"tag":3390,"props":13941,"children":13942},{"style":3402},[13943],{"type":3112,"value":13944}," dev\n",{"type":3107,"tag":3390,"props":13946,"children":13947},{"class":3392,"line":3004},[13948],{"type":3107,"tag":3390,"props":13949,"children":13950},{"emptyLinePlaceholder":1200},[13951],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":13953,"children":13954},{"class":3392,"line":3841},[13955],{"type":3107,"tag":3390,"props":13956,"children":13957},{"style":3455},[13958],{"type":3112,"value":13959},"# Build the playground\n",{"type":3107,"tag":3390,"props":13961,"children":13962},{"class":3392,"line":3095},[13963,13967,13971],{"type":3107,"tag":3390,"props":13964,"children":13965},{"style":3396},[13966],{"type":3112,"value":13876},{"type":3107,"tag":3390,"props":13968,"children":13969},{"style":3402},[13970],{"type":3112,"value":13908},{"type":3107,"tag":3390,"props":13972,"children":13973},{"style":3402},[13974],{"type":3112,"value":13975}," dev:build\n",{"type":3107,"tag":3390,"props":13977,"children":13978},{"class":3392,"line":3878},[13979],{"type":3107,"tag":3390,"props":13980,"children":13981},{"emptyLinePlaceholder":1200},[13982],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":13984,"children":13985},{"class":3392,"line":3911},[13986],{"type":3107,"tag":3390,"props":13987,"children":13988},{"style":3455},[13989],{"type":3112,"value":13990},"# Run ESLint\n",{"type":3107,"tag":3390,"props":13992,"children":13993},{"class":3392,"line":3966},[13994,13998,14002],{"type":3107,"tag":3390,"props":13995,"children":13996},{"style":3396},[13997],{"type":3112,"value":13876},{"type":3107,"tag":3390,"props":13999,"children":14000},{"style":3402},[14001],{"type":3112,"value":13908},{"type":3107,"tag":3390,"props":14003,"children":14004},{"style":3402},[14005],{"type":3112,"value":14006}," lint\n",{"type":3107,"tag":3390,"props":14008,"children":14009},{"class":3392,"line":3975},[14010],{"type":3107,"tag":3390,"props":14011,"children":14012},{"emptyLinePlaceholder":1200},[14013],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":14015,"children":14016},{"class":3392,"line":3000},[14017],{"type":3107,"tag":3390,"props":14018,"children":14019},{"style":3455},[14020],{"type":3112,"value":14021},"# Run Vitest\n",{"type":3107,"tag":3390,"props":14023,"children":14024},{"class":3392,"line":4043},[14025,14029,14033],{"type":3107,"tag":3390,"props":14026,"children":14027},{"style":3396},[14028],{"type":3112,"value":13876},{"type":3107,"tag":3390,"props":14030,"children":14031},{"style":3402},[14032],{"type":3112,"value":13908},{"type":3107,"tag":3390,"props":14034,"children":14035},{"style":3402},[14036],{"type":3112,"value":14037}," test\n",{"type":3107,"tag":3390,"props":14039,"children":14040},{"class":3392,"line":4313},[14041,14045,14049],{"type":3107,"tag":3390,"props":14042,"children":14043},{"style":3396},[14044],{"type":3112,"value":13876},{"type":3107,"tag":3390,"props":14046,"children":14047},{"style":3402},[14048],{"type":3112,"value":13908},{"type":3107,"tag":3390,"props":14050,"children":14051},{"style":3402},[14052],{"type":3112,"value":14053}," test:watch\n",{"type":3107,"tag":3390,"props":14055,"children":14056},{"class":3392,"line":4321},[14057],{"type":3107,"tag":3390,"props":14058,"children":14059},{"emptyLinePlaceholder":1200},[14060],{"type":3112,"value":3659},{"type":3107,"tag":3390,"props":14062,"children":14063},{"class":3392,"line":4330},[14064],{"type":3107,"tag":3390,"props":14065,"children":14066},{"style":3455},[14067],{"type":3112,"value":14068},"# Release new version\n",{"type":3107,"tag":3390,"props":14070,"children":14071},{"class":3392,"line":4338},[14072,14076,14080],{"type":3107,"tag":3390,"props":14073,"children":14074},{"style":3396},[14075],{"type":3112,"value":13876},{"type":3107,"tag":3390,"props":14077,"children":14078},{"style":3402},[14079],{"type":3112,"value":13908},{"type":3107,"tag":3390,"props":14081,"children":14082},{"style":3402},[14083],{"type":3112,"value":14084}," release\n",{"type":3107,"tag":14086,"props":14087,"children":14088},"style",{},[14089],{"type":3112,"value":14090},"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":2980,"searchDepth":3032,"depth":3032,"links":14092},[14093,14094,14095,14096,14099,14107,14108,14113,14114,14115,14116],{"id":3200,"depth":3032,"text":399},{"id":3318,"depth":3032,"text":3321},{"id":3359,"depth":3032,"text":3362},{"id":3500,"depth":3032,"text":3503,"children":14097},[14098],{"id":3512,"depth":3016,"text":3515},{"id":4593,"depth":3032,"text":4596,"children":14100},[14101,14102,14103,14104,14105,14106],{"id":4612,"depth":3016,"text":4615},{"id":5206,"depth":3016,"text":5209},{"id":6207,"depth":3016,"text":3234},{"id":6659,"depth":3016,"text":6662},{"id":6809,"depth":3016,"text":3243},{"id":10723,"depth":3016,"text":10726},{"id":11016,"depth":3032,"text":11019},{"id":11291,"depth":3032,"text":3214,"children":14109},[14110,14111],{"id":11462,"depth":3016,"text":11465},{"id":11590,"depth":3016,"text":14112},"\u003CAuthState> component",{"id":12295,"depth":3032,"text":12298},{"id":13319,"depth":3032,"text":29},{"id":13824,"depth":3032,"text":13827},{"id":13850,"depth":3032,"text":13853},{"v5":14118,"v4":14119,"v3":14120,"v2":14121},"5 (nightly)","4.4.8","3.21.8","2.18.1"]