[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f30r277ag21rfj":3,"module-auth-utils":3040,"versions":14198},[4,1124,1988,2834],{"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,1285,1436,1818,1895,1917,1951],{"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,1264,1267,1270,1273,1276,1279,1282],{"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":1260,"path":1261,"stem":1262,"titleTemplate":6,"icon":1263},"test","\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Ftest","docs\u002F4.x\u002F2.directory-structure\u002F1.test","i-vscode-icons-folder-type-test",{"title":200,"path":1265,"stem":1266,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fenv","docs\u002F4.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":1268,"stem":1269,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F4.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":1271,"stem":1272,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":1274,"stem":1275,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":1277,"stem":1278,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F4.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":1280,"stem":1281,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpackage","docs\u002F4.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":1283,"stem":1284,"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":1286,"stem":1287,"children":1288,"page":108},"\u002Fdocs\u002F4.x\u002Fguide","docs\u002F4.x\u002F3.guide",[1289,1318,1340,1350,1378,1398],{"title":253,"titleTemplate":254,"icon":255,"path":1290,"stem":1291,"children":1292,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts","docs\u002F4.x\u002F3.guide\u002F1.concepts",[1293,1296,1299,1302,1305,1308,1312,1315],{"title":260,"path":1294,"stem":1295,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":1297,"stem":1298,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":1300,"stem":1301,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":1303,"stem":1304,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":1306,"stem":1307,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":1309,"path":1310,"stem":1311,"titleTemplate":6},"Server Components","\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fserver-components","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F6.server-components",{"title":280,"path":1313,"stem":1314,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":1316,"stem":1317,"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":1319,"stem":1320,"children":1321,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F2.best-practices",[1322,1326,1330,1334,1337],{"title":1323,"path":1324,"stem":1325,"titleTemplate":6},"Accessibility","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Faccessibility","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Faccessibility",{"title":1327,"path":1328,"stem":1329,"titleTemplate":6},"Dev Containers","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fdevcontainers","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fdevcontainers",{"title":1331,"path":1332,"stem":1333,"titleTemplate":6},"Nuxt and Hydration","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":1335,"stem":1336,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":1338,"stem":1339,"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":1341,"stem":1342,"children":1343,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai","docs\u002F4.x\u002F3.guide\u002F3.ai",[1344,1347],{"title":314,"path":1345,"stem":1346,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F4.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":1348,"stem":1349,"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":1351,"stem":1352,"children":1353,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F4.modules",[1354,1357,1360,1363,1366,1369,1372,1375],{"title":329,"path":1355,"stem":1356,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":1358,"stem":1359,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":1361,"stem":1362,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":1364,"stem":1365,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F4.module-dependencies",{"title":345,"path":1367,"stem":1368,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F5.recipes-advanced",{"title":349,"path":1370,"stem":1371,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F6.testing",{"title":353,"path":1373,"stem":1374,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F7.best-practices",{"title":357,"path":1376,"stem":1377,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F8.ecosystem",{"title":361,"titleTemplate":362,"icon":363,"path":1379,"stem":1380,"children":1381,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes","docs\u002F4.x\u002F3.guide\u002F5.recipes",[1382,1385,1388,1391,1394],{"title":368,"path":1383,"stem":1384,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":372,"path":1386,"stem":1387,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":376,"path":1389,"stem":1390,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":380,"path":1392,"stem":1393,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":1395,"path":1396,"stem":1397,"titleTemplate":6},"Mostly-Static Sites","\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fmostly-static-sites","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F5.mostly-static-sites",{"title":384,"titleTemplate":385,"icon":386,"path":1399,"stem":1400,"children":1401,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further","docs\u002F4.x\u002F3.guide\u002F6.going-further",[1402,1405,1408,1411,1414,1417,1420,1423,1426,1429,1433],{"title":391,"path":1403,"stem":1404,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":395,"path":1406,"stem":1407,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":399,"path":1409,"stem":1410,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":403,"path":1412,"stem":1413,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":407,"path":1415,"stem":1416,"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":1418,"stem":1419,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":415,"path":1421,"stem":1422,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":419,"path":1424,"stem":1425,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":423,"path":1427,"stem":1428,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":1430,"path":1431,"stem":1432,"titleTemplate":6},"Creating a Builder","\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fbuilders","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F8.builders",{"title":427,"path":1434,"stem":1435,"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":1437,"stem":1438,"children":1439,"page":108},"\u002Fdocs\u002F4.x\u002Fapi","docs\u002F4.x\u002F4.api",[1440,1493,1600,1691,1743,1805,1815],{"title":438,"titleTemplate":439,"icon":324,"path":1441,"stem":1442,"children":1443,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F1.components",[1444,1447,1450,1453,1456,1459,1462,1465,1469,1472,1475,1478,1481,1484,1487,1490],{"title":444,"path":1445,"stem":1446,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":448,"path":1448,"stem":1449,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":452,"path":1451,"stem":1452,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":456,"path":1454,"stem":1455,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F4.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":460,"path":1457,"stem":1458,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F4.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":464,"path":1460,"stem":1461,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":468,"path":1463,"stem":1464,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F4.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1466,"path":1467,"stem":1468,"titleTemplate":6},"\u003CNuxtAnnouncer>","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":472,"path":1470,"stem":1471,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F4.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":476,"path":1473,"stem":1474,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F4.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":480,"path":1476,"stem":1477,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F4.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":484,"path":1479,"stem":1480,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F4.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":488,"path":1482,"stem":1483,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F4.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":492,"path":1485,"stem":1486,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F4.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":496,"path":1488,"stem":1489,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F4.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":500,"path":1491,"stem":1492,"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":1494,"stem":1495,"children":1496,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables","docs\u002F4.x\u002F4.api\u002F2.composables",[1497,1501,1505,1508,1512,1515,1518,1521,1524,1527,1530,1533,1536,1540,1543,1546,1549,1552,1555,1558,1561,1564,1567,1570,1573,1576,1579,1582,1585,1588,1591,1594,1597],{"title":1498,"path":1499,"stem":1500,"titleTemplate":6},"createUseAsyncData","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1502,"path":1503,"stem":1504,"titleTemplate":6},"createUseFetch","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":511,"path":1506,"stem":1507,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1509,"path":1510,"stem":1511,"titleTemplate":6},"useAnnouncer","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":515,"path":1513,"stem":1514,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":519,"path":1516,"stem":1517,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":523,"path":1519,"stem":1520,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":527,"path":1522,"stem":1523,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":531,"path":1525,"stem":1526,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":535,"path":1528,"stem":1529,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":539,"path":1531,"stem":1532,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":543,"path":1534,"stem":1535,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":1537,"path":1538,"stem":1539,"titleTemplate":6},"useLayout","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-layout","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-layout",{"title":547,"path":1541,"stem":1542,"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":1544,"stem":1545,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":555,"path":1547,"stem":1548,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":559,"path":1550,"stem":1551,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":563,"path":1553,"stem":1554,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":567,"path":1556,"stem":1557,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":571,"path":1559,"stem":1560,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":575,"path":1562,"stem":1563,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":579,"path":1565,"stem":1566,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":583,"path":1568,"stem":1569,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":587,"path":1571,"stem":1572,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":591,"path":1574,"stem":1575,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":595,"path":1577,"stem":1578,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":599,"path":1580,"stem":1581,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":603,"path":1583,"stem":1584,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":607,"path":1586,"stem":1587,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":611,"path":1589,"stem":1590,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":615,"path":1592,"stem":1593,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":619,"path":1595,"stem":1596,"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":1598,"stem":1599,"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":1601,"stem":1602,"children":1603,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils","docs\u002F4.x\u002F4.api\u002F3.utils",[1604,1607,1610,1613,1616,1619,1622,1625,1628,1631,1634,1637,1640,1643,1646,1649,1652,1655,1658,1661,1664,1667,1670,1673,1676,1679,1682,1685,1688],{"title":634,"path":1605,"stem":1606,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F4.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":638,"path":1608,"stem":1609,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":642,"path":1611,"stem":1612,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":646,"path":1614,"stem":1615,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":650,"path":1617,"stem":1618,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":654,"path":1620,"stem":1621,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":658,"path":1623,"stem":1624,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":662,"path":1626,"stem":1627,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":666,"path":1629,"stem":1630,"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":1632,"stem":1633,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":674,"path":1635,"stem":1636,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":678,"path":1638,"stem":1639,"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":1641,"stem":1642,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":686,"path":1644,"stem":1645,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":690,"path":1647,"stem":1648,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":694,"path":1650,"stem":1651,"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":1653,"stem":1654,"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":1656,"stem":1657,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":706,"path":1659,"stem":1660,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":710,"path":1662,"stem":1663,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":714,"path":1665,"stem":1666,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":718,"path":1668,"stem":1669,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":722,"path":1671,"stem":1672,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":726,"path":1674,"stem":1675,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":730,"path":1677,"stem":1678,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F4.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":734,"path":1680,"stem":1681,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":738,"path":1683,"stem":1684,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":742,"path":1686,"stem":1687,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":746,"path":1689,"stem":1690,"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":1692,"stem":1693,"children":1694,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands","docs\u002F4.x\u002F4.api\u002F4.commands",[1695,1698,1701,1704,1707,1710,1713,1716,1719,1722,1725,1728,1731,1734,1737,1740],{"title":757,"path":1696,"stem":1697,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fadd",{"title":761,"path":1699,"stem":1700,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":765,"path":1702,"stem":1703,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":769,"path":1705,"stem":1706,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":773,"path":1708,"stem":1709,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":777,"path":1711,"stem":1712,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdev",{"title":781,"path":1714,"stem":1715,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":785,"path":1717,"stem":1718,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":789,"path":1720,"stem":1721,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finfo",{"title":793,"path":1723,"stem":1724,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finit",{"title":797,"path":1726,"stem":1727,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":801,"path":1729,"stem":1730,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":805,"path":1732,"stem":1733,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":809,"path":1735,"stem":1736,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftest",{"title":813,"path":1738,"stem":1739,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":817,"path":1741,"stem":1742,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":415,"titleTemplate":821,"icon":822,"path":1744,"stem":1745,"children":1746,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit","docs\u002F4.x\u002F4.api\u002F5.kit",[1747,1750,1753,1756,1760,1763,1766,1769,1772,1775,1778,1781,1784,1787,1790,1793,1796,1799,1802],{"title":276,"path":1748,"stem":1749,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F4.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":403,"path":1751,"stem":1752,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":833,"path":1754,"stem":1755,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":1757,"path":1758,"stem":1759,"titleTemplate":6},"App Config","\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fapp-config","docs\u002F4.x\u002F4.api\u002F5.kit\u002F11.app-config",{"title":837,"path":1761,"stem":1762,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F4.x\u002F4.api\u002F5.kit\u002F12.nitro",{"title":841,"path":1764,"stem":1765,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F4.x\u002F4.api\u002F5.kit\u002F13.resolving",{"title":845,"path":1767,"stem":1768,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F4.x\u002F4.api\u002F5.kit\u002F14.logging",{"title":849,"path":1770,"stem":1771,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F4.x\u002F4.api\u002F5.kit\u002F15.builder",{"title":853,"path":1773,"stem":1774,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F4.x\u002F4.api\u002F5.kit\u002F16.examples",{"title":84,"path":1776,"stem":1777,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F4.x\u002F4.api\u002F5.kit\u002F17.layers",{"title":860,"path":1779,"stem":1780,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F4.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":864,"path":1782,"stem":1783,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F4.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":1785,"stem":1786,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F4.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":438,"path":1788,"stem":1789,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F5.kit\u002F5.components",{"title":874,"path":1791,"stem":1792,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F4.x\u002F4.api\u002F5.kit\u002F6.context",{"title":878,"path":1794,"stem":1795,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F4.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":882,"path":1797,"stem":1798,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F4.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":886,"path":1800,"stem":1801,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.head",{"title":890,"path":1803,"stem":1804,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":894,"titleTemplate":6,"icon":895,"path":1806,"stem":1807,"children":1808,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced","docs\u002F4.x\u002F4.api\u002F6.advanced",[1809,1812],{"title":411,"path":1810,"stem":1811,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":903,"path":1813,"stem":1814,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":907,"path":1816,"stem":1817,"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":1819,"stem":1820,"children":1821,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples","docs\u002F4.x\u002F4.examples",[1822,1825,1844,1857,1888],{"title":918,"path":1823,"stem":1824,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fhello-world","docs\u002F4.x\u002F4.examples\u002F0.hello-world",{"title":399,"path":1826,"stem":1827,"children":1828,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures","docs\u002F4.x\u002F4.examples\u002F1.features",[1829,1832,1835,1838,1841],{"title":926,"path":1830,"stem":1831,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F4.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":1833,"stem":1834,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F4.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":1836,"stem":1837,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F4.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":936,"path":1839,"stem":1840,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F4.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":940,"path":1842,"stem":1843,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F4.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":1845,"stem":1846,"children":1847,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting","docs\u002F4.x\u002F4.examples\u002F2.routing",[1848,1851,1854],{"title":948,"path":1849,"stem":1850,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":878,"path":1852,"stem":1853,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":955,"path":1855,"stem":1856,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":894,"path":1858,"stem":1859,"children":1860,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced","docs\u002F4.x\u002F4.examples\u002F4.advanced",[1861,1864,1867,1870,1873,1876,1879,1882,1885],{"title":84,"path":1862,"stem":1863,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":1865,"stem":1866,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":969,"path":1868,"stem":1869,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":973,"path":1871,"stem":1872,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":977,"path":1874,"stem":1875,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":981,"path":1877,"stem":1878,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":1880,"stem":1881,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":523,"path":1883,"stem":1884,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":991,"path":1886,"stem":1887,"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":1889,"stem":1890,"children":1891,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental","docs\u002F4.x\u002F4.examples\u002F7.experimental",[1892],{"title":1000,"path":1893,"stem":1894,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F4.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1004,"titleTemplate":1005,"icon":1006,"path":1896,"stem":1897,"children":1898,"page":108},"\u002Fdocs\u002F4.x\u002Fcommunity","docs\u002F4.x\u002F5.community",[1899,1902,1905,1908,1911,1914],{"title":1011,"path":1900,"stem":1901,"titleTemplate":6,"icon":1014},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fgetting-help","docs\u002F4.x\u002F5.community\u002F2.getting-help",{"title":1016,"path":1903,"stem":1904,"titleTemplate":6,"icon":1019},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Freporting-bugs","docs\u002F4.x\u002F5.community\u002F3.reporting-bugs",{"title":1021,"path":1906,"stem":1907,"titleTemplate":6,"icon":1024},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fcontribution","docs\u002F4.x\u002F5.community\u002F4.contribution",{"title":1026,"path":1909,"stem":1910,"titleTemplate":6,"icon":1029},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fframework-contribution","docs\u002F4.x\u002F5.community\u002F5.framework-contribution",{"title":1031,"path":1912,"stem":1913,"titleTemplate":6,"icon":1034},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Froadmap","docs\u002F4.x\u002F5.community\u002F6.roadmap",{"title":1036,"path":1915,"stem":1916,"titleTemplate":6,"icon":1039},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fchangelog","docs\u002F4.x\u002F5.community\u002F7.changelog",{"title":1041,"titleTemplate":1042,"icon":1043,"path":1918,"stem":1919,"children":1920,"page":108},"\u002Fdocs\u002F4.x\u002Fbridge","docs\u002F4.x\u002F6.bridge",[1921,1924,1927,1930,1933,1936,1939,1942,1945,1948],{"title":1048,"path":1922,"stem":1923,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Foverview","docs\u002F4.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1925,"stem":1926,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fconfiguration","docs\u002F4.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1928,"stem":1929,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Ftypescript","docs\u002F4.x\u002F6.bridge\u002F2.typescript",{"title":1058,"path":1931,"stem":1932,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F4.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1062,"path":1934,"stem":1935,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F4.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1066,"path":1937,"stem":1938,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F4.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":936,"path":1940,"stem":1941,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fmeta","docs\u002F4.x\u002F6.bridge\u002F6.meta",{"title":403,"path":1943,"stem":1944,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fruntime-config","docs\u002F4.x\u002F6.bridge\u002F7.runtime-config",{"title":837,"path":1946,"stem":1947,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnitro","docs\u002F4.x\u002F6.bridge\u002F8.nitro",{"title":1079,"path":1949,"stem":1950,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fvite","docs\u002F4.x\u002F6.bridge\u002F9.vite",{"title":1083,"titleTemplate":1084,"icon":107,"path":1952,"stem":1953,"children":1954,"page":108},"\u002Fdocs\u002F4.x\u002Fmigration","docs\u002F4.x\u002F7.migration",[1955,1958,1961,1964,1967,1970,1973,1976,1979,1982,1985],{"title":1048,"path":1956,"stem":1957,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Foverview","docs\u002F4.x\u002F7.migration\u002F1.overview",{"title":1092,"path":1959,"stem":1960,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fbundling","docs\u002F4.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1962,"stem":1963,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fserver","docs\u002F4.x\u002F7.migration\u002F11.server",{"title":29,"path":1965,"stem":1966,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fconfiguration","docs\u002F4.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1968,"stem":1969,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmodule-authors","docs\u002F4.x\u002F7.migration\u002F20.module-authors",{"title":926,"path":1971,"stem":1972,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fauto-imports","docs\u002F4.x\u002F7.migration\u002F3.auto-imports",{"title":936,"path":1974,"stem":1975,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmeta","docs\u002F4.x\u002F7.migration\u002F4.meta",{"title":1062,"path":1977,"stem":1978,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F4.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1114,"path":1980,"stem":1981,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F4.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1118,"path":1983,"stem":1984,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fcomponent-options","docs\u002F4.x\u002F7.migration\u002F7.component-options",{"title":403,"path":1986,"stem":1987,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fruntime-config","docs\u002F4.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1989,"stem":1990,"children":1991,"page":108},"\u002Fdocs\u002F5.x","docs\u002F5.x",[1992,2050,2143,2288,2664,2741,2763,2797],{"title":12,"titleTemplate":13,"icon":14,"path":1993,"stem":1994,"children":1995,"page":108},"\u002Fdocs\u002F5.x\u002Fgetting-started","docs\u002F5.x\u002F1.getting-started",[1996,1999,2002,2005,2008,2011,2014,2017,2020,2023,2026,2029,2032,2035,2038,2041,2044,2047],{"title":19,"path":1997,"stem":1998,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fintroduction","docs\u002F5.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":2000,"stem":2001,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Finstallation","docs\u002F5.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":2003,"stem":2004,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fconfiguration","docs\u002F5.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":2006,"stem":2007,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fviews","docs\u002F5.x\u002F1.getting-started\u002F04.views",{"title":39,"path":2009,"stem":2010,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fassets","docs\u002F5.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":2012,"stem":2013,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstyling","docs\u002F5.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":2015,"stem":2016,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Frouting","docs\u002F5.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":2018,"stem":2019,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fseo-meta","docs\u002F5.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":2021,"stem":2022,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftransitions","docs\u002F5.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":2024,"stem":2025,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F5.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":2027,"stem":2028,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstate-management","docs\u002F5.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":2030,"stem":2031,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ferror-handling","docs\u002F5.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":2033,"stem":2034,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fserver","docs\u002F5.x\u002F1.getting-started\u002F13.server",{"title":84,"path":2036,"stem":2037,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Flayers","docs\u002F5.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":2039,"stem":2040,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fprerendering","docs\u002F5.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":2042,"stem":2043,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdeployment","docs\u002F5.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":2045,"stem":2046,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftesting","docs\u002F5.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":2048,"stem":2049,"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":2051,"stem":2052,"children":2053,"page":108},"\u002Fdocs\u002F5.x\u002Fdirectory-structure","docs\u002F5.x\u002F2.directory-structure",[2054,2057,2060,2098,2101,2104,2107,2110,2113,2116,2119,2122,2125,2128,2131,2134,2137,2140],{"title":117,"path":2055,"stem":2056,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F5.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":2058,"stem":2059,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Foutput","docs\u002F5.x\u002F2.directory-structure\u002F0.output",{"title":1197,"titleTemplate":111,"head":2061,"defaultOpen":1200,"icon":1201,"path":2062,"stem":2063,"children":2064,"page":108},{"title":1199},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app",[2065,2068,2071,2074,2077,2080,2083,2086,2089,2092,2095],{"title":127,"path":2066,"stem":2067,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":2069,"stem":2070,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":2072,"stem":2073,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":2075,"stem":2076,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":2078,"stem":2079,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":2081,"stem":2082,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":2084,"stem":2085,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":2087,"stem":2088,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":2090,"stem":2091,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":2093,"stem":2094,"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":2096,"stem":2097,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":2099,"stem":2100,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fcontent","docs\u002F5.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":2102,"stem":2103,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Flayers","docs\u002F5.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":2105,"stem":2106,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fmodules","docs\u002F5.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":2108,"stem":2109,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F5.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":2111,"stem":2112,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpublic","docs\u002F5.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":2114,"stem":2115,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fserver","docs\u002F5.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":2117,"stem":2118,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fshared","docs\u002F5.x\u002F2.directory-structure\u002F1.shared",{"title":1260,"path":2120,"stem":2121,"titleTemplate":6,"icon":1263},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Ftest","docs\u002F5.x\u002F2.directory-structure\u002F1.test",{"title":200,"path":2123,"stem":2124,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fenv","docs\u002F5.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":2126,"stem":2127,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F5.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":2129,"stem":2130,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":2132,"stem":2133,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":2135,"stem":2136,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F5.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":2138,"stem":2139,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpackage","docs\u002F5.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":2141,"stem":2142,"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":2144,"stem":2145,"children":2146,"page":108},"\u002Fdocs\u002F5.x\u002Fguide","docs\u002F5.x\u002F3.guide",[2147,2175,2194,2204,2232,2251],{"title":253,"titleTemplate":254,"icon":255,"path":2148,"stem":2149,"children":2150,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts","docs\u002F5.x\u002F3.guide\u002F1.concepts",[2151,2154,2157,2160,2163,2166,2169,2172],{"title":260,"path":2152,"stem":2153,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":2155,"stem":2156,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":2158,"stem":2159,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":2161,"stem":2162,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":2164,"stem":2165,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":1309,"path":2167,"stem":2168,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-components","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F6.server-components",{"title":280,"path":2170,"stem":2171,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":2173,"stem":2174,"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":2176,"stem":2177,"children":2178,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F2.best-practices",[2179,2182,2185,2188,2191],{"title":1323,"path":2180,"stem":2181,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Faccessibility","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Faccessibility",{"title":1327,"path":2183,"stem":2184,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fdevcontainers","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fdevcontainers",{"title":1331,"path":2186,"stem":2187,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":2189,"stem":2190,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":2192,"stem":2193,"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":2195,"stem":2196,"children":2197,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai","docs\u002F5.x\u002F3.guide\u002F3.ai",[2198,2201],{"title":314,"path":2199,"stem":2200,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F5.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":2202,"stem":2203,"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":2205,"stem":2206,"children":2207,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F4.modules",[2208,2211,2214,2217,2220,2223,2226,2229],{"title":329,"path":2209,"stem":2210,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":2212,"stem":2213,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":2215,"stem":2216,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":2218,"stem":2219,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F4.module-dependencies",{"title":345,"path":2221,"stem":2222,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F5.recipes-advanced",{"title":349,"path":2224,"stem":2225,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F6.testing",{"title":353,"path":2227,"stem":2228,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F7.best-practices",{"title":357,"path":2230,"stem":2231,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F8.ecosystem",{"title":361,"titleTemplate":362,"icon":363,"path":2233,"stem":2234,"children":2235,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes","docs\u002F5.x\u002F3.guide\u002F5.recipes",[2236,2239,2242,2245,2248],{"title":368,"path":2237,"stem":2238,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":372,"path":2240,"stem":2241,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":376,"path":2243,"stem":2244,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":380,"path":2246,"stem":2247,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":1395,"path":2249,"stem":2250,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fmostly-static-sites","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F5.mostly-static-sites",{"title":384,"titleTemplate":385,"icon":386,"path":2252,"stem":2253,"children":2254,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further","docs\u002F5.x\u002F3.guide\u002F6.going-further",[2255,2258,2261,2264,2267,2270,2273,2276,2279,2282,2285],{"title":391,"path":2256,"stem":2257,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":395,"path":2259,"stem":2260,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":399,"path":2262,"stem":2263,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":403,"path":2265,"stem":2266,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":407,"path":2268,"stem":2269,"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":2271,"stem":2272,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":415,"path":2274,"stem":2275,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":419,"path":2277,"stem":2278,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":423,"path":2280,"stem":2281,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":1430,"path":2283,"stem":2284,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fbuilders","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F8.builders",{"title":427,"path":2286,"stem":2287,"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":2289,"stem":2290,"children":2291,"page":108},"\u002Fdocs\u002F5.x\u002Fapi","docs\u002F5.x\u002F4.api",[2292,2344,2447,2538,2590,2651,2661],{"title":438,"titleTemplate":439,"icon":324,"path":2293,"stem":2294,"children":2295,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F1.components",[2296,2299,2302,2305,2308,2311,2314,2317,2320,2323,2326,2329,2332,2335,2338,2341],{"title":444,"path":2297,"stem":2298,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":448,"path":2300,"stem":2301,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":452,"path":2303,"stem":2304,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":456,"path":2306,"stem":2307,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F5.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":460,"path":2309,"stem":2310,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F5.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":464,"path":2312,"stem":2313,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":468,"path":2315,"stem":2316,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F5.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1466,"path":2318,"stem":2319,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":472,"path":2321,"stem":2322,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F5.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":476,"path":2324,"stem":2325,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F5.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":480,"path":2327,"stem":2328,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F5.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":484,"path":2330,"stem":2331,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F5.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":488,"path":2333,"stem":2334,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F5.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":492,"path":2336,"stem":2337,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F5.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":496,"path":2339,"stem":2340,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F5.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":500,"path":2342,"stem":2343,"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":2345,"stem":2346,"children":2347,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables","docs\u002F5.x\u002F4.api\u002F2.composables",[2348,2351,2354,2357,2360,2363,2366,2369,2372,2375,2378,2381,2384,2387,2390,2393,2396,2399,2402,2405,2408,2411,2414,2417,2420,2423,2426,2429,2432,2435,2438,2441,2444],{"title":1498,"path":2349,"stem":2350,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1502,"path":2352,"stem":2353,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":511,"path":2355,"stem":2356,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1509,"path":2358,"stem":2359,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":515,"path":2361,"stem":2362,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":519,"path":2364,"stem":2365,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":523,"path":2367,"stem":2368,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":527,"path":2370,"stem":2371,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":531,"path":2373,"stem":2374,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":535,"path":2376,"stem":2377,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":539,"path":2379,"stem":2380,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":543,"path":2382,"stem":2383,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":1537,"path":2385,"stem":2386,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-layout","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-layout",{"title":547,"path":2388,"stem":2389,"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":2391,"stem":2392,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":555,"path":2394,"stem":2395,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":559,"path":2397,"stem":2398,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":563,"path":2400,"stem":2401,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":567,"path":2403,"stem":2404,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":571,"path":2406,"stem":2407,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":575,"path":2409,"stem":2410,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":579,"path":2412,"stem":2413,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":583,"path":2415,"stem":2416,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":587,"path":2418,"stem":2419,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":591,"path":2421,"stem":2422,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":595,"path":2424,"stem":2425,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":599,"path":2427,"stem":2428,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":603,"path":2430,"stem":2431,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":607,"path":2433,"stem":2434,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":611,"path":2436,"stem":2437,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":615,"path":2439,"stem":2440,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":619,"path":2442,"stem":2443,"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":2445,"stem":2446,"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":2448,"stem":2449,"children":2450,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils","docs\u002F5.x\u002F4.api\u002F3.utils",[2451,2454,2457,2460,2463,2466,2469,2472,2475,2478,2481,2484,2487,2490,2493,2496,2499,2502,2505,2508,2511,2514,2517,2520,2523,2526,2529,2532,2535],{"title":634,"path":2452,"stem":2453,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F5.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":638,"path":2455,"stem":2456,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":642,"path":2458,"stem":2459,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":646,"path":2461,"stem":2462,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":650,"path":2464,"stem":2465,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":654,"path":2467,"stem":2468,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":658,"path":2470,"stem":2471,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":662,"path":2473,"stem":2474,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":666,"path":2476,"stem":2477,"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":2479,"stem":2480,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":674,"path":2482,"stem":2483,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":678,"path":2485,"stem":2486,"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":2488,"stem":2489,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":686,"path":2491,"stem":2492,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":690,"path":2494,"stem":2495,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":694,"path":2497,"stem":2498,"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":2500,"stem":2501,"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":2503,"stem":2504,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":706,"path":2506,"stem":2507,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":710,"path":2509,"stem":2510,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":714,"path":2512,"stem":2513,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":718,"path":2515,"stem":2516,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":722,"path":2518,"stem":2519,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":726,"path":2521,"stem":2522,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":730,"path":2524,"stem":2525,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F5.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":734,"path":2527,"stem":2528,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":738,"path":2530,"stem":2531,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":742,"path":2533,"stem":2534,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":746,"path":2536,"stem":2537,"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":2539,"stem":2540,"children":2541,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands","docs\u002F5.x\u002F4.api\u002F4.commands",[2542,2545,2548,2551,2554,2557,2560,2563,2566,2569,2572,2575,2578,2581,2584,2587],{"title":757,"path":2543,"stem":2544,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fadd",{"title":761,"path":2546,"stem":2547,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":765,"path":2549,"stem":2550,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":769,"path":2552,"stem":2553,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":773,"path":2555,"stem":2556,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":777,"path":2558,"stem":2559,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdev",{"title":781,"path":2561,"stem":2562,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":785,"path":2564,"stem":2565,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":789,"path":2567,"stem":2568,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finfo",{"title":793,"path":2570,"stem":2571,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finit",{"title":797,"path":2573,"stem":2574,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":801,"path":2576,"stem":2577,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":805,"path":2579,"stem":2580,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":809,"path":2582,"stem":2583,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftest",{"title":813,"path":2585,"stem":2586,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":817,"path":2588,"stem":2589,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":415,"titleTemplate":821,"icon":822,"path":2591,"stem":2592,"children":2593,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit","docs\u002F5.x\u002F4.api\u002F5.kit",[2594,2597,2600,2603,2606,2609,2612,2615,2618,2621,2624,2627,2630,2633,2636,2639,2642,2645,2648],{"title":276,"path":2595,"stem":2596,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F5.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":403,"path":2598,"stem":2599,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":833,"path":2601,"stem":2602,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":1757,"path":2604,"stem":2605,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fapp-config","docs\u002F5.x\u002F4.api\u002F5.kit\u002F11.app-config",{"title":837,"path":2607,"stem":2608,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F5.x\u002F4.api\u002F5.kit\u002F12.nitro",{"title":841,"path":2610,"stem":2611,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F5.x\u002F4.api\u002F5.kit\u002F13.resolving",{"title":845,"path":2613,"stem":2614,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F5.x\u002F4.api\u002F5.kit\u002F14.logging",{"title":849,"path":2616,"stem":2617,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F5.x\u002F4.api\u002F5.kit\u002F15.builder",{"title":853,"path":2619,"stem":2620,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F5.x\u002F4.api\u002F5.kit\u002F16.examples",{"title":84,"path":2622,"stem":2623,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F5.x\u002F4.api\u002F5.kit\u002F17.layers",{"title":860,"path":2625,"stem":2626,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F5.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":864,"path":2628,"stem":2629,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F5.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":2631,"stem":2632,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F5.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":438,"path":2634,"stem":2635,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F5.kit\u002F5.components",{"title":874,"path":2637,"stem":2638,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F5.x\u002F4.api\u002F5.kit\u002F6.context",{"title":878,"path":2640,"stem":2641,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F5.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":882,"path":2643,"stem":2644,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F5.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":886,"path":2646,"stem":2647,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.head",{"title":890,"path":2649,"stem":2650,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":894,"titleTemplate":6,"icon":895,"path":2652,"stem":2653,"children":2654,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced","docs\u002F5.x\u002F4.api\u002F6.advanced",[2655,2658],{"title":411,"path":2656,"stem":2657,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":903,"path":2659,"stem":2660,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":907,"path":2662,"stem":2663,"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":2665,"stem":2666,"children":2667,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples","docs\u002F5.x\u002F4.examples",[2668,2671,2690,2703,2734],{"title":918,"path":2669,"stem":2670,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fhello-world","docs\u002F5.x\u002F4.examples\u002F0.hello-world",{"title":399,"path":2672,"stem":2673,"children":2674,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures","docs\u002F5.x\u002F4.examples\u002F1.features",[2675,2678,2681,2684,2687],{"title":926,"path":2676,"stem":2677,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F5.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":2679,"stem":2680,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F5.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":2682,"stem":2683,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F5.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":936,"path":2685,"stem":2686,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F5.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":940,"path":2688,"stem":2689,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F5.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":2691,"stem":2692,"children":2693,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting","docs\u002F5.x\u002F4.examples\u002F2.routing",[2694,2697,2700],{"title":948,"path":2695,"stem":2696,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":878,"path":2698,"stem":2699,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":955,"path":2701,"stem":2702,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":894,"path":2704,"stem":2705,"children":2706,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced","docs\u002F5.x\u002F4.examples\u002F4.advanced",[2707,2710,2713,2716,2719,2722,2725,2728,2731],{"title":84,"path":2708,"stem":2709,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":2711,"stem":2712,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":969,"path":2714,"stem":2715,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":973,"path":2717,"stem":2718,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":977,"path":2720,"stem":2721,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":981,"path":2723,"stem":2724,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":2726,"stem":2727,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":523,"path":2729,"stem":2730,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":991,"path":2732,"stem":2733,"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":2735,"stem":2736,"children":2737,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental","docs\u002F5.x\u002F4.examples\u002F7.experimental",[2738],{"title":1000,"path":2739,"stem":2740,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F5.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1004,"titleTemplate":1005,"icon":1006,"path":2742,"stem":2743,"children":2744,"page":108},"\u002Fdocs\u002F5.x\u002Fcommunity","docs\u002F5.x\u002F5.community",[2745,2748,2751,2754,2757,2760],{"title":1011,"path":2746,"stem":2747,"titleTemplate":6,"icon":1014},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fgetting-help","docs\u002F5.x\u002F5.community\u002F2.getting-help",{"title":1016,"path":2749,"stem":2750,"titleTemplate":6,"icon":1019},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Freporting-bugs","docs\u002F5.x\u002F5.community\u002F3.reporting-bugs",{"title":1021,"path":2752,"stem":2753,"titleTemplate":6,"icon":1024},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fcontribution","docs\u002F5.x\u002F5.community\u002F4.contribution",{"title":1026,"path":2755,"stem":2756,"titleTemplate":6,"icon":1029},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fframework-contribution","docs\u002F5.x\u002F5.community\u002F5.framework-contribution",{"title":1031,"path":2758,"stem":2759,"titleTemplate":6,"icon":1034},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Froadmap","docs\u002F5.x\u002F5.community\u002F6.roadmap",{"title":1036,"path":2761,"stem":2762,"titleTemplate":6,"icon":1039},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fchangelog","docs\u002F5.x\u002F5.community\u002F7.changelog",{"title":1041,"titleTemplate":1042,"icon":1043,"path":2764,"stem":2765,"children":2766,"page":108},"\u002Fdocs\u002F5.x\u002Fbridge","docs\u002F5.x\u002F6.bridge",[2767,2770,2773,2776,2779,2782,2785,2788,2791,2794],{"title":1048,"path":2768,"stem":2769,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Foverview","docs\u002F5.x\u002F6.bridge\u002F1.overview",{"title":29,"path":2771,"stem":2772,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fconfiguration","docs\u002F5.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":2774,"stem":2775,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Ftypescript","docs\u002F5.x\u002F6.bridge\u002F2.typescript",{"title":1058,"path":2777,"stem":2778,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F5.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1062,"path":2780,"stem":2781,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F5.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1066,"path":2783,"stem":2784,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F5.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":936,"path":2786,"stem":2787,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fmeta","docs\u002F5.x\u002F6.bridge\u002F6.meta",{"title":403,"path":2789,"stem":2790,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fruntime-config","docs\u002F5.x\u002F6.bridge\u002F7.runtime-config",{"title":837,"path":2792,"stem":2793,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnitro","docs\u002F5.x\u002F6.bridge\u002F8.nitro",{"title":1079,"path":2795,"stem":2796,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fvite","docs\u002F5.x\u002F6.bridge\u002F9.vite",{"title":1083,"titleTemplate":1084,"icon":107,"path":2798,"stem":2799,"children":2800,"page":108},"\u002Fdocs\u002F5.x\u002Fmigration","docs\u002F5.x\u002F7.migration",[2801,2804,2807,2810,2813,2816,2819,2822,2825,2828,2831],{"title":1048,"path":2802,"stem":2803,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Foverview","docs\u002F5.x\u002F7.migration\u002F1.overview",{"title":1092,"path":2805,"stem":2806,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fbundling","docs\u002F5.x\u002F7.migration\u002F10.bundling",{"title":79,"path":2808,"stem":2809,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fserver","docs\u002F5.x\u002F7.migration\u002F11.server",{"title":29,"path":2811,"stem":2812,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fconfiguration","docs\u002F5.x\u002F7.migration\u002F2.configuration",{"title":276,"path":2814,"stem":2815,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmodule-authors","docs\u002F5.x\u002F7.migration\u002F20.module-authors",{"title":926,"path":2817,"stem":2818,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fauto-imports","docs\u002F5.x\u002F7.migration\u002F3.auto-imports",{"title":936,"path":2820,"stem":2821,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmeta","docs\u002F5.x\u002F7.migration\u002F4.meta",{"title":1062,"path":2823,"stem":2824,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F5.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1114,"path":2826,"stem":2827,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F5.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1118,"path":2829,"stem":2830,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fcomponent-options","docs\u002F5.x\u002F7.migration\u002F7.component-options",{"title":403,"path":2832,"stem":2833,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fruntime-config","docs\u002F5.x\u002F7.migration\u002F8.runtime-config",{"title":2835,"icon":2836,"path":2837,"stem":2838,"children":2839,"page":108},"Blog","i-lucide-newspaper","\u002Fblog","blog",[2840,2844,2848,2852,2856,2860,2864,2868,2872,2876,2880,2884,2888,2892,2896,2900,2904,2908,2912,2916,2920,2924,2928,2932,2936,2940,2944,2948,2952,2956,2960,2964,2968,2972,2976,2980,2984,2988,2992,2996,3000,3004,3008,3012,3016,3020,3024,3028,3032,3036],{"title":2841,"path":2842,"stem":2843},"Announcing 3.0","\u002Fblog\u002Fv3","blog\u002F1.v3",{"title":2845,"path":2846,"stem":2847},"Nuxt 3.3","\u002Fblog\u002Fv3-3","blog\u002F10.v3-3",{"title":2849,"path":2850,"stem":2851},"Nuxt 3.4","\u002Fblog\u002Fv3-4","blog\u002F11.v3-4",{"title":2853,"path":2854,"stem":2855},"Nuxt 3.5","\u002Fblog\u002Fv3-5","blog\u002F12.v3-5",{"title":2857,"path":2858,"stem":2859},"Nuxt 3.6","\u002Fblog\u002Fv3-6","blog\u002F13.v3-6",{"title":2861,"path":2862,"stem":2863},"Nuxt on the Edge","\u002Fblog\u002Fnuxt-on-the-edge","blog\u002F14.nuxt-on-the-edge",{"title":2865,"path":2866,"stem":2867},"Nuxt 3.7","\u002Fblog\u002Fv3-7","blog\u002F15.v3-7",{"title":2869,"path":2870,"stem":2871},"A New Website","\u002Fblog\u002Fnew-website","blog\u002F16.new-website",{"title":2873,"path":2874,"stem":2875},"Nuxt 3.8","\u002Fblog\u002Fv3-8","blog\u002F17.v3-8",{"title":2877,"path":2878,"stem":2879},"Nuxt DevTools v1.0","\u002Fblog\u002Fnuxt-devtools-v1-0","blog\u002F18.nuxt-devtools-v1-0",{"title":2881,"path":2882,"stem":2883},"Nuxt 3.9","\u002Fblog\u002Fv3-9","blog\u002F19.v3-9",{"title":2885,"path":2886,"stem":2887},"Nuxt: A vision for 2023","\u002Fblog\u002Fvision-2023","blog\u002F2.vision-2023",{"title":2889,"path":2890,"stem":2891},"Nuxt 3.10","\u002Fblog\u002Fv3-10","blog\u002F20.v3-10",{"title":2893,"path":2894,"stem":2895},"The Evolution of Shiki v1.0","\u002Fblog\u002Fshiki-v1","blog\u002F21.shiki-v1",{"title":2897,"path":2898,"stem":2899},"Nuxt 3.11","\u002Fblog\u002Fv3-11","blog\u002F22.v3-11",{"title":2901,"path":2902,"stem":2903},"Nuxt: Looking forward","\u002Fblog\u002Flooking-forward-2024","blog\u002F23.looking-forward-2024",{"title":2905,"path":2906,"stem":2907},"Refreshed Nuxt ESLint Integrations","\u002Fblog\u002Feslint-module","blog\u002F24.eslint-module",{"title":2909,"path":2910,"stem":2911},"Nuxt 3.12","\u002Fblog\u002Fv3-12","blog\u002F25.v3-12",{"title":2913,"path":2914,"stem":2915},"Introducing Nuxt Scripts","\u002Fblog\u002Fnuxt-scripts","blog\u002F26.nuxt-scripts",{"title":2917,"path":2918,"stem":2919},"Nuxt 3.13","\u002Fblog\u002Fv3-13","blog\u002F27.v3-13",{"title":2921,"path":2922,"stem":2923},"Nuxt 3.14","\u002Fblog\u002Fv3-14","blog\u002F27.v3-14",{"title":2925,"path":2926,"stem":2927},"Introducing Nuxt Icon v1","\u002Fblog\u002Fnuxt-icon-v1-0","blog\u002F29.nuxt-icon-v1-0",{"title":2929,"path":2930,"stem":2931},"Introducing Nuxt DevTools","\u002Fblog\u002Fintroducing-nuxt-devtools","blog\u002F3.introducing-nuxt-devtools",{"title":2933,"path":2934,"stem":2935},"Announcing Nuxt 3 Release Candidate","\u002Fblog\u002Fnuxt3-rc","blog\u002F3.nuxt3-rc",{"title":2937,"path":2938,"stem":2939},"Nuxt 3.15","\u002Fblog\u002Fv3-15","blog\u002F30.v3-15",{"title":2941,"path":2942,"stem":2943},"Nuxt 3.16","\u002Fblog\u002Fv3-16","blog\u002F31.v3-16",{"title":2945,"path":2946,"stem":2947},"Nuxt UI v3","\u002Fblog\u002Fnuxt-ui-v3","blog\u002F32.nuxt-ui-v3",{"title":2949,"path":2950,"stem":2951},"Nuxt 3.17","\u002Fblog\u002Fv3-17","blog\u002F33.v3-17",{"title":2953,"path":2954,"stem":2955},"Roadmap to v4","\u002Fblog\u002Froadmap-v4","blog\u002F34.roadmap-v4",{"title":2957,"path":2958,"stem":2959},"Building a Privacy-First Feedback Widget","\u002Fblog\u002Fbuilding-a-feedback-widget","blog\u002F35.building-a-feedback-widget",{"title":2961,"path":2962,"stem":2963},"Announcing Nuxt 4.0","\u002Fblog\u002Fv4","blog\u002F36.v4",{"title":2965,"path":2966,"stem":2967},"Nuxt 3.18","\u002Fblog\u002Fv3-18","blog\u002F37.v3-18",{"title":2969,"path":2970,"stem":2971},"Nuxt 4.1","\u002Fblog\u002Fv4-1","blog\u002F38.v4-1",{"title":2973,"path":2974,"stem":2975},"Nuxt UI v4","\u002Fblog\u002Fnuxt-ui-v4","blog\u002F39.nuxt-ui-v4",{"title":2977,"path":2978,"stem":2979},"Nuxt 2 End-of-Life (EOL)","\u002Fblog\u002Fnuxt2-eol","blog\u002F4.nuxt2-eol",{"title":2981,"path":2982,"stem":2983},"Introducing Nuxt 3 Beta","\u002Fblog\u002Fnuxt3-beta","blog\u002F4.nuxt3-beta",{"title":2985,"path":2986,"stem":2987},"Building an MCP Server for Nuxt","\u002Fblog\u002Fbuilding-nuxt-mcp","blog\u002F40.building-nuxt-mcp",{"title":2989,"path":2990,"stem":2991},"Nuxt 4.2","\u002Fblog\u002Fv4-2","blog\u002F40.v4-2",{"title":2993,"path":2994,"stem":2995},"Nuxt Image v2","\u002Fblog\u002Fnuxt-image-v2","blog\u002F41.nuxt-image-v2",{"title":2997,"path":2998,"stem":2999},"Nuxt 4.3","\u002Fblog\u002Fv4-3","blog\u002F42.v4-3",{"title":3001,"path":3002,"stem":3003},"Nuxt 4.4","\u002Fblog\u002Fv4-4","blog\u002F43.v4-4",{"title":3005,"path":3006,"stem":3007},"Introducing the Nuxt Agent","\u002Fblog\u002Fintroducing-nuxt-agent","blog\u002F44.introducing-nuxt-agent",{"title":3009,"path":3010,"stem":3011},"Meet Nuxi","\u002Fblog\u002Fmeet-nuxi","blog\u002F45.meet-nuxi",{"title":3013,"path":3014,"stem":3015},"Nuxt 4.5","\u002Fblog\u002Fv4-5","blog\u002F46.v4-5",{"title":3017,"path":3018,"stem":3019},"Nuxt Security Patch Releases","\u002Fblog\u002Fv4-5-security","blog\u002F47.v4-5-security",{"title":3021,"path":3022,"stem":3023},"Going Full Static","\u002Fblog\u002Fgoing-full-static","blog\u002F5.going-full-static",{"title":3025,"path":3026,"stem":3027},"Introducing Smart Prefetching","\u002Fblog\u002Fintroducing-smart-prefetching","blog\u002F6.introducing-smart-prefetching",{"title":3029,"path":3030,"stem":3031},"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":3033,"path":3034,"stem":3035},"Nuxt 2 Static Improvements","\u002Fblog\u002Fnuxt-static-improvements","blog\u002F8.nuxt-static-improvements",{"title":3037,"path":3038,"stem":3039},"Nuxt 2: From Terminal to Browser","\u002Fblog\u002Fnuxtjs-from-terminal-to-browser","blog\u002F9.nuxtjs-from-terminal-to-browser",{"name":3041,"description":3042,"repo":3043,"npm":3044,"icon":3045,"github":3046,"website":3046,"learn_more":3045,"category":3047,"type":3048,"maintainers":3049,"compatibility":3054,"generatedAt":3057,"contributors":3058,"stats":3156,"readme":3164},"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",[3050],{"name":3051,"github":3052,"twitter":3052,"bluesky":3053},"Sébastien Chopin","atinux","atinux.com",{"nuxt":3055,"requires":3056},">=3.0.0",{},"2026-08-08T09:36:22.546Z",[3059,3062,3066,3070,3074,3078,3082,3085,3088,3091,3094,3098,3101,3104,3107,3110,3113,3116,3119,3122,3125,3128,3132,3135,3138,3141,3144,3147,3150,3153],{"id":3060,"username":3052,"contributions":3061},904724,199,{"id":3063,"username":3064,"contributions":3065},28706372,"danielroe",16,{"id":3067,"username":3068,"contributions":3069},50090595,"ahmedrangel",9,{"id":3071,"username":3072,"contributions":3073},12988935,"Gerbuuun",8,{"id":3075,"username":3076,"contributions":3077},45267552,"Barbapapazes",7,{"id":3079,"username":3080,"contributions":3081},13056429,"sandros94",3,{"id":3083,"username":3084,"contributions":3081},16264115,"Yizack",{"id":3086,"username":3087,"contributions":3081},967369,"acidjazz",{"id":3089,"username":3090,"contributions":3081},15887916,"blumgart",{"id":3092,"username":3093,"contributions":3081},67746033,"justserdar",{"id":3095,"username":3096,"contributions":3097},10636392,"brianacdev",2,{"id":3099,"username":3100,"contributions":3097},67898185,"larsrickert",{"id":3102,"username":3103,"contributions":3097},40021217,"kingyue737",{"id":3105,"username":3106,"contributions":3097},59120414,"cth-latest",{"id":3108,"username":3109,"contributions":3097},19751938,"noook",{"id":3111,"username":3112,"contributions":3097},1409645,"mariosant",{"id":3114,"username":3115,"contributions":3097},24661232,"Jorgagu",{"id":3117,"username":3118,"contributions":3097},5326365,"harlan-zw",{"id":3120,"username":3121,"contributions":3097},61092270,"stranavad",{"id":3123,"username":3124,"contributions":3097},1592441,"mendrinos",{"id":3126,"username":3127,"contributions":3097},376963,"bisand",{"id":3129,"username":3130,"contributions":3131},68467996,"tejas161",1,{"id":3133,"username":3134,"contributions":3131},18315316,"Syrex-o",{"id":3136,"username":3137,"contributions":3131},3109921,"silvio-e",{"id":3139,"username":3140,"contributions":3131},18753964,"sifferhans",{"id":3142,"username":3143,"contributions":3131},17186421,"samulefevre",{"id":3145,"username":3146,"contributions":3131},15785987,"samydoesit",{"id":3148,"username":3149,"contributions":3131},31662219,"rudokemper",{"id":3151,"username":3152,"contributions":3131},29805551,"RobertHaba",{"id":3154,"username":3155,"contributions":3131},1231105,"SteinRobert",{"version":3157,"downloads":3158,"stars":3159,"watchers":3159,"forks":3160,"defaultBranch":3161,"publishedAt":3162,"createdAt":3163},"0.5.30",389401,1589,187,"main",1785851859387,1699356484873,{"data":3165,"body":3167,"toc":14172},{"title":3166,"description":3045},"Nuxt Auth Utils",{"type":3168,"children":3169},"root",[3170,3177,3223,3227,3261,3267,3366,3380,3386,3398,3410,3421,3427,3443,3485,3507,3542,3554,3562,3568,3573,3580,4122,4131,4634,4656,4662,4675,4681,5058,5078,5257,5269,5275,5280,5300,5321,5348,5526,5531,5552,5560,5567,5810,5823,5829,5840,6245,6257,6270,6275,6305,6431,6444,6555,6566,6722,6728,6733,6738,6746,6780,6793,6872,6877,6882,6887,6894,6926,6938,7017,7022,7027,7041,7361,7501,7531,8459,8494,9331,9365,9878,9883,10722,10740,10746,10775,10786,10792,10797,11079,11085,11104,11330,11354,11359,11379,11384,11392,11411,11499,11525,11531,11548,11635,11653,11663,11675,11680,11949,11961,11973,12346,12374,12380,12393,12411,12514,12534,12884,12898,13398,13403,13430,13441,13611,13616,13762,13782,13885,13903,13909,13929,13935,14166],{"type":3171,"tag":3172,"props":3173,"children":3174},"element","h1",{"id":3044},[3175],{"type":3176,"value":3166},"text",{"type":3171,"tag":3178,"props":3179,"children":3180},"p",{},[3181,3194,3204,3213],{"type":3171,"tag":3182,"props":3183,"children":3187},"a",{"href":3184,"rel":3185},"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fnuxt-auth-utils",[3186],"nofollow",[3188],{"type":3171,"tag":3189,"props":3190,"children":3193},"img",{"alt":3191,"src":3192},"npm version","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fnuxt-auth-utils\u002Flatest.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3171,"tag":3182,"props":3195,"children":3198},{"href":3196,"rel":3197},"https:\u002F\u002Fnpm.chart.dev\u002Fnuxt-auth-utils",[3186],[3199],{"type":3171,"tag":3189,"props":3200,"children":3203},{"alt":3201,"src":3202},"npm downloads","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3171,"tag":3182,"props":3205,"children":3207},{"href":3184,"rel":3206},[3186],[3208],{"type":3171,"tag":3189,"props":3209,"children":3212},{"alt":3210,"src":3211},"License","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3171,"tag":3182,"props":3214,"children":3217},{"href":3215,"rel":3216},"https:\u002F\u002Fnuxt.com",[3186],[3218],{"type":3171,"tag":3189,"props":3219,"children":3222},{"alt":3220,"src":3221},"Nuxt","https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNuxt-020420?logo=nuxt.js",[],{"type":3171,"tag":3178,"props":3224,"children":3225},{},[3226],{"type":3176,"value":3042},{"type":3171,"tag":3228,"props":3229,"children":3230},"ul",{},[3231,3241,3251],{"type":3171,"tag":3232,"props":3233,"children":3234},"li",{},[3235],{"type":3171,"tag":3182,"props":3236,"children":3238},{"href":3237},"\u002FCHANGELOG.md",[3239],{"type":3176,"value":3240},"Release Notes",{"type":3171,"tag":3232,"props":3242,"children":3243},{},[3244],{"type":3171,"tag":3182,"props":3245,"children":3248},{"href":3246,"rel":3247},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fatidone",[3186],[3249],{"type":3176,"value":3250},"Demo with OAuth",{"type":3171,"tag":3232,"props":3252,"children":3253},{},[3254],{"type":3171,"tag":3182,"props":3255,"children":3258},{"href":3256,"rel":3257},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Ftodo-passkeys",[3186],[3259],{"type":3176,"value":3260},"Demo with Passkeys",{"type":3171,"tag":3262,"props":3263,"children":3265},"h2",{"id":3264},"features",[3266],{"type":3176,"value":399},{"type":3171,"tag":3228,"props":3268,"children":3269},{},[3270,3281,3290,3299,3308,3324,3333,3348,3357],{"type":3171,"tag":3232,"props":3271,"children":3272},{},[3273,3279],{"type":3171,"tag":3182,"props":3274,"children":3276},{"href":3275},"#hybrid-rendering",[3277],{"type":3176,"value":3278},"Hybrid Rendering",{"type":3176,"value":3280}," support (SSR \u002F CSR \u002F SWR \u002F Prerendering)",{"type":3171,"tag":3232,"props":3282,"children":3283},{},[3284],{"type":3171,"tag":3182,"props":3285,"children":3287},{"href":3286},"#supported-oauth-providers",[3288],{"type":3176,"value":3289},"40+ OAuth Providers",{"type":3171,"tag":3232,"props":3291,"children":3292},{},[3293],{"type":3171,"tag":3182,"props":3294,"children":3296},{"href":3295},"#password-hashing",[3297],{"type":3176,"value":3298},"Password Hashing",{"type":3171,"tag":3232,"props":3300,"children":3301},{},[3302],{"type":3171,"tag":3182,"props":3303,"children":3305},{"href":3304},"#webauthn-passkey",[3306],{"type":3176,"value":3307},"WebAuthn (passkey)",{"type":3171,"tag":3232,"props":3309,"children":3310},{},[3311],{"type":3171,"tag":3182,"props":3312,"children":3314},{"href":3313},"#vue-composable",[3315,3322],{"type":3171,"tag":3316,"props":3317,"children":3319},"code",{"className":3318},[],[3320],{"type":3176,"value":3321},"useUserSession()",{"type":3176,"value":3323}," Vue composable",{"type":3171,"tag":3232,"props":3325,"children":3326},{},[3327],{"type":3171,"tag":3182,"props":3328,"children":3330},{"href":3329},"#server-utils",[3331],{"type":3176,"value":3332},"Tree-shakable server utils",{"type":3171,"tag":3232,"props":3334,"children":3335},{},[3336],{"type":3171,"tag":3182,"props":3337,"children":3339},{"href":3338},"#authstate-component",[3340,3346],{"type":3171,"tag":3316,"props":3341,"children":3343},{"className":3342},[],[3344],{"type":3176,"value":3345},"\u003CAuthState>",{"type":3176,"value":3347}," component",{"type":3171,"tag":3232,"props":3349,"children":3350},{},[3351],{"type":3171,"tag":3182,"props":3352,"children":3354},{"href":3353},"#extend-session",[3355],{"type":3176,"value":3356},"Extendable with hooks",{"type":3171,"tag":3232,"props":3358,"children":3359},{},[3360],{"type":3171,"tag":3182,"props":3361,"children":3363},{"href":3362},"#websocket-support",[3364],{"type":3176,"value":3365},"WebSocket support",{"type":3171,"tag":3178,"props":3367,"children":3368},{},[3369,3371,3378],{"type":3176,"value":3370},"It has few dependencies (only from ",{"type":3171,"tag":3182,"props":3372,"children":3375},{"href":3373,"rel":3374},"https:\u002F\u002Fgithub.com\u002Funjs",[3186],[3376],{"type":3176,"value":3377},"UnJS",{"type":3176,"value":3379},"), run on multiple JS environments (Node, Deno, Workers) and is fully typed with TypeScript.",{"type":3171,"tag":3262,"props":3381,"children":3383},{"id":3382},"requirements",[3384],{"type":3176,"value":3385},"Requirements",{"type":3171,"tag":3178,"props":3387,"children":3388},{},[3389,3391,3396],{"type":3176,"value":3390},"This module only works with a Nuxt server running as it uses server API routes (",{"type":3171,"tag":3316,"props":3392,"children":3394},{"className":3393},[],[3395],{"type":3176,"value":765},{"type":3176,"value":3397},").",{"type":3171,"tag":3178,"props":3399,"children":3400},{},[3401,3403,3408],{"type":3176,"value":3402},"This means that you cannot use this module with ",{"type":3171,"tag":3316,"props":3404,"children":3406},{"className":3405},[],[3407],{"type":3176,"value":785},{"type":3176,"value":3409},".",{"type":3171,"tag":3178,"props":3411,"children":3412},{},[3413,3415,3419],{"type":3176,"value":3414},"You can anyway use ",{"type":3171,"tag":3182,"props":3416,"children":3417},{"href":3275},[3418],{"type":3176,"value":3278},{"type":3176,"value":3420}," to pre-render pages of your application or disable server-side rendering completely.",{"type":3171,"tag":3262,"props":3422,"children":3424},{"id":3423},"quick-setup",[3425],{"type":3176,"value":3426},"Quick Setup",{"type":3171,"tag":3428,"props":3429,"children":3430},"ol",{},[3431],{"type":3171,"tag":3232,"props":3432,"children":3433},{},[3434,3436,3441],{"type":3176,"value":3435},"Add ",{"type":3171,"tag":3316,"props":3437,"children":3439},{"className":3438},[],[3440],{"type":3176,"value":3044},{"type":3176,"value":3442}," in your Nuxt project",{"type":3171,"tag":3444,"props":3445,"children":3449},"pre",{"className":3446,"code":3447,"language":3448,"meta":3045,"style":3045},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","npx nuxi@latest module add auth-utils\n","bash",[3450],{"type":3171,"tag":3316,"props":3451,"children":3452},{"__ignoreMap":3045},[3453],{"type":3171,"tag":3454,"props":3455,"children":3457},"span",{"class":3456,"line":3131},"line",[3458,3464,3470,3475,3480],{"type":3171,"tag":3454,"props":3459,"children":3461},{"style":3460},"--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B",[3462],{"type":3176,"value":3463},"npx",{"type":3171,"tag":3454,"props":3465,"children":3467},{"style":3466},"--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D",[3468],{"type":3176,"value":3469}," nuxi@latest",{"type":3171,"tag":3454,"props":3471,"children":3472},{"style":3466},[3473],{"type":3176,"value":3474}," module",{"type":3171,"tag":3454,"props":3476,"children":3477},{"style":3466},[3478],{"type":3176,"value":3479}," add",{"type":3171,"tag":3454,"props":3481,"children":3482},{"style":3466},[3483],{"type":3176,"value":3484}," auth-utils\n",{"type":3171,"tag":3428,"props":3486,"children":3487},{"start":3097},[3488],{"type":3171,"tag":3232,"props":3489,"children":3490},{},[3491,3493,3499,3501,3506],{"type":3176,"value":3492},"Add a ",{"type":3171,"tag":3316,"props":3494,"children":3496},{"className":3495},[],[3497],{"type":3176,"value":3498},"NUXT_SESSION_PASSWORD",{"type":3176,"value":3500}," env variable with at least 32 characters in the ",{"type":3171,"tag":3316,"props":3502,"children":3504},{"className":3503},[],[3505],{"type":3176,"value":200},{"type":3176,"value":3409},{"type":3171,"tag":3444,"props":3508,"children":3510},{"className":3446,"code":3509,"language":3448,"meta":3045,"style":3045},"# .env\nNUXT_SESSION_PASSWORD=password-with-at-least-32-characters\n",[3511],{"type":3171,"tag":3316,"props":3512,"children":3513},{"__ignoreMap":3045},[3514,3523],{"type":3171,"tag":3454,"props":3515,"children":3516},{"class":3456,"line":3131},[3517],{"type":3171,"tag":3454,"props":3518,"children":3520},{"style":3519},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[3521],{"type":3176,"value":3522},"# .env\n",{"type":3171,"tag":3454,"props":3524,"children":3525},{"class":3456,"line":3097},[3526,3531,3537],{"type":3171,"tag":3454,"props":3527,"children":3529},{"style":3528},"--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8",[3530],{"type":3176,"value":3498},{"type":3171,"tag":3454,"props":3532,"children":3534},{"style":3533},"--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF",[3535],{"type":3176,"value":3536},"=",{"type":3171,"tag":3454,"props":3538,"children":3539},{"style":3466},[3540],{"type":3176,"value":3541},"password-with-at-least-32-characters\n",{"type":3171,"tag":3178,"props":3543,"children":3544},{},[3545,3547,3552],{"type":3176,"value":3546},"Nuxt Auth Utils generates one for you when running Nuxt in development the first time if no ",{"type":3171,"tag":3316,"props":3548,"children":3550},{"className":3549},[],[3551],{"type":3176,"value":3498},{"type":3176,"value":3553}," is set.",{"type":3171,"tag":3428,"props":3555,"children":3556},{"start":3081},[3557],{"type":3171,"tag":3232,"props":3558,"children":3559},{},[3560],{"type":3176,"value":3561},"That's it! You can now add authentication to your Nuxt app ✨",{"type":3171,"tag":3262,"props":3563,"children":3565},{"id":3564},"vue-composable",[3566],{"type":3176,"value":3567},"Vue Composable",{"type":3171,"tag":3178,"props":3569,"children":3570},{},[3571],{"type":3176,"value":3572},"Nuxt Auth Utils automatically adds some plugins to fetch the current user session to let you access it from your Vue components.",{"type":3171,"tag":3574,"props":3575,"children":3577},"h3",{"id":3576},"user-session",[3578],{"type":3176,"value":3579},"User Session",{"type":3171,"tag":3444,"props":3581,"children":3585},{"className":3582,"code":3583,"language":3584,"meta":3045,"style":3045},"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",[3586],{"type":3171,"tag":3316,"props":3587,"children":3588},{"__ignoreMap":3045},[3589,3614,3699,3715,3724,3741,3782,3816,3848,3903,3920,3941,3974,4029,4038,4091,4106],{"type":3171,"tag":3454,"props":3590,"children":3591},{"class":3456,"line":3131},[3592,3597,3603,3609],{"type":3171,"tag":3454,"props":3593,"children":3594},{"style":3533},[3595],{"type":3176,"value":3596},"\u003C",{"type":3171,"tag":3454,"props":3598,"children":3600},{"style":3599},"--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178",[3601],{"type":3176,"value":3602},"script",{"type":3171,"tag":3454,"props":3604,"children":3606},{"style":3605},"--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA",[3607],{"type":3176,"value":3608}," setup",{"type":3171,"tag":3454,"props":3610,"children":3611},{"style":3533},[3612],{"type":3176,"value":3613},">\n",{"type":3171,"tag":3454,"props":3615,"children":3616},{"class":3456,"line":3097},[3617,3622,3627,3632,3637,3642,3646,3651,3655,3660,3664,3669,3673,3678,3683,3688,3694],{"type":3171,"tag":3454,"props":3618,"children":3619},{"style":3605},[3620],{"type":3176,"value":3621},"const",{"type":3171,"tag":3454,"props":3623,"children":3624},{"style":3533},[3625],{"type":3176,"value":3626}," {",{"type":3171,"tag":3454,"props":3628,"children":3629},{"style":3528},[3630],{"type":3176,"value":3631}," loggedIn",{"type":3171,"tag":3454,"props":3633,"children":3634},{"style":3533},[3635],{"type":3176,"value":3636},",",{"type":3171,"tag":3454,"props":3638,"children":3639},{"style":3528},[3640],{"type":3176,"value":3641}," user",{"type":3171,"tag":3454,"props":3643,"children":3644},{"style":3533},[3645],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":3647,"children":3648},{"style":3528},[3649],{"type":3176,"value":3650}," session",{"type":3171,"tag":3454,"props":3652,"children":3653},{"style":3533},[3654],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":3656,"children":3657},{"style":3528},[3658],{"type":3176,"value":3659}," fetch",{"type":3171,"tag":3454,"props":3661,"children":3662},{"style":3533},[3663],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":3665,"children":3666},{"style":3528},[3667],{"type":3176,"value":3668}," clear",{"type":3171,"tag":3454,"props":3670,"children":3671},{"style":3533},[3672],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":3674,"children":3675},{"style":3528},[3676],{"type":3176,"value":3677}," openInPopup ",{"type":3171,"tag":3454,"props":3679,"children":3680},{"style":3533},[3681],{"type":3176,"value":3682},"}",{"type":3171,"tag":3454,"props":3684,"children":3685},{"style":3533},[3686],{"type":3176,"value":3687}," =",{"type":3171,"tag":3454,"props":3689,"children":3691},{"style":3690},"--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF",[3692],{"type":3176,"value":3693}," useUserSession",{"type":3171,"tag":3454,"props":3695,"children":3696},{"style":3528},[3697],{"type":3176,"value":3698},"()\n",{"type":3171,"tag":3454,"props":3700,"children":3701},{"class":3456,"line":3081},[3702,3707,3711],{"type":3171,"tag":3454,"props":3703,"children":3704},{"style":3533},[3705],{"type":3176,"value":3706},"\u003C\u002F",{"type":3171,"tag":3454,"props":3708,"children":3709},{"style":3599},[3710],{"type":3176,"value":3602},{"type":3171,"tag":3454,"props":3712,"children":3713},{"style":3533},[3714],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":3716,"children":3718},{"class":3456,"line":3717},4,[3719],{"type":3171,"tag":3454,"props":3720,"children":3721},{"emptyLinePlaceholder":1200},[3722],{"type":3176,"value":3723},"\n",{"type":3171,"tag":3454,"props":3725,"children":3727},{"class":3456,"line":3726},5,[3728,3732,3737],{"type":3171,"tag":3454,"props":3729,"children":3730},{"style":3533},[3731],{"type":3176,"value":3596},{"type":3171,"tag":3454,"props":3733,"children":3734},{"style":3599},[3735],{"type":3176,"value":3736},"template",{"type":3171,"tag":3454,"props":3738,"children":3739},{"style":3533},[3740],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":3742,"children":3744},{"class":3456,"line":3743},6,[3745,3750,3755,3760,3764,3769,3774,3778],{"type":3171,"tag":3454,"props":3746,"children":3747},{"style":3533},[3748],{"type":3176,"value":3749},"  \u003C",{"type":3171,"tag":3454,"props":3751,"children":3752},{"style":3599},[3753],{"type":3176,"value":3754},"div",{"type":3171,"tag":3454,"props":3756,"children":3757},{"style":3605},[3758],{"type":3176,"value":3759}," v-if",{"type":3171,"tag":3454,"props":3761,"children":3762},{"style":3533},[3763],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":3765,"children":3766},{"style":3533},[3767],{"type":3176,"value":3768},"\"",{"type":3171,"tag":3454,"props":3770,"children":3771},{"style":3466},[3772],{"type":3176,"value":3773},"loggedIn",{"type":3171,"tag":3454,"props":3775,"children":3776},{"style":3533},[3777],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":3779,"children":3780},{"style":3533},[3781],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":3783,"children":3784},{"class":3456,"line":3077},[3785,3790,3794,3799,3804,3808,3812],{"type":3171,"tag":3454,"props":3786,"children":3787},{"style":3533},[3788],{"type":3176,"value":3789},"    \u003C",{"type":3171,"tag":3454,"props":3791,"children":3792},{"style":3599},[3793],{"type":3176,"value":3172},{"type":3171,"tag":3454,"props":3795,"children":3796},{"style":3533},[3797],{"type":3176,"value":3798},">",{"type":3171,"tag":3454,"props":3800,"children":3801},{"style":3528},[3802],{"type":3176,"value":3803},"Welcome {{ user.login }}!",{"type":3171,"tag":3454,"props":3805,"children":3806},{"style":3533},[3807],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":3809,"children":3810},{"style":3599},[3811],{"type":3176,"value":3172},{"type":3171,"tag":3454,"props":3813,"children":3814},{"style":3533},[3815],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":3817,"children":3818},{"class":3456,"line":3073},[3819,3823,3827,3831,3836,3840,3844],{"type":3171,"tag":3454,"props":3820,"children":3821},{"style":3533},[3822],{"type":3176,"value":3789},{"type":3171,"tag":3454,"props":3824,"children":3825},{"style":3599},[3826],{"type":3176,"value":3178},{"type":3171,"tag":3454,"props":3828,"children":3829},{"style":3533},[3830],{"type":3176,"value":3798},{"type":3171,"tag":3454,"props":3832,"children":3833},{"style":3528},[3834],{"type":3176,"value":3835},"Logged in since {{ session.loggedInAt }}",{"type":3171,"tag":3454,"props":3837,"children":3838},{"style":3533},[3839],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":3841,"children":3842},{"style":3599},[3843],{"type":3176,"value":3178},{"type":3171,"tag":3454,"props":3845,"children":3846},{"style":3533},[3847],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":3849,"children":3850},{"class":3456,"line":3069},[3851,3855,3860,3865,3869,3873,3878,3882,3886,3891,3895,3899],{"type":3171,"tag":3454,"props":3852,"children":3853},{"style":3533},[3854],{"type":3176,"value":3789},{"type":3171,"tag":3454,"props":3856,"children":3857},{"style":3599},[3858],{"type":3176,"value":3859},"button",{"type":3171,"tag":3454,"props":3861,"children":3862},{"style":3605},[3863],{"type":3176,"value":3864}," @click",{"type":3171,"tag":3454,"props":3866,"children":3867},{"style":3533},[3868],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":3870,"children":3871},{"style":3533},[3872],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":3874,"children":3875},{"style":3466},[3876],{"type":3176,"value":3877},"clear",{"type":3171,"tag":3454,"props":3879,"children":3880},{"style":3533},[3881],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":3883,"children":3884},{"style":3533},[3885],{"type":3176,"value":3798},{"type":3171,"tag":3454,"props":3887,"children":3888},{"style":3528},[3889],{"type":3176,"value":3890},"Logout",{"type":3171,"tag":3454,"props":3892,"children":3893},{"style":3533},[3894],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":3896,"children":3897},{"style":3599},[3898],{"type":3176,"value":3859},{"type":3171,"tag":3454,"props":3900,"children":3901},{"style":3533},[3902],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":3904,"children":3906},{"class":3456,"line":3905},10,[3907,3912,3916],{"type":3171,"tag":3454,"props":3908,"children":3909},{"style":3533},[3910],{"type":3176,"value":3911},"  \u003C\u002F",{"type":3171,"tag":3454,"props":3913,"children":3914},{"style":3599},[3915],{"type":3176,"value":3754},{"type":3171,"tag":3454,"props":3917,"children":3918},{"style":3533},[3919],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":3921,"children":3923},{"class":3456,"line":3922},11,[3924,3928,3932,3937],{"type":3171,"tag":3454,"props":3925,"children":3926},{"style":3533},[3927],{"type":3176,"value":3749},{"type":3171,"tag":3454,"props":3929,"children":3930},{"style":3599},[3931],{"type":3176,"value":3754},{"type":3171,"tag":3454,"props":3933,"children":3934},{"style":3605},[3935],{"type":3176,"value":3936}," v-else",{"type":3171,"tag":3454,"props":3938,"children":3939},{"style":3533},[3940],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":3942,"children":3944},{"class":3456,"line":3943},12,[3945,3949,3953,3957,3962,3966,3970],{"type":3171,"tag":3454,"props":3946,"children":3947},{"style":3533},[3948],{"type":3176,"value":3789},{"type":3171,"tag":3454,"props":3950,"children":3951},{"style":3599},[3952],{"type":3176,"value":3172},{"type":3171,"tag":3454,"props":3954,"children":3955},{"style":3533},[3956],{"type":3176,"value":3798},{"type":3171,"tag":3454,"props":3958,"children":3959},{"style":3528},[3960],{"type":3176,"value":3961},"Not logged in",{"type":3171,"tag":3454,"props":3963,"children":3964},{"style":3533},[3965],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":3967,"children":3968},{"style":3599},[3969],{"type":3176,"value":3172},{"type":3171,"tag":3454,"props":3971,"children":3972},{"style":3533},[3973],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":3975,"children":3977},{"class":3456,"line":3976},13,[3978,3982,3986,3991,3995,3999,4004,4008,4012,4017,4021,4025],{"type":3171,"tag":3454,"props":3979,"children":3980},{"style":3533},[3981],{"type":3176,"value":3789},{"type":3171,"tag":3454,"props":3983,"children":3984},{"style":3599},[3985],{"type":3176,"value":3182},{"type":3171,"tag":3454,"props":3987,"children":3988},{"style":3605},[3989],{"type":3176,"value":3990}," href",{"type":3171,"tag":3454,"props":3992,"children":3993},{"style":3533},[3994],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":3996,"children":3997},{"style":3533},[3998],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":4000,"children":4001},{"style":3466},[4002],{"type":3176,"value":4003},"\u002Fauth\u002Fgithub",{"type":3171,"tag":3454,"props":4005,"children":4006},{"style":3533},[4007],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":4009,"children":4010},{"style":3533},[4011],{"type":3176,"value":3798},{"type":3171,"tag":3454,"props":4013,"children":4014},{"style":3528},[4015],{"type":3176,"value":4016},"Login with GitHub",{"type":3171,"tag":3454,"props":4018,"children":4019},{"style":3533},[4020],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":4022,"children":4023},{"style":3599},[4024],{"type":3176,"value":3182},{"type":3171,"tag":3454,"props":4026,"children":4027},{"style":3533},[4028],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":4030,"children":4032},{"class":3456,"line":4031},14,[4033],{"type":3171,"tag":3454,"props":4034,"children":4035},{"style":3519},[4036],{"type":3176,"value":4037},"    \u003C!-- or open the OAuth route in a popup -->\n",{"type":3171,"tag":3454,"props":4039,"children":4041},{"class":3456,"line":4040},15,[4042,4046,4050,4054,4058,4062,4067,4071,4075,4079,4083,4087],{"type":3171,"tag":3454,"props":4043,"children":4044},{"style":3533},[4045],{"type":3176,"value":3789},{"type":3171,"tag":3454,"props":4047,"children":4048},{"style":3599},[4049],{"type":3176,"value":3859},{"type":3171,"tag":3454,"props":4051,"children":4052},{"style":3605},[4053],{"type":3176,"value":3864},{"type":3171,"tag":3454,"props":4055,"children":4056},{"style":3533},[4057],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":4059,"children":4060},{"style":3533},[4061],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":4063,"children":4064},{"style":3466},[4065],{"type":3176,"value":4066},"openInPopup('\u002Fauth\u002Fgithub')",{"type":3171,"tag":3454,"props":4068,"children":4069},{"style":3533},[4070],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":4072,"children":4073},{"style":3533},[4074],{"type":3176,"value":3798},{"type":3171,"tag":3454,"props":4076,"children":4077},{"style":3528},[4078],{"type":3176,"value":4016},{"type":3171,"tag":3454,"props":4080,"children":4081},{"style":3533},[4082],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":4084,"children":4085},{"style":3599},[4086],{"type":3176,"value":3859},{"type":3171,"tag":3454,"props":4088,"children":4089},{"style":3533},[4090],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":4092,"children":4093},{"class":3456,"line":3065},[4094,4098,4102],{"type":3171,"tag":3454,"props":4095,"children":4096},{"style":3533},[4097],{"type":3176,"value":3911},{"type":3171,"tag":3454,"props":4099,"children":4100},{"style":3599},[4101],{"type":3176,"value":3754},{"type":3171,"tag":3454,"props":4103,"children":4104},{"style":3533},[4105],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":4107,"children":4109},{"class":3456,"line":4108},17,[4110,4114,4118],{"type":3171,"tag":3454,"props":4111,"children":4112},{"style":3533},[4113],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":4115,"children":4116},{"style":3599},[4117],{"type":3176,"value":3736},{"type":3171,"tag":3454,"props":4119,"children":4120},{"style":3533},[4121],{"type":3176,"value":3613},{"type":3171,"tag":3178,"props":4123,"children":4124},{},[4125],{"type":3171,"tag":4126,"props":4127,"children":4128},"strong",{},[4129],{"type":3176,"value":4130},"TypeScript Signature:",{"type":3171,"tag":3444,"props":4132,"children":4136},{"className":4133,"code":4134,"language":4135,"meta":3045,"style":3045},"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",[4137],{"type":3171,"tag":3316,"props":4138,"children":4139},{"__ignoreMap":3045},[4140,4158,4166,4174,4182,4213,4220,4228,4235,4263,4270,4278,4285,4324,4331,4339,4346,4376,4384,4393,4401,4442,4450,4459,4467,4504,4512,4521,4529,4625],{"type":3171,"tag":3454,"props":4141,"children":4142},{"class":3456,"line":3131},[4143,4148,4153],{"type":3171,"tag":3454,"props":4144,"children":4145},{"style":3605},[4146],{"type":3176,"value":4147},"interface",{"type":3171,"tag":3454,"props":4149,"children":4150},{"style":3460},[4151],{"type":3176,"value":4152}," UserSessionComposable",{"type":3171,"tag":3454,"props":4154,"children":4155},{"style":3533},[4156],{"type":3176,"value":4157}," {\n",{"type":3171,"tag":3454,"props":4159,"children":4160},{"class":3456,"line":3097},[4161],{"type":3171,"tag":3454,"props":4162,"children":4163},{"style":3519},[4164],{"type":3176,"value":4165},"  \u002F**\n",{"type":3171,"tag":3454,"props":4167,"children":4168},{"class":3456,"line":3081},[4169],{"type":3171,"tag":3454,"props":4170,"children":4171},{"style":3519},[4172],{"type":3176,"value":4173},"   * Computed indicating if the auth session is ready\n",{"type":3171,"tag":3454,"props":4175,"children":4176},{"class":3456,"line":3717},[4177],{"type":3171,"tag":3454,"props":4178,"children":4179},{"style":3519},[4180],{"type":3176,"value":4181},"   *\u002F\n",{"type":3171,"tag":3454,"props":4183,"children":4184},{"class":3456,"line":3726},[4185,4190,4195,4200,4204,4209],{"type":3171,"tag":3454,"props":4186,"children":4187},{"style":3599},[4188],{"type":3176,"value":4189},"  ready",{"type":3171,"tag":3454,"props":4191,"children":4192},{"style":3533},[4193],{"type":3176,"value":4194},":",{"type":3171,"tag":3454,"props":4196,"children":4197},{"style":3460},[4198],{"type":3176,"value":4199}," ComputedRef",{"type":3171,"tag":3454,"props":4201,"children":4202},{"style":3533},[4203],{"type":3176,"value":3596},{"type":3171,"tag":3454,"props":4205,"children":4206},{"style":3460},[4207],{"type":3176,"value":4208},"boolean",{"type":3171,"tag":3454,"props":4210,"children":4211},{"style":3533},[4212],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":4214,"children":4215},{"class":3456,"line":3743},[4216],{"type":3171,"tag":3454,"props":4217,"children":4218},{"style":3519},[4219],{"type":3176,"value":4165},{"type":3171,"tag":3454,"props":4221,"children":4222},{"class":3456,"line":3077},[4223],{"type":3171,"tag":3454,"props":4224,"children":4225},{"style":3519},[4226],{"type":3176,"value":4227},"   * Computed indicating if the user is logged in.\n",{"type":3171,"tag":3454,"props":4229,"children":4230},{"class":3456,"line":3073},[4231],{"type":3171,"tag":3454,"props":4232,"children":4233},{"style":3519},[4234],{"type":3176,"value":4181},{"type":3171,"tag":3454,"props":4236,"children":4237},{"class":3456,"line":3069},[4238,4243,4247,4251,4255,4259],{"type":3171,"tag":3454,"props":4239,"children":4240},{"style":3599},[4241],{"type":3176,"value":4242},"  loggedIn",{"type":3171,"tag":3454,"props":4244,"children":4245},{"style":3533},[4246],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":4248,"children":4249},{"style":3460},[4250],{"type":3176,"value":4199},{"type":3171,"tag":3454,"props":4252,"children":4253},{"style":3533},[4254],{"type":3176,"value":3596},{"type":3171,"tag":3454,"props":4256,"children":4257},{"style":3460},[4258],{"type":3176,"value":4208},{"type":3171,"tag":3454,"props":4260,"children":4261},{"style":3533},[4262],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":4264,"children":4265},{"class":3456,"line":3905},[4266],{"type":3171,"tag":3454,"props":4267,"children":4268},{"style":3519},[4269],{"type":3176,"value":4165},{"type":3171,"tag":3454,"props":4271,"children":4272},{"class":3456,"line":3922},[4273],{"type":3171,"tag":3454,"props":4274,"children":4275},{"style":3519},[4276],{"type":3176,"value":4277},"   * The user object if logged in, null otherwise.\n",{"type":3171,"tag":3454,"props":4279,"children":4280},{"class":3456,"line":3943},[4281],{"type":3171,"tag":3454,"props":4282,"children":4283},{"style":3519},[4284],{"type":3176,"value":4181},{"type":3171,"tag":3454,"props":4286,"children":4287},{"class":3456,"line":3976},[4288,4293,4297,4301,4305,4310,4315,4320],{"type":3171,"tag":3454,"props":4289,"children":4290},{"style":3599},[4291],{"type":3176,"value":4292},"  user",{"type":3171,"tag":3454,"props":4294,"children":4295},{"style":3533},[4296],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":4298,"children":4299},{"style":3460},[4300],{"type":3176,"value":4199},{"type":3171,"tag":3454,"props":4302,"children":4303},{"style":3533},[4304],{"type":3176,"value":3596},{"type":3171,"tag":3454,"props":4306,"children":4307},{"style":3460},[4308],{"type":3176,"value":4309},"User",{"type":3171,"tag":3454,"props":4311,"children":4312},{"style":3533},[4313],{"type":3176,"value":4314}," |",{"type":3171,"tag":3454,"props":4316,"children":4317},{"style":3460},[4318],{"type":3176,"value":4319}," null",{"type":3171,"tag":3454,"props":4321,"children":4322},{"style":3533},[4323],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":4325,"children":4326},{"class":3456,"line":4031},[4327],{"type":3171,"tag":3454,"props":4328,"children":4329},{"style":3519},[4330],{"type":3176,"value":4165},{"type":3171,"tag":3454,"props":4332,"children":4333},{"class":3456,"line":4040},[4334],{"type":3171,"tag":3454,"props":4335,"children":4336},{"style":3519},[4337],{"type":3176,"value":4338},"   * The session object.\n",{"type":3171,"tag":3454,"props":4340,"children":4341},{"class":3456,"line":3065},[4342],{"type":3171,"tag":3454,"props":4343,"children":4344},{"style":3519},[4345],{"type":3176,"value":4181},{"type":3171,"tag":3454,"props":4347,"children":4348},{"class":3456,"line":4108},[4349,4354,4358,4363,4367,4372],{"type":3171,"tag":3454,"props":4350,"children":4351},{"style":3599},[4352],{"type":3176,"value":4353},"  session",{"type":3171,"tag":3454,"props":4355,"children":4356},{"style":3533},[4357],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":4359,"children":4360},{"style":3460},[4361],{"type":3176,"value":4362}," Ref",{"type":3171,"tag":3454,"props":4364,"children":4365},{"style":3533},[4366],{"type":3176,"value":3596},{"type":3171,"tag":3454,"props":4368,"children":4369},{"style":3460},[4370],{"type":3176,"value":4371},"UserSession",{"type":3171,"tag":3454,"props":4373,"children":4374},{"style":3533},[4375],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":4377,"children":4379},{"class":3456,"line":4378},18,[4380],{"type":3171,"tag":3454,"props":4381,"children":4382},{"style":3519},[4383],{"type":3176,"value":4165},{"type":3171,"tag":3454,"props":4385,"children":4387},{"class":3456,"line":4386},19,[4388],{"type":3171,"tag":3454,"props":4389,"children":4390},{"style":3519},[4391],{"type":3176,"value":4392},"   * Fetch the user session from the server.\n",{"type":3171,"tag":3454,"props":4394,"children":4396},{"class":3456,"line":4395},20,[4397],{"type":3171,"tag":3454,"props":4398,"children":4399},{"style":3519},[4400],{"type":3176,"value":4181},{"type":3171,"tag":3454,"props":4402,"children":4404},{"class":3456,"line":4403},21,[4405,4410,4414,4419,4424,4429,4433,4438],{"type":3171,"tag":3454,"props":4406,"children":4407},{"style":3599},[4408],{"type":3176,"value":4409},"  fetch",{"type":3171,"tag":3454,"props":4411,"children":4412},{"style":3533},[4413],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":4415,"children":4416},{"style":3533},[4417],{"type":3176,"value":4418}," ()",{"type":3171,"tag":3454,"props":4420,"children":4421},{"style":3605},[4422],{"type":3176,"value":4423}," =>",{"type":3171,"tag":3454,"props":4425,"children":4426},{"style":3460},[4427],{"type":3176,"value":4428}," Promise",{"type":3171,"tag":3454,"props":4430,"children":4431},{"style":3533},[4432],{"type":3176,"value":3596},{"type":3171,"tag":3454,"props":4434,"children":4435},{"style":3460},[4436],{"type":3176,"value":4437},"void",{"type":3171,"tag":3454,"props":4439,"children":4440},{"style":3533},[4441],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":4443,"children":4445},{"class":3456,"line":4444},22,[4446],{"type":3171,"tag":3454,"props":4447,"children":4448},{"style":3519},[4449],{"type":3176,"value":4165},{"type":3171,"tag":3454,"props":4451,"children":4453},{"class":3456,"line":4452},23,[4454],{"type":3171,"tag":3454,"props":4455,"children":4456},{"style":3519},[4457],{"type":3176,"value":4458},"   * Clear the user session and remove the session cookie.\n",{"type":3171,"tag":3454,"props":4460,"children":4462},{"class":3456,"line":4461},24,[4463],{"type":3171,"tag":3454,"props":4464,"children":4465},{"style":3519},[4466],{"type":3176,"value":4181},{"type":3171,"tag":3454,"props":4468,"children":4470},{"class":3456,"line":4469},25,[4471,4476,4480,4484,4488,4492,4496,4500],{"type":3171,"tag":3454,"props":4472,"children":4473},{"style":3599},[4474],{"type":3176,"value":4475},"  clear",{"type":3171,"tag":3454,"props":4477,"children":4478},{"style":3533},[4479],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":4481,"children":4482},{"style":3533},[4483],{"type":3176,"value":4418},{"type":3171,"tag":3454,"props":4485,"children":4486},{"style":3605},[4487],{"type":3176,"value":4423},{"type":3171,"tag":3454,"props":4489,"children":4490},{"style":3460},[4491],{"type":3176,"value":4428},{"type":3171,"tag":3454,"props":4493,"children":4494},{"style":3533},[4495],{"type":3176,"value":3596},{"type":3171,"tag":3454,"props":4497,"children":4498},{"style":3460},[4499],{"type":3176,"value":4437},{"type":3171,"tag":3454,"props":4501,"children":4502},{"style":3533},[4503],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":4505,"children":4507},{"class":3456,"line":4506},26,[4508],{"type":3171,"tag":3454,"props":4509,"children":4510},{"style":3519},[4511],{"type":3176,"value":4165},{"type":3171,"tag":3454,"props":4513,"children":4515},{"class":3456,"line":4514},27,[4516],{"type":3171,"tag":3454,"props":4517,"children":4518},{"style":3519},[4519],{"type":3176,"value":4520},"   * Open the OAuth route in a popup that auto-closes when successful.\n",{"type":3171,"tag":3454,"props":4522,"children":4524},{"class":3456,"line":4523},28,[4525],{"type":3171,"tag":3454,"props":4526,"children":4527},{"style":3519},[4528],{"type":3176,"value":4181},{"type":3171,"tag":3454,"props":4530,"children":4532},{"class":3456,"line":4531},29,[4533,4538,4542,4547,4553,4557,4562,4566,4571,4576,4580,4585,4589,4594,4598,4603,4607,4611,4616,4620],{"type":3171,"tag":3454,"props":4534,"children":4535},{"style":3599},[4536],{"type":3176,"value":4537},"  openInPopup",{"type":3171,"tag":3454,"props":4539,"children":4540},{"style":3533},[4541],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":4543,"children":4544},{"style":3533},[4545],{"type":3176,"value":4546}," (",{"type":3171,"tag":3454,"props":4548,"children":4550},{"style":4549},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[4551],{"type":3176,"value":4552},"route",{"type":3171,"tag":3454,"props":4554,"children":4555},{"style":3533},[4556],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":4558,"children":4559},{"style":3460},[4560],{"type":3176,"value":4561}," string",{"type":3171,"tag":3454,"props":4563,"children":4564},{"style":3533},[4565],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":4567,"children":4568},{"style":4549},[4569],{"type":3176,"value":4570}," size",{"type":3171,"tag":3454,"props":4572,"children":4573},{"style":3533},[4574],{"type":3176,"value":4575},"?:",{"type":3171,"tag":3454,"props":4577,"children":4578},{"style":3533},[4579],{"type":3176,"value":3626},{"type":3171,"tag":3454,"props":4581,"children":4582},{"style":3599},[4583],{"type":3176,"value":4584}," width",{"type":3171,"tag":3454,"props":4586,"children":4587},{"style":3533},[4588],{"type":3176,"value":4575},{"type":3171,"tag":3454,"props":4590,"children":4591},{"style":3460},[4592],{"type":3176,"value":4593}," number",{"type":3171,"tag":3454,"props":4595,"children":4596},{"style":3533},[4597],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":4599,"children":4600},{"style":3599},[4601],{"type":3176,"value":4602}," height",{"type":3171,"tag":3454,"props":4604,"children":4605},{"style":3533},[4606],{"type":3176,"value":4575},{"type":3171,"tag":3454,"props":4608,"children":4609},{"style":3460},[4610],{"type":3176,"value":4593},{"type":3171,"tag":3454,"props":4612,"children":4613},{"style":3533},[4614],{"type":3176,"value":4615}," })",{"type":3171,"tag":3454,"props":4617,"children":4618},{"style":3605},[4619],{"type":3176,"value":4423},{"type":3171,"tag":3454,"props":4621,"children":4622},{"style":3460},[4623],{"type":3176,"value":4624}," void\n",{"type":3171,"tag":3454,"props":4626,"children":4628},{"class":3456,"line":4627},30,[4629],{"type":3171,"tag":3454,"props":4630,"children":4631},{"style":3533},[4632],{"type":3176,"value":4633},"}\n",{"type":3171,"tag":4635,"props":4636,"children":4637},"blockquote",{},[4638],{"type":3171,"tag":3178,"props":4639,"children":4640},{},[4641,4646,4648,4654],{"type":3171,"tag":3454,"props":4642,"children":4643},{},[4644],{"type":3176,"value":4645},"!IMPORTANT",{"type":3176,"value":4647},"\nNuxt Auth Utils uses the ",{"type":3171,"tag":3316,"props":4649,"children":4651},{"className":4650},[],[4652],{"type":3176,"value":4653},"\u002Fapi\u002F_auth\u002Fsession",{"type":3176,"value":4655}," route for session management. Ensure your API route middleware doesn't interfere with this path.",{"type":3171,"tag":3262,"props":4657,"children":4659},{"id":4658},"server-utils",[4660],{"type":3176,"value":4661},"Server Utils",{"type":3171,"tag":3178,"props":4663,"children":4664},{},[4665,4667,4673],{"type":3176,"value":4666},"The following helpers are auto-imported in your ",{"type":3171,"tag":3316,"props":4668,"children":4670},{"className":4669},[],[4671],{"type":3176,"value":4672},"server\u002F",{"type":3176,"value":4674}," directory.",{"type":3171,"tag":3574,"props":4676,"children":4678},{"id":4677},"session-management",[4679],{"type":3176,"value":4680},"Session Management",{"type":3171,"tag":3444,"props":4682,"children":4684},{"className":4133,"code":4683,"language":4135,"meta":3045,"style":3045},"\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",[4685],{"type":3171,"tag":3316,"props":4686,"children":4687},{"__ignoreMap":3045},[4688,4696,4704,4712,4739,4747,4762,4788,4796,4804,4820,4845,4852,4860,4886,4898,4905,4913,4938,4945,4953,4984,4991,4999,5015,5022,5030],{"type":3171,"tag":3454,"props":4689,"children":4690},{"class":3456,"line":3131},[4691],{"type":3171,"tag":3454,"props":4692,"children":4693},{"style":3519},[4694],{"type":3176,"value":4695},"\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":3171,"tag":3454,"props":4697,"children":4698},{"class":3456,"line":3097},[4699],{"type":3171,"tag":3454,"props":4700,"children":4701},{"style":3519},[4702],{"type":3176,"value":4703},"\u002F\u002F Only store the data that allow you to recognize a user, but do not store sensitive data\n",{"type":3171,"tag":3454,"props":4705,"children":4706},{"class":3456,"line":3081},[4707],{"type":3171,"tag":3454,"props":4708,"children":4709},{"style":3519},[4710],{"type":3176,"value":4711},"\u002F\u002F Merges new data with existing data using unjs\u002Fdefu library\n",{"type":3171,"tag":3454,"props":4713,"children":4714},{"class":3456,"line":3717},[4715,4721,4726,4731,4735],{"type":3171,"tag":3454,"props":4716,"children":4718},{"style":4717},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[4719],{"type":3176,"value":4720},"await",{"type":3171,"tag":3454,"props":4722,"children":4723},{"style":3690},[4724],{"type":3176,"value":4725}," setUserSession",{"type":3171,"tag":3454,"props":4727,"children":4728},{"style":3528},[4729],{"type":3176,"value":4730},"(event",{"type":3171,"tag":3454,"props":4732,"children":4733},{"style":3533},[4734],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":4736,"children":4737},{"style":3533},[4738],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":4740,"children":4741},{"class":3456,"line":3726},[4742],{"type":3171,"tag":3454,"props":4743,"children":4744},{"style":3519},[4745],{"type":3176,"value":4746},"  \u002F\u002F User data\n",{"type":3171,"tag":3454,"props":4748,"children":4749},{"class":3456,"line":3743},[4750,4754,4758],{"type":3171,"tag":3454,"props":4751,"children":4752},{"style":3599},[4753],{"type":3176,"value":4292},{"type":3171,"tag":3454,"props":4755,"children":4756},{"style":3533},[4757],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":4759,"children":4760},{"style":3533},[4761],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":4763,"children":4764},{"class":3456,"line":3077},[4765,4770,4774,4779,4783],{"type":3171,"tag":3454,"props":4766,"children":4767},{"style":3599},[4768],{"type":3176,"value":4769},"    login",{"type":3171,"tag":3454,"props":4771,"children":4772},{"style":3533},[4773],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":4775,"children":4776},{"style":3533},[4777],{"type":3176,"value":4778}," '",{"type":3171,"tag":3454,"props":4780,"children":4781},{"style":3466},[4782],{"type":3176,"value":3052},{"type":3171,"tag":3454,"props":4784,"children":4785},{"style":3533},[4786],{"type":3176,"value":4787},"'\n",{"type":3171,"tag":3454,"props":4789,"children":4790},{"class":3456,"line":3073},[4791],{"type":3171,"tag":3454,"props":4792,"children":4793},{"style":3533},[4794],{"type":3176,"value":4795},"  },\n",{"type":3171,"tag":3454,"props":4797,"children":4798},{"class":3456,"line":3069},[4799],{"type":3171,"tag":3454,"props":4800,"children":4801},{"style":3519},[4802],{"type":3176,"value":4803},"  \u002F\u002F Private data accessible only on server\u002F routes\n",{"type":3171,"tag":3454,"props":4805,"children":4806},{"class":3456,"line":3905},[4807,4812,4816],{"type":3171,"tag":3454,"props":4808,"children":4809},{"style":3599},[4810],{"type":3176,"value":4811},"  secure",{"type":3171,"tag":3454,"props":4813,"children":4814},{"style":3533},[4815],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":4817,"children":4818},{"style":3533},[4819],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":4821,"children":4822},{"class":3456,"line":3922},[4823,4828,4832,4836,4841],{"type":3171,"tag":3454,"props":4824,"children":4825},{"style":3599},[4826],{"type":3176,"value":4827},"    apiToken",{"type":3171,"tag":3454,"props":4829,"children":4830},{"style":3533},[4831],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":4833,"children":4834},{"style":3533},[4835],{"type":3176,"value":4778},{"type":3171,"tag":3454,"props":4837,"children":4838},{"style":3466},[4839],{"type":3176,"value":4840},"1234567890",{"type":3171,"tag":3454,"props":4842,"children":4843},{"style":3533},[4844],{"type":3176,"value":4787},{"type":3171,"tag":3454,"props":4846,"children":4847},{"class":3456,"line":3943},[4848],{"type":3171,"tag":3454,"props":4849,"children":4850},{"style":3533},[4851],{"type":3176,"value":4795},{"type":3171,"tag":3454,"props":4853,"children":4854},{"class":3456,"line":3976},[4855],{"type":3171,"tag":3454,"props":4856,"children":4857},{"style":3519},[4858],{"type":3176,"value":4859},"  \u002F\u002F Any extra fields for the session data\n",{"type":3171,"tag":3454,"props":4861,"children":4862},{"class":3456,"line":4031},[4863,4868,4872,4877,4882],{"type":3171,"tag":3454,"props":4864,"children":4865},{"style":3599},[4866],{"type":3176,"value":4867},"  loggedInAt",{"type":3171,"tag":3454,"props":4869,"children":4870},{"style":3533},[4871],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":4873,"children":4874},{"style":3533},[4875],{"type":3176,"value":4876}," new",{"type":3171,"tag":3454,"props":4878,"children":4879},{"style":3690},[4880],{"type":3176,"value":4881}," Date",{"type":3171,"tag":3454,"props":4883,"children":4884},{"style":3528},[4885],{"type":3176,"value":3698},{"type":3171,"tag":3454,"props":4887,"children":4888},{"class":3456,"line":4040},[4889,4893],{"type":3171,"tag":3454,"props":4890,"children":4891},{"style":3533},[4892],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":4894,"children":4895},{"style":3528},[4896],{"type":3176,"value":4897},")\n",{"type":3171,"tag":3454,"props":4899,"children":4900},{"class":3456,"line":3065},[4901],{"type":3171,"tag":3454,"props":4902,"children":4903},{"emptyLinePlaceholder":1200},[4904],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":4906,"children":4907},{"class":3456,"line":4108},[4908],{"type":3171,"tag":3454,"props":4909,"children":4910},{"style":3519},[4911],{"type":3176,"value":4912},"\u002F\u002F Replace a user session. Same behaviour as setUserSession, except it does not merge data with existing data\n",{"type":3171,"tag":3454,"props":4914,"children":4915},{"class":3456,"line":4378},[4916,4920,4925,4929,4933],{"type":3171,"tag":3454,"props":4917,"children":4918},{"style":4717},[4919],{"type":3176,"value":4720},{"type":3171,"tag":3454,"props":4921,"children":4922},{"style":3690},[4923],{"type":3176,"value":4924}," replaceUserSession",{"type":3171,"tag":3454,"props":4926,"children":4927},{"style":3528},[4928],{"type":3176,"value":4730},{"type":3171,"tag":3454,"props":4930,"children":4931},{"style":3533},[4932],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":4934,"children":4935},{"style":3528},[4936],{"type":3176,"value":4937}," data)\n",{"type":3171,"tag":3454,"props":4939,"children":4940},{"class":3456,"line":4386},[4941],{"type":3171,"tag":3454,"props":4942,"children":4943},{"emptyLinePlaceholder":1200},[4944],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":4946,"children":4947},{"class":3456,"line":4395},[4948],{"type":3171,"tag":3454,"props":4949,"children":4950},{"style":3519},[4951],{"type":3176,"value":4952},"\u002F\u002F Get the current user session\n",{"type":3171,"tag":3454,"props":4954,"children":4955},{"class":3456,"line":4403},[4956,4960,4965,4969,4974,4979],{"type":3171,"tag":3454,"props":4957,"children":4958},{"style":3605},[4959],{"type":3176,"value":3621},{"type":3171,"tag":3454,"props":4961,"children":4962},{"style":3528},[4963],{"type":3176,"value":4964}," session ",{"type":3171,"tag":3454,"props":4966,"children":4967},{"style":3533},[4968],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":4970,"children":4971},{"style":4717},[4972],{"type":3176,"value":4973}," await",{"type":3171,"tag":3454,"props":4975,"children":4976},{"style":3690},[4977],{"type":3176,"value":4978}," getUserSession",{"type":3171,"tag":3454,"props":4980,"children":4981},{"style":3528},[4982],{"type":3176,"value":4983},"(event)\n",{"type":3171,"tag":3454,"props":4985,"children":4986},{"class":3456,"line":4444},[4987],{"type":3171,"tag":3454,"props":4988,"children":4989},{"emptyLinePlaceholder":1200},[4990],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":4992,"children":4993},{"class":3456,"line":4452},[4994],{"type":3171,"tag":3454,"props":4995,"children":4996},{"style":3519},[4997],{"type":3176,"value":4998},"\u002F\u002F Clear the current user session\n",{"type":3171,"tag":3454,"props":5000,"children":5001},{"class":3456,"line":4461},[5002,5006,5011],{"type":3171,"tag":3454,"props":5003,"children":5004},{"style":4717},[5005],{"type":3176,"value":4720},{"type":3171,"tag":3454,"props":5007,"children":5008},{"style":3690},[5009],{"type":3176,"value":5010}," clearUserSession",{"type":3171,"tag":3454,"props":5012,"children":5013},{"style":3528},[5014],{"type":3176,"value":4983},{"type":3171,"tag":3454,"props":5016,"children":5017},{"class":3456,"line":4469},[5018],{"type":3171,"tag":3454,"props":5019,"children":5020},{"emptyLinePlaceholder":1200},[5021],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":5023,"children":5024},{"class":3456,"line":4506},[5025],{"type":3171,"tag":3454,"props":5026,"children":5027},{"style":3519},[5028],{"type":3176,"value":5029},"\u002F\u002F Require a user session (send back 401 if no `user` key in session)\n",{"type":3171,"tag":3454,"props":5031,"children":5032},{"class":3456,"line":4514},[5033,5037,5041,5045,5049,5054],{"type":3171,"tag":3454,"props":5034,"children":5035},{"style":3605},[5036],{"type":3176,"value":3621},{"type":3171,"tag":3454,"props":5038,"children":5039},{"style":3528},[5040],{"type":3176,"value":4964},{"type":3171,"tag":3454,"props":5042,"children":5043},{"style":3533},[5044],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":5046,"children":5047},{"style":4717},[5048],{"type":3176,"value":4973},{"type":3171,"tag":3454,"props":5050,"children":5051},{"style":3690},[5052],{"type":3176,"value":5053}," requireUserSession",{"type":3171,"tag":3454,"props":5055,"children":5056},{"style":3528},[5057],{"type":3176,"value":4983},{"type":3171,"tag":3178,"props":5059,"children":5060},{},[5061,5063,5069,5071,5076],{"type":3176,"value":5062},"You can define the type for your user session by creating a type declaration file (for example, ",{"type":3171,"tag":3316,"props":5064,"children":5066},{"className":5065},[],[5067],{"type":3176,"value":5068},"auth.d.ts",{"type":3176,"value":5070},") in your project to augment the ",{"type":3171,"tag":3316,"props":5072,"children":5074},{"className":5073},[],[5075],{"type":3176,"value":4371},{"type":3176,"value":5077}," type:",{"type":3171,"tag":3444,"props":5079,"children":5081},{"className":4133,"code":5080,"language":4135,"meta":3045,"style":3045},"\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",[5082],{"type":3171,"tag":3316,"props":5083,"children":5084},{"__ignoreMap":3045},[5085,5093,5123,5140,5148,5156,5163,5179,5186,5193,5200,5216,5223,5230,5237,5244],{"type":3171,"tag":3454,"props":5086,"children":5087},{"class":3456,"line":3131},[5088],{"type":3171,"tag":3454,"props":5089,"children":5090},{"style":3519},[5091],{"type":3176,"value":5092},"\u002F\u002F shared\u002Ftypes\u002Fauth.d.ts\n",{"type":3171,"tag":3454,"props":5094,"children":5095},{"class":3456,"line":3097},[5096,5101,5105,5109,5114,5119],{"type":3171,"tag":3454,"props":5097,"children":5098},{"style":3605},[5099],{"type":3176,"value":5100},"declare",{"type":3171,"tag":3454,"props":5102,"children":5103},{"style":3605},[5104],{"type":3176,"value":3474},{"type":3171,"tag":3454,"props":5106,"children":5107},{"style":3533},[5108],{"type":3176,"value":4778},{"type":3171,"tag":3454,"props":5110,"children":5111},{"style":3466},[5112],{"type":3176,"value":5113},"#auth-utils",{"type":3171,"tag":3454,"props":5115,"children":5116},{"style":3533},[5117],{"type":3176,"value":5118},"'",{"type":3171,"tag":3454,"props":5120,"children":5121},{"style":3533},[5122],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":5124,"children":5125},{"class":3456,"line":3081},[5126,5131,5136],{"type":3171,"tag":3454,"props":5127,"children":5128},{"style":3605},[5129],{"type":3176,"value":5130},"  interface",{"type":3171,"tag":3454,"props":5132,"children":5133},{"style":3460},[5134],{"type":3176,"value":5135}," User",{"type":3171,"tag":3454,"props":5137,"children":5138},{"style":3533},[5139],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":5141,"children":5142},{"class":3456,"line":3717},[5143],{"type":3171,"tag":3454,"props":5144,"children":5145},{"style":3519},[5146],{"type":3176,"value":5147},"    \u002F\u002F Add your own fields\n",{"type":3171,"tag":3454,"props":5149,"children":5150},{"class":3456,"line":3726},[5151],{"type":3171,"tag":3454,"props":5152,"children":5153},{"style":3533},[5154],{"type":3176,"value":5155},"  }\n",{"type":3171,"tag":3454,"props":5157,"children":5158},{"class":3456,"line":3743},[5159],{"type":3171,"tag":3454,"props":5160,"children":5161},{"emptyLinePlaceholder":1200},[5162],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":5164,"children":5165},{"class":3456,"line":3077},[5166,5170,5175],{"type":3171,"tag":3454,"props":5167,"children":5168},{"style":3605},[5169],{"type":3176,"value":5130},{"type":3171,"tag":3454,"props":5171,"children":5172},{"style":3460},[5173],{"type":3176,"value":5174}," UserSession",{"type":3171,"tag":3454,"props":5176,"children":5177},{"style":3533},[5178],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":5180,"children":5181},{"class":3456,"line":3073},[5182],{"type":3171,"tag":3454,"props":5183,"children":5184},{"style":3519},[5185],{"type":3176,"value":5147},{"type":3171,"tag":3454,"props":5187,"children":5188},{"class":3456,"line":3069},[5189],{"type":3171,"tag":3454,"props":5190,"children":5191},{"style":3533},[5192],{"type":3176,"value":5155},{"type":3171,"tag":3454,"props":5194,"children":5195},{"class":3456,"line":3905},[5196],{"type":3171,"tag":3454,"props":5197,"children":5198},{"emptyLinePlaceholder":1200},[5199],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":5201,"children":5202},{"class":3456,"line":3922},[5203,5207,5212],{"type":3171,"tag":3454,"props":5204,"children":5205},{"style":3605},[5206],{"type":3176,"value":5130},{"type":3171,"tag":3454,"props":5208,"children":5209},{"style":3460},[5210],{"type":3176,"value":5211}," SecureSessionData",{"type":3171,"tag":3454,"props":5213,"children":5214},{"style":3533},[5215],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":5217,"children":5218},{"class":3456,"line":3943},[5219],{"type":3171,"tag":3454,"props":5220,"children":5221},{"style":3519},[5222],{"type":3176,"value":5147},{"type":3171,"tag":3454,"props":5224,"children":5225},{"class":3456,"line":3976},[5226],{"type":3171,"tag":3454,"props":5227,"children":5228},{"style":3533},[5229],{"type":3176,"value":5155},{"type":3171,"tag":3454,"props":5231,"children":5232},{"class":3456,"line":4031},[5233],{"type":3171,"tag":3454,"props":5234,"children":5235},{"style":3533},[5236],{"type":3176,"value":4633},{"type":3171,"tag":3454,"props":5238,"children":5239},{"class":3456,"line":4040},[5240],{"type":3171,"tag":3454,"props":5241,"children":5242},{"emptyLinePlaceholder":1200},[5243],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":5245,"children":5246},{"class":3456,"line":3065},[5247,5252],{"type":3171,"tag":3454,"props":5248,"children":5249},{"style":4717},[5250],{"type":3176,"value":5251},"export",{"type":3171,"tag":3454,"props":5253,"children":5254},{"style":3533},[5255],{"type":3176,"value":5256}," {}\n",{"type":3171,"tag":4635,"props":5258,"children":5259},{},[5260],{"type":3171,"tag":3178,"props":5261,"children":5262},{},[5263,5267],{"type":3171,"tag":3454,"props":5264,"children":5265},{},[5266],{"type":3176,"value":4645},{"type":3176,"value":5268},"\nSince we encrypt and store session data in cookies, we're constrained by the 4096-byte cookie size limit. Store only essential information.",{"type":3171,"tag":3574,"props":5270,"children":5272},{"id":5271},"oauth-event-handlers",[5273],{"type":3176,"value":5274},"OAuth Event Handlers",{"type":3171,"tag":3178,"props":5276,"children":5277},{},[5278],{"type":3176,"value":5279},"All handlers can be auto-imported and used in your server routes or API routes.",{"type":3171,"tag":3178,"props":5281,"children":5282},{},[5283,5285,5291,5293,5299],{"type":3176,"value":5284},"The pattern is ",{"type":3171,"tag":3316,"props":5286,"children":5288},{"className":5287},[],[5289],{"type":3176,"value":5290},"defineOAuth\u003CProvider>EventHandler({ onSuccess, config?, onError? })",{"type":3176,"value":5292},", example: ",{"type":3171,"tag":3316,"props":5294,"children":5296},{"className":5295},[],[5297],{"type":3176,"value":5298},"defineOAuthGitHubEventHandler",{"type":3176,"value":3409},{"type":3171,"tag":3178,"props":5301,"children":5302},{},[5303,5305,5311,5313,5319],{"type":3176,"value":5304},"The helper returns an event handler that automatically redirects to the provider authorization page and then calls ",{"type":3171,"tag":3316,"props":5306,"children":5308},{"className":5307},[],[5309],{"type":3176,"value":5310},"onSuccess",{"type":3176,"value":5312}," or ",{"type":3171,"tag":3316,"props":5314,"children":5316},{"className":5315},[],[5317],{"type":3176,"value":5318},"onError",{"type":3176,"value":5320}," depending on the result.",{"type":3171,"tag":3178,"props":5322,"children":5323},{},[5324,5326,5332,5334,5340,5342,5347],{"type":3176,"value":5325},"The ",{"type":3171,"tag":3316,"props":5327,"children":5329},{"className":5328},[],[5330],{"type":3176,"value":5331},"config",{"type":3176,"value":5333}," can be defined directly from the ",{"type":3171,"tag":3316,"props":5335,"children":5337},{"className":5336},[],[5338],{"type":3176,"value":5339},"runtimeConfig",{"type":3176,"value":5341}," in your ",{"type":3171,"tag":3316,"props":5343,"children":5345},{"className":5344},[],[5346],{"type":3176,"value":233},{"type":3176,"value":4194},{"type":3171,"tag":3444,"props":5349,"children":5351},{"className":4133,"code":5350,"language":4135,"meta":3045,"style":3045},"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",[5352],{"type":3171,"tag":3316,"props":5353,"children":5354},{"__ignoreMap":3045},[5355,5382,5398,5414,5422,5438,5468,5492,5500,5508,5515],{"type":3171,"tag":3454,"props":5356,"children":5357},{"class":3456,"line":3131},[5358,5362,5367,5372,5377],{"type":3171,"tag":3454,"props":5359,"children":5360},{"style":4717},[5361],{"type":3176,"value":5251},{"type":3171,"tag":3454,"props":5363,"children":5364},{"style":4717},[5365],{"type":3176,"value":5366}," default",{"type":3171,"tag":3454,"props":5368,"children":5369},{"style":3690},[5370],{"type":3176,"value":5371}," defineNuxtConfig",{"type":3171,"tag":3454,"props":5373,"children":5374},{"style":3528},[5375],{"type":3176,"value":5376},"(",{"type":3171,"tag":3454,"props":5378,"children":5379},{"style":3533},[5380],{"type":3176,"value":5381},"{\n",{"type":3171,"tag":3454,"props":5383,"children":5384},{"class":3456,"line":3097},[5385,5390,5394],{"type":3171,"tag":3454,"props":5386,"children":5387},{"style":3599},[5388],{"type":3176,"value":5389},"  runtimeConfig",{"type":3171,"tag":3454,"props":5391,"children":5392},{"style":3533},[5393],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":5395,"children":5396},{"style":3533},[5397],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":5399,"children":5400},{"class":3456,"line":3081},[5401,5406,5410],{"type":3171,"tag":3454,"props":5402,"children":5403},{"style":3599},[5404],{"type":3176,"value":5405},"    oauth",{"type":3171,"tag":3454,"props":5407,"children":5408},{"style":3533},[5409],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":5411,"children":5412},{"style":3533},[5413],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":5415,"children":5416},{"class":3456,"line":3717},[5417],{"type":3171,"tag":3454,"props":5418,"children":5419},{"style":3519},[5420],{"type":3176,"value":5421},"      \u002F\u002F provider in lowercase (github, google, etc.)\n",{"type":3171,"tag":3454,"props":5423,"children":5424},{"class":3456,"line":3726},[5425,5430,5434],{"type":3171,"tag":3454,"props":5426,"children":5427},{"style":3528},[5428],{"type":3176,"value":5429},"      \u003Cprovider>",{"type":3171,"tag":3454,"props":5431,"children":5432},{"style":3533},[5433],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":5435,"children":5436},{"style":3533},[5437],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":5439,"children":5440},{"class":3456,"line":3743},[5441,5446,5450,5454,5459,5463],{"type":3171,"tag":3454,"props":5442,"children":5443},{"style":3599},[5444],{"type":3176,"value":5445},"        clientId",{"type":3171,"tag":3454,"props":5447,"children":5448},{"style":3533},[5449],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":5451,"children":5452},{"style":3533},[5453],{"type":3176,"value":4778},{"type":3171,"tag":3454,"props":5455,"children":5456},{"style":3466},[5457],{"type":3176,"value":5458},"...",{"type":3171,"tag":3454,"props":5460,"children":5461},{"style":3533},[5462],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":5464,"children":5465},{"style":3533},[5466],{"type":3176,"value":5467},",\n",{"type":3171,"tag":3454,"props":5469,"children":5470},{"class":3456,"line":3077},[5471,5476,5480,5484,5488],{"type":3171,"tag":3454,"props":5472,"children":5473},{"style":3599},[5474],{"type":3176,"value":5475},"        clientSecret",{"type":3171,"tag":3454,"props":5477,"children":5478},{"style":3533},[5479],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":5481,"children":5482},{"style":3533},[5483],{"type":3176,"value":4778},{"type":3171,"tag":3454,"props":5485,"children":5486},{"style":3466},[5487],{"type":3176,"value":5458},{"type":3171,"tag":3454,"props":5489,"children":5490},{"style":3533},[5491],{"type":3176,"value":4787},{"type":3171,"tag":3454,"props":5493,"children":5494},{"class":3456,"line":3073},[5495],{"type":3171,"tag":3454,"props":5496,"children":5497},{"style":3533},[5498],{"type":3176,"value":5499},"      }\n",{"type":3171,"tag":3454,"props":5501,"children":5502},{"class":3456,"line":3069},[5503],{"type":3171,"tag":3454,"props":5504,"children":5505},{"style":3533},[5506],{"type":3176,"value":5507},"    }\n",{"type":3171,"tag":3454,"props":5509,"children":5510},{"class":3456,"line":3905},[5511],{"type":3171,"tag":3454,"props":5512,"children":5513},{"style":3533},[5514],{"type":3176,"value":5155},{"type":3171,"tag":3454,"props":5516,"children":5517},{"class":3456,"line":3922},[5518,5522],{"type":3171,"tag":3454,"props":5519,"children":5520},{"style":3533},[5521],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":5523,"children":5524},{"style":3528},[5525],{"type":3176,"value":4897},{"type":3171,"tag":3178,"props":5527,"children":5528},{},[5529],{"type":3176,"value":5530},"It can also be set using environment variables:",{"type":3171,"tag":3228,"props":5532,"children":5533},{},[5534,5543],{"type":3171,"tag":3232,"props":5535,"children":5536},{},[5537],{"type":3171,"tag":3316,"props":5538,"children":5540},{"className":5539},[],[5541],{"type":3176,"value":5542},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_ID",{"type":3171,"tag":3232,"props":5544,"children":5545},{},[5546],{"type":3171,"tag":3316,"props":5547,"children":5549},{"className":5548},[],[5550],{"type":3176,"value":5551},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_SECRET",{"type":3171,"tag":4635,"props":5553,"children":5554},{},[5555],{"type":3171,"tag":3178,"props":5556,"children":5557},{},[5558],{"type":3176,"value":5559},"Provider is in uppercase (GITHUB, GOOGLE, etc.)",{"type":3171,"tag":5561,"props":5562,"children":5564},"h4",{"id":5563},"supported-oauth-providers",[5565],{"type":3176,"value":5566},"Supported OAuth Providers",{"type":3171,"tag":3228,"props":5568,"children":5569},{},[5570,5575,5580,5585,5590,5595,5600,5605,5610,5615,5620,5625,5630,5635,5640,5645,5650,5655,5660,5665,5670,5675,5680,5685,5690,5695,5700,5705,5710,5715,5720,5725,5730,5735,5740,5745,5750,5755,5760,5765,5770,5775,5780,5785,5790,5795,5800,5805],{"type":3171,"tag":3232,"props":5571,"children":5572},{},[5573],{"type":3176,"value":5574},"Apple",{"type":3171,"tag":3232,"props":5576,"children":5577},{},[5578],{"type":3176,"value":5579},"Atlassian",{"type":3171,"tag":3232,"props":5581,"children":5582},{},[5583],{"type":3176,"value":5584},"Auth0",{"type":3171,"tag":3232,"props":5586,"children":5587},{},[5588],{"type":3176,"value":5589},"Authentik",{"type":3171,"tag":3232,"props":5591,"children":5592},{},[5593],{"type":3176,"value":5594},"AWS Cognito",{"type":3171,"tag":3232,"props":5596,"children":5597},{},[5598],{"type":3176,"value":5599},"Azure B2C",{"type":3171,"tag":3232,"props":5601,"children":5602},{},[5603],{"type":3176,"value":5604},"Battle.net",{"type":3171,"tag":3232,"props":5606,"children":5607},{},[5608],{"type":3176,"value":5609},"Bluesky (AT Protocol)",{"type":3171,"tag":3232,"props":5611,"children":5612},{},[5613],{"type":3176,"value":5614},"Box.com",{"type":3171,"tag":3232,"props":5616,"children":5617},{},[5618],{"type":3176,"value":5619},"Discord",{"type":3171,"tag":3232,"props":5621,"children":5622},{},[5623],{"type":3176,"value":5624},"Dropbox",{"type":3171,"tag":3232,"props":5626,"children":5627},{},[5628],{"type":3176,"value":5629},"Facebook",{"type":3171,"tag":3232,"props":5631,"children":5632},{},[5633],{"type":3176,"value":5634},"GitHub",{"type":3171,"tag":3232,"props":5636,"children":5637},{},[5638],{"type":3176,"value":5639},"GitLab",{"type":3171,"tag":3232,"props":5641,"children":5642},{},[5643],{"type":3176,"value":5644},"Gitea",{"type":3171,"tag":3232,"props":5646,"children":5647},{},[5648],{"type":3176,"value":5649},"Google",{"type":3171,"tag":3232,"props":5651,"children":5652},{},[5653],{"type":3176,"value":5654},"Heroku",{"type":3171,"tag":3232,"props":5656,"children":5657},{},[5658],{"type":3176,"value":5659},"Hubspot",{"type":3171,"tag":3232,"props":5661,"children":5662},{},[5663],{"type":3176,"value":5664},"Instagram",{"type":3171,"tag":3232,"props":5666,"children":5667},{},[5668],{"type":3176,"value":5669},"Kick",{"type":3171,"tag":3232,"props":5671,"children":5672},{},[5673],{"type":3176,"value":5674},"Keycloak",{"type":3171,"tag":3232,"props":5676,"children":5677},{},[5678],{"type":3176,"value":5679},"Line",{"type":3171,"tag":3232,"props":5681,"children":5682},{},[5683],{"type":3176,"value":5684},"Linear",{"type":3171,"tag":3232,"props":5686,"children":5687},{},[5688],{"type":3176,"value":5689},"LinkedIn",{"type":3171,"tag":3232,"props":5691,"children":5692},{},[5693],{"type":3176,"value":5694},"LiveChat",{"type":3171,"tag":3232,"props":5696,"children":5697},{},[5698],{"type":3176,"value":5699},"Microsoft",{"type":3171,"tag":3232,"props":5701,"children":5702},{},[5703],{"type":3176,"value":5704},"OIDC \u002F OpenID Connect (Generic)",{"type":3171,"tag":3232,"props":5706,"children":5707},{},[5708],{"type":3176,"value":5709},"Okta",{"type":3171,"tag":3232,"props":5711,"children":5712},{},[5713],{"type":3176,"value":5714},"Ory",{"type":3171,"tag":3232,"props":5716,"children":5717},{},[5718],{"type":3176,"value":5719},"osu!",{"type":3171,"tag":3232,"props":5721,"children":5722},{},[5723],{"type":3176,"value":5724},"PayPal",{"type":3171,"tag":3232,"props":5726,"children":5727},{},[5728],{"type":3176,"value":5729},"Polar",{"type":3171,"tag":3232,"props":5731,"children":5732},{},[5733],{"type":3176,"value":5734},"Riot Games",{"type":3171,"tag":3232,"props":5736,"children":5737},{},[5738],{"type":3176,"value":5739},"Salesforce",{"type":3171,"tag":3232,"props":5741,"children":5742},{},[5743],{"type":3176,"value":5744},"Seznam",{"type":3171,"tag":3232,"props":5746,"children":5747},{},[5748],{"type":3176,"value":5749},"Shopify Customer",{"type":3171,"tag":3232,"props":5751,"children":5752},{},[5753],{"type":3176,"value":5754},"Slack",{"type":3171,"tag":3232,"props":5756,"children":5757},{},[5758],{"type":3176,"value":5759},"Spotify",{"type":3171,"tag":3232,"props":5761,"children":5762},{},[5763],{"type":3176,"value":5764},"Steam",{"type":3171,"tag":3232,"props":5766,"children":5767},{},[5768],{"type":3176,"value":5769},"Strava",{"type":3171,"tag":3232,"props":5771,"children":5772},{},[5773],{"type":3176,"value":5774},"TikTok",{"type":3171,"tag":3232,"props":5776,"children":5777},{},[5778],{"type":3176,"value":5779},"Twitch",{"type":3171,"tag":3232,"props":5781,"children":5782},{},[5783],{"type":3176,"value":5784},"VK",{"type":3171,"tag":3232,"props":5786,"children":5787},{},[5788],{"type":3176,"value":5789},"WorkOS",{"type":3171,"tag":3232,"props":5791,"children":5792},{},[5793],{"type":3176,"value":5794},"X (Twitter)",{"type":3171,"tag":3232,"props":5796,"children":5797},{},[5798],{"type":3176,"value":5799},"XSUAA",{"type":3171,"tag":3232,"props":5801,"children":5802},{},[5803],{"type":3176,"value":5804},"Yandex",{"type":3171,"tag":3232,"props":5806,"children":5807},{},[5808],{"type":3176,"value":5809},"Zitadel",{"type":3171,"tag":3178,"props":5811,"children":5812},{},[5813,5815,5822],{"type":3176,"value":5814},"You can add your favorite provider by creating a new file in ",{"type":3171,"tag":3182,"props":5816,"children":5819},{"href":5817,"rel":5818},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Ftree\u002Fmain\u002Fsrc\u002Fruntime\u002Fserver\u002Flib\u002Foauth",[3186],[5820],{"type":3176,"value":5821},"src\u002Fruntime\u002Fserver\u002Flib\u002Foauth\u002F",{"type":3176,"value":3409},{"type":3171,"tag":5561,"props":5824,"children":5826},{"id":5825},"example",[5827],{"type":3176,"value":5828},"Example",{"type":3171,"tag":3178,"props":5830,"children":5831},{},[5832,5834],{"type":3176,"value":5833},"Example: ",{"type":3171,"tag":3316,"props":5835,"children":5837},{"className":5836},[],[5838],{"type":3176,"value":5839},"~\u002Fserver\u002Froutes\u002Fauth\u002Fgithub.get.ts",{"type":3171,"tag":3444,"props":5841,"children":5843},{"className":4133,"code":5842,"language":4135,"meta":3045,"style":3045},"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",[5844],{"type":3171,"tag":3316,"props":5845,"children":5846},{"__ignoreMap":3045},[5847,5871,5887,5905,5912,5963,5991,6007,6032,6039,6051,6093,6100,6108,6142,6188,6227,6234],{"type":3171,"tag":3454,"props":5848,"children":5849},{"class":3456,"line":3131},[5850,5854,5858,5863,5867],{"type":3171,"tag":3454,"props":5851,"children":5852},{"style":4717},[5853],{"type":3176,"value":5251},{"type":3171,"tag":3454,"props":5855,"children":5856},{"style":4717},[5857],{"type":3176,"value":5366},{"type":3171,"tag":3454,"props":5859,"children":5860},{"style":3690},[5861],{"type":3176,"value":5862}," defineOAuthGitHubEventHandler",{"type":3171,"tag":3454,"props":5864,"children":5865},{"style":3528},[5866],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":5868,"children":5869},{"style":3533},[5870],{"type":3176,"value":5381},{"type":3171,"tag":3454,"props":5872,"children":5873},{"class":3456,"line":3097},[5874,5879,5883],{"type":3171,"tag":3454,"props":5875,"children":5876},{"style":3599},[5877],{"type":3176,"value":5878},"  config",{"type":3171,"tag":3454,"props":5880,"children":5881},{"style":3533},[5882],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":5884,"children":5885},{"style":3533},[5886],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":5888,"children":5889},{"class":3456,"line":3081},[5890,5895,5899],{"type":3171,"tag":3454,"props":5891,"children":5892},{"style":3599},[5893],{"type":3176,"value":5894},"    emailRequired",{"type":3171,"tag":3454,"props":5896,"children":5897},{"style":3533},[5898],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":5900,"children":5902},{"style":5901},"--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC",[5903],{"type":3176,"value":5904}," true\n",{"type":3171,"tag":3454,"props":5906,"children":5907},{"class":3456,"line":3717},[5908],{"type":3171,"tag":3454,"props":5909,"children":5910},{"style":3533},[5911],{"type":3176,"value":4795},{"type":3171,"tag":3454,"props":5913,"children":5914},{"class":3456,"line":3726},[5915,5920,5925,5929,5934,5938,5942,5946,5950,5955,5959],{"type":3171,"tag":3454,"props":5916,"children":5917},{"style":3605},[5918],{"type":3176,"value":5919},"  async",{"type":3171,"tag":3454,"props":5921,"children":5922},{"style":3599},[5923],{"type":3176,"value":5924}," onSuccess",{"type":3171,"tag":3454,"props":5926,"children":5927},{"style":3533},[5928],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":5930,"children":5931},{"style":4549},[5932],{"type":3176,"value":5933},"event",{"type":3171,"tag":3454,"props":5935,"children":5936},{"style":3533},[5937],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":5939,"children":5940},{"style":3533},[5941],{"type":3176,"value":3626},{"type":3171,"tag":3454,"props":5943,"children":5944},{"style":4549},[5945],{"type":3176,"value":3641},{"type":3171,"tag":3454,"props":5947,"children":5948},{"style":3533},[5949],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":5951,"children":5952},{"style":4549},[5953],{"type":3176,"value":5954}," tokens",{"type":3171,"tag":3454,"props":5956,"children":5957},{"style":3533},[5958],{"type":3176,"value":4615},{"type":3171,"tag":3454,"props":5960,"children":5961},{"style":3533},[5962],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":5964,"children":5965},{"class":3456,"line":3743},[5966,5971,5975,5979,5983,5987],{"type":3171,"tag":3454,"props":5967,"children":5968},{"style":4717},[5969],{"type":3176,"value":5970},"    await",{"type":3171,"tag":3454,"props":5972,"children":5973},{"style":3690},[5974],{"type":3176,"value":4725},{"type":3171,"tag":3454,"props":5976,"children":5977},{"style":3599},[5978],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":5980,"children":5981},{"style":3528},[5982],{"type":3176,"value":5933},{"type":3171,"tag":3454,"props":5984,"children":5985},{"style":3533},[5986],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":5988,"children":5989},{"style":3533},[5990],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":5992,"children":5993},{"class":3456,"line":3077},[5994,5999,6003],{"type":3171,"tag":3454,"props":5995,"children":5996},{"style":3599},[5997],{"type":3176,"value":5998},"      user",{"type":3171,"tag":3454,"props":6000,"children":6001},{"style":3533},[6002],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":6004,"children":6005},{"style":3533},[6006],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":6008,"children":6009},{"class":3456,"line":3073},[6010,6015,6019,6023,6027],{"type":3171,"tag":3454,"props":6011,"children":6012},{"style":3599},[6013],{"type":3176,"value":6014},"        githubId",{"type":3171,"tag":3454,"props":6016,"children":6017},{"style":3533},[6018],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":6020,"children":6021},{"style":3528},[6022],{"type":3176,"value":3641},{"type":3171,"tag":3454,"props":6024,"children":6025},{"style":3533},[6026],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":6028,"children":6029},{"style":3528},[6030],{"type":3176,"value":6031},"id\n",{"type":3171,"tag":3454,"props":6033,"children":6034},{"class":3456,"line":3069},[6035],{"type":3171,"tag":3454,"props":6036,"children":6037},{"style":3533},[6038],{"type":3176,"value":5499},{"type":3171,"tag":3454,"props":6040,"children":6041},{"class":3456,"line":3905},[6042,6047],{"type":3171,"tag":3454,"props":6043,"children":6044},{"style":3533},[6045],{"type":3176,"value":6046},"    }",{"type":3171,"tag":3454,"props":6048,"children":6049},{"style":3599},[6050],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":6052,"children":6053},{"class":3456,"line":3922},[6054,6059,6064,6068,6072,6076,6080,6085,6089],{"type":3171,"tag":3454,"props":6055,"children":6056},{"style":4717},[6057],{"type":3176,"value":6058},"    return",{"type":3171,"tag":3454,"props":6060,"children":6061},{"style":3690},[6062],{"type":3176,"value":6063}," sendRedirect",{"type":3171,"tag":3454,"props":6065,"children":6066},{"style":3599},[6067],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":6069,"children":6070},{"style":3528},[6071],{"type":3176,"value":5933},{"type":3171,"tag":3454,"props":6073,"children":6074},{"style":3533},[6075],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":6077,"children":6078},{"style":3533},[6079],{"type":3176,"value":4778},{"type":3171,"tag":3454,"props":6081,"children":6082},{"style":3466},[6083],{"type":3176,"value":6084},"\u002F",{"type":3171,"tag":3454,"props":6086,"children":6087},{"style":3533},[6088],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":6090,"children":6091},{"style":3599},[6092],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":6094,"children":6095},{"class":3456,"line":3943},[6096],{"type":3171,"tag":3454,"props":6097,"children":6098},{"style":3533},[6099],{"type":3176,"value":4795},{"type":3171,"tag":3454,"props":6101,"children":6102},{"class":3456,"line":3976},[6103],{"type":3171,"tag":3454,"props":6104,"children":6105},{"style":3519},[6106],{"type":3176,"value":6107},"  \u002F\u002F Optional, will return a json error and 401 status code by default\n",{"type":3171,"tag":3454,"props":6109,"children":6110},{"class":3456,"line":4031},[6111,6116,6120,6124,6128,6133,6138],{"type":3171,"tag":3454,"props":6112,"children":6113},{"style":3599},[6114],{"type":3176,"value":6115},"  onError",{"type":3171,"tag":3454,"props":6117,"children":6118},{"style":3533},[6119],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":6121,"children":6122},{"style":4549},[6123],{"type":3176,"value":5933},{"type":3171,"tag":3454,"props":6125,"children":6126},{"style":3533},[6127],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":6129,"children":6130},{"style":4549},[6131],{"type":3176,"value":6132}," error",{"type":3171,"tag":3454,"props":6134,"children":6135},{"style":3533},[6136],{"type":3176,"value":6137},")",{"type":3171,"tag":3454,"props":6139,"children":6140},{"style":3533},[6141],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":6143,"children":6144},{"class":3456,"line":4040},[6145,6150,6154,6159,6163,6167,6172,6176,6180,6184],{"type":3171,"tag":3454,"props":6146,"children":6147},{"style":3528},[6148],{"type":3176,"value":6149},"    console",{"type":3171,"tag":3454,"props":6151,"children":6152},{"style":3533},[6153],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":6155,"children":6156},{"style":3690},[6157],{"type":3176,"value":6158},"error",{"type":3171,"tag":3454,"props":6160,"children":6161},{"style":3599},[6162],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":6164,"children":6165},{"style":3533},[6166],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":6168,"children":6169},{"style":3466},[6170],{"type":3176,"value":6171},"GitHub OAuth error:",{"type":3171,"tag":3454,"props":6173,"children":6174},{"style":3533},[6175],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":6177,"children":6178},{"style":3533},[6179],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":6181,"children":6182},{"style":3528},[6183],{"type":3176,"value":6132},{"type":3171,"tag":3454,"props":6185,"children":6186},{"style":3599},[6187],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":6189,"children":6190},{"class":3456,"line":3065},[6191,6195,6199,6203,6207,6211,6215,6219,6223],{"type":3171,"tag":3454,"props":6192,"children":6193},{"style":4717},[6194],{"type":3176,"value":6058},{"type":3171,"tag":3454,"props":6196,"children":6197},{"style":3690},[6198],{"type":3176,"value":6063},{"type":3171,"tag":3454,"props":6200,"children":6201},{"style":3599},[6202],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":6204,"children":6205},{"style":3528},[6206],{"type":3176,"value":5933},{"type":3171,"tag":3454,"props":6208,"children":6209},{"style":3533},[6210],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":6212,"children":6213},{"style":3533},[6214],{"type":3176,"value":4778},{"type":3171,"tag":3454,"props":6216,"children":6217},{"style":3466},[6218],{"type":3176,"value":6084},{"type":3171,"tag":3454,"props":6220,"children":6221},{"style":3533},[6222],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":6224,"children":6225},{"style":3599},[6226],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":6228,"children":6229},{"class":3456,"line":4108},[6230],{"type":3171,"tag":3454,"props":6231,"children":6232},{"style":3533},[6233],{"type":3176,"value":4795},{"type":3171,"tag":3454,"props":6235,"children":6236},{"class":3456,"line":4378},[6237,6241],{"type":3171,"tag":3454,"props":6238,"children":6239},{"style":3533},[6240],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":6242,"children":6243},{"style":3528},[6244],{"type":3176,"value":4897},{"type":3171,"tag":3178,"props":6246,"children":6247},{},[6248,6250,6256],{"type":3176,"value":6249},"Make sure to set the callback URL in your OAuth app settings as ",{"type":3171,"tag":3316,"props":6251,"children":6253},{"className":6252},[],[6254],{"type":3176,"value":6255},"\u003Cyour-domain>\u002Fauth\u002Fgithub",{"type":3176,"value":3409},{"type":3171,"tag":3178,"props":6258,"children":6259},{},[6260,6262,6268],{"type":3176,"value":6261},"If the redirect URL mismatch in production, this means that the module cannot guess the right redirect URL. You can set the ",{"type":3171,"tag":3316,"props":6263,"children":6265},{"className":6264},[],[6266],{"type":3176,"value":6267},"NUXT_OAUTH_\u003CPROVIDER>_REDIRECT_URL",{"type":3176,"value":6269}," env variable to overwrite the default one.",{"type":3171,"tag":3574,"props":6271,"children":6273},{"id":6272},"password-hashing",[6274],{"type":3176,"value":3298},{"type":3171,"tag":3178,"props":6276,"children":6277},{},[6278,6280,6286,6288,6294,6296,6303],{"type":3176,"value":6279},"Nuxt Auth Utils provides password hashing utilities like ",{"type":3171,"tag":3316,"props":6281,"children":6283},{"className":6282},[],[6284],{"type":3176,"value":6285},"hashPassword",{"type":3176,"value":6287}," and ",{"type":3171,"tag":3316,"props":6289,"children":6291},{"className":6290},[],[6292],{"type":3176,"value":6293},"verifyPassword",{"type":3176,"value":6295}," to hash and verify passwords by using ",{"type":3171,"tag":3182,"props":6297,"children":6300},{"href":6298,"rel":6299},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FScrypt",[3186],[6301],{"type":3176,"value":6302},"scrypt",{"type":3176,"value":6304}," as it is supported in many JS runtime.",{"type":3171,"tag":3444,"props":6306,"children":6308},{"className":4133,"code":6307,"language":4135,"meta":3045,"style":3045},"const hashedPassword = await hashPassword('user_password')\n\nif (await verifyPassword(hashedPassword, 'user_password')) {\n  \u002F\u002F Password is valid\n}\n",[6309],{"type":3171,"tag":3316,"props":6310,"children":6311},{"__ignoreMap":3045},[6312,6358,6365,6416,6424],{"type":3171,"tag":3454,"props":6313,"children":6314},{"class":3456,"line":3131},[6315,6319,6324,6328,6332,6337,6341,6345,6350,6354],{"type":3171,"tag":3454,"props":6316,"children":6317},{"style":3605},[6318],{"type":3176,"value":3621},{"type":3171,"tag":3454,"props":6320,"children":6321},{"style":3528},[6322],{"type":3176,"value":6323}," hashedPassword ",{"type":3171,"tag":3454,"props":6325,"children":6326},{"style":3533},[6327],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":6329,"children":6330},{"style":4717},[6331],{"type":3176,"value":4973},{"type":3171,"tag":3454,"props":6333,"children":6334},{"style":3690},[6335],{"type":3176,"value":6336}," hashPassword",{"type":3171,"tag":3454,"props":6338,"children":6339},{"style":3528},[6340],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":6342,"children":6343},{"style":3533},[6344],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":6346,"children":6347},{"style":3466},[6348],{"type":3176,"value":6349},"user_password",{"type":3171,"tag":3454,"props":6351,"children":6352},{"style":3533},[6353],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":6355,"children":6356},{"style":3528},[6357],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":6359,"children":6360},{"class":3456,"line":3097},[6361],{"type":3171,"tag":3454,"props":6362,"children":6363},{"emptyLinePlaceholder":1200},[6364],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":6366,"children":6367},{"class":3456,"line":3081},[6368,6373,6377,6381,6386,6391,6395,6399,6403,6407,6412],{"type":3171,"tag":3454,"props":6369,"children":6370},{"style":4717},[6371],{"type":3176,"value":6372},"if",{"type":3171,"tag":3454,"props":6374,"children":6375},{"style":3528},[6376],{"type":3176,"value":4546},{"type":3171,"tag":3454,"props":6378,"children":6379},{"style":4717},[6380],{"type":3176,"value":4720},{"type":3171,"tag":3454,"props":6382,"children":6383},{"style":3690},[6384],{"type":3176,"value":6385}," verifyPassword",{"type":3171,"tag":3454,"props":6387,"children":6388},{"style":3528},[6389],{"type":3176,"value":6390},"(hashedPassword",{"type":3171,"tag":3454,"props":6392,"children":6393},{"style":3533},[6394],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":6396,"children":6397},{"style":3533},[6398],{"type":3176,"value":4778},{"type":3171,"tag":3454,"props":6400,"children":6401},{"style":3466},[6402],{"type":3176,"value":6349},{"type":3171,"tag":3454,"props":6404,"children":6405},{"style":3533},[6406],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":6408,"children":6409},{"style":3528},[6410],{"type":3176,"value":6411},")) ",{"type":3171,"tag":3454,"props":6413,"children":6414},{"style":3533},[6415],{"type":3176,"value":5381},{"type":3171,"tag":3454,"props":6417,"children":6418},{"class":3456,"line":3717},[6419],{"type":3171,"tag":3454,"props":6420,"children":6421},{"style":3519},[6422],{"type":3176,"value":6423},"  \u002F\u002F Password is valid\n",{"type":3171,"tag":3454,"props":6425,"children":6426},{"class":3456,"line":3726},[6427],{"type":3171,"tag":3454,"props":6428,"children":6429},{"style":3533},[6430],{"type":3176,"value":4633},{"type":3171,"tag":3178,"props":6432,"children":6433},{},[6434,6436,6442],{"type":3176,"value":6435},"It also provides a ",{"type":3171,"tag":3316,"props":6437,"children":6439},{"className":6438},[],[6440],{"type":3176,"value":6441},"passwordNeedsRehash",{"type":3176,"value":6443}," 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":3171,"tag":3444,"props":6445,"children":6447},{"className":4133,"code":6446,"language":4135,"meta":3045,"style":3045},"const needsRehash = passwordNeedsRehash(hashedPassword)\n\nif (needsRehash) {\n  \u002F\u002F Password needs to be rehashed\n  hashedPassword = await hashPassword('user_password')\n}\n",[6448],{"type":3171,"tag":3316,"props":6449,"children":6450},{"__ignoreMap":3045},[6451,6477,6484,6500,6508,6548],{"type":3171,"tag":3454,"props":6452,"children":6453},{"class":3456,"line":3131},[6454,6458,6463,6467,6472],{"type":3171,"tag":3454,"props":6455,"children":6456},{"style":3605},[6457],{"type":3176,"value":3621},{"type":3171,"tag":3454,"props":6459,"children":6460},{"style":3528},[6461],{"type":3176,"value":6462}," needsRehash ",{"type":3171,"tag":3454,"props":6464,"children":6465},{"style":3533},[6466],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":6468,"children":6469},{"style":3690},[6470],{"type":3176,"value":6471}," passwordNeedsRehash",{"type":3171,"tag":3454,"props":6473,"children":6474},{"style":3528},[6475],{"type":3176,"value":6476},"(hashedPassword)\n",{"type":3171,"tag":3454,"props":6478,"children":6479},{"class":3456,"line":3097},[6480],{"type":3171,"tag":3454,"props":6481,"children":6482},{"emptyLinePlaceholder":1200},[6483],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":6485,"children":6486},{"class":3456,"line":3081},[6487,6491,6496],{"type":3171,"tag":3454,"props":6488,"children":6489},{"style":4717},[6490],{"type":3176,"value":6372},{"type":3171,"tag":3454,"props":6492,"children":6493},{"style":3528},[6494],{"type":3176,"value":6495}," (needsRehash) ",{"type":3171,"tag":3454,"props":6497,"children":6498},{"style":3533},[6499],{"type":3176,"value":5381},{"type":3171,"tag":3454,"props":6501,"children":6502},{"class":3456,"line":3717},[6503],{"type":3171,"tag":3454,"props":6504,"children":6505},{"style":3519},[6506],{"type":3176,"value":6507},"  \u002F\u002F Password needs to be rehashed\n",{"type":3171,"tag":3454,"props":6509,"children":6510},{"class":3456,"line":3726},[6511,6516,6520,6524,6528,6532,6536,6540,6544],{"type":3171,"tag":3454,"props":6512,"children":6513},{"style":3528},[6514],{"type":3176,"value":6515},"  hashedPassword",{"type":3171,"tag":3454,"props":6517,"children":6518},{"style":3533},[6519],{"type":3176,"value":3687},{"type":3171,"tag":3454,"props":6521,"children":6522},{"style":4717},[6523],{"type":3176,"value":4973},{"type":3171,"tag":3454,"props":6525,"children":6526},{"style":3690},[6527],{"type":3176,"value":6336},{"type":3171,"tag":3454,"props":6529,"children":6530},{"style":3599},[6531],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":6533,"children":6534},{"style":3533},[6535],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":6537,"children":6538},{"style":3466},[6539],{"type":3176,"value":6349},{"type":3171,"tag":3454,"props":6541,"children":6542},{"style":3533},[6543],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":6545,"children":6546},{"style":3599},[6547],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":6549,"children":6550},{"class":3456,"line":3743},[6551],{"type":3171,"tag":3454,"props":6552,"children":6553},{"style":3533},[6554],{"type":3176,"value":4633},{"type":3171,"tag":3178,"props":6556,"children":6557},{},[6558,6560,6565],{"type":3176,"value":6559},"You can configure the scrypt options in your ",{"type":3171,"tag":3316,"props":6561,"children":6563},{"className":6562},[],[6564],{"type":3176,"value":233},{"type":3176,"value":4194},{"type":3171,"tag":3444,"props":6567,"children":6569},{"className":4133,"code":6568,"language":4135,"meta":3045,"style":3045},"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",[6570],{"type":3171,"tag":3316,"props":6571,"children":6572},{"__ignoreMap":3045},[6573,6596,6634,6650,6666,6682,6690,6697,6704,6711],{"type":3171,"tag":3454,"props":6574,"children":6575},{"class":3456,"line":3131},[6576,6580,6584,6588,6592],{"type":3171,"tag":3454,"props":6577,"children":6578},{"style":4717},[6579],{"type":3176,"value":5251},{"type":3171,"tag":3454,"props":6581,"children":6582},{"style":4717},[6583],{"type":3176,"value":5366},{"type":3171,"tag":3454,"props":6585,"children":6586},{"style":3690},[6587],{"type":3176,"value":5371},{"type":3171,"tag":3454,"props":6589,"children":6590},{"style":3528},[6591],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":6593,"children":6594},{"style":3533},[6595],{"type":3176,"value":5381},{"type":3171,"tag":3454,"props":6597,"children":6598},{"class":3456,"line":3097},[6599,6604,6608,6613,6617,6621,6625,6630],{"type":3171,"tag":3454,"props":6600,"children":6601},{"style":3599},[6602],{"type":3176,"value":6603},"  modules",{"type":3171,"tag":3454,"props":6605,"children":6606},{"style":3533},[6607],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":6609,"children":6610},{"style":3528},[6611],{"type":3176,"value":6612}," [",{"type":3171,"tag":3454,"props":6614,"children":6615},{"style":3533},[6616],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":6618,"children":6619},{"style":3466},[6620],{"type":3176,"value":3044},{"type":3171,"tag":3454,"props":6622,"children":6623},{"style":3533},[6624],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":6626,"children":6627},{"style":3528},[6628],{"type":3176,"value":6629},"]",{"type":3171,"tag":3454,"props":6631,"children":6632},{"style":3533},[6633],{"type":3176,"value":5467},{"type":3171,"tag":3454,"props":6635,"children":6636},{"class":3456,"line":3081},[6637,6642,6646],{"type":3171,"tag":3454,"props":6638,"children":6639},{"style":3599},[6640],{"type":3176,"value":6641},"  auth",{"type":3171,"tag":3454,"props":6643,"children":6644},{"style":3533},[6645],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":6647,"children":6648},{"style":3533},[6649],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":6651,"children":6652},{"class":3456,"line":3717},[6653,6658,6662],{"type":3171,"tag":3454,"props":6654,"children":6655},{"style":3599},[6656],{"type":3176,"value":6657},"    hash",{"type":3171,"tag":3454,"props":6659,"children":6660},{"style":3533},[6661],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":6663,"children":6664},{"style":3533},[6665],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":6667,"children":6668},{"class":3456,"line":3726},[6669,6674,6678],{"type":3171,"tag":3454,"props":6670,"children":6671},{"style":3599},[6672],{"type":3176,"value":6673},"      scrypt",{"type":3171,"tag":3454,"props":6675,"children":6676},{"style":3533},[6677],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":6679,"children":6680},{"style":3533},[6681],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":6683,"children":6684},{"class":3456,"line":3743},[6685],{"type":3171,"tag":3454,"props":6686,"children":6687},{"style":3519},[6688],{"type":3176,"value":6689},"        \u002F\u002F See https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fhash\u002Fblob\u002F94637029cd526783ac0a763ec581306d98db2036\u002Fsrc\u002Ftypes.ts#L144\n",{"type":3171,"tag":3454,"props":6691,"children":6692},{"class":3456,"line":3077},[6693],{"type":3171,"tag":3454,"props":6694,"children":6695},{"style":3533},[6696],{"type":3176,"value":5499},{"type":3171,"tag":3454,"props":6698,"children":6699},{"class":3456,"line":3073},[6700],{"type":3171,"tag":3454,"props":6701,"children":6702},{"style":3533},[6703],{"type":3176,"value":5507},{"type":3171,"tag":3454,"props":6705,"children":6706},{"class":3456,"line":3069},[6707],{"type":3171,"tag":3454,"props":6708,"children":6709},{"style":3533},[6710],{"type":3176,"value":5155},{"type":3171,"tag":3454,"props":6712,"children":6713},{"class":3456,"line":3905},[6714,6718],{"type":3171,"tag":3454,"props":6715,"children":6716},{"style":3533},[6717],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":6719,"children":6720},{"style":3528},[6721],{"type":3176,"value":4897},{"type":3171,"tag":3574,"props":6723,"children":6725},{"id":6724},"at-protocol",[6726],{"type":3176,"value":6727},"AT Protocol",{"type":3171,"tag":3178,"props":6729,"children":6730},{},[6731],{"type":3176,"value":6732},"Social networks that rely on AT Protocol (e.g., Bluesky) slightly differ from a regular OAuth flow.",{"type":3171,"tag":3178,"props":6734,"children":6735},{},[6736],{"type":3176,"value":6737},"To enable OAuth with AT Protocol, you need to:",{"type":3171,"tag":3428,"props":6739,"children":6740},{},[6741],{"type":3171,"tag":3232,"props":6742,"children":6743},{},[6744],{"type":3176,"value":6745},"Install the peer dependencies:",{"type":3171,"tag":3444,"props":6747,"children":6749},{"className":3446,"code":6748,"language":3448,"meta":3045,"style":3045},"npx nypm i @atproto\u002Foauth-client-node @atproto\u002Fapi\n",[6750],{"type":3171,"tag":3316,"props":6751,"children":6752},{"__ignoreMap":3045},[6753],{"type":3171,"tag":3454,"props":6754,"children":6755},{"class":3456,"line":3131},[6756,6760,6765,6770,6775],{"type":3171,"tag":3454,"props":6757,"children":6758},{"style":3460},[6759],{"type":3176,"value":3463},{"type":3171,"tag":3454,"props":6761,"children":6762},{"style":3466},[6763],{"type":3176,"value":6764}," nypm",{"type":3171,"tag":3454,"props":6766,"children":6767},{"style":3466},[6768],{"type":3176,"value":6769}," i",{"type":3171,"tag":3454,"props":6771,"children":6772},{"style":3466},[6773],{"type":3176,"value":6774}," @atproto\u002Foauth-client-node",{"type":3171,"tag":3454,"props":6776,"children":6777},{"style":3466},[6778],{"type":3176,"value":6779}," @atproto\u002Fapi\n",{"type":3171,"tag":3428,"props":6781,"children":6782},{"start":3097},[6783],{"type":3171,"tag":3232,"props":6784,"children":6785},{},[6786,6788],{"type":3176,"value":6787},"Enable it in your ",{"type":3171,"tag":3316,"props":6789,"children":6791},{"className":6790},[],[6792],{"type":3176,"value":233},{"type":3171,"tag":3444,"props":6794,"children":6796},{"className":4133,"code":6795,"language":4135,"meta":3045,"style":3045},"export default defineNuxtConfig({\n  auth: {\n    atproto: true\n  }\n})\n",[6797],{"type":3171,"tag":3316,"props":6798,"children":6799},{"__ignoreMap":3045},[6800,6823,6838,6854,6861],{"type":3171,"tag":3454,"props":6801,"children":6802},{"class":3456,"line":3131},[6803,6807,6811,6815,6819],{"type":3171,"tag":3454,"props":6804,"children":6805},{"style":4717},[6806],{"type":3176,"value":5251},{"type":3171,"tag":3454,"props":6808,"children":6809},{"style":4717},[6810],{"type":3176,"value":5366},{"type":3171,"tag":3454,"props":6812,"children":6813},{"style":3690},[6814],{"type":3176,"value":5371},{"type":3171,"tag":3454,"props":6816,"children":6817},{"style":3528},[6818],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":6820,"children":6821},{"style":3533},[6822],{"type":3176,"value":5381},{"type":3171,"tag":3454,"props":6824,"children":6825},{"class":3456,"line":3097},[6826,6830,6834],{"type":3171,"tag":3454,"props":6827,"children":6828},{"style":3599},[6829],{"type":3176,"value":6641},{"type":3171,"tag":3454,"props":6831,"children":6832},{"style":3533},[6833],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":6835,"children":6836},{"style":3533},[6837],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":6839,"children":6840},{"class":3456,"line":3081},[6841,6846,6850],{"type":3171,"tag":3454,"props":6842,"children":6843},{"style":3599},[6844],{"type":3176,"value":6845},"    atproto",{"type":3171,"tag":3454,"props":6847,"children":6848},{"style":3533},[6849],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":6851,"children":6852},{"style":5901},[6853],{"type":3176,"value":5904},{"type":3171,"tag":3454,"props":6855,"children":6856},{"class":3456,"line":3717},[6857],{"type":3171,"tag":3454,"props":6858,"children":6859},{"style":3533},[6860],{"type":3176,"value":5155},{"type":3171,"tag":3454,"props":6862,"children":6863},{"class":3456,"line":3726},[6864,6868],{"type":3171,"tag":3454,"props":6865,"children":6866},{"style":3533},[6867],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":6869,"children":6870},{"style":3528},[6871],{"type":3176,"value":4897},{"type":3171,"tag":3574,"props":6873,"children":6875},{"id":6874},"webauthn-passkey",[6876],{"type":3176,"value":3307},{"type":3171,"tag":3178,"props":6878,"children":6879},{},[6880],{"type":3176,"value":6881},"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":3171,"tag":3178,"props":6883,"children":6884},{},[6885],{"type":3176,"value":6886},"To enable WebAuthn you need to:",{"type":3171,"tag":3428,"props":6888,"children":6889},{},[6890],{"type":3171,"tag":3232,"props":6891,"children":6892},{},[6893],{"type":3176,"value":6745},{"type":3171,"tag":3444,"props":6895,"children":6897},{"className":3446,"code":6896,"language":3448,"meta":3045,"style":3045},"npx nypm i @simplewebauthn\u002Fserver@11 @simplewebauthn\u002Fbrowser@11\n",[6898],{"type":3171,"tag":3316,"props":6899,"children":6900},{"__ignoreMap":3045},[6901],{"type":3171,"tag":3454,"props":6902,"children":6903},{"class":3456,"line":3131},[6904,6908,6912,6916,6921],{"type":3171,"tag":3454,"props":6905,"children":6906},{"style":3460},[6907],{"type":3176,"value":3463},{"type":3171,"tag":3454,"props":6909,"children":6910},{"style":3466},[6911],{"type":3176,"value":6764},{"type":3171,"tag":3454,"props":6913,"children":6914},{"style":3466},[6915],{"type":3176,"value":6769},{"type":3171,"tag":3454,"props":6917,"children":6918},{"style":3466},[6919],{"type":3176,"value":6920}," @simplewebauthn\u002Fserver@11",{"type":3171,"tag":3454,"props":6922,"children":6923},{"style":3466},[6924],{"type":3176,"value":6925}," @simplewebauthn\u002Fbrowser@11\n",{"type":3171,"tag":3428,"props":6927,"children":6928},{"start":3097},[6929],{"type":3171,"tag":3232,"props":6930,"children":6931},{},[6932,6933],{"type":3176,"value":6787},{"type":3171,"tag":3316,"props":6934,"children":6936},{"className":6935},[],[6937],{"type":3176,"value":233},{"type":3171,"tag":3444,"props":6939,"children":6941},{"className":4133,"code":6940,"language":4135,"meta":3045,"style":3045},"export default defineNuxtConfig({\n  auth: {\n    webAuthn: true\n  }\n})\n",[6942],{"type":3171,"tag":3316,"props":6943,"children":6944},{"__ignoreMap":3045},[6945,6968,6983,6999,7006],{"type":3171,"tag":3454,"props":6946,"children":6947},{"class":3456,"line":3131},[6948,6952,6956,6960,6964],{"type":3171,"tag":3454,"props":6949,"children":6950},{"style":4717},[6951],{"type":3176,"value":5251},{"type":3171,"tag":3454,"props":6953,"children":6954},{"style":4717},[6955],{"type":3176,"value":5366},{"type":3171,"tag":3454,"props":6957,"children":6958},{"style":3690},[6959],{"type":3176,"value":5371},{"type":3171,"tag":3454,"props":6961,"children":6962},{"style":3528},[6963],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":6965,"children":6966},{"style":3533},[6967],{"type":3176,"value":5381},{"type":3171,"tag":3454,"props":6969,"children":6970},{"class":3456,"line":3097},[6971,6975,6979],{"type":3171,"tag":3454,"props":6972,"children":6973},{"style":3599},[6974],{"type":3176,"value":6641},{"type":3171,"tag":3454,"props":6976,"children":6977},{"style":3533},[6978],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":6980,"children":6981},{"style":3533},[6982],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":6984,"children":6985},{"class":3456,"line":3081},[6986,6991,6995],{"type":3171,"tag":3454,"props":6987,"children":6988},{"style":3599},[6989],{"type":3176,"value":6990},"    webAuthn",{"type":3171,"tag":3454,"props":6992,"children":6993},{"style":3533},[6994],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":6996,"children":6997},{"style":5901},[6998],{"type":3176,"value":5904},{"type":3171,"tag":3454,"props":7000,"children":7001},{"class":3456,"line":3717},[7002],{"type":3171,"tag":3454,"props":7003,"children":7004},{"style":3533},[7005],{"type":3176,"value":5155},{"type":3171,"tag":3454,"props":7007,"children":7008},{"class":3456,"line":3726},[7009,7013],{"type":3171,"tag":3454,"props":7010,"children":7011},{"style":3533},[7012],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":7014,"children":7015},{"style":3528},[7016],{"type":3176,"value":4897},{"type":3171,"tag":5561,"props":7018,"children":7020},{"id":7019},"example-1",[7021],{"type":3176,"value":5828},{"type":3171,"tag":3178,"props":7023,"children":7024},{},[7025],{"type":3176,"value":7026},"In this example we will implement the very basic steps to register and authenticate a credential.",{"type":3171,"tag":3178,"props":7028,"children":7029},{},[7030,7032,7039],{"type":3176,"value":7031},"The full code can be found in the ",{"type":3171,"tag":3182,"props":7033,"children":7036},{"href":7034,"rel":7035},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn",[3186],[7037],{"type":3176,"value":7038},"playground",{"type":3176,"value":7040},". The example uses a SQLite database with the following minimal tables:",{"type":3171,"tag":3444,"props":7042,"children":7046},{"className":7043,"code":7044,"language":7045,"meta":3045,"style":3045},"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",[7047],{"type":3171,"tag":3316,"props":7048,"children":7049},{"__ignoreMap":3045},[7050,7074,7097,7115,7123,7130,7161,7202,7226,7246,7267,7287,7307,7354],{"type":3171,"tag":3454,"props":7051,"children":7052},{"class":3456,"line":3131},[7053,7059,7064,7069],{"type":3171,"tag":3454,"props":7054,"children":7056},{"style":7055},"--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C",[7057],{"type":3176,"value":7058},"CREATE",{"type":3171,"tag":3454,"props":7060,"children":7061},{"style":7055},[7062],{"type":3176,"value":7063}," TABLE",{"type":3171,"tag":3454,"props":7065,"children":7066},{"style":3690},[7067],{"type":3176,"value":7068}," users",{"type":3171,"tag":3454,"props":7070,"children":7071},{"style":3528},[7072],{"type":3176,"value":7073}," (\n",{"type":3171,"tag":3454,"props":7075,"children":7076},{"class":3456,"line":3097},[7077,7082,7087,7092],{"type":3171,"tag":3454,"props":7078,"children":7079},{"style":3528},[7080],{"type":3176,"value":7081},"  id ",{"type":3171,"tag":3454,"props":7083,"children":7084},{"style":3605},[7085],{"type":3176,"value":7086},"INTEGER",{"type":3171,"tag":3454,"props":7088,"children":7089},{"style":3605},[7090],{"type":3176,"value":7091}," PRIMARY KEY",{"type":3171,"tag":3454,"props":7093,"children":7094},{"style":3528},[7095],{"type":3176,"value":7096}," AUTOINCREMENT,\n",{"type":3171,"tag":3454,"props":7098,"children":7099},{"class":3456,"line":3081},[7100,7105,7110],{"type":3171,"tag":3454,"props":7101,"children":7102},{"style":3528},[7103],{"type":3176,"value":7104},"  email ",{"type":3171,"tag":3454,"props":7106,"children":7107},{"style":3605},[7108],{"type":3176,"value":7109},"TEXT",{"type":3171,"tag":3454,"props":7111,"children":7112},{"style":7055},[7113],{"type":3176,"value":7114}," NOT NULL\n",{"type":3171,"tag":3454,"props":7116,"children":7117},{"class":3456,"line":3717},[7118],{"type":3171,"tag":3454,"props":7119,"children":7120},{"style":3528},[7121],{"type":3176,"value":7122},");\n",{"type":3171,"tag":3454,"props":7124,"children":7125},{"class":3456,"line":3726},[7126],{"type":3171,"tag":3454,"props":7127,"children":7128},{"emptyLinePlaceholder":1200},[7129],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":7131,"children":7132},{"class":3456,"line":3743},[7133,7137,7141,7146,7151,7156],{"type":3171,"tag":3454,"props":7134,"children":7135},{"style":7055},[7136],{"type":3176,"value":7058},{"type":3171,"tag":3454,"props":7138,"children":7139},{"style":7055},[7140],{"type":3176,"value":7063},{"type":3171,"tag":3454,"props":7142,"children":7143},{"style":3690},[7144],{"type":3176,"value":7145}," IF",{"type":3171,"tag":3454,"props":7147,"children":7148},{"style":7055},[7149],{"type":3176,"value":7150}," NOT",{"type":3171,"tag":3454,"props":7152,"children":7153},{"style":7055},[7154],{"type":3176,"value":7155}," EXISTS",{"type":3171,"tag":3454,"props":7157,"children":7158},{"style":3528},[7159],{"type":3176,"value":7160}," credentials (\n",{"type":3171,"tag":3454,"props":7162,"children":7163},{"class":3456,"line":3077},[7164,7169,7173,7178,7183,7188,7193,7198],{"type":3171,"tag":3454,"props":7165,"children":7166},{"style":3528},[7167],{"type":3176,"value":7168},"  userId ",{"type":3171,"tag":3454,"props":7170,"children":7171},{"style":3605},[7172],{"type":3176,"value":7086},{"type":3171,"tag":3454,"props":7174,"children":7175},{"style":7055},[7176],{"type":3176,"value":7177}," NOT NULL",{"type":3171,"tag":3454,"props":7179,"children":7180},{"style":3605},[7181],{"type":3176,"value":7182}," REFERENCES",{"type":3171,"tag":3454,"props":7184,"children":7185},{"style":3528},[7186],{"type":3176,"value":7187}," users(id) ",{"type":3171,"tag":3454,"props":7189,"children":7190},{"style":3605},[7191],{"type":3176,"value":7192},"ON DELETE CASCADE",{"type":3171,"tag":3454,"props":7194,"children":7195},{"style":3605},[7196],{"type":3176,"value":7197}," ON UPDATE CASCADE",{"type":3171,"tag":3454,"props":7199,"children":7200},{"style":3528},[7201],{"type":3176,"value":5467},{"type":3171,"tag":3454,"props":7203,"children":7204},{"class":3456,"line":3073},[7205,7209,7213,7218,7222],{"type":3171,"tag":3454,"props":7206,"children":7207},{"style":3528},[7208],{"type":3176,"value":7081},{"type":3171,"tag":3454,"props":7210,"children":7211},{"style":3605},[7212],{"type":3176,"value":7109},{"type":3171,"tag":3454,"props":7214,"children":7215},{"style":7055},[7216],{"type":3176,"value":7217}," UNIQUE",{"type":3171,"tag":3454,"props":7219,"children":7220},{"style":7055},[7221],{"type":3176,"value":7177},{"type":3171,"tag":3454,"props":7223,"children":7224},{"style":3528},[7225],{"type":3176,"value":5467},{"type":3171,"tag":3454,"props":7227,"children":7228},{"class":3456,"line":3069},[7229,7234,7238,7242],{"type":3171,"tag":3454,"props":7230,"children":7231},{"style":3528},[7232],{"type":3176,"value":7233},"  publicKey ",{"type":3171,"tag":3454,"props":7235,"children":7236},{"style":3605},[7237],{"type":3176,"value":7109},{"type":3171,"tag":3454,"props":7239,"children":7240},{"style":7055},[7241],{"type":3176,"value":7177},{"type":3171,"tag":3454,"props":7243,"children":7244},{"style":3528},[7245],{"type":3176,"value":5467},{"type":3171,"tag":3454,"props":7247,"children":7248},{"class":3456,"line":3905},[7249,7254,7259,7263],{"type":3171,"tag":3454,"props":7250,"children":7251},{"style":7055},[7252],{"type":3176,"value":7253},"  counter",{"type":3171,"tag":3454,"props":7255,"children":7256},{"style":3605},[7257],{"type":3176,"value":7258}," INTEGER",{"type":3171,"tag":3454,"props":7260,"children":7261},{"style":7055},[7262],{"type":3176,"value":7177},{"type":3171,"tag":3454,"props":7264,"children":7265},{"style":3528},[7266],{"type":3176,"value":5467},{"type":3171,"tag":3454,"props":7268,"children":7269},{"class":3456,"line":3922},[7270,7275,7279,7283],{"type":3171,"tag":3454,"props":7271,"children":7272},{"style":3528},[7273],{"type":3176,"value":7274},"  backedUp ",{"type":3171,"tag":3454,"props":7276,"children":7277},{"style":3605},[7278],{"type":3176,"value":7086},{"type":3171,"tag":3454,"props":7280,"children":7281},{"style":7055},[7282],{"type":3176,"value":7177},{"type":3171,"tag":3454,"props":7284,"children":7285},{"style":3528},[7286],{"type":3176,"value":5467},{"type":3171,"tag":3454,"props":7288,"children":7289},{"class":3456,"line":3943},[7290,7295,7299,7303],{"type":3171,"tag":3454,"props":7291,"children":7292},{"style":3528},[7293],{"type":3176,"value":7294},"  transports ",{"type":3171,"tag":3454,"props":7296,"children":7297},{"style":3605},[7298],{"type":3176,"value":7109},{"type":3171,"tag":3454,"props":7300,"children":7301},{"style":7055},[7302],{"type":3176,"value":7177},{"type":3171,"tag":3454,"props":7304,"children":7305},{"style":3528},[7306],{"type":3176,"value":5467},{"type":3171,"tag":3454,"props":7308,"children":7309},{"class":3456,"line":3976},[7310,7315,7319,7323,7328,7332,7337,7341,7346,7350],{"type":3171,"tag":3454,"props":7311,"children":7312},{"style":3605},[7313],{"type":3176,"value":7314},"  PRIMARY KEY",{"type":3171,"tag":3454,"props":7316,"children":7317},{"style":3528},[7318],{"type":3176,"value":4546},{"type":3171,"tag":3454,"props":7320,"children":7321},{"style":3533},[7322],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":7324,"children":7325},{"style":3466},[7326],{"type":3176,"value":7327},"userId",{"type":3171,"tag":3454,"props":7329,"children":7330},{"style":3533},[7331],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":7333,"children":7334},{"style":3528},[7335],{"type":3176,"value":7336},", ",{"type":3171,"tag":3454,"props":7338,"children":7339},{"style":3533},[7340],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":7342,"children":7343},{"style":3466},[7344],{"type":3176,"value":7345},"id",{"type":3171,"tag":3454,"props":7347,"children":7348},{"style":3533},[7349],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":7351,"children":7352},{"style":3528},[7353],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":7355,"children":7356},{"class":3456,"line":4031},[7357],{"type":3171,"tag":3454,"props":7358,"children":7359},{"style":3528},[7360],{"type":3176,"value":7122},{"type":3171,"tag":3228,"props":7362,"children":7363},{},[7364,7377],{"type":3171,"tag":3232,"props":7365,"children":7366},{},[7367,7369,7375],{"type":3176,"value":7368},"For the ",{"type":3171,"tag":3316,"props":7370,"children":7372},{"className":7371},[],[7373],{"type":3176,"value":7374},"users",{"type":3176,"value":7376}," 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":3171,"tag":3232,"props":7378,"children":7379},{},[7380,7381,7387,7389],{"type":3176,"value":5325},{"type":3171,"tag":3316,"props":7382,"children":7384},{"className":7383},[],[7385],{"type":3176,"value":7386},"credentials",{"type":3176,"value":7388}," table stores:\n",{"type":3171,"tag":3228,"props":7390,"children":7391},{},[7392,7410,7422,7432,7461,7482],{"type":3171,"tag":3232,"props":7393,"children":7394},{},[7395,7396,7401,7403,7408],{"type":3176,"value":5325},{"type":3171,"tag":3316,"props":7397,"children":7399},{"className":7398},[],[7400],{"type":3176,"value":7327},{"type":3176,"value":7402}," from the ",{"type":3171,"tag":3316,"props":7404,"children":7406},{"className":7405},[],[7407],{"type":3176,"value":7374},{"type":3176,"value":7409}," table.",{"type":3171,"tag":3232,"props":7411,"children":7412},{},[7413,7415,7420],{"type":3176,"value":7414},"The credential ",{"type":3171,"tag":3316,"props":7416,"children":7418},{"className":7417},[],[7419],{"type":3176,"value":7345},{"type":3176,"value":7421}," (as unique index)",{"type":3171,"tag":3232,"props":7423,"children":7424},{},[7425,7426],{"type":3176,"value":7414},{"type":3171,"tag":3316,"props":7427,"children":7429},{"className":7428},[],[7430],{"type":3176,"value":7431},"publicKey",{"type":3171,"tag":3232,"props":7433,"children":7434},{},[7435,7437,7443,7445,7450,7452,7459],{"type":3176,"value":7436},"A ",{"type":3171,"tag":3316,"props":7438,"children":7440},{"className":7439},[],[7441],{"type":3176,"value":7442},"counter",{"type":3176,"value":7444},". Each time a credential is used, the counter is incremented. We can use this value to perform extra security checks. More about ",{"type":3171,"tag":3316,"props":7446,"children":7448},{"className":7447},[],[7449],{"type":3176,"value":7442},{"type":3176,"value":7451}," can be read ",{"type":3171,"tag":3182,"props":7453,"children":7456},{"href":7454,"rel":7455},"https:\u002F\u002Fsimplewebauthn.dev\u002Fdocs\u002Fpackages\u002Fserver#3-post-registration-responsibilities",[3186],[7457],{"type":3176,"value":7458},"here",{"type":3176,"value":7460},". For this example, we won't be using the counter. But you should update the counter in your database with the new value.",{"type":3171,"tag":3232,"props":7462,"children":7463},{},[7464,7465,7471,7473,7480],{"type":3176,"value":7436},{"type":3171,"tag":3316,"props":7466,"children":7468},{"className":7467},[],[7469],{"type":3176,"value":7470},"backedUp",{"type":3176,"value":7472}," 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":3171,"tag":3182,"props":7474,"children":7477},{"href":7475,"rel":7476},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fugaemxot",[3186],[7478],{"type":3176,"value":7479},"this section",{"type":3176,"value":7481}," for more details.",{"type":3171,"tag":3232,"props":7483,"children":7484},{},[7485,7486,7492,7494,7500],{"type":3176,"value":7414},{"type":3171,"tag":3316,"props":7487,"children":7489},{"className":7488},[],[7490],{"type":3176,"value":7491},"transports",{"type":3176,"value":7493},". 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":3171,"tag":3182,"props":7495,"children":7498},{"href":7496,"rel":7497},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fycxtiorp",[3186],[7499],{"type":3176,"value":7479},{"type":3176,"value":7481},{"type":3171,"tag":3178,"props":7502,"children":7503},{},[7504,7506,7513,7514,7521,7523,7530],{"type":3176,"value":7505},"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":3171,"tag":3182,"props":7507,"children":7510},{"href":7508,"rel":7509},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fregister.post.ts",[3186],[7511],{"type":3176,"value":7512},"registration",{"type":3176,"value":7336},{"type":3171,"tag":3182,"props":7515,"children":7518},{"href":7516,"rel":7517},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts",[3186],[7519],{"type":3176,"value":7520},"authentication",{"type":3176,"value":7522}," and the ",{"type":3171,"tag":3182,"props":7524,"children":7527},{"href":7525,"rel":7526},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fplugins\u002Fdatabase.ts",[3186],[7528],{"type":3176,"value":7529},"database setup",{"type":3176,"value":3409},{"type":3171,"tag":3444,"props":7532,"children":7534},{"className":4133,"code":7533,"language":4135,"meta":3045,"style":3045},"\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 current 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",[7535],{"type":3171,"tag":3316,"props":7536,"children":7537},{"__ignoreMap":3045},[7538,7546,7586,7610,7618,7656,7664,7672,7680,7716,7805,7875,7882,7889,7897,7925,7933,7975,8007,8014,8062,8070,8078,8103,8110,8118,8165,8194,8202,8242,8249,8257,8266,8298,8306,8315,8343,8359,8384,8393,8427,8439,8447],{"type":3171,"tag":3454,"props":7539,"children":7540},{"class":3456,"line":3131},[7541],{"type":3171,"tag":3454,"props":7542,"children":7543},{"style":3519},[7544],{"type":3176,"value":7545},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fregister.post.ts\n",{"type":3171,"tag":3454,"props":7547,"children":7548},{"class":3456,"line":3097},[7549,7554,7558,7563,7568,7573,7577,7582],{"type":3171,"tag":3454,"props":7550,"children":7551},{"style":4717},[7552],{"type":3176,"value":7553},"import",{"type":3171,"tag":3454,"props":7555,"children":7556},{"style":3533},[7557],{"type":3176,"value":3626},{"type":3171,"tag":3454,"props":7559,"children":7560},{"style":3528},[7561],{"type":3176,"value":7562}," z",{"type":3171,"tag":3454,"props":7564,"children":7565},{"style":3533},[7566],{"type":3176,"value":7567}," }",{"type":3171,"tag":3454,"props":7569,"children":7570},{"style":4717},[7571],{"type":3176,"value":7572}," from",{"type":3171,"tag":3454,"props":7574,"children":7575},{"style":3533},[7576],{"type":3176,"value":4778},{"type":3171,"tag":3454,"props":7578,"children":7579},{"style":3466},[7580],{"type":3176,"value":7581},"zod",{"type":3171,"tag":3454,"props":7583,"children":7584},{"style":3533},[7585],{"type":3176,"value":4787},{"type":3171,"tag":3454,"props":7587,"children":7588},{"class":3456,"line":3081},[7589,7593,7597,7602,7606],{"type":3171,"tag":3454,"props":7590,"children":7591},{"style":4717},[7592],{"type":3176,"value":5251},{"type":3171,"tag":3454,"props":7594,"children":7595},{"style":4717},[7596],{"type":3176,"value":5366},{"type":3171,"tag":3454,"props":7598,"children":7599},{"style":3690},[7600],{"type":3176,"value":7601}," defineWebAuthnRegisterEventHandler",{"type":3171,"tag":3454,"props":7603,"children":7604},{"style":3528},[7605],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":7607,"children":7608},{"style":3533},[7609],{"type":3176,"value":5381},{"type":3171,"tag":3454,"props":7611,"children":7612},{"class":3456,"line":3717},[7613],{"type":3171,"tag":3454,"props":7614,"children":7615},{"style":3519},[7616],{"type":3176,"value":7617},"  \u002F\u002F optional\n",{"type":3171,"tag":3454,"props":7619,"children":7620},{"class":3456,"line":3726},[7621,7625,7630,7634,7639,7643,7648,7652],{"type":3171,"tag":3454,"props":7622,"children":7623},{"style":3605},[7624],{"type":3176,"value":5919},{"type":3171,"tag":3454,"props":7626,"children":7627},{"style":3599},[7628],{"type":3176,"value":7629}," validateUser",{"type":3171,"tag":3454,"props":7631,"children":7632},{"style":3533},[7633],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":7635,"children":7636},{"style":4549},[7637],{"type":3176,"value":7638},"userBody",{"type":3171,"tag":3454,"props":7640,"children":7641},{"style":3533},[7642],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":7644,"children":7645},{"style":4549},[7646],{"type":3176,"value":7647}," event",{"type":3171,"tag":3454,"props":7649,"children":7650},{"style":3533},[7651],{"type":3176,"value":6137},{"type":3171,"tag":3454,"props":7653,"children":7654},{"style":3533},[7655],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":7657,"children":7658},{"class":3456,"line":3743},[7659],{"type":3171,"tag":3454,"props":7660,"children":7661},{"style":3519},[7662],{"type":3176,"value":7663},"    \u002F\u002F bonus: check if the user is already authenticated to link a credential to his account\n",{"type":3171,"tag":3454,"props":7665,"children":7666},{"class":3456,"line":3077},[7667],{"type":3171,"tag":3454,"props":7668,"children":7669},{"style":3519},[7670],{"type":3176,"value":7671},"    \u002F\u002F We first check if the user is already authenticated by getting the session\n",{"type":3171,"tag":3454,"props":7673,"children":7674},{"class":3456,"line":3073},[7675],{"type":3171,"tag":3454,"props":7676,"children":7677},{"style":3519},[7678],{"type":3176,"value":7679},"    \u002F\u002F And verify that the email is the same as the one in session\n",{"type":3171,"tag":3454,"props":7681,"children":7682},{"class":3456,"line":3069},[7683,7688,7692,7696,7700,7704,7708,7712],{"type":3171,"tag":3454,"props":7684,"children":7685},{"style":3605},[7686],{"type":3176,"value":7687},"    const",{"type":3171,"tag":3454,"props":7689,"children":7690},{"style":3528},[7691],{"type":3176,"value":3650},{"type":3171,"tag":3454,"props":7693,"children":7694},{"style":3533},[7695],{"type":3176,"value":3687},{"type":3171,"tag":3454,"props":7697,"children":7698},{"style":4717},[7699],{"type":3176,"value":4973},{"type":3171,"tag":3454,"props":7701,"children":7702},{"style":3690},[7703],{"type":3176,"value":4978},{"type":3171,"tag":3454,"props":7705,"children":7706},{"style":3599},[7707],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":7709,"children":7710},{"style":3528},[7711],{"type":3176,"value":5933},{"type":3171,"tag":3454,"props":7713,"children":7714},{"style":3599},[7715],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":7717,"children":7718},{"class":3456,"line":3905},[7719,7724,7728,7733,7737,7742,7747,7752,7757,7761,7765,7769,7773,7777,7782,7787,7791,7796,7801],{"type":3171,"tag":3454,"props":7720,"children":7721},{"style":4717},[7722],{"type":3176,"value":7723},"    if",{"type":3171,"tag":3454,"props":7725,"children":7726},{"style":3599},[7727],{"type":3176,"value":4546},{"type":3171,"tag":3454,"props":7729,"children":7730},{"style":3528},[7731],{"type":3176,"value":7732},"session",{"type":3171,"tag":3454,"props":7734,"children":7735},{"style":3533},[7736],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":7738,"children":7739},{"style":3528},[7740],{"type":3176,"value":7741},"user",{"type":3171,"tag":3454,"props":7743,"children":7744},{"style":3533},[7745],{"type":3176,"value":7746},"?.",{"type":3171,"tag":3454,"props":7748,"children":7749},{"style":3528},[7750],{"type":3176,"value":7751},"email",{"type":3171,"tag":3454,"props":7753,"children":7754},{"style":3533},[7755],{"type":3176,"value":7756}," &&",{"type":3171,"tag":3454,"props":7758,"children":7759},{"style":3528},[7760],{"type":3176,"value":3650},{"type":3171,"tag":3454,"props":7762,"children":7763},{"style":3533},[7764],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":7766,"children":7767},{"style":3528},[7768],{"type":3176,"value":7741},{"type":3171,"tag":3454,"props":7770,"children":7771},{"style":3533},[7772],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":7774,"children":7775},{"style":3528},[7776],{"type":3176,"value":7751},{"type":3171,"tag":3454,"props":7778,"children":7779},{"style":3533},[7780],{"type":3176,"value":7781}," !==",{"type":3171,"tag":3454,"props":7783,"children":7784},{"style":3528},[7785],{"type":3176,"value":7786}," userBody",{"type":3171,"tag":3454,"props":7788,"children":7789},{"style":3533},[7790],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":7792,"children":7793},{"style":3528},[7794],{"type":3176,"value":7795},"userName",{"type":3171,"tag":3454,"props":7797,"children":7798},{"style":3599},[7799],{"type":3176,"value":7800},") ",{"type":3171,"tag":3454,"props":7802,"children":7803},{"style":3533},[7804],{"type":3176,"value":5381},{"type":3171,"tag":3454,"props":7806,"children":7807},{"class":3456,"line":3922},[7808,7813,7818,7822,7827,7832,7836,7841,7845,7850,7854,7858,7863,7867,7871],{"type":3171,"tag":3454,"props":7809,"children":7810},{"style":4717},[7811],{"type":3176,"value":7812},"      throw",{"type":3171,"tag":3454,"props":7814,"children":7815},{"style":3690},[7816],{"type":3176,"value":7817}," createError",{"type":3171,"tag":3454,"props":7819,"children":7820},{"style":3599},[7821],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":7823,"children":7824},{"style":3533},[7825],{"type":3176,"value":7826},"{",{"type":3171,"tag":3454,"props":7828,"children":7829},{"style":3599},[7830],{"type":3176,"value":7831}," statusCode",{"type":3171,"tag":3454,"props":7833,"children":7834},{"style":3533},[7835],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":7837,"children":7838},{"style":7055},[7839],{"type":3176,"value":7840}," 400",{"type":3171,"tag":3454,"props":7842,"children":7843},{"style":3533},[7844],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":7846,"children":7847},{"style":3599},[7848],{"type":3176,"value":7849}," message",{"type":3171,"tag":3454,"props":7851,"children":7852},{"style":3533},[7853],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":7855,"children":7856},{"style":3533},[7857],{"type":3176,"value":4778},{"type":3171,"tag":3454,"props":7859,"children":7860},{"style":3466},[7861],{"type":3176,"value":7862},"Email not matching current session",{"type":3171,"tag":3454,"props":7864,"children":7865},{"style":3533},[7866],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":7868,"children":7869},{"style":3533},[7870],{"type":3176,"value":7567},{"type":3171,"tag":3454,"props":7872,"children":7873},{"style":3599},[7874],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":7876,"children":7877},{"class":3456,"line":3943},[7878],{"type":3171,"tag":3454,"props":7879,"children":7880},{"style":3533},[7881],{"type":3176,"value":5507},{"type":3171,"tag":3454,"props":7883,"children":7884},{"class":3456,"line":3976},[7885],{"type":3171,"tag":3454,"props":7886,"children":7887},{"emptyLinePlaceholder":1200},[7888],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":7890,"children":7891},{"class":3456,"line":4031},[7892],{"type":3171,"tag":3454,"props":7893,"children":7894},{"style":3519},[7895],{"type":3176,"value":7896},"    \u002F\u002F If he registers a new account with credentials\n",{"type":3171,"tag":3454,"props":7898,"children":7899},{"class":3456,"line":4040},[7900,7904,7908,7912,7917,7921],{"type":3171,"tag":3454,"props":7901,"children":7902},{"style":4717},[7903],{"type":3176,"value":6058},{"type":3171,"tag":3454,"props":7905,"children":7906},{"style":3528},[7907],{"type":3176,"value":7562},{"type":3171,"tag":3454,"props":7909,"children":7910},{"style":3533},[7911],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":7913,"children":7914},{"style":3690},[7915],{"type":3176,"value":7916},"object",{"type":3171,"tag":3454,"props":7918,"children":7919},{"style":3599},[7920],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":7922,"children":7923},{"style":3533},[7924],{"type":3176,"value":5381},{"type":3171,"tag":3454,"props":7926,"children":7927},{"class":3456,"line":3065},[7928],{"type":3171,"tag":3454,"props":7929,"children":7930},{"style":3519},[7931],{"type":3176,"value":7932},"      \u002F\u002F we want the userName to be a valid email\n",{"type":3171,"tag":3454,"props":7934,"children":7935},{"class":3456,"line":4108},[7936,7941,7945,7949,7953,7958,7963,7967,7971],{"type":3171,"tag":3454,"props":7937,"children":7938},{"style":3599},[7939],{"type":3176,"value":7940},"      userName",{"type":3171,"tag":3454,"props":7942,"children":7943},{"style":3533},[7944],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":7946,"children":7947},{"style":3528},[7948],{"type":3176,"value":7562},{"type":3171,"tag":3454,"props":7950,"children":7951},{"style":3533},[7952],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":7954,"children":7955},{"style":3690},[7956],{"type":3176,"value":7957},"string",{"type":3171,"tag":3454,"props":7959,"children":7960},{"style":3599},[7961],{"type":3176,"value":7962},"()",{"type":3171,"tag":3454,"props":7964,"children":7965},{"style":3533},[7966],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":7968,"children":7969},{"style":3690},[7970],{"type":3176,"value":7751},{"type":3171,"tag":3454,"props":7972,"children":7973},{"style":3599},[7974],{"type":3176,"value":3698},{"type":3171,"tag":3454,"props":7976,"children":7977},{"class":3456,"line":4378},[7978,7982,7986,7990,7995,7999,8003],{"type":3171,"tag":3454,"props":7979,"children":7980},{"style":3533},[7981],{"type":3176,"value":6046},{"type":3171,"tag":3454,"props":7983,"children":7984},{"style":3599},[7985],{"type":3176,"value":6137},{"type":3171,"tag":3454,"props":7987,"children":7988},{"style":3533},[7989],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":7991,"children":7992},{"style":3690},[7993],{"type":3176,"value":7994},"parse",{"type":3171,"tag":3454,"props":7996,"children":7997},{"style":3599},[7998],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":8000,"children":8001},{"style":3528},[8002],{"type":3176,"value":7638},{"type":3171,"tag":3454,"props":8004,"children":8005},{"style":3599},[8006],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":8008,"children":8009},{"class":3456,"line":4386},[8010],{"type":3171,"tag":3454,"props":8011,"children":8012},{"style":3533},[8013],{"type":3176,"value":4795},{"type":3171,"tag":3454,"props":8015,"children":8016},{"class":3456,"line":4395},[8017,8021,8025,8029,8033,8037,8041,8046,8050,8054,8058],{"type":3171,"tag":3454,"props":8018,"children":8019},{"style":3605},[8020],{"type":3176,"value":5919},{"type":3171,"tag":3454,"props":8022,"children":8023},{"style":3599},[8024],{"type":3176,"value":5924},{"type":3171,"tag":3454,"props":8026,"children":8027},{"style":3533},[8028],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":8030,"children":8031},{"style":4549},[8032],{"type":3176,"value":5933},{"type":3171,"tag":3454,"props":8034,"children":8035},{"style":3533},[8036],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":8038,"children":8039},{"style":3533},[8040],{"type":3176,"value":3626},{"type":3171,"tag":3454,"props":8042,"children":8043},{"style":4549},[8044],{"type":3176,"value":8045}," credential",{"type":3171,"tag":3454,"props":8047,"children":8048},{"style":3533},[8049],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":8051,"children":8052},{"style":4549},[8053],{"type":3176,"value":3641},{"type":3171,"tag":3454,"props":8055,"children":8056},{"style":3533},[8057],{"type":3176,"value":4615},{"type":3171,"tag":3454,"props":8059,"children":8060},{"style":3533},[8061],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":8063,"children":8064},{"class":3456,"line":4403},[8065],{"type":3171,"tag":3454,"props":8066,"children":8067},{"style":3519},[8068],{"type":3176,"value":8069},"    \u002F\u002F The credential creation has been successful\n",{"type":3171,"tag":3454,"props":8071,"children":8072},{"class":3456,"line":4444},[8073],{"type":3171,"tag":3454,"props":8074,"children":8075},{"style":3519},[8076],{"type":3176,"value":8077},"    \u002F\u002F We need to create a user if it does not exist\n",{"type":3171,"tag":3454,"props":8079,"children":8080},{"class":3456,"line":4452},[8081,8085,8090,8094,8099],{"type":3171,"tag":3454,"props":8082,"children":8083},{"style":3605},[8084],{"type":3176,"value":7687},{"type":3171,"tag":3454,"props":8086,"children":8087},{"style":3528},[8088],{"type":3176,"value":8089}," db",{"type":3171,"tag":3454,"props":8091,"children":8092},{"style":3533},[8093],{"type":3176,"value":3687},{"type":3171,"tag":3454,"props":8095,"children":8096},{"style":3690},[8097],{"type":3176,"value":8098}," useDatabase",{"type":3171,"tag":3454,"props":8100,"children":8101},{"style":3599},[8102],{"type":3176,"value":3698},{"type":3171,"tag":3454,"props":8104,"children":8105},{"class":3456,"line":4461},[8106],{"type":3171,"tag":3454,"props":8107,"children":8108},{"emptyLinePlaceholder":1200},[8109],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":8111,"children":8112},{"class":3456,"line":4469},[8113],{"type":3171,"tag":3454,"props":8114,"children":8115},{"style":3519},[8116],{"type":3176,"value":8117},"    \u002F\u002F Get the user from the database\n",{"type":3171,"tag":3454,"props":8119,"children":8120},{"class":3456,"line":4506},[8121,8126,8131,8135,8139,8143,8147,8151,8156,8160],{"type":3171,"tag":3454,"props":8122,"children":8123},{"style":3605},[8124],{"type":3176,"value":8125},"    let",{"type":3171,"tag":3454,"props":8127,"children":8128},{"style":3528},[8129],{"type":3176,"value":8130}," dbUser",{"type":3171,"tag":3454,"props":8132,"children":8133},{"style":3533},[8134],{"type":3176,"value":3687},{"type":3171,"tag":3454,"props":8136,"children":8137},{"style":4717},[8138],{"type":3176,"value":4973},{"type":3171,"tag":3454,"props":8140,"children":8141},{"style":3528},[8142],{"type":3176,"value":8089},{"type":3171,"tag":3454,"props":8144,"children":8145},{"style":3533},[8146],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":8148,"children":8149},{"style":3690},[8150],{"type":3176,"value":7045},{"type":3171,"tag":3454,"props":8152,"children":8153},{"style":3533},[8154],{"type":3176,"value":8155},"`",{"type":3171,"tag":3454,"props":8157,"children":8158},{"style":3466},[8159],{"type":3176,"value":5458},{"type":3171,"tag":3454,"props":8161,"children":8162},{"style":3533},[8163],{"type":3176,"value":8164},"`\n",{"type":3171,"tag":3454,"props":8166,"children":8167},{"class":3456,"line":4514},[8168,8172,8176,8181,8186,8190],{"type":3171,"tag":3454,"props":8169,"children":8170},{"style":4717},[8171],{"type":3176,"value":7723},{"type":3171,"tag":3454,"props":8173,"children":8174},{"style":3599},[8175],{"type":3176,"value":4546},{"type":3171,"tag":3454,"props":8177,"children":8178},{"style":3533},[8179],{"type":3176,"value":8180},"!",{"type":3171,"tag":3454,"props":8182,"children":8183},{"style":3528},[8184],{"type":3176,"value":8185},"dbUser",{"type":3171,"tag":3454,"props":8187,"children":8188},{"style":3599},[8189],{"type":3176,"value":7800},{"type":3171,"tag":3454,"props":8191,"children":8192},{"style":3533},[8193],{"type":3176,"value":5381},{"type":3171,"tag":3454,"props":8195,"children":8196},{"class":3456,"line":4523},[8197],{"type":3171,"tag":3454,"props":8198,"children":8199},{"style":3519},[8200],{"type":3176,"value":8201},"      \u002F\u002F Store new user in database & its credentials\n",{"type":3171,"tag":3454,"props":8203,"children":8204},{"class":3456,"line":4531},[8205,8210,8214,8218,8222,8226,8230,8234,8238],{"type":3171,"tag":3454,"props":8206,"children":8207},{"style":3528},[8208],{"type":3176,"value":8209},"      dbUser",{"type":3171,"tag":3454,"props":8211,"children":8212},{"style":3533},[8213],{"type":3176,"value":3687},{"type":3171,"tag":3454,"props":8215,"children":8216},{"style":4717},[8217],{"type":3176,"value":4973},{"type":3171,"tag":3454,"props":8219,"children":8220},{"style":3528},[8221],{"type":3176,"value":8089},{"type":3171,"tag":3454,"props":8223,"children":8224},{"style":3533},[8225],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":8227,"children":8228},{"style":3690},[8229],{"type":3176,"value":7045},{"type":3171,"tag":3454,"props":8231,"children":8232},{"style":3533},[8233],{"type":3176,"value":8155},{"type":3171,"tag":3454,"props":8235,"children":8236},{"style":3466},[8237],{"type":3176,"value":5458},{"type":3171,"tag":3454,"props":8239,"children":8240},{"style":3533},[8241],{"type":3176,"value":8164},{"type":3171,"tag":3454,"props":8243,"children":8244},{"class":3456,"line":4627},[8245],{"type":3171,"tag":3454,"props":8246,"children":8247},{"style":3533},[8248],{"type":3176,"value":5507},{"type":3171,"tag":3454,"props":8250,"children":8252},{"class":3456,"line":8251},31,[8253],{"type":3171,"tag":3454,"props":8254,"children":8255},{"emptyLinePlaceholder":1200},[8256],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":8258,"children":8260},{"class":3456,"line":8259},32,[8261],{"type":3171,"tag":3454,"props":8262,"children":8263},{"style":3519},[8264],{"type":3176,"value":8265},"    \u002F\u002F we now need to store the credential in our database and link it to the user\n",{"type":3171,"tag":3454,"props":8267,"children":8269},{"class":3456,"line":8268},33,[8270,8274,8278,8282,8286,8290,8294],{"type":3171,"tag":3454,"props":8271,"children":8272},{"style":4717},[8273],{"type":3176,"value":5970},{"type":3171,"tag":3454,"props":8275,"children":8276},{"style":3528},[8277],{"type":3176,"value":8089},{"type":3171,"tag":3454,"props":8279,"children":8280},{"style":3533},[8281],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":8283,"children":8284},{"style":3690},[8285],{"type":3176,"value":7045},{"type":3171,"tag":3454,"props":8287,"children":8288},{"style":3533},[8289],{"type":3176,"value":8155},{"type":3171,"tag":3454,"props":8291,"children":8292},{"style":3466},[8293],{"type":3176,"value":5458},{"type":3171,"tag":3454,"props":8295,"children":8296},{"style":3533},[8297],{"type":3176,"value":8164},{"type":3171,"tag":3454,"props":8299,"children":8301},{"class":3456,"line":8300},34,[8302],{"type":3171,"tag":3454,"props":8303,"children":8304},{"emptyLinePlaceholder":1200},[8305],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":8307,"children":8309},{"class":3456,"line":8308},35,[8310],{"type":3171,"tag":3454,"props":8311,"children":8312},{"style":3519},[8313],{"type":3176,"value":8314},"    \u002F\u002F Set the user session\n",{"type":3171,"tag":3454,"props":8316,"children":8318},{"class":3456,"line":8317},36,[8319,8323,8327,8331,8335,8339],{"type":3171,"tag":3454,"props":8320,"children":8321},{"style":4717},[8322],{"type":3176,"value":5970},{"type":3171,"tag":3454,"props":8324,"children":8325},{"style":3690},[8326],{"type":3176,"value":4725},{"type":3171,"tag":3454,"props":8328,"children":8329},{"style":3599},[8330],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":8332,"children":8333},{"style":3528},[8334],{"type":3176,"value":5933},{"type":3171,"tag":3454,"props":8336,"children":8337},{"style":3533},[8338],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":8340,"children":8341},{"style":3533},[8342],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":8344,"children":8346},{"class":3456,"line":8345},37,[8347,8351,8355],{"type":3171,"tag":3454,"props":8348,"children":8349},{"style":3599},[8350],{"type":3176,"value":5998},{"type":3171,"tag":3454,"props":8352,"children":8353},{"style":3533},[8354],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":8356,"children":8357},{"style":3533},[8358],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":8360,"children":8362},{"class":3456,"line":8361},38,[8363,8368,8372,8376,8380],{"type":3171,"tag":3454,"props":8364,"children":8365},{"style":3599},[8366],{"type":3176,"value":8367},"        id",{"type":3171,"tag":3454,"props":8369,"children":8370},{"style":3533},[8371],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":8373,"children":8374},{"style":3528},[8375],{"type":3176,"value":8130},{"type":3171,"tag":3454,"props":8377,"children":8378},{"style":3533},[8379],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":8381,"children":8382},{"style":3528},[8383],{"type":3176,"value":6031},{"type":3171,"tag":3454,"props":8385,"children":8387},{"class":3456,"line":8386},39,[8388],{"type":3171,"tag":3454,"props":8389,"children":8390},{"style":3533},[8391],{"type":3176,"value":8392},"      },\n",{"type":3171,"tag":3454,"props":8394,"children":8396},{"class":3456,"line":8395},40,[8397,8402,8406,8410,8414,8419,8423],{"type":3171,"tag":3454,"props":8398,"children":8399},{"style":3599},[8400],{"type":3176,"value":8401},"      loggedInAt",{"type":3171,"tag":3454,"props":8403,"children":8404},{"style":3533},[8405],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":8407,"children":8408},{"style":3528},[8409],{"type":3176,"value":4881},{"type":3171,"tag":3454,"props":8411,"children":8412},{"style":3533},[8413],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":8415,"children":8416},{"style":3690},[8417],{"type":3176,"value":8418},"now",{"type":3171,"tag":3454,"props":8420,"children":8421},{"style":3599},[8422],{"type":3176,"value":7962},{"type":3171,"tag":3454,"props":8424,"children":8425},{"style":3533},[8426],{"type":3176,"value":5467},{"type":3171,"tag":3454,"props":8428,"children":8430},{"class":3456,"line":8429},41,[8431,8435],{"type":3171,"tag":3454,"props":8432,"children":8433},{"style":3533},[8434],{"type":3176,"value":6046},{"type":3171,"tag":3454,"props":8436,"children":8437},{"style":3599},[8438],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":8440,"children":8442},{"class":3456,"line":8441},42,[8443],{"type":3171,"tag":3454,"props":8444,"children":8445},{"style":3533},[8446],{"type":3176,"value":4795},{"type":3171,"tag":3454,"props":8448,"children":8450},{"class":3456,"line":8449},43,[8451,8455],{"type":3171,"tag":3454,"props":8452,"children":8453},{"style":3533},[8454],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":8456,"children":8457},{"style":3528},[8458],{"type":3176,"value":4897},{"type":3171,"tag":4635,"props":8460,"children":8461},{},[8462],{"type":3171,"tag":3178,"props":8463,"children":8464},{},[8465,8470,8472,8479,8481,8487,8489],{"type":3171,"tag":3454,"props":8466,"children":8467},{},[8468],{"type":3176,"value":8469},"!TIP",{"type":3176,"value":8471},"\nIf you want to plug in and use the ",{"type":3171,"tag":3182,"props":8473,"children":8476},{"href":8474,"rel":8475},"https:\u002F\u002Fgithub.com\u002Fpasskeydeveloper\u002Fpasskey-authenticator-aaguids",[3186],[8477],{"type":3176,"value":8478},"Community sourced list of AAGUIDS",{"type":3176,"value":8480}," to decorate your display of added passkeys, you can access the the ID via ",{"type":3171,"tag":3316,"props":8482,"children":8484},{"className":8483},[],[8485],{"type":3176,"value":8486},"credential.aaguid",{"type":3176,"value":8488}," inside ",{"type":3171,"tag":3316,"props":8490,"children":8492},{"className":8491},[],[8493],{"type":3176,"value":5310},{"type":3171,"tag":3444,"props":8495,"children":8497},{"className":4133,"code":8496,"language":4135,"meta":3045,"style":3045},"\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",[8498],{"type":3171,"tag":3316,"props":8499,"children":8500},{"__ignoreMap":3045},[8501,8509,8533,8541,8578,8626,8634,8666,8730,8737,8745,8753,8761,8773,8781,8788,8825,8833,8880,8887,8895,8919,8983,8990,9002,9009,9057,9065,9073,9096,9139,9146,9154,9185,9192,9199,9226,9241,9264,9271,9302,9313,9320],{"type":3171,"tag":3454,"props":8502,"children":8503},{"class":3456,"line":3131},[8504],{"type":3171,"tag":3454,"props":8505,"children":8506},{"style":3519},[8507],{"type":3176,"value":8508},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts\n",{"type":3171,"tag":3454,"props":8510,"children":8511},{"class":3456,"line":3097},[8512,8516,8520,8525,8529],{"type":3171,"tag":3454,"props":8513,"children":8514},{"style":4717},[8515],{"type":3176,"value":5251},{"type":3171,"tag":3454,"props":8517,"children":8518},{"style":4717},[8519],{"type":3176,"value":5366},{"type":3171,"tag":3454,"props":8521,"children":8522},{"style":3690},[8523],{"type":3176,"value":8524}," defineWebAuthnAuthenticateEventHandler",{"type":3171,"tag":3454,"props":8526,"children":8527},{"style":3528},[8528],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":8530,"children":8531},{"style":3533},[8532],{"type":3176,"value":5381},{"type":3171,"tag":3454,"props":8534,"children":8535},{"class":3456,"line":3081},[8536],{"type":3171,"tag":3454,"props":8537,"children":8538},{"style":3519},[8539],{"type":3176,"value":8540},"  \u002F\u002F Optionally, we can prefetch the credentials if the user gives their userName during login\n",{"type":3171,"tag":3454,"props":8542,"children":8543},{"class":3456,"line":3717},[8544,8548,8553,8557,8561,8565,8570,8574],{"type":3171,"tag":3454,"props":8545,"children":8546},{"style":3605},[8547],{"type":3176,"value":5919},{"type":3171,"tag":3454,"props":8549,"children":8550},{"style":3599},[8551],{"type":3176,"value":8552}," allowCredentials",{"type":3171,"tag":3454,"props":8554,"children":8555},{"style":3533},[8556],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":8558,"children":8559},{"style":4549},[8560],{"type":3176,"value":5933},{"type":3171,"tag":3454,"props":8562,"children":8563},{"style":3533},[8564],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":8566,"children":8567},{"style":4549},[8568],{"type":3176,"value":8569}," userName",{"type":3171,"tag":3454,"props":8571,"children":8572},{"style":3533},[8573],{"type":3176,"value":6137},{"type":3171,"tag":3454,"props":8575,"children":8576},{"style":3533},[8577],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":8579,"children":8580},{"class":3456,"line":3726},[8581,8585,8590,8594,8598,8602,8606,8610,8614,8618,8622],{"type":3171,"tag":3454,"props":8582,"children":8583},{"style":3605},[8584],{"type":3176,"value":7687},{"type":3171,"tag":3454,"props":8586,"children":8587},{"style":3528},[8588],{"type":3176,"value":8589}," credentials",{"type":3171,"tag":3454,"props":8591,"children":8592},{"style":3533},[8593],{"type":3176,"value":3687},{"type":3171,"tag":3454,"props":8595,"children":8596},{"style":4717},[8597],{"type":3176,"value":4973},{"type":3171,"tag":3454,"props":8599,"children":8600},{"style":3690},[8601],{"type":3176,"value":8098},{"type":3171,"tag":3454,"props":8603,"children":8604},{"style":3599},[8605],{"type":3176,"value":7962},{"type":3171,"tag":3454,"props":8607,"children":8608},{"style":3533},[8609],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":8611,"children":8612},{"style":3690},[8613],{"type":3176,"value":7045},{"type":3171,"tag":3454,"props":8615,"children":8616},{"style":3533},[8617],{"type":3176,"value":8155},{"type":3171,"tag":3454,"props":8619,"children":8620},{"style":3466},[8621],{"type":3176,"value":5458},{"type":3171,"tag":3454,"props":8623,"children":8624},{"style":3533},[8625],{"type":3176,"value":8164},{"type":3171,"tag":3454,"props":8627,"children":8628},{"class":3456,"line":3743},[8629],{"type":3171,"tag":3454,"props":8630,"children":8631},{"style":3519},[8632],{"type":3176,"value":8633},"    \u002F\u002F If no credentials are found, the authentication cannot be completed\n",{"type":3171,"tag":3454,"props":8635,"children":8636},{"class":3456,"line":3077},[8637,8641,8645,8649,8653,8657,8662],{"type":3171,"tag":3454,"props":8638,"children":8639},{"style":4717},[8640],{"type":3176,"value":7723},{"type":3171,"tag":3454,"props":8642,"children":8643},{"style":3599},[8644],{"type":3176,"value":4546},{"type":3171,"tag":3454,"props":8646,"children":8647},{"style":3533},[8648],{"type":3176,"value":8180},{"type":3171,"tag":3454,"props":8650,"children":8651},{"style":3528},[8652],{"type":3176,"value":7386},{"type":3171,"tag":3454,"props":8654,"children":8655},{"style":3533},[8656],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":8658,"children":8659},{"style":3528},[8660],{"type":3176,"value":8661},"length",{"type":3171,"tag":3454,"props":8663,"children":8664},{"style":3599},[8665],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":8667,"children":8668},{"class":3456,"line":3073},[8669,8673,8677,8681,8685,8689,8693,8697,8701,8705,8709,8713,8718,8722,8726],{"type":3171,"tag":3454,"props":8670,"children":8671},{"style":4717},[8672],{"type":3176,"value":7812},{"type":3171,"tag":3454,"props":8674,"children":8675},{"style":3690},[8676],{"type":3176,"value":7817},{"type":3171,"tag":3454,"props":8678,"children":8679},{"style":3599},[8680],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":8682,"children":8683},{"style":3533},[8684],{"type":3176,"value":7826},{"type":3171,"tag":3454,"props":8686,"children":8687},{"style":3599},[8688],{"type":3176,"value":7831},{"type":3171,"tag":3454,"props":8690,"children":8691},{"style":3533},[8692],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":8694,"children":8695},{"style":7055},[8696],{"type":3176,"value":7840},{"type":3171,"tag":3454,"props":8698,"children":8699},{"style":3533},[8700],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":8702,"children":8703},{"style":3599},[8704],{"type":3176,"value":7849},{"type":3171,"tag":3454,"props":8706,"children":8707},{"style":3533},[8708],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":8710,"children":8711},{"style":3533},[8712],{"type":3176,"value":4778},{"type":3171,"tag":3454,"props":8714,"children":8715},{"style":3466},[8716],{"type":3176,"value":8717},"User not found",{"type":3171,"tag":3454,"props":8719,"children":8720},{"style":3533},[8721],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":8723,"children":8724},{"style":3533},[8725],{"type":3176,"value":7567},{"type":3171,"tag":3454,"props":8727,"children":8728},{"style":3599},[8729],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":8731,"children":8732},{"class":3456,"line":3069},[8733],{"type":3171,"tag":3454,"props":8734,"children":8735},{"emptyLinePlaceholder":1200},[8736],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":8738,"children":8739},{"class":3456,"line":3905},[8740],{"type":3171,"tag":3454,"props":8741,"children":8742},{"style":3519},[8743],{"type":3176,"value":8744},"    \u002F\u002F If user is found, only allow credentials that are registered\n",{"type":3171,"tag":3454,"props":8746,"children":8747},{"class":3456,"line":3922},[8748],{"type":3171,"tag":3454,"props":8749,"children":8750},{"style":3519},[8751],{"type":3176,"value":8752},"    \u002F\u002F The browser will automatically try to use the credential that it knows about\n",{"type":3171,"tag":3454,"props":8754,"children":8755},{"class":3456,"line":3943},[8756],{"type":3171,"tag":3454,"props":8757,"children":8758},{"style":3519},[8759],{"type":3176,"value":8760},"    \u002F\u002F Skipping the step for the user to select a credential for a better user experience\n",{"type":3171,"tag":3454,"props":8762,"children":8763},{"class":3456,"line":3976},[8764,8768],{"type":3171,"tag":3454,"props":8765,"children":8766},{"style":4717},[8767],{"type":3176,"value":6058},{"type":3171,"tag":3454,"props":8769,"children":8770},{"style":3528},[8771],{"type":3176,"value":8772}," credentials\n",{"type":3171,"tag":3454,"props":8774,"children":8775},{"class":3456,"line":4031},[8776],{"type":3171,"tag":3454,"props":8777,"children":8778},{"style":3519},[8779],{"type":3176,"value":8780},"    \u002F\u002F example: [{ id: '...' }]\n",{"type":3171,"tag":3454,"props":8782,"children":8783},{"class":3456,"line":4040},[8784],{"type":3171,"tag":3454,"props":8785,"children":8786},{"style":3533},[8787],{"type":3176,"value":4795},{"type":3171,"tag":3454,"props":8789,"children":8790},{"class":3456,"line":3065},[8791,8795,8800,8804,8808,8812,8817,8821],{"type":3171,"tag":3454,"props":8792,"children":8793},{"style":3605},[8794],{"type":3176,"value":5919},{"type":3171,"tag":3454,"props":8796,"children":8797},{"style":3599},[8798],{"type":3176,"value":8799}," getCredential",{"type":3171,"tag":3454,"props":8801,"children":8802},{"style":3533},[8803],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":8805,"children":8806},{"style":4549},[8807],{"type":3176,"value":5933},{"type":3171,"tag":3454,"props":8809,"children":8810},{"style":3533},[8811],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":8813,"children":8814},{"style":4549},[8815],{"type":3176,"value":8816}," credentialId",{"type":3171,"tag":3454,"props":8818,"children":8819},{"style":3533},[8820],{"type":3176,"value":6137},{"type":3171,"tag":3454,"props":8822,"children":8823},{"style":3533},[8824],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":8826,"children":8827},{"class":3456,"line":4108},[8828],{"type":3171,"tag":3454,"props":8829,"children":8830},{"style":3519},[8831],{"type":3176,"value":8832},"    \u002F\u002F Look for the credential in our database\n",{"type":3171,"tag":3454,"props":8834,"children":8835},{"class":3456,"line":4378},[8836,8840,8844,8848,8852,8856,8860,8864,8868,8872,8876],{"type":3171,"tag":3454,"props":8837,"children":8838},{"style":3605},[8839],{"type":3176,"value":7687},{"type":3171,"tag":3454,"props":8841,"children":8842},{"style":3528},[8843],{"type":3176,"value":8045},{"type":3171,"tag":3454,"props":8845,"children":8846},{"style":3533},[8847],{"type":3176,"value":3687},{"type":3171,"tag":3454,"props":8849,"children":8850},{"style":4717},[8851],{"type":3176,"value":4973},{"type":3171,"tag":3454,"props":8853,"children":8854},{"style":3690},[8855],{"type":3176,"value":8098},{"type":3171,"tag":3454,"props":8857,"children":8858},{"style":3599},[8859],{"type":3176,"value":7962},{"type":3171,"tag":3454,"props":8861,"children":8862},{"style":3533},[8863],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":8865,"children":8866},{"style":3690},[8867],{"type":3176,"value":7045},{"type":3171,"tag":3454,"props":8869,"children":8870},{"style":3533},[8871],{"type":3176,"value":8155},{"type":3171,"tag":3454,"props":8873,"children":8874},{"style":3466},[8875],{"type":3176,"value":5458},{"type":3171,"tag":3454,"props":8877,"children":8878},{"style":3533},[8879],{"type":3176,"value":8164},{"type":3171,"tag":3454,"props":8881,"children":8882},{"class":3456,"line":4386},[8883],{"type":3171,"tag":3454,"props":8884,"children":8885},{"emptyLinePlaceholder":1200},[8886],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":8888,"children":8889},{"class":3456,"line":4395},[8890],{"type":3171,"tag":3454,"props":8891,"children":8892},{"style":3519},[8893],{"type":3176,"value":8894},"    \u002F\u002F If the credential is not found, there is no account to log in to\n",{"type":3171,"tag":3454,"props":8896,"children":8897},{"class":3456,"line":4403},[8898,8902,8906,8910,8915],{"type":3171,"tag":3454,"props":8899,"children":8900},{"style":4717},[8901],{"type":3176,"value":7723},{"type":3171,"tag":3454,"props":8903,"children":8904},{"style":3599},[8905],{"type":3176,"value":4546},{"type":3171,"tag":3454,"props":8907,"children":8908},{"style":3533},[8909],{"type":3176,"value":8180},{"type":3171,"tag":3454,"props":8911,"children":8912},{"style":3528},[8913],{"type":3176,"value":8914},"credential",{"type":3171,"tag":3454,"props":8916,"children":8917},{"style":3599},[8918],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":8920,"children":8921},{"class":3456,"line":4444},[8922,8926,8930,8934,8938,8942,8946,8950,8954,8958,8962,8966,8971,8975,8979],{"type":3171,"tag":3454,"props":8923,"children":8924},{"style":4717},[8925],{"type":3176,"value":7812},{"type":3171,"tag":3454,"props":8927,"children":8928},{"style":3690},[8929],{"type":3176,"value":7817},{"type":3171,"tag":3454,"props":8931,"children":8932},{"style":3599},[8933],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":8935,"children":8936},{"style":3533},[8937],{"type":3176,"value":7826},{"type":3171,"tag":3454,"props":8939,"children":8940},{"style":3599},[8941],{"type":3176,"value":7831},{"type":3171,"tag":3454,"props":8943,"children":8944},{"style":3533},[8945],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":8947,"children":8948},{"style":7055},[8949],{"type":3176,"value":7840},{"type":3171,"tag":3454,"props":8951,"children":8952},{"style":3533},[8953],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":8955,"children":8956},{"style":3599},[8957],{"type":3176,"value":7849},{"type":3171,"tag":3454,"props":8959,"children":8960},{"style":3533},[8961],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":8963,"children":8964},{"style":3533},[8965],{"type":3176,"value":4778},{"type":3171,"tag":3454,"props":8967,"children":8968},{"style":3466},[8969],{"type":3176,"value":8970},"Credential not found",{"type":3171,"tag":3454,"props":8972,"children":8973},{"style":3533},[8974],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":8976,"children":8977},{"style":3533},[8978],{"type":3176,"value":7567},{"type":3171,"tag":3454,"props":8980,"children":8981},{"style":3599},[8982],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":8984,"children":8985},{"class":3456,"line":4452},[8986],{"type":3171,"tag":3454,"props":8987,"children":8988},{"emptyLinePlaceholder":1200},[8989],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":8991,"children":8992},{"class":3456,"line":4461},[8993,8997],{"type":3171,"tag":3454,"props":8994,"children":8995},{"style":4717},[8996],{"type":3176,"value":6058},{"type":3171,"tag":3454,"props":8998,"children":8999},{"style":3528},[9000],{"type":3176,"value":9001}," credential\n",{"type":3171,"tag":3454,"props":9003,"children":9004},{"class":3456,"line":4469},[9005],{"type":3171,"tag":3454,"props":9006,"children":9007},{"style":3533},[9008],{"type":3176,"value":4795},{"type":3171,"tag":3454,"props":9010,"children":9011},{"class":3456,"line":4506},[9012,9016,9020,9024,9028,9032,9036,9040,9044,9049,9053],{"type":3171,"tag":3454,"props":9013,"children":9014},{"style":3605},[9015],{"type":3176,"value":5919},{"type":3171,"tag":3454,"props":9017,"children":9018},{"style":3599},[9019],{"type":3176,"value":5924},{"type":3171,"tag":3454,"props":9021,"children":9022},{"style":3533},[9023],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":9025,"children":9026},{"style":4549},[9027],{"type":3176,"value":5933},{"type":3171,"tag":3454,"props":9029,"children":9030},{"style":3533},[9031],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":9033,"children":9034},{"style":3533},[9035],{"type":3176,"value":3626},{"type":3171,"tag":3454,"props":9037,"children":9038},{"style":4549},[9039],{"type":3176,"value":8045},{"type":3171,"tag":3454,"props":9041,"children":9042},{"style":3533},[9043],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":9045,"children":9046},{"style":4549},[9047],{"type":3176,"value":9048}," authenticationInfo",{"type":3171,"tag":3454,"props":9050,"children":9051},{"style":3533},[9052],{"type":3176,"value":4615},{"type":3171,"tag":3454,"props":9054,"children":9055},{"style":3533},[9056],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":9058,"children":9059},{"class":3456,"line":4514},[9060],{"type":3171,"tag":3454,"props":9061,"children":9062},{"style":3519},[9063],{"type":3176,"value":9064},"    \u002F\u002F The credential authentication has been successful\n",{"type":3171,"tag":3454,"props":9066,"children":9067},{"class":3456,"line":4523},[9068],{"type":3171,"tag":3454,"props":9069,"children":9070},{"style":3519},[9071],{"type":3176,"value":9072},"    \u002F\u002F We can look it up in our database and get the corresponding user\n",{"type":3171,"tag":3454,"props":9074,"children":9075},{"class":3456,"line":4531},[9076,9080,9084,9088,9092],{"type":3171,"tag":3454,"props":9077,"children":9078},{"style":3605},[9079],{"type":3176,"value":7687},{"type":3171,"tag":3454,"props":9081,"children":9082},{"style":3528},[9083],{"type":3176,"value":8089},{"type":3171,"tag":3454,"props":9085,"children":9086},{"style":3533},[9087],{"type":3176,"value":3687},{"type":3171,"tag":3454,"props":9089,"children":9090},{"style":3690},[9091],{"type":3176,"value":8098},{"type":3171,"tag":3454,"props":9093,"children":9094},{"style":3599},[9095],{"type":3176,"value":3698},{"type":3171,"tag":3454,"props":9097,"children":9098},{"class":3456,"line":4627},[9099,9103,9107,9111,9115,9119,9123,9127,9131,9135],{"type":3171,"tag":3454,"props":9100,"children":9101},{"style":3605},[9102],{"type":3176,"value":7687},{"type":3171,"tag":3454,"props":9104,"children":9105},{"style":3528},[9106],{"type":3176,"value":3641},{"type":3171,"tag":3454,"props":9108,"children":9109},{"style":3533},[9110],{"type":3176,"value":3687},{"type":3171,"tag":3454,"props":9112,"children":9113},{"style":4717},[9114],{"type":3176,"value":4973},{"type":3171,"tag":3454,"props":9116,"children":9117},{"style":3528},[9118],{"type":3176,"value":8089},{"type":3171,"tag":3454,"props":9120,"children":9121},{"style":3533},[9122],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":9124,"children":9125},{"style":3690},[9126],{"type":3176,"value":7045},{"type":3171,"tag":3454,"props":9128,"children":9129},{"style":3533},[9130],{"type":3176,"value":8155},{"type":3171,"tag":3454,"props":9132,"children":9133},{"style":3466},[9134],{"type":3176,"value":5458},{"type":3171,"tag":3454,"props":9136,"children":9137},{"style":3533},[9138],{"type":3176,"value":8164},{"type":3171,"tag":3454,"props":9140,"children":9141},{"class":3456,"line":8251},[9142],{"type":3171,"tag":3454,"props":9143,"children":9144},{"emptyLinePlaceholder":1200},[9145],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":9147,"children":9148},{"class":3456,"line":8259},[9149],{"type":3171,"tag":3454,"props":9150,"children":9151},{"style":3519},[9152],{"type":3176,"value":9153},"    \u002F\u002F Update the counter in the database (authenticationInfo.newCounter)\n",{"type":3171,"tag":3454,"props":9155,"children":9156},{"class":3456,"line":8268},[9157,9161,9165,9169,9173,9177,9181],{"type":3171,"tag":3454,"props":9158,"children":9159},{"style":4717},[9160],{"type":3176,"value":5970},{"type":3171,"tag":3454,"props":9162,"children":9163},{"style":3528},[9164],{"type":3176,"value":8089},{"type":3171,"tag":3454,"props":9166,"children":9167},{"style":3533},[9168],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":9170,"children":9171},{"style":3690},[9172],{"type":3176,"value":7045},{"type":3171,"tag":3454,"props":9174,"children":9175},{"style":3533},[9176],{"type":3176,"value":8155},{"type":3171,"tag":3454,"props":9178,"children":9179},{"style":3466},[9180],{"type":3176,"value":5458},{"type":3171,"tag":3454,"props":9182,"children":9183},{"style":3533},[9184],{"type":3176,"value":8164},{"type":3171,"tag":3454,"props":9186,"children":9187},{"class":3456,"line":8300},[9188],{"type":3171,"tag":3454,"props":9189,"children":9190},{"emptyLinePlaceholder":1200},[9191],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":9193,"children":9194},{"class":3456,"line":8308},[9195],{"type":3171,"tag":3454,"props":9196,"children":9197},{"style":3519},[9198],{"type":3176,"value":8314},{"type":3171,"tag":3454,"props":9200,"children":9201},{"class":3456,"line":8317},[9202,9206,9210,9214,9218,9222],{"type":3171,"tag":3454,"props":9203,"children":9204},{"style":4717},[9205],{"type":3176,"value":5970},{"type":3171,"tag":3454,"props":9207,"children":9208},{"style":3690},[9209],{"type":3176,"value":4725},{"type":3171,"tag":3454,"props":9211,"children":9212},{"style":3599},[9213],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":9215,"children":9216},{"style":3528},[9217],{"type":3176,"value":5933},{"type":3171,"tag":3454,"props":9219,"children":9220},{"style":3533},[9221],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":9223,"children":9224},{"style":3533},[9225],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":9227,"children":9228},{"class":3456,"line":8345},[9229,9233,9237],{"type":3171,"tag":3454,"props":9230,"children":9231},{"style":3599},[9232],{"type":3176,"value":5998},{"type":3171,"tag":3454,"props":9234,"children":9235},{"style":3533},[9236],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":9238,"children":9239},{"style":3533},[9240],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":9242,"children":9243},{"class":3456,"line":8361},[9244,9248,9252,9256,9260],{"type":3171,"tag":3454,"props":9245,"children":9246},{"style":3599},[9247],{"type":3176,"value":8367},{"type":3171,"tag":3454,"props":9249,"children":9250},{"style":3533},[9251],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":9253,"children":9254},{"style":3528},[9255],{"type":3176,"value":3641},{"type":3171,"tag":3454,"props":9257,"children":9258},{"style":3533},[9259],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":9261,"children":9262},{"style":3528},[9263],{"type":3176,"value":6031},{"type":3171,"tag":3454,"props":9265,"children":9266},{"class":3456,"line":8386},[9267],{"type":3171,"tag":3454,"props":9268,"children":9269},{"style":3533},[9270],{"type":3176,"value":8392},{"type":3171,"tag":3454,"props":9272,"children":9273},{"class":3456,"line":8395},[9274,9278,9282,9286,9290,9294,9298],{"type":3171,"tag":3454,"props":9275,"children":9276},{"style":3599},[9277],{"type":3176,"value":8401},{"type":3171,"tag":3454,"props":9279,"children":9280},{"style":3533},[9281],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":9283,"children":9284},{"style":3528},[9285],{"type":3176,"value":4881},{"type":3171,"tag":3454,"props":9287,"children":9288},{"style":3533},[9289],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":9291,"children":9292},{"style":3690},[9293],{"type":3176,"value":8418},{"type":3171,"tag":3454,"props":9295,"children":9296},{"style":3599},[9297],{"type":3176,"value":7962},{"type":3171,"tag":3454,"props":9299,"children":9300},{"style":3533},[9301],{"type":3176,"value":5467},{"type":3171,"tag":3454,"props":9303,"children":9304},{"class":3456,"line":8429},[9305,9309],{"type":3171,"tag":3454,"props":9306,"children":9307},{"style":3533},[9308],{"type":3176,"value":6046},{"type":3171,"tag":3454,"props":9310,"children":9311},{"style":3599},[9312],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":9314,"children":9315},{"class":3456,"line":8441},[9316],{"type":3171,"tag":3454,"props":9317,"children":9318},{"style":3533},[9319],{"type":3176,"value":4795},{"type":3171,"tag":3454,"props":9321,"children":9322},{"class":3456,"line":8449},[9323,9327],{"type":3171,"tag":3454,"props":9324,"children":9325},{"style":3533},[9326],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":9328,"children":9329},{"style":3528},[9330],{"type":3176,"value":4897},{"type":3171,"tag":4635,"props":9332,"children":9333},{},[9334],{"type":3171,"tag":3178,"props":9335,"children":9336},{},[9337,9341,9343,9348,9350,9356,9357,9363],{"type":3171,"tag":3454,"props":9338,"children":9339},{},[9340],{"type":3176,"value":4645},{"type":3176,"value":9342},"\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":3171,"tag":4126,"props":9344,"children":9345},{},[9346],{"type":3176,"value":9347},"which is highly recommended",{"type":3176,"value":9349},"), the ",{"type":3171,"tag":3316,"props":9351,"children":9353},{"className":9352},[],[9354],{"type":3176,"value":9355},"storeChallenge",{"type":3176,"value":6287},{"type":3171,"tag":3316,"props":9358,"children":9360},{"className":9359},[],[9361],{"type":3176,"value":9362},"getChallenge",{"type":3176,"value":9364}," 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":3171,"tag":4635,"props":9366,"children":9367},{},[9368],{"type":3171,"tag":3444,"props":9369,"children":9371},{"className":4133,"code":9370,"language":4135,"meta":3045,"style":3045},"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",[9372],{"type":3171,"tag":3316,"props":9373,"children":9374},{"__ignoreMap":3045},[9375,9398,9444,9452,9517,9524,9560,9624,9631,9639,9691,9698,9722,9786,9793,9805,9812,9852,9860,9867],{"type":3171,"tag":3454,"props":9376,"children":9377},{"class":3456,"line":3131},[9378,9382,9386,9390,9394],{"type":3171,"tag":3454,"props":9379,"children":9380},{"style":4717},[9381],{"type":3176,"value":5251},{"type":3171,"tag":3454,"props":9383,"children":9384},{"style":4717},[9385],{"type":3176,"value":5366},{"type":3171,"tag":3454,"props":9387,"children":9388},{"style":3690},[9389],{"type":3176,"value":8524},{"type":3171,"tag":3454,"props":9391,"children":9392},{"style":3528},[9393],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":9395,"children":9396},{"style":3533},[9397],{"type":3176,"value":5381},{"type":3171,"tag":3454,"props":9399,"children":9400},{"class":3456,"line":3097},[9401,9405,9410,9414,9418,9422,9427,9431,9436,9440],{"type":3171,"tag":3454,"props":9402,"children":9403},{"style":3605},[9404],{"type":3176,"value":5919},{"type":3171,"tag":3454,"props":9406,"children":9407},{"style":3599},[9408],{"type":3176,"value":9409}," storeChallenge",{"type":3171,"tag":3454,"props":9411,"children":9412},{"style":3533},[9413],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":9415,"children":9416},{"style":4549},[9417],{"type":3176,"value":5933},{"type":3171,"tag":3454,"props":9419,"children":9420},{"style":3533},[9421],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":9423,"children":9424},{"style":4549},[9425],{"type":3176,"value":9426}," challenge",{"type":3171,"tag":3454,"props":9428,"children":9429},{"style":3533},[9430],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":9432,"children":9433},{"style":4549},[9434],{"type":3176,"value":9435}," attemptId",{"type":3171,"tag":3454,"props":9437,"children":9438},{"style":3533},[9439],{"type":3176,"value":6137},{"type":3171,"tag":3454,"props":9441,"children":9442},{"style":3533},[9443],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":9445,"children":9446},{"class":3456,"line":3081},[9447],{"type":3171,"tag":3454,"props":9448,"children":9449},{"style":3519},[9450],{"type":3176,"value":9451},"    \u002F\u002F Store the challenge in a KV store or DB\n",{"type":3171,"tag":3454,"props":9453,"children":9454},{"class":3456,"line":3717},[9455,9459,9464,9468,9472,9477,9481,9485,9490,9495,9500,9505,9509,9513],{"type":3171,"tag":3454,"props":9456,"children":9457},{"style":4717},[9458],{"type":3176,"value":5970},{"type":3171,"tag":3454,"props":9460,"children":9461},{"style":3690},[9462],{"type":3176,"value":9463}," useStorage",{"type":3171,"tag":3454,"props":9465,"children":9466},{"style":3599},[9467],{"type":3176,"value":7962},{"type":3171,"tag":3454,"props":9469,"children":9470},{"style":3533},[9471],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":9473,"children":9474},{"style":3690},[9475],{"type":3176,"value":9476},"setItem",{"type":3171,"tag":3454,"props":9478,"children":9479},{"style":3599},[9480],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":9482,"children":9483},{"style":3533},[9484],{"type":3176,"value":8155},{"type":3171,"tag":3454,"props":9486,"children":9487},{"style":3466},[9488],{"type":3176,"value":9489},"attempt:",{"type":3171,"tag":3454,"props":9491,"children":9492},{"style":3533},[9493],{"type":3176,"value":9494},"${",{"type":3171,"tag":3454,"props":9496,"children":9497},{"style":3528},[9498],{"type":3176,"value":9499},"attemptId",{"type":3171,"tag":3454,"props":9501,"children":9502},{"style":3533},[9503],{"type":3176,"value":9504},"}`",{"type":3171,"tag":3454,"props":9506,"children":9507},{"style":3533},[9508],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":9510,"children":9511},{"style":3528},[9512],{"type":3176,"value":9426},{"type":3171,"tag":3454,"props":9514,"children":9515},{"style":3599},[9516],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":9518,"children":9519},{"class":3456,"line":3726},[9520],{"type":3171,"tag":3454,"props":9521,"children":9522},{"style":3533},[9523],{"type":3176,"value":4795},{"type":3171,"tag":3454,"props":9525,"children":9526},{"class":3456,"line":3743},[9527,9531,9536,9540,9544,9548,9552,9556],{"type":3171,"tag":3454,"props":9528,"children":9529},{"style":3605},[9530],{"type":3176,"value":5919},{"type":3171,"tag":3454,"props":9532,"children":9533},{"style":3599},[9534],{"type":3176,"value":9535}," getChallenge",{"type":3171,"tag":3454,"props":9537,"children":9538},{"style":3533},[9539],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":9541,"children":9542},{"style":4549},[9543],{"type":3176,"value":5933},{"type":3171,"tag":3454,"props":9545,"children":9546},{"style":3533},[9547],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":9549,"children":9550},{"style":4549},[9551],{"type":3176,"value":9435},{"type":3171,"tag":3454,"props":9553,"children":9554},{"style":3533},[9555],{"type":3176,"value":6137},{"type":3171,"tag":3454,"props":9557,"children":9558},{"style":3533},[9559],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":9561,"children":9562},{"class":3456,"line":3077},[9563,9567,9571,9575,9579,9583,9587,9591,9596,9600,9604,9608,9612,9616,9620],{"type":3171,"tag":3454,"props":9564,"children":9565},{"style":3605},[9566],{"type":3176,"value":7687},{"type":3171,"tag":3454,"props":9568,"children":9569},{"style":3528},[9570],{"type":3176,"value":9426},{"type":3171,"tag":3454,"props":9572,"children":9573},{"style":3533},[9574],{"type":3176,"value":3687},{"type":3171,"tag":3454,"props":9576,"children":9577},{"style":4717},[9578],{"type":3176,"value":4973},{"type":3171,"tag":3454,"props":9580,"children":9581},{"style":3690},[9582],{"type":3176,"value":9463},{"type":3171,"tag":3454,"props":9584,"children":9585},{"style":3599},[9586],{"type":3176,"value":7962},{"type":3171,"tag":3454,"props":9588,"children":9589},{"style":3533},[9590],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":9592,"children":9593},{"style":3690},[9594],{"type":3176,"value":9595},"getItem",{"type":3171,"tag":3454,"props":9597,"children":9598},{"style":3599},[9599],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":9601,"children":9602},{"style":3533},[9603],{"type":3176,"value":8155},{"type":3171,"tag":3454,"props":9605,"children":9606},{"style":3466},[9607],{"type":3176,"value":9489},{"type":3171,"tag":3454,"props":9609,"children":9610},{"style":3533},[9611],{"type":3176,"value":9494},{"type":3171,"tag":3454,"props":9613,"children":9614},{"style":3528},[9615],{"type":3176,"value":9499},{"type":3171,"tag":3454,"props":9617,"children":9618},{"style":3533},[9619],{"type":3176,"value":9504},{"type":3171,"tag":3454,"props":9621,"children":9622},{"style":3599},[9623],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":9625,"children":9626},{"class":3456,"line":3073},[9627],{"type":3171,"tag":3454,"props":9628,"children":9629},{"emptyLinePlaceholder":1200},[9630],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":9632,"children":9633},{"class":3456,"line":3069},[9634],{"type":3171,"tag":3454,"props":9635,"children":9636},{"style":3519},[9637],{"type":3176,"value":9638},"    \u002F\u002F Make sure to always remove the attempt because they are single use only!\n",{"type":3171,"tag":3454,"props":9640,"children":9641},{"class":3456,"line":3905},[9642,9646,9650,9654,9658,9663,9667,9671,9675,9679,9683,9687],{"type":3171,"tag":3454,"props":9643,"children":9644},{"style":4717},[9645],{"type":3176,"value":5970},{"type":3171,"tag":3454,"props":9647,"children":9648},{"style":3690},[9649],{"type":3176,"value":9463},{"type":3171,"tag":3454,"props":9651,"children":9652},{"style":3599},[9653],{"type":3176,"value":7962},{"type":3171,"tag":3454,"props":9655,"children":9656},{"style":3533},[9657],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":9659,"children":9660},{"style":3690},[9661],{"type":3176,"value":9662},"removeItem",{"type":3171,"tag":3454,"props":9664,"children":9665},{"style":3599},[9666],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":9668,"children":9669},{"style":3533},[9670],{"type":3176,"value":8155},{"type":3171,"tag":3454,"props":9672,"children":9673},{"style":3466},[9674],{"type":3176,"value":9489},{"type":3171,"tag":3454,"props":9676,"children":9677},{"style":3533},[9678],{"type":3176,"value":9494},{"type":3171,"tag":3454,"props":9680,"children":9681},{"style":3528},[9682],{"type":3176,"value":9499},{"type":3171,"tag":3454,"props":9684,"children":9685},{"style":3533},[9686],{"type":3176,"value":9504},{"type":3171,"tag":3454,"props":9688,"children":9689},{"style":3599},[9690],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":9692,"children":9693},{"class":3456,"line":3922},[9694],{"type":3171,"tag":3454,"props":9695,"children":9696},{"emptyLinePlaceholder":1200},[9697],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":9699,"children":9700},{"class":3456,"line":3943},[9701,9705,9709,9713,9718],{"type":3171,"tag":3454,"props":9702,"children":9703},{"style":4717},[9704],{"type":3176,"value":7723},{"type":3171,"tag":3454,"props":9706,"children":9707},{"style":3599},[9708],{"type":3176,"value":4546},{"type":3171,"tag":3454,"props":9710,"children":9711},{"style":3533},[9712],{"type":3176,"value":8180},{"type":3171,"tag":3454,"props":9714,"children":9715},{"style":3528},[9716],{"type":3176,"value":9717},"challenge",{"type":3171,"tag":3454,"props":9719,"children":9720},{"style":3599},[9721],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":9723,"children":9724},{"class":3456,"line":3976},[9725,9729,9733,9737,9741,9745,9749,9753,9757,9761,9765,9769,9774,9778,9782],{"type":3171,"tag":3454,"props":9726,"children":9727},{"style":4717},[9728],{"type":3176,"value":7812},{"type":3171,"tag":3454,"props":9730,"children":9731},{"style":3690},[9732],{"type":3176,"value":7817},{"type":3171,"tag":3454,"props":9734,"children":9735},{"style":3599},[9736],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":9738,"children":9739},{"style":3533},[9740],{"type":3176,"value":7826},{"type":3171,"tag":3454,"props":9742,"children":9743},{"style":3599},[9744],{"type":3176,"value":7831},{"type":3171,"tag":3454,"props":9746,"children":9747},{"style":3533},[9748],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":9750,"children":9751},{"style":7055},[9752],{"type":3176,"value":7840},{"type":3171,"tag":3454,"props":9754,"children":9755},{"style":3533},[9756],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":9758,"children":9759},{"style":3599},[9760],{"type":3176,"value":7849},{"type":3171,"tag":3454,"props":9762,"children":9763},{"style":3533},[9764],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":9766,"children":9767},{"style":3533},[9768],{"type":3176,"value":4778},{"type":3171,"tag":3454,"props":9770,"children":9771},{"style":3466},[9772],{"type":3176,"value":9773},"Challenge expired",{"type":3171,"tag":3454,"props":9775,"children":9776},{"style":3533},[9777],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":9779,"children":9780},{"style":3533},[9781],{"type":3176,"value":7567},{"type":3171,"tag":3454,"props":9783,"children":9784},{"style":3599},[9785],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":9787,"children":9788},{"class":3456,"line":4031},[9789],{"type":3171,"tag":3454,"props":9790,"children":9791},{"emptyLinePlaceholder":1200},[9792],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":9794,"children":9795},{"class":3456,"line":4040},[9796,9800],{"type":3171,"tag":3454,"props":9797,"children":9798},{"style":4717},[9799],{"type":3176,"value":6058},{"type":3171,"tag":3454,"props":9801,"children":9802},{"style":3528},[9803],{"type":3176,"value":9804}," challenge\n",{"type":3171,"tag":3454,"props":9806,"children":9807},{"class":3456,"line":3065},[9808],{"type":3171,"tag":3454,"props":9809,"children":9810},{"style":3533},[9811],{"type":3176,"value":4795},{"type":3171,"tag":3454,"props":9813,"children":9814},{"class":3456,"line":4108},[9815,9819,9823,9827,9831,9835,9839,9844,9848],{"type":3171,"tag":3454,"props":9816,"children":9817},{"style":3605},[9818],{"type":3176,"value":5919},{"type":3171,"tag":3454,"props":9820,"children":9821},{"style":3599},[9822],{"type":3176,"value":5924},{"type":3171,"tag":3454,"props":9824,"children":9825},{"style":3533},[9826],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":9828,"children":9829},{"style":4549},[9830],{"type":3176,"value":5933},{"type":3171,"tag":3454,"props":9832,"children":9833},{"style":3533},[9834],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":9836,"children":9837},{"style":3533},[9838],{"type":3176,"value":3626},{"type":3171,"tag":3454,"props":9840,"children":9841},{"style":4549},[9842],{"type":3176,"value":9843}," authenticator",{"type":3171,"tag":3454,"props":9845,"children":9846},{"style":3533},[9847],{"type":3176,"value":4615},{"type":3171,"tag":3454,"props":9849,"children":9850},{"style":3533},[9851],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":9853,"children":9854},{"class":3456,"line":4378},[9855],{"type":3171,"tag":3454,"props":9856,"children":9857},{"style":3519},[9858],{"type":3176,"value":9859},"    \u002F\u002F ...\n",{"type":3171,"tag":3454,"props":9861,"children":9862},{"class":3456,"line":4386},[9863],{"type":3171,"tag":3454,"props":9864,"children":9865},{"style":3533},[9866],{"type":3176,"value":4795},{"type":3171,"tag":3454,"props":9868,"children":9869},{"class":3456,"line":4395},[9870,9874],{"type":3171,"tag":3454,"props":9871,"children":9872},{"style":3533},[9873],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":9875,"children":9876},{"style":3528},[9877],{"type":3176,"value":4897},{"type":3171,"tag":3178,"props":9879,"children":9880},{},[9881],{"type":3176,"value":9882},"On the frontend it is as simple as:",{"type":3171,"tag":3444,"props":9884,"children":9886},{"className":3582,"code":9885,"language":3584,"meta":3045,"style":3045},"\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",[9887],{"type":3171,"tag":3316,"props":9888,"children":9889},{"__ignoreMap":3045},[9890,9930,9976,10010,10043,10054,10094,10101,10135,10161,10210,10241,10248,10255,10279,10311,10338,10345,10360,10367,10382,10420,10480,10534,10549,10585,10640,10692,10707],{"type":3171,"tag":3454,"props":9891,"children":9892},{"class":3456,"line":3131},[9893,9897,9901,9905,9910,9914,9918,9922,9926],{"type":3171,"tag":3454,"props":9894,"children":9895},{"style":3533},[9896],{"type":3176,"value":3596},{"type":3171,"tag":3454,"props":9898,"children":9899},{"style":3599},[9900],{"type":3176,"value":3602},{"type":3171,"tag":3454,"props":9902,"children":9903},{"style":3605},[9904],{"type":3176,"value":3608},{"type":3171,"tag":3454,"props":9906,"children":9907},{"style":3605},[9908],{"type":3176,"value":9909}," lang",{"type":3171,"tag":3454,"props":9911,"children":9912},{"style":3533},[9913],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":9915,"children":9916},{"style":3533},[9917],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":9919,"children":9920},{"style":3466},[9921],{"type":3176,"value":4135},{"type":3171,"tag":3454,"props":9923,"children":9924},{"style":3533},[9925],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":9927,"children":9928},{"style":3533},[9929],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":9931,"children":9932},{"class":3456,"line":3097},[9933,9937,9941,9946,9950,9955,9959,9963,9968,9972],{"type":3171,"tag":3454,"props":9934,"children":9935},{"style":3605},[9936],{"type":3176,"value":3621},{"type":3171,"tag":3454,"props":9938,"children":9939},{"style":3533},[9940],{"type":3176,"value":3626},{"type":3171,"tag":3454,"props":9942,"children":9943},{"style":3528},[9944],{"type":3176,"value":9945}," register",{"type":3171,"tag":3454,"props":9947,"children":9948},{"style":3533},[9949],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":9951,"children":9952},{"style":3528},[9953],{"type":3176,"value":9954}," authenticate ",{"type":3171,"tag":3454,"props":9956,"children":9957},{"style":3533},[9958],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":9960,"children":9961},{"style":3533},[9962],{"type":3176,"value":3687},{"type":3171,"tag":3454,"props":9964,"children":9965},{"style":3690},[9966],{"type":3176,"value":9967}," useWebAuthn",{"type":3171,"tag":3454,"props":9969,"children":9970},{"style":3528},[9971],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":9973,"children":9974},{"style":3533},[9975],{"type":3176,"value":5381},{"type":3171,"tag":3454,"props":9977,"children":9978},{"class":3456,"line":3081},[9979,9984,9988,9992,9997,10001,10005],{"type":3171,"tag":3454,"props":9980,"children":9981},{"style":3599},[9982],{"type":3176,"value":9983},"  registerEndpoint",{"type":3171,"tag":3454,"props":9985,"children":9986},{"style":3533},[9987],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":9989,"children":9990},{"style":3533},[9991],{"type":3176,"value":4778},{"type":3171,"tag":3454,"props":9993,"children":9994},{"style":3466},[9995],{"type":3176,"value":9996},"\u002Fapi\u002Fwebauthn\u002Fregister",{"type":3171,"tag":3454,"props":9998,"children":9999},{"style":3533},[10000],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":10002,"children":10003},{"style":3533},[10004],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":10006,"children":10007},{"style":3519},[10008],{"type":3176,"value":10009}," \u002F\u002F Default\n",{"type":3171,"tag":3454,"props":10011,"children":10012},{"class":3456,"line":3717},[10013,10018,10022,10026,10031,10035,10039],{"type":3171,"tag":3454,"props":10014,"children":10015},{"style":3599},[10016],{"type":3176,"value":10017},"  authenticateEndpoint",{"type":3171,"tag":3454,"props":10019,"children":10020},{"style":3533},[10021],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":10023,"children":10024},{"style":3533},[10025],{"type":3176,"value":4778},{"type":3171,"tag":3454,"props":10027,"children":10028},{"style":3466},[10029],{"type":3176,"value":10030},"\u002Fapi\u002Fwebauthn\u002Fauthenticate",{"type":3171,"tag":3454,"props":10032,"children":10033},{"style":3533},[10034],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":10036,"children":10037},{"style":3533},[10038],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":10040,"children":10041},{"style":3519},[10042],{"type":3176,"value":10009},{"type":3171,"tag":3454,"props":10044,"children":10045},{"class":3456,"line":3726},[10046,10050],{"type":3171,"tag":3454,"props":10047,"children":10048},{"style":3533},[10049],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":10051,"children":10052},{"style":3528},[10053],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":10055,"children":10056},{"class":3456,"line":3743},[10057,10061,10065,10069,10073,10078,10082,10086,10090],{"type":3171,"tag":3454,"props":10058,"children":10059},{"style":3605},[10060],{"type":3176,"value":3621},{"type":3171,"tag":3454,"props":10062,"children":10063},{"style":3533},[10064],{"type":3176,"value":3626},{"type":3171,"tag":3454,"props":10066,"children":10067},{"style":3599},[10068],{"type":3176,"value":3659},{"type":3171,"tag":3454,"props":10070,"children":10071},{"style":3533},[10072],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":10074,"children":10075},{"style":3528},[10076],{"type":3176,"value":10077}," fetchUserSession ",{"type":3171,"tag":3454,"props":10079,"children":10080},{"style":3533},[10081],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":10083,"children":10084},{"style":3533},[10085],{"type":3176,"value":3687},{"type":3171,"tag":3454,"props":10087,"children":10088},{"style":3690},[10089],{"type":3176,"value":3693},{"type":3171,"tag":3454,"props":10091,"children":10092},{"style":3528},[10093],{"type":3176,"value":3698},{"type":3171,"tag":3454,"props":10095,"children":10096},{"class":3456,"line":3077},[10097],{"type":3171,"tag":3454,"props":10098,"children":10099},{"emptyLinePlaceholder":1200},[10100],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":10102,"children":10103},{"class":3456,"line":3073},[10104,10108,10113,10117,10122,10126,10131],{"type":3171,"tag":3454,"props":10105,"children":10106},{"style":3605},[10107],{"type":3176,"value":3621},{"type":3171,"tag":3454,"props":10109,"children":10110},{"style":3528},[10111],{"type":3176,"value":10112}," userName ",{"type":3171,"tag":3454,"props":10114,"children":10115},{"style":3533},[10116],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":10118,"children":10119},{"style":3690},[10120],{"type":3176,"value":10121}," ref",{"type":3171,"tag":3454,"props":10123,"children":10124},{"style":3528},[10125],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":10127,"children":10128},{"style":3533},[10129],{"type":3176,"value":10130},"''",{"type":3171,"tag":3454,"props":10132,"children":10133},{"style":3528},[10134],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":10136,"children":10137},{"class":3456,"line":3069},[10138,10143,10148,10153,10157],{"type":3171,"tag":3454,"props":10139,"children":10140},{"style":3605},[10141],{"type":3176,"value":10142},"async",{"type":3171,"tag":3454,"props":10144,"children":10145},{"style":3605},[10146],{"type":3176,"value":10147}," function",{"type":3171,"tag":3454,"props":10149,"children":10150},{"style":3690},[10151],{"type":3176,"value":10152}," signUp",{"type":3171,"tag":3454,"props":10154,"children":10155},{"style":3533},[10156],{"type":3176,"value":7962},{"type":3171,"tag":3454,"props":10158,"children":10159},{"style":3533},[10160],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":10162,"children":10163},{"class":3456,"line":3905},[10164,10169,10173,10177,10181,10185,10189,10193,10197,10202,10206],{"type":3171,"tag":3454,"props":10165,"children":10166},{"style":4717},[10167],{"type":3176,"value":10168},"  await",{"type":3171,"tag":3454,"props":10170,"children":10171},{"style":3690},[10172],{"type":3176,"value":9945},{"type":3171,"tag":3454,"props":10174,"children":10175},{"style":3599},[10176],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":10178,"children":10179},{"style":3533},[10180],{"type":3176,"value":7826},{"type":3171,"tag":3454,"props":10182,"children":10183},{"style":3599},[10184],{"type":3176,"value":8569},{"type":3171,"tag":3454,"props":10186,"children":10187},{"style":3533},[10188],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":10190,"children":10191},{"style":3528},[10192],{"type":3176,"value":8569},{"type":3171,"tag":3454,"props":10194,"children":10195},{"style":3533},[10196],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":10198,"children":10199},{"style":3528},[10200],{"type":3176,"value":10201},"value",{"type":3171,"tag":3454,"props":10203,"children":10204},{"style":3533},[10205],{"type":3176,"value":7567},{"type":3171,"tag":3454,"props":10207,"children":10208},{"style":3599},[10209],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":10211,"children":10212},{"class":3456,"line":3922},[10213,10218,10223,10227,10232,10236],{"type":3171,"tag":3454,"props":10214,"children":10215},{"style":3533},[10216],{"type":3176,"value":10217},"    .",{"type":3171,"tag":3454,"props":10219,"children":10220},{"style":3690},[10221],{"type":3176,"value":10222},"then",{"type":3171,"tag":3454,"props":10224,"children":10225},{"style":3599},[10226],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":10228,"children":10229},{"style":3528},[10230],{"type":3176,"value":10231},"fetchUserSession",{"type":3171,"tag":3454,"props":10233,"children":10234},{"style":3599},[10235],{"type":3176,"value":7800},{"type":3171,"tag":3454,"props":10237,"children":10238},{"style":3519},[10239],{"type":3176,"value":10240},"\u002F\u002F refetch the user session\n",{"type":3171,"tag":3454,"props":10242,"children":10243},{"class":3456,"line":3943},[10244],{"type":3171,"tag":3454,"props":10245,"children":10246},{"style":3533},[10247],{"type":3176,"value":4633},{"type":3171,"tag":3454,"props":10249,"children":10250},{"class":3456,"line":3976},[10251],{"type":3171,"tag":3454,"props":10252,"children":10253},{"emptyLinePlaceholder":1200},[10254],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":10256,"children":10257},{"class":3456,"line":4031},[10258,10262,10266,10271,10275],{"type":3171,"tag":3454,"props":10259,"children":10260},{"style":3605},[10261],{"type":3176,"value":10142},{"type":3171,"tag":3454,"props":10263,"children":10264},{"style":3605},[10265],{"type":3176,"value":10147},{"type":3171,"tag":3454,"props":10267,"children":10268},{"style":3690},[10269],{"type":3176,"value":10270}," signIn",{"type":3171,"tag":3454,"props":10272,"children":10273},{"style":3533},[10274],{"type":3176,"value":7962},{"type":3171,"tag":3454,"props":10276,"children":10277},{"style":3533},[10278],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":10280,"children":10281},{"class":3456,"line":4040},[10282,10286,10291,10295,10299,10303,10307],{"type":3171,"tag":3454,"props":10283,"children":10284},{"style":4717},[10285],{"type":3176,"value":10168},{"type":3171,"tag":3454,"props":10287,"children":10288},{"style":3690},[10289],{"type":3176,"value":10290}," authenticate",{"type":3171,"tag":3454,"props":10292,"children":10293},{"style":3599},[10294],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":10296,"children":10297},{"style":3528},[10298],{"type":3176,"value":7795},{"type":3171,"tag":3454,"props":10300,"children":10301},{"style":3533},[10302],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":10304,"children":10305},{"style":3528},[10306],{"type":3176,"value":10201},{"type":3171,"tag":3454,"props":10308,"children":10309},{"style":3599},[10310],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":10312,"children":10313},{"class":3456,"line":3065},[10314,10318,10322,10326,10330,10334],{"type":3171,"tag":3454,"props":10315,"children":10316},{"style":3533},[10317],{"type":3176,"value":10217},{"type":3171,"tag":3454,"props":10319,"children":10320},{"style":3690},[10321],{"type":3176,"value":10222},{"type":3171,"tag":3454,"props":10323,"children":10324},{"style":3599},[10325],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":10327,"children":10328},{"style":3528},[10329],{"type":3176,"value":10231},{"type":3171,"tag":3454,"props":10331,"children":10332},{"style":3599},[10333],{"type":3176,"value":7800},{"type":3171,"tag":3454,"props":10335,"children":10336},{"style":3519},[10337],{"type":3176,"value":10240},{"type":3171,"tag":3454,"props":10339,"children":10340},{"class":3456,"line":4108},[10341],{"type":3171,"tag":3454,"props":10342,"children":10343},{"style":3533},[10344],{"type":3176,"value":4633},{"type":3171,"tag":3454,"props":10346,"children":10347},{"class":3456,"line":4378},[10348,10352,10356],{"type":3171,"tag":3454,"props":10349,"children":10350},{"style":3533},[10351],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":10353,"children":10354},{"style":3599},[10355],{"type":3176,"value":3602},{"type":3171,"tag":3454,"props":10357,"children":10358},{"style":3533},[10359],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":10361,"children":10362},{"class":3456,"line":4386},[10363],{"type":3171,"tag":3454,"props":10364,"children":10365},{"emptyLinePlaceholder":1200},[10366],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":10368,"children":10369},{"class":3456,"line":4395},[10370,10374,10378],{"type":3171,"tag":3454,"props":10371,"children":10372},{"style":3533},[10373],{"type":3176,"value":3596},{"type":3171,"tag":3454,"props":10375,"children":10376},{"style":3599},[10377],{"type":3176,"value":3736},{"type":3171,"tag":3454,"props":10379,"children":10380},{"style":3533},[10381],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":10383,"children":10384},{"class":3456,"line":4403},[10385,10389,10394,10399,10403,10407,10412,10416],{"type":3171,"tag":3454,"props":10386,"children":10387},{"style":3533},[10388],{"type":3176,"value":3749},{"type":3171,"tag":3454,"props":10390,"children":10391},{"style":3599},[10392],{"type":3176,"value":10393},"form",{"type":3171,"tag":3454,"props":10395,"children":10396},{"style":3605},[10397],{"type":3176,"value":10398}," @submit.prevent",{"type":3171,"tag":3454,"props":10400,"children":10401},{"style":3533},[10402],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":10404,"children":10405},{"style":3533},[10406],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":10408,"children":10409},{"style":3466},[10410],{"type":3176,"value":10411},"signUp",{"type":3171,"tag":3454,"props":10413,"children":10414},{"style":3533},[10415],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":10417,"children":10418},{"style":3533},[10419],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":10421,"children":10422},{"class":3456,"line":4444},[10423,10427,10432,10437,10441,10445,10449,10453,10458,10462,10466,10471,10475],{"type":3171,"tag":3454,"props":10424,"children":10425},{"style":3533},[10426],{"type":3176,"value":3789},{"type":3171,"tag":3454,"props":10428,"children":10429},{"style":3599},[10430],{"type":3176,"value":10431},"input",{"type":3171,"tag":3454,"props":10433,"children":10434},{"style":3605},[10435],{"type":3176,"value":10436}," v-model",{"type":3171,"tag":3454,"props":10438,"children":10439},{"style":3533},[10440],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":10442,"children":10443},{"style":3533},[10444],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":10446,"children":10447},{"style":3466},[10448],{"type":3176,"value":7795},{"type":3171,"tag":3454,"props":10450,"children":10451},{"style":3533},[10452],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":10454,"children":10455},{"style":3605},[10456],{"type":3176,"value":10457}," placeholder",{"type":3171,"tag":3454,"props":10459,"children":10460},{"style":3533},[10461],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":10463,"children":10464},{"style":3533},[10465],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":10467,"children":10468},{"style":3466},[10469],{"type":3176,"value":10470},"Email or username",{"type":3171,"tag":3454,"props":10472,"children":10473},{"style":3533},[10474],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":10476,"children":10477},{"style":3533},[10478],{"type":3176,"value":10479}," \u002F>\n",{"type":3171,"tag":3454,"props":10481,"children":10482},{"class":3456,"line":4452},[10483,10487,10491,10496,10500,10504,10509,10513,10517,10522,10526,10530],{"type":3171,"tag":3454,"props":10484,"children":10485},{"style":3533},[10486],{"type":3176,"value":3789},{"type":3171,"tag":3454,"props":10488,"children":10489},{"style":3599},[10490],{"type":3176,"value":3859},{"type":3171,"tag":3454,"props":10492,"children":10493},{"style":3605},[10494],{"type":3176,"value":10495}," type",{"type":3171,"tag":3454,"props":10497,"children":10498},{"style":3533},[10499],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":10501,"children":10502},{"style":3533},[10503],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":10505,"children":10506},{"style":3466},[10507],{"type":3176,"value":10508},"submit",{"type":3171,"tag":3454,"props":10510,"children":10511},{"style":3533},[10512],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":10514,"children":10515},{"style":3533},[10516],{"type":3176,"value":3798},{"type":3171,"tag":3454,"props":10518,"children":10519},{"style":3528},[10520],{"type":3176,"value":10521},"Sign up",{"type":3171,"tag":3454,"props":10523,"children":10524},{"style":3533},[10525],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":10527,"children":10528},{"style":3599},[10529],{"type":3176,"value":3859},{"type":3171,"tag":3454,"props":10531,"children":10532},{"style":3533},[10533],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":10535,"children":10536},{"class":3456,"line":4461},[10537,10541,10545],{"type":3171,"tag":3454,"props":10538,"children":10539},{"style":3533},[10540],{"type":3176,"value":3911},{"type":3171,"tag":3454,"props":10542,"children":10543},{"style":3599},[10544],{"type":3176,"value":10393},{"type":3171,"tag":3454,"props":10546,"children":10547},{"style":3533},[10548],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":10550,"children":10551},{"class":3456,"line":4469},[10552,10556,10560,10564,10568,10572,10577,10581],{"type":3171,"tag":3454,"props":10553,"children":10554},{"style":3533},[10555],{"type":3176,"value":3749},{"type":3171,"tag":3454,"props":10557,"children":10558},{"style":3599},[10559],{"type":3176,"value":10393},{"type":3171,"tag":3454,"props":10561,"children":10562},{"style":3605},[10563],{"type":3176,"value":10398},{"type":3171,"tag":3454,"props":10565,"children":10566},{"style":3533},[10567],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":10569,"children":10570},{"style":3533},[10571],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":10573,"children":10574},{"style":3466},[10575],{"type":3176,"value":10576},"signIn",{"type":3171,"tag":3454,"props":10578,"children":10579},{"style":3533},[10580],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":10582,"children":10583},{"style":3533},[10584],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":10586,"children":10587},{"class":3456,"line":4506},[10588,10592,10596,10600,10604,10608,10612,10616,10620,10624,10628,10632,10636],{"type":3171,"tag":3454,"props":10589,"children":10590},{"style":3533},[10591],{"type":3176,"value":3789},{"type":3171,"tag":3454,"props":10593,"children":10594},{"style":3599},[10595],{"type":3176,"value":10431},{"type":3171,"tag":3454,"props":10597,"children":10598},{"style":3605},[10599],{"type":3176,"value":10436},{"type":3171,"tag":3454,"props":10601,"children":10602},{"style":3533},[10603],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":10605,"children":10606},{"style":3533},[10607],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":10609,"children":10610},{"style":3466},[10611],{"type":3176,"value":7795},{"type":3171,"tag":3454,"props":10613,"children":10614},{"style":3533},[10615],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":10617,"children":10618},{"style":3605},[10619],{"type":3176,"value":10457},{"type":3171,"tag":3454,"props":10621,"children":10622},{"style":3533},[10623],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":10625,"children":10626},{"style":3533},[10627],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":10629,"children":10630},{"style":3466},[10631],{"type":3176,"value":10470},{"type":3171,"tag":3454,"props":10633,"children":10634},{"style":3533},[10635],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":10637,"children":10638},{"style":3533},[10639],{"type":3176,"value":10479},{"type":3171,"tag":3454,"props":10641,"children":10642},{"class":3456,"line":4514},[10643,10647,10651,10655,10659,10663,10667,10671,10675,10680,10684,10688],{"type":3171,"tag":3454,"props":10644,"children":10645},{"style":3533},[10646],{"type":3176,"value":3789},{"type":3171,"tag":3454,"props":10648,"children":10649},{"style":3599},[10650],{"type":3176,"value":3859},{"type":3171,"tag":3454,"props":10652,"children":10653},{"style":3605},[10654],{"type":3176,"value":10495},{"type":3171,"tag":3454,"props":10656,"children":10657},{"style":3533},[10658],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":10660,"children":10661},{"style":3533},[10662],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":10664,"children":10665},{"style":3466},[10666],{"type":3176,"value":10508},{"type":3171,"tag":3454,"props":10668,"children":10669},{"style":3533},[10670],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":10672,"children":10673},{"style":3533},[10674],{"type":3176,"value":3798},{"type":3171,"tag":3454,"props":10676,"children":10677},{"style":3528},[10678],{"type":3176,"value":10679},"Sign in",{"type":3171,"tag":3454,"props":10681,"children":10682},{"style":3533},[10683],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":10685,"children":10686},{"style":3599},[10687],{"type":3176,"value":3859},{"type":3171,"tag":3454,"props":10689,"children":10690},{"style":3533},[10691],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":10693,"children":10694},{"class":3456,"line":4523},[10695,10699,10703],{"type":3171,"tag":3454,"props":10696,"children":10697},{"style":3533},[10698],{"type":3176,"value":3911},{"type":3171,"tag":3454,"props":10700,"children":10701},{"style":3599},[10702],{"type":3176,"value":10393},{"type":3171,"tag":3454,"props":10704,"children":10705},{"style":3533},[10706],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":10708,"children":10709},{"class":3456,"line":4531},[10710,10714,10718],{"type":3171,"tag":3454,"props":10711,"children":10712},{"style":3533},[10713],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":10715,"children":10716},{"style":3599},[10717],{"type":3176,"value":3736},{"type":3171,"tag":3454,"props":10719,"children":10720},{"style":3533},[10721],{"type":3176,"value":3613},{"type":3171,"tag":3178,"props":10723,"children":10724},{},[10725,10727,10738],{"type":3176,"value":10726},"Take a look at the ",{"type":3171,"tag":3182,"props":10728,"children":10731},{"href":10729,"rel":10730},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fcomponents\u002FWebAuthnModal.vue",[3186],[10732],{"type":3171,"tag":3316,"props":10733,"children":10735},{"className":10734},[],[10736],{"type":3176,"value":10737},"WebAuthnModal.vue",{"type":3176,"value":10739}," for a full example.",{"type":3171,"tag":5561,"props":10741,"children":10743},{"id":10742},"demo",[10744],{"type":3176,"value":10745},"Demo",{"type":3171,"tag":3178,"props":10747,"children":10748},{},[10749,10751,10757,10759,10766,10767,10774],{"type":3176,"value":10750},"A full demo can be found on ",{"type":3171,"tag":3182,"props":10752,"children":10755},{"href":10753,"rel":10754},"https:\u002F\u002Ftodo-passkeys.nuxt.dev",[3186],[10756],{"type":3176,"value":10753},{"type":3176,"value":10758}," using ",{"type":3171,"tag":3182,"props":10760,"children":10763},{"href":10761,"rel":10762},"https:\u002F\u002Form.drizzle.team\u002F",[3186],[10764],{"type":3176,"value":10765},"Drizzle ORM",{"type":3176,"value":6287},{"type":3171,"tag":3182,"props":10768,"children":10771},{"href":10769,"rel":10770},"https:\u002F\u002Fhub.nuxt.com",[3186],[10772],{"type":3176,"value":10773},"NuxtHub",{"type":3176,"value":3409},{"type":3171,"tag":3178,"props":10776,"children":10777},{},[10778,10780,10785],{"type":3176,"value":10779},"The source code of the demo is available on ",{"type":3171,"tag":3182,"props":10781,"children":10783},{"href":3256,"rel":10782},[3186],[10784],{"type":3176,"value":3256},{"type":3176,"value":3409},{"type":3171,"tag":3574,"props":10787,"children":10789},{"id":10788},"extend-session",[10790],{"type":3176,"value":10791},"Extend Session",{"type":3171,"tag":3178,"props":10793,"children":10794},{},[10795],{"type":3176,"value":10796},"We leverage hooks to let you extend the session data with your own data or log when the user clears the session.",{"type":3171,"tag":3444,"props":10798,"children":10800},{"className":4133,"code":10799,"language":4135,"meta":3045,"style":3045},"\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",[10801],{"type":3171,"tag":3316,"props":10802,"children":10803},{"__ignoreMap":3045},[10804,10812,10844,10852,10860,10931,10939,10947,10955,10967,10974,10982,11049,11057,11068],{"type":3171,"tag":3454,"props":10805,"children":10806},{"class":3456,"line":3131},[10807],{"type":3171,"tag":3454,"props":10808,"children":10809},{"style":3519},[10810],{"type":3176,"value":10811},"\u002F\u002F server\u002Fplugins\u002Fsession.ts\n",{"type":3171,"tag":3454,"props":10813,"children":10814},{"class":3456,"line":3097},[10815,10819,10823,10828,10832,10836,10840],{"type":3171,"tag":3454,"props":10816,"children":10817},{"style":4717},[10818],{"type":3176,"value":5251},{"type":3171,"tag":3454,"props":10820,"children":10821},{"style":4717},[10822],{"type":3176,"value":5366},{"type":3171,"tag":3454,"props":10824,"children":10825},{"style":3690},[10826],{"type":3176,"value":10827}," defineNitroPlugin",{"type":3171,"tag":3454,"props":10829,"children":10830},{"style":3528},[10831],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":10833,"children":10834},{"style":3533},[10835],{"type":3176,"value":7962},{"type":3171,"tag":3454,"props":10837,"children":10838},{"style":3605},[10839],{"type":3176,"value":4423},{"type":3171,"tag":3454,"props":10841,"children":10842},{"style":3533},[10843],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":10845,"children":10846},{"class":3456,"line":3081},[10847],{"type":3171,"tag":3454,"props":10848,"children":10849},{"style":3519},[10850],{"type":3176,"value":10851},"  \u002F\u002F Called when the session is fetched during SSR for the Vue composable (\u002Fapi\u002F_auth\u002Fsession)\n",{"type":3171,"tag":3454,"props":10853,"children":10854},{"class":3456,"line":3717},[10855],{"type":3171,"tag":3454,"props":10856,"children":10857},{"style":3519},[10858],{"type":3176,"value":10859},"  \u002F\u002F Or when we call useUserSession().fetch()\n",{"type":3171,"tag":3454,"props":10861,"children":10862},{"class":3456,"line":3726},[10863,10868,10872,10877,10881,10885,10890,10894,10898,10903,10907,10911,10915,10919,10923,10927],{"type":3171,"tag":3454,"props":10864,"children":10865},{"style":3528},[10866],{"type":3176,"value":10867},"  sessionHooks",{"type":3171,"tag":3454,"props":10869,"children":10870},{"style":3533},[10871],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":10873,"children":10874},{"style":3690},[10875],{"type":3176,"value":10876},"hook",{"type":3171,"tag":3454,"props":10878,"children":10879},{"style":3599},[10880],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":10882,"children":10883},{"style":3533},[10884],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":10886,"children":10887},{"style":3466},[10888],{"type":3176,"value":10889},"fetch",{"type":3171,"tag":3454,"props":10891,"children":10892},{"style":3533},[10893],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":10895,"children":10896},{"style":3533},[10897],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":10899,"children":10900},{"style":3605},[10901],{"type":3176,"value":10902}," async",{"type":3171,"tag":3454,"props":10904,"children":10905},{"style":3533},[10906],{"type":3176,"value":4546},{"type":3171,"tag":3454,"props":10908,"children":10909},{"style":4549},[10910],{"type":3176,"value":7732},{"type":3171,"tag":3454,"props":10912,"children":10913},{"style":3533},[10914],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":10916,"children":10917},{"style":4549},[10918],{"type":3176,"value":7647},{"type":3171,"tag":3454,"props":10920,"children":10921},{"style":3533},[10922],{"type":3176,"value":6137},{"type":3171,"tag":3454,"props":10924,"children":10925},{"style":3605},[10926],{"type":3176,"value":4423},{"type":3171,"tag":3454,"props":10928,"children":10929},{"style":3533},[10930],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":10932,"children":10933},{"class":3456,"line":3743},[10934],{"type":3171,"tag":3454,"props":10935,"children":10936},{"style":3519},[10937],{"type":3176,"value":10938},"    \u002F\u002F extend User Session by calling your database\n",{"type":3171,"tag":3454,"props":10940,"children":10941},{"class":3456,"line":3077},[10942],{"type":3171,"tag":3454,"props":10943,"children":10944},{"style":3519},[10945],{"type":3176,"value":10946},"    \u002F\u002F or\n",{"type":3171,"tag":3454,"props":10948,"children":10949},{"class":3456,"line":3073},[10950],{"type":3171,"tag":3454,"props":10951,"children":10952},{"style":3519},[10953],{"type":3176,"value":10954},"    \u002F\u002F throw createError({ ... }) if session is invalid for example\n",{"type":3171,"tag":3454,"props":10956,"children":10957},{"class":3456,"line":3069},[10958,10963],{"type":3171,"tag":3454,"props":10959,"children":10960},{"style":3533},[10961],{"type":3176,"value":10962},"  }",{"type":3171,"tag":3454,"props":10964,"children":10965},{"style":3599},[10966],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":10968,"children":10969},{"class":3456,"line":3905},[10970],{"type":3171,"tag":3454,"props":10971,"children":10972},{"emptyLinePlaceholder":1200},[10973],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":10975,"children":10976},{"class":3456,"line":3922},[10977],{"type":3171,"tag":3454,"props":10978,"children":10979},{"style":3519},[10980],{"type":3176,"value":10981},"  \u002F\u002F Called when we call useUserSession().clear() or clearUserSession(event)\n",{"type":3171,"tag":3454,"props":10983,"children":10984},{"class":3456,"line":3943},[10985,10989,10993,10997,11001,11005,11009,11013,11017,11021,11025,11029,11033,11037,11041,11045],{"type":3171,"tag":3454,"props":10986,"children":10987},{"style":3528},[10988],{"type":3176,"value":10867},{"type":3171,"tag":3454,"props":10990,"children":10991},{"style":3533},[10992],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":10994,"children":10995},{"style":3690},[10996],{"type":3176,"value":10876},{"type":3171,"tag":3454,"props":10998,"children":10999},{"style":3599},[11000],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":11002,"children":11003},{"style":3533},[11004],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":11006,"children":11007},{"style":3466},[11008],{"type":3176,"value":3877},{"type":3171,"tag":3454,"props":11010,"children":11011},{"style":3533},[11012],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":11014,"children":11015},{"style":3533},[11016],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":11018,"children":11019},{"style":3605},[11020],{"type":3176,"value":10902},{"type":3171,"tag":3454,"props":11022,"children":11023},{"style":3533},[11024],{"type":3176,"value":4546},{"type":3171,"tag":3454,"props":11026,"children":11027},{"style":4549},[11028],{"type":3176,"value":7732},{"type":3171,"tag":3454,"props":11030,"children":11031},{"style":3533},[11032],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":11034,"children":11035},{"style":4549},[11036],{"type":3176,"value":7647},{"type":3171,"tag":3454,"props":11038,"children":11039},{"style":3533},[11040],{"type":3176,"value":6137},{"type":3171,"tag":3454,"props":11042,"children":11043},{"style":3605},[11044],{"type":3176,"value":4423},{"type":3171,"tag":3454,"props":11046,"children":11047},{"style":3533},[11048],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":11050,"children":11051},{"class":3456,"line":3976},[11052],{"type":3171,"tag":3454,"props":11053,"children":11054},{"style":3519},[11055],{"type":3176,"value":11056},"    \u002F\u002F Log that user logged out\n",{"type":3171,"tag":3454,"props":11058,"children":11059},{"class":3456,"line":4031},[11060,11064],{"type":3171,"tag":3454,"props":11061,"children":11062},{"style":3533},[11063],{"type":3176,"value":10962},{"type":3171,"tag":3454,"props":11065,"children":11066},{"style":3599},[11067],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":11069,"children":11070},{"class":3456,"line":4040},[11071,11075],{"type":3171,"tag":3454,"props":11072,"children":11073},{"style":3533},[11074],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":11076,"children":11077},{"style":3528},[11078],{"type":3176,"value":4897},{"type":3171,"tag":3262,"props":11080,"children":11082},{"id":11081},"server-side-rendering",[11083],{"type":3176,"value":11084},"Server-Side Rendering",{"type":3171,"tag":3178,"props":11086,"children":11087},{},[11088,11090,11096,11098],{"type":3176,"value":11089},"You can make authenticated requests both from the client and the server. However, you must use ",{"type":3171,"tag":3316,"props":11091,"children":11093},{"className":11092},[],[11094],{"type":3176,"value":11095},"useRequestFetch()",{"type":3176,"value":11097}," to make authenticated requests during SSR if you are not using ",{"type":3171,"tag":3316,"props":11099,"children":11101},{"className":11100},[],[11102],{"type":3176,"value":11103},"useFetch()",{"type":3171,"tag":3444,"props":11105,"children":11107},{"className":3582,"code":11106,"language":3584,"meta":3045,"style":3045},"\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",[11108],{"type":3171,"tag":3316,"props":11109,"children":11110},{"__ignoreMap":3045},[11111,11150,11158,11248,11255,11263,11315],{"type":3171,"tag":3454,"props":11112,"children":11113},{"class":3456,"line":3131},[11114,11118,11122,11126,11130,11134,11138,11142,11146],{"type":3171,"tag":3454,"props":11115,"children":11116},{"style":3533},[11117],{"type":3176,"value":3596},{"type":3171,"tag":3454,"props":11119,"children":11120},{"style":3599},[11121],{"type":3176,"value":3602},{"type":3171,"tag":3454,"props":11123,"children":11124},{"style":3605},[11125],{"type":3176,"value":3608},{"type":3171,"tag":3454,"props":11127,"children":11128},{"style":3605},[11129],{"type":3176,"value":9909},{"type":3171,"tag":3454,"props":11131,"children":11132},{"style":3533},[11133],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":11135,"children":11136},{"style":3533},[11137],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":11139,"children":11140},{"style":3466},[11141],{"type":3176,"value":4135},{"type":3171,"tag":3454,"props":11143,"children":11144},{"style":3533},[11145],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":11147,"children":11148},{"style":3533},[11149],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":11151,"children":11152},{"class":3456,"line":3097},[11153],{"type":3171,"tag":3454,"props":11154,"children":11155},{"style":3519},[11156],{"type":3176,"value":11157},"\u002F\u002F When using useAsyncData\n",{"type":3171,"tag":3454,"props":11159,"children":11160},{"class":3456,"line":3081},[11161,11165,11169,11174,11178,11182,11186,11191,11195,11199,11204,11208,11212,11216,11220,11225,11230,11234,11239,11243],{"type":3171,"tag":3454,"props":11162,"children":11163},{"style":3605},[11164],{"type":3176,"value":3621},{"type":3171,"tag":3454,"props":11166,"children":11167},{"style":3533},[11168],{"type":3176,"value":3626},{"type":3171,"tag":3454,"props":11170,"children":11171},{"style":3528},[11172],{"type":3176,"value":11173}," data ",{"type":3171,"tag":3454,"props":11175,"children":11176},{"style":3533},[11177],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":11179,"children":11180},{"style":3533},[11181],{"type":3176,"value":3687},{"type":3171,"tag":3454,"props":11183,"children":11184},{"style":4717},[11185],{"type":3176,"value":4973},{"type":3171,"tag":3454,"props":11187,"children":11188},{"style":3690},[11189],{"type":3176,"value":11190}," useAsyncData",{"type":3171,"tag":3454,"props":11192,"children":11193},{"style":3528},[11194],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":11196,"children":11197},{"style":3533},[11198],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":11200,"children":11201},{"style":3466},[11202],{"type":3176,"value":11203},"team",{"type":3171,"tag":3454,"props":11205,"children":11206},{"style":3533},[11207],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":11209,"children":11210},{"style":3533},[11211],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":11213,"children":11214},{"style":3533},[11215],{"type":3176,"value":4418},{"type":3171,"tag":3454,"props":11217,"children":11218},{"style":3605},[11219],{"type":3176,"value":4423},{"type":3171,"tag":3454,"props":11221,"children":11222},{"style":3690},[11223],{"type":3176,"value":11224}," useRequestFetch",{"type":3171,"tag":3454,"props":11226,"children":11227},{"style":3528},[11228],{"type":3176,"value":11229},"()(",{"type":3171,"tag":3454,"props":11231,"children":11232},{"style":3533},[11233],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":11235,"children":11236},{"style":3466},[11237],{"type":3176,"value":11238},"\u002Fapi\u002Fprotected-endpoint",{"type":3171,"tag":3454,"props":11240,"children":11241},{"style":3533},[11242],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":11244,"children":11245},{"style":3528},[11246],{"type":3176,"value":11247},"))\n",{"type":3171,"tag":3454,"props":11249,"children":11250},{"class":3456,"line":3717},[11251],{"type":3171,"tag":3454,"props":11252,"children":11253},{"emptyLinePlaceholder":1200},[11254],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":11256,"children":11257},{"class":3456,"line":3726},[11258],{"type":3171,"tag":3454,"props":11259,"children":11260},{"style":3519},[11261],{"type":3176,"value":11262},"\u002F\u002F useFetch will automatically use useRequestFetch during SSR\n",{"type":3171,"tag":3454,"props":11264,"children":11265},{"class":3456,"line":3743},[11266,11270,11274,11278,11282,11286,11290,11295,11299,11303,11307,11311],{"type":3171,"tag":3454,"props":11267,"children":11268},{"style":3605},[11269],{"type":3176,"value":3621},{"type":3171,"tag":3454,"props":11271,"children":11272},{"style":3533},[11273],{"type":3176,"value":3626},{"type":3171,"tag":3454,"props":11275,"children":11276},{"style":3528},[11277],{"type":3176,"value":11173},{"type":3171,"tag":3454,"props":11279,"children":11280},{"style":3533},[11281],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":11283,"children":11284},{"style":3533},[11285],{"type":3176,"value":3687},{"type":3171,"tag":3454,"props":11287,"children":11288},{"style":4717},[11289],{"type":3176,"value":4973},{"type":3171,"tag":3454,"props":11291,"children":11292},{"style":3690},[11293],{"type":3176,"value":11294}," useFetch",{"type":3171,"tag":3454,"props":11296,"children":11297},{"style":3528},[11298],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":11300,"children":11301},{"style":3533},[11302],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":11304,"children":11305},{"style":3466},[11306],{"type":3176,"value":11238},{"type":3171,"tag":3454,"props":11308,"children":11309},{"style":3533},[11310],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":11312,"children":11313},{"style":3528},[11314],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":11316,"children":11317},{"class":3456,"line":3077},[11318,11322,11326],{"type":3171,"tag":3454,"props":11319,"children":11320},{"style":3533},[11321],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":11323,"children":11324},{"style":3599},[11325],{"type":3176,"value":3602},{"type":3171,"tag":3454,"props":11327,"children":11328},{"style":3533},[11329],{"type":3176,"value":3613},{"type":3171,"tag":4635,"props":11331,"children":11332},{},[11333],{"type":3171,"tag":3178,"props":11334,"children":11335},{},[11336,11338,11345,11347,11352],{"type":3176,"value":11337},"There's ",{"type":3171,"tag":3182,"props":11339,"children":11342},{"href":11340,"rel":11341},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F24813",[3186],[11343],{"type":3176,"value":11344},"an open issue",{"type":3176,"value":11346}," to include credentials in ",{"type":3171,"tag":3316,"props":11348,"children":11350},{"className":11349},[],[11351],{"type":3176,"value":634},{"type":3176,"value":11353}," in Nuxt.",{"type":3171,"tag":3262,"props":11355,"children":11357},{"id":11356},"hybrid-rendering",[11358],{"type":3176,"value":3278},{"type":3171,"tag":3178,"props":11360,"children":11361},{},[11362,11364,11377],{"type":3176,"value":11363},"When using ",{"type":3171,"tag":3182,"props":11365,"children":11368},{"href":11366,"rel":11367},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fguide\u002Fconcepts\u002Frendering#hybrid-rendering",[3186],[11369,11371],{"type":3176,"value":11370},"Nuxt ",{"type":3171,"tag":3316,"props":11372,"children":11374},{"className":11373},[],[11375],{"type":3176,"value":11376},"routeRules",{"type":3176,"value":11378}," 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":3171,"tag":3178,"props":11380,"children":11381},{},[11382],{"type":3176,"value":11383},"This is because the user session is stored in a secure cookie and cannot be accessed during prerendering.",{"type":3171,"tag":3178,"props":11385,"children":11386},{},[11387],{"type":3171,"tag":4126,"props":11388,"children":11389},{},[11390],{"type":3176,"value":11391},"This means that you should not rely on the user session during prerendering.",{"type":3171,"tag":3178,"props":11393,"children":11394},{},[11395,11397,11403,11405,11410],{"type":3176,"value":11396},"You may also choose to instruct Nuxt Auth Utils to fetch the user session only on the client side, with the ",{"type":3171,"tag":3316,"props":11398,"children":11400},{"className":11399},[],[11401],{"type":3176,"value":11402},"loadStrategy",{"type":3176,"value":11404}," option in your ",{"type":3171,"tag":3316,"props":11406,"children":11408},{"className":11407},[],[11409],{"type":3176,"value":233},{"type":3176,"value":4194},{"type":3171,"tag":3444,"props":11412,"children":11414},{"className":4133,"code":11413,"language":4135,"meta":3045,"style":3045},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'client-only'\n  }\n})\n",[11415],{"type":3171,"tag":3316,"props":11416,"children":11417},{"__ignoreMap":3045},[11418,11441,11456,11481,11488],{"type":3171,"tag":3454,"props":11419,"children":11420},{"class":3456,"line":3131},[11421,11425,11429,11433,11437],{"type":3171,"tag":3454,"props":11422,"children":11423},{"style":4717},[11424],{"type":3176,"value":5251},{"type":3171,"tag":3454,"props":11426,"children":11427},{"style":4717},[11428],{"type":3176,"value":5366},{"type":3171,"tag":3454,"props":11430,"children":11431},{"style":3690},[11432],{"type":3176,"value":5371},{"type":3171,"tag":3454,"props":11434,"children":11435},{"style":3528},[11436],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":11438,"children":11439},{"style":3533},[11440],{"type":3176,"value":5381},{"type":3171,"tag":3454,"props":11442,"children":11443},{"class":3456,"line":3097},[11444,11448,11452],{"type":3171,"tag":3454,"props":11445,"children":11446},{"style":3599},[11447],{"type":3176,"value":6641},{"type":3171,"tag":3454,"props":11449,"children":11450},{"style":3533},[11451],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":11453,"children":11454},{"style":3533},[11455],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":11457,"children":11458},{"class":3456,"line":3081},[11459,11464,11468,11472,11477],{"type":3171,"tag":3454,"props":11460,"children":11461},{"style":3599},[11462],{"type":3176,"value":11463},"    loadStrategy",{"type":3171,"tag":3454,"props":11465,"children":11466},{"style":3533},[11467],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":11469,"children":11470},{"style":3533},[11471],{"type":3176,"value":4778},{"type":3171,"tag":3454,"props":11473,"children":11474},{"style":3466},[11475],{"type":3176,"value":11476},"client-only",{"type":3171,"tag":3454,"props":11478,"children":11479},{"style":3533},[11480],{"type":3176,"value":4787},{"type":3171,"tag":3454,"props":11482,"children":11483},{"class":3456,"line":3717},[11484],{"type":3171,"tag":3454,"props":11485,"children":11486},{"style":3533},[11487],{"type":3176,"value":5155},{"type":3171,"tag":3454,"props":11489,"children":11490},{"class":3456,"line":3726},[11491,11495],{"type":3171,"tag":3454,"props":11492,"children":11493},{"style":3533},[11494],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":11496,"children":11497},{"style":3528},[11498],{"type":3176,"value":4897},{"type":3171,"tag":3178,"props":11500,"children":11501},{},[11502,11504,11509,11511,11516,11517,11523],{"type":3176,"value":11503},"When using the ",{"type":3171,"tag":3316,"props":11505,"children":11507},{"className":11506},[],[11508],{"type":3176,"value":11476},{"type":3176,"value":11510}," load strategy, the user session can still be manually fetched on the server side by calling ",{"type":3171,"tag":3316,"props":11512,"children":11514},{"className":11513},[],[11515],{"type":3176,"value":10889},{"type":3176,"value":7402},{"type":3171,"tag":3316,"props":11518,"children":11520},{"className":11519},[],[11521],{"type":3176,"value":11522},"useUserSession",{"type":3176,"value":11524}," composable.",{"type":3171,"tag":3574,"props":11526,"children":11528},{"id":11527},"disable-session-loading",[11529],{"type":3176,"value":11530},"Disable session loading",{"type":3171,"tag":3178,"props":11532,"children":11533},{},[11534,11536,11541,11542,11547],{"type":3176,"value":11535},"You may also choose to disable session loading entirely, with the ",{"type":3171,"tag":3316,"props":11537,"children":11539},{"className":11538},[],[11540],{"type":3176,"value":11402},{"type":3176,"value":11404},{"type":3171,"tag":3316,"props":11543,"children":11545},{"className":11544},[],[11546],{"type":3176,"value":233},{"type":3176,"value":4194},{"type":3171,"tag":3444,"props":11549,"children":11551},{"className":4133,"code":11550,"language":4135,"meta":3045,"style":3045},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'none'\n  }\n})\n",[11552],{"type":3171,"tag":3316,"props":11553,"children":11554},{"__ignoreMap":3045},[11555,11578,11593,11617,11624],{"type":3171,"tag":3454,"props":11556,"children":11557},{"class":3456,"line":3131},[11558,11562,11566,11570,11574],{"type":3171,"tag":3454,"props":11559,"children":11560},{"style":4717},[11561],{"type":3176,"value":5251},{"type":3171,"tag":3454,"props":11563,"children":11564},{"style":4717},[11565],{"type":3176,"value":5366},{"type":3171,"tag":3454,"props":11567,"children":11568},{"style":3690},[11569],{"type":3176,"value":5371},{"type":3171,"tag":3454,"props":11571,"children":11572},{"style":3528},[11573],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":11575,"children":11576},{"style":3533},[11577],{"type":3176,"value":5381},{"type":3171,"tag":3454,"props":11579,"children":11580},{"class":3456,"line":3097},[11581,11585,11589],{"type":3171,"tag":3454,"props":11582,"children":11583},{"style":3599},[11584],{"type":3176,"value":6641},{"type":3171,"tag":3454,"props":11586,"children":11587},{"style":3533},[11588],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":11590,"children":11591},{"style":3533},[11592],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":11594,"children":11595},{"class":3456,"line":3081},[11596,11600,11604,11608,11613],{"type":3171,"tag":3454,"props":11597,"children":11598},{"style":3599},[11599],{"type":3176,"value":11463},{"type":3171,"tag":3454,"props":11601,"children":11602},{"style":3533},[11603],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":11605,"children":11606},{"style":3533},[11607],{"type":3176,"value":4778},{"type":3171,"tag":3454,"props":11609,"children":11610},{"style":3466},[11611],{"type":3176,"value":11612},"none",{"type":3171,"tag":3454,"props":11614,"children":11615},{"style":3533},[11616],{"type":3176,"value":4787},{"type":3171,"tag":3454,"props":11618,"children":11619},{"class":3456,"line":3717},[11620],{"type":3171,"tag":3454,"props":11621,"children":11622},{"style":3533},[11623],{"type":3176,"value":5155},{"type":3171,"tag":3454,"props":11625,"children":11626},{"class":3456,"line":3726},[11627,11631],{"type":3171,"tag":3454,"props":11628,"children":11629},{"style":3533},[11630],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":11632,"children":11633},{"style":3528},[11634],{"type":3176,"value":4897},{"type":3171,"tag":3178,"props":11636,"children":11637},{},[11638,11639,11644,11646,11652],{"type":3176,"value":11503},{"type":3171,"tag":3316,"props":11640,"children":11642},{"className":11641},[],[11643],{"type":3176,"value":11612},{"type":3176,"value":11645}," load strategy, the user session can still be manually fetched by calling ",{"type":3171,"tag":3316,"props":11647,"children":11649},{"className":11648},[],[11650],{"type":3176,"value":11651},"useUserSession().fetch()",{"type":3176,"value":3409},{"type":3171,"tag":3574,"props":11654,"children":11656},{"id":11655},"authstate-component",[11657,11662],{"type":3171,"tag":3316,"props":11658,"children":11660},{"className":11659},[],[11661],{"type":3176,"value":3345},{"type":3176,"value":3347},{"type":3171,"tag":3178,"props":11664,"children":11665},{},[11666,11668,11673],{"type":3176,"value":11667},"You can use the ",{"type":3171,"tag":3316,"props":11669,"children":11671},{"className":11670},[],[11672],{"type":3176,"value":3345},{"type":3176,"value":11674}," component to safely display auth-related data in your components without worrying about the rendering mode.",{"type":3171,"tag":3178,"props":11676,"children":11677},{},[11678],{"type":3176,"value":11679},"One common use case if the Login button in the header:",{"type":3171,"tag":3444,"props":11681,"children":11683},{"className":3582,"code":11682,"language":3584,"meta":3045,"style":3045},"\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",[11684],{"type":3171,"tag":3316,"props":11685,"children":11686},{"__ignoreMap":3045},[11687,11702,11718,11772,11844,11903,11919,11934],{"type":3171,"tag":3454,"props":11688,"children":11689},{"class":3456,"line":3131},[11690,11694,11698],{"type":3171,"tag":3454,"props":11691,"children":11692},{"style":3533},[11693],{"type":3176,"value":3596},{"type":3171,"tag":3454,"props":11695,"children":11696},{"style":3599},[11697],{"type":3176,"value":3736},{"type":3171,"tag":3454,"props":11699,"children":11700},{"style":3533},[11701],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":11703,"children":11704},{"class":3456,"line":3097},[11705,11709,11714],{"type":3171,"tag":3454,"props":11706,"children":11707},{"style":3533},[11708],{"type":3176,"value":3749},{"type":3171,"tag":3454,"props":11710,"children":11711},{"style":3599},[11712],{"type":3176,"value":11713},"header",{"type":3171,"tag":3454,"props":11715,"children":11716},{"style":3533},[11717],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":11719,"children":11720},{"class":3456,"line":3081},[11721,11725,11730,11735,11739,11743,11748,11752,11756,11760,11764,11768],{"type":3171,"tag":3454,"props":11722,"children":11723},{"style":3533},[11724],{"type":3176,"value":3789},{"type":3171,"tag":3454,"props":11726,"children":11727},{"style":3599},[11728],{"type":3176,"value":11729},"AuthState",{"type":3171,"tag":3454,"props":11731,"children":11732},{"style":3605},[11733],{"type":3176,"value":11734}," v-slot",{"type":3171,"tag":3454,"props":11736,"children":11737},{"style":3533},[11738],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":11740,"children":11741},{"style":3533},[11742],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":11744,"children":11745},{"style":3533},[11746],{"type":3176,"value":11747},"{ ",{"type":3171,"tag":3454,"props":11749,"children":11750},{"style":3528},[11751],{"type":3176,"value":3773},{"type":3171,"tag":3454,"props":11753,"children":11754},{"style":3533},[11755],{"type":3176,"value":7336},{"type":3171,"tag":3454,"props":11757,"children":11758},{"style":3528},[11759],{"type":3176,"value":3877},{"type":3171,"tag":3454,"props":11761,"children":11762},{"style":3533},[11763],{"type":3176,"value":7567},{"type":3171,"tag":3454,"props":11765,"children":11766},{"style":3533},[11767],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":11769,"children":11770},{"style":3533},[11771],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":11773,"children":11774},{"class":3456,"line":3717},[11775,11780,11784,11788,11792,11796,11800,11804,11808,11812,11816,11820,11824,11828,11832,11836,11840],{"type":3171,"tag":3454,"props":11776,"children":11777},{"style":3533},[11778],{"type":3176,"value":11779},"      \u003C",{"type":3171,"tag":3454,"props":11781,"children":11782},{"style":3599},[11783],{"type":3176,"value":3859},{"type":3171,"tag":3454,"props":11785,"children":11786},{"style":3605},[11787],{"type":3176,"value":3759},{"type":3171,"tag":3454,"props":11789,"children":11790},{"style":3533},[11791],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":11793,"children":11794},{"style":3533},[11795],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":11797,"children":11798},{"style":3466},[11799],{"type":3176,"value":3773},{"type":3171,"tag":3454,"props":11801,"children":11802},{"style":3533},[11803],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":11805,"children":11806},{"style":3605},[11807],{"type":3176,"value":3864},{"type":3171,"tag":3454,"props":11809,"children":11810},{"style":3533},[11811],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":11813,"children":11814},{"style":3533},[11815],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":11817,"children":11818},{"style":3466},[11819],{"type":3176,"value":3877},{"type":3171,"tag":3454,"props":11821,"children":11822},{"style":3533},[11823],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":11825,"children":11826},{"style":3533},[11827],{"type":3176,"value":3798},{"type":3171,"tag":3454,"props":11829,"children":11830},{"style":3528},[11831],{"type":3176,"value":3890},{"type":3171,"tag":3454,"props":11833,"children":11834},{"style":3533},[11835],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":11837,"children":11838},{"style":3599},[11839],{"type":3176,"value":3859},{"type":3171,"tag":3454,"props":11841,"children":11842},{"style":3533},[11843],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":11845,"children":11846},{"class":3456,"line":3726},[11847,11851,11856,11860,11865,11869,11873,11878,11882,11886,11891,11895,11899],{"type":3171,"tag":3454,"props":11848,"children":11849},{"style":3533},[11850],{"type":3176,"value":11779},{"type":3171,"tag":3454,"props":11852,"children":11853},{"style":3599},[11854],{"type":3176,"value":11855},"NuxtLink",{"type":3171,"tag":3454,"props":11857,"children":11858},{"style":4717},[11859],{"type":3176,"value":3936},{"type":3171,"tag":3454,"props":11861,"children":11862},{"style":3605},[11863],{"type":3176,"value":11864}," to",{"type":3171,"tag":3454,"props":11866,"children":11867},{"style":3533},[11868],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":11870,"children":11871},{"style":3533},[11872],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":11874,"children":11875},{"style":3466},[11876],{"type":3176,"value":11877},"\u002Flogin",{"type":3171,"tag":3454,"props":11879,"children":11880},{"style":3533},[11881],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":11883,"children":11884},{"style":3533},[11885],{"type":3176,"value":3798},{"type":3171,"tag":3454,"props":11887,"children":11888},{"style":3528},[11889],{"type":3176,"value":11890},"Login",{"type":3171,"tag":3454,"props":11892,"children":11893},{"style":3533},[11894],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":11896,"children":11897},{"style":3599},[11898],{"type":3176,"value":11855},{"type":3171,"tag":3454,"props":11900,"children":11901},{"style":3533},[11902],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":11904,"children":11905},{"class":3456,"line":3743},[11906,11911,11915],{"type":3171,"tag":3454,"props":11907,"children":11908},{"style":3533},[11909],{"type":3176,"value":11910},"    \u003C\u002F",{"type":3171,"tag":3454,"props":11912,"children":11913},{"style":3599},[11914],{"type":3176,"value":11729},{"type":3171,"tag":3454,"props":11916,"children":11917},{"style":3533},[11918],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":11920,"children":11921},{"class":3456,"line":3077},[11922,11926,11930],{"type":3171,"tag":3454,"props":11923,"children":11924},{"style":3533},[11925],{"type":3176,"value":3911},{"type":3171,"tag":3454,"props":11927,"children":11928},{"style":3599},[11929],{"type":3176,"value":11713},{"type":3171,"tag":3454,"props":11931,"children":11932},{"style":3533},[11933],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":11935,"children":11936},{"class":3456,"line":3073},[11937,11941,11945],{"type":3171,"tag":3454,"props":11938,"children":11939},{"style":3533},[11940],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":11942,"children":11943},{"style":3599},[11944],{"type":3176,"value":3736},{"type":3171,"tag":3454,"props":11946,"children":11947},{"style":3533},[11948],{"type":3176,"value":3613},{"type":3171,"tag":3178,"props":11950,"children":11951},{},[11952,11954,11959],{"type":3176,"value":11953},"If the page is cached or prerendered or the load strategy set as ",{"type":3171,"tag":3316,"props":11955,"children":11957},{"className":11956},[],[11958],{"type":3176,"value":11476},{"type":3176,"value":11960},", nothing will be rendered until the user session is fetched on the client-side.",{"type":3171,"tag":3178,"props":11962,"children":11963},{},[11964,11965,11971],{"type":3176,"value":11667},{"type":3171,"tag":3316,"props":11966,"children":11968},{"className":11967},[],[11969],{"type":3176,"value":11970},"placeholder",{"type":3176,"value":11972}," slot to show a placeholder on server-side and while the user session is being fetched on client-side for the prerendered pages:",{"type":3171,"tag":3444,"props":11974,"children":11976},{"className":3582,"code":11975,"language":3584,"meta":3045,"style":3045},"\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",[11977],{"type":3171,"tag":3316,"props":11978,"children":11979},{"__ignoreMap":3045},[11980,11995,12010,12025,12083,12155,12210,12226,12249,12286,12301,12316,12331],{"type":3171,"tag":3454,"props":11981,"children":11982},{"class":3456,"line":3131},[11983,11987,11991],{"type":3171,"tag":3454,"props":11984,"children":11985},{"style":3533},[11986],{"type":3176,"value":3596},{"type":3171,"tag":3454,"props":11988,"children":11989},{"style":3599},[11990],{"type":3176,"value":3736},{"type":3171,"tag":3454,"props":11992,"children":11993},{"style":3533},[11994],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":11996,"children":11997},{"class":3456,"line":3097},[11998,12002,12006],{"type":3171,"tag":3454,"props":11999,"children":12000},{"style":3533},[12001],{"type":3176,"value":3749},{"type":3171,"tag":3454,"props":12003,"children":12004},{"style":3599},[12005],{"type":3176,"value":11713},{"type":3171,"tag":3454,"props":12007,"children":12008},{"style":3533},[12009],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":12011,"children":12012},{"class":3456,"line":3081},[12013,12017,12021],{"type":3171,"tag":3454,"props":12014,"children":12015},{"style":3533},[12016],{"type":3176,"value":3789},{"type":3171,"tag":3454,"props":12018,"children":12019},{"style":3599},[12020],{"type":3176,"value":11729},{"type":3171,"tag":3454,"props":12022,"children":12023},{"style":3533},[12024],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":12026,"children":12027},{"class":3456,"line":3717},[12028,12032,12036,12041,12046,12050,12054,12058,12062,12066,12071,12075,12079],{"type":3171,"tag":3454,"props":12029,"children":12030},{"style":3533},[12031],{"type":3176,"value":11779},{"type":3171,"tag":3454,"props":12033,"children":12034},{"style":3599},[12035],{"type":3176,"value":3736},{"type":3171,"tag":3454,"props":12037,"children":12038},{"style":3533},[12039],{"type":3176,"value":12040}," #",{"type":3171,"tag":3454,"props":12042,"children":12043},{"style":3605},[12044],{"type":3176,"value":12045},"default",{"type":3171,"tag":3454,"props":12047,"children":12048},{"style":3533},[12049],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":12051,"children":12052},{"style":3533},[12053],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":12055,"children":12056},{"style":3533},[12057],{"type":3176,"value":7826},{"type":3171,"tag":3454,"props":12059,"children":12060},{"style":3528},[12061],{"type":3176,"value":3631},{"type":3171,"tag":3454,"props":12063,"children":12064},{"style":3533},[12065],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":12067,"children":12068},{"style":3528},[12069],{"type":3176,"value":12070}," clear ",{"type":3171,"tag":3454,"props":12072,"children":12073},{"style":3533},[12074],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":12076,"children":12077},{"style":3533},[12078],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":12080,"children":12081},{"style":3533},[12082],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":12084,"children":12085},{"class":3456,"line":3726},[12086,12091,12095,12099,12103,12107,12111,12115,12119,12123,12127,12131,12135,12139,12143,12147,12151],{"type":3171,"tag":3454,"props":12087,"children":12088},{"style":3533},[12089],{"type":3176,"value":12090},"        \u003C",{"type":3171,"tag":3454,"props":12092,"children":12093},{"style":3599},[12094],{"type":3176,"value":3859},{"type":3171,"tag":3454,"props":12096,"children":12097},{"style":3605},[12098],{"type":3176,"value":3759},{"type":3171,"tag":3454,"props":12100,"children":12101},{"style":3533},[12102],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":12104,"children":12105},{"style":3533},[12106],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":12108,"children":12109},{"style":3466},[12110],{"type":3176,"value":3773},{"type":3171,"tag":3454,"props":12112,"children":12113},{"style":3533},[12114],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":12116,"children":12117},{"style":3605},[12118],{"type":3176,"value":3864},{"type":3171,"tag":3454,"props":12120,"children":12121},{"style":3533},[12122],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":12124,"children":12125},{"style":3533},[12126],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":12128,"children":12129},{"style":3466},[12130],{"type":3176,"value":3877},{"type":3171,"tag":3454,"props":12132,"children":12133},{"style":3533},[12134],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":12136,"children":12137},{"style":3533},[12138],{"type":3176,"value":3798},{"type":3171,"tag":3454,"props":12140,"children":12141},{"style":3528},[12142],{"type":3176,"value":3890},{"type":3171,"tag":3454,"props":12144,"children":12145},{"style":3533},[12146],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":12148,"children":12149},{"style":3599},[12150],{"type":3176,"value":3859},{"type":3171,"tag":3454,"props":12152,"children":12153},{"style":3533},[12154],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":12156,"children":12157},{"class":3456,"line":3743},[12158,12162,12166,12170,12174,12178,12182,12186,12190,12194,12198,12202,12206],{"type":3171,"tag":3454,"props":12159,"children":12160},{"style":3533},[12161],{"type":3176,"value":12090},{"type":3171,"tag":3454,"props":12163,"children":12164},{"style":3599},[12165],{"type":3176,"value":11855},{"type":3171,"tag":3454,"props":12167,"children":12168},{"style":4717},[12169],{"type":3176,"value":3936},{"type":3171,"tag":3454,"props":12171,"children":12172},{"style":3605},[12173],{"type":3176,"value":11864},{"type":3171,"tag":3454,"props":12175,"children":12176},{"style":3533},[12177],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":12179,"children":12180},{"style":3533},[12181],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":12183,"children":12184},{"style":3466},[12185],{"type":3176,"value":11877},{"type":3171,"tag":3454,"props":12187,"children":12188},{"style":3533},[12189],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":12191,"children":12192},{"style":3533},[12193],{"type":3176,"value":3798},{"type":3171,"tag":3454,"props":12195,"children":12196},{"style":3528},[12197],{"type":3176,"value":11890},{"type":3171,"tag":3454,"props":12199,"children":12200},{"style":3533},[12201],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":12203,"children":12204},{"style":3599},[12205],{"type":3176,"value":11855},{"type":3171,"tag":3454,"props":12207,"children":12208},{"style":3533},[12209],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":12211,"children":12212},{"class":3456,"line":3077},[12213,12218,12222],{"type":3171,"tag":3454,"props":12214,"children":12215},{"style":3533},[12216],{"type":3176,"value":12217},"      \u003C\u002F",{"type":3171,"tag":3454,"props":12219,"children":12220},{"style":3599},[12221],{"type":3176,"value":3736},{"type":3171,"tag":3454,"props":12223,"children":12224},{"style":3533},[12225],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":12227,"children":12228},{"class":3456,"line":3073},[12229,12233,12237,12241,12245],{"type":3171,"tag":3454,"props":12230,"children":12231},{"style":3533},[12232],{"type":3176,"value":11779},{"type":3171,"tag":3454,"props":12234,"children":12235},{"style":3599},[12236],{"type":3176,"value":3736},{"type":3171,"tag":3454,"props":12238,"children":12239},{"style":3533},[12240],{"type":3176,"value":12040},{"type":3171,"tag":3454,"props":12242,"children":12243},{"style":3605},[12244],{"type":3176,"value":11970},{"type":3171,"tag":3454,"props":12246,"children":12247},{"style":3533},[12248],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":12250,"children":12251},{"class":3456,"line":3069},[12252,12256,12260,12265,12269,12274,12278,12282],{"type":3171,"tag":3454,"props":12253,"children":12254},{"style":3533},[12255],{"type":3176,"value":12090},{"type":3171,"tag":3454,"props":12257,"children":12258},{"style":3599},[12259],{"type":3176,"value":3859},{"type":3171,"tag":3454,"props":12261,"children":12262},{"style":3605},[12263],{"type":3176,"value":12264}," disabled",{"type":3171,"tag":3454,"props":12266,"children":12267},{"style":3533},[12268],{"type":3176,"value":3798},{"type":3171,"tag":3454,"props":12270,"children":12271},{"style":3528},[12272],{"type":3176,"value":12273},"Loading...",{"type":3171,"tag":3454,"props":12275,"children":12276},{"style":3533},[12277],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":12279,"children":12280},{"style":3599},[12281],{"type":3176,"value":3859},{"type":3171,"tag":3454,"props":12283,"children":12284},{"style":3533},[12285],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":12287,"children":12288},{"class":3456,"line":3905},[12289,12293,12297],{"type":3171,"tag":3454,"props":12290,"children":12291},{"style":3533},[12292],{"type":3176,"value":12217},{"type":3171,"tag":3454,"props":12294,"children":12295},{"style":3599},[12296],{"type":3176,"value":3736},{"type":3171,"tag":3454,"props":12298,"children":12299},{"style":3533},[12300],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":12302,"children":12303},{"class":3456,"line":3922},[12304,12308,12312],{"type":3171,"tag":3454,"props":12305,"children":12306},{"style":3533},[12307],{"type":3176,"value":11910},{"type":3171,"tag":3454,"props":12309,"children":12310},{"style":3599},[12311],{"type":3176,"value":11729},{"type":3171,"tag":3454,"props":12313,"children":12314},{"style":3533},[12315],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":12317,"children":12318},{"class":3456,"line":3943},[12319,12323,12327],{"type":3171,"tag":3454,"props":12320,"children":12321},{"style":3533},[12322],{"type":3176,"value":3911},{"type":3171,"tag":3454,"props":12324,"children":12325},{"style":3599},[12326],{"type":3176,"value":11713},{"type":3171,"tag":3454,"props":12328,"children":12329},{"style":3533},[12330],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":12332,"children":12333},{"class":3456,"line":3976},[12334,12338,12342],{"type":3171,"tag":3454,"props":12335,"children":12336},{"style":3533},[12337],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":12339,"children":12340},{"style":3599},[12341],{"type":3176,"value":3736},{"type":3171,"tag":3454,"props":12343,"children":12344},{"style":3533},[12345],{"type":3176,"value":3613},{"type":3171,"tag":3178,"props":12347,"children":12348},{},[12349,12351,12356,12358,12364,12366,12372],{"type":3176,"value":12350},"If you are caching your routes with ",{"type":3171,"tag":3316,"props":12352,"children":12354},{"className":12353},[],[12355],{"type":3176,"value":11376},{"type":3176,"value":12357},", please make sure to use ",{"type":3171,"tag":3182,"props":12359,"children":12362},{"href":12360,"rel":12361},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fnitro",[3186],[12363],{"type":3176,"value":837},{"type":3176,"value":12365}," >= ",{"type":3171,"tag":3316,"props":12367,"children":12369},{"className":12368},[],[12370],{"type":3176,"value":12371},"2.9.7",{"type":3176,"value":12373}," to support the client-side fetching of the user session.",{"type":3171,"tag":3262,"props":12375,"children":12377},{"id":12376},"websocket-support",[12378],{"type":3176,"value":12379},"WebSocket Support",{"type":3171,"tag":3178,"props":12381,"children":12382},{},[12383,12385,12392],{"type":3176,"value":12384},"Nuxt Auth Utils is compatible with ",{"type":3171,"tag":3182,"props":12386,"children":12389},{"href":12387,"rel":12388},"https:\u002F\u002Fnitro.build\u002Fguide\u002Fwebsocket",[3186],[12390],{"type":3176,"value":12391},"Nitro WebSockets",{"type":3176,"value":3409},{"type":3171,"tag":3178,"props":12394,"children":12395},{},[12396,12398,12404,12405,12410],{"type":3176,"value":12397},"Make sure to enable the ",{"type":3171,"tag":3316,"props":12399,"children":12401},{"className":12400},[],[12402],{"type":3176,"value":12403},"experimental.websocket",{"type":3176,"value":11404},{"type":3171,"tag":3316,"props":12406,"children":12408},{"className":12407},[],[12409],{"type":3176,"value":233},{"type":3176,"value":4194},{"type":3171,"tag":3444,"props":12412,"children":12414},{"className":4133,"code":12413,"language":4135,"meta":3045,"style":3045},"export default defineNuxtConfig({\n  nitro: {\n    experimental: {\n      websocket: true\n    }\n  }\n})\n",[12415],{"type":3171,"tag":3316,"props":12416,"children":12417},{"__ignoreMap":3045},[12418,12441,12457,12473,12489,12496,12503],{"type":3171,"tag":3454,"props":12419,"children":12420},{"class":3456,"line":3131},[12421,12425,12429,12433,12437],{"type":3171,"tag":3454,"props":12422,"children":12423},{"style":4717},[12424],{"type":3176,"value":5251},{"type":3171,"tag":3454,"props":12426,"children":12427},{"style":4717},[12428],{"type":3176,"value":5366},{"type":3171,"tag":3454,"props":12430,"children":12431},{"style":3690},[12432],{"type":3176,"value":5371},{"type":3171,"tag":3454,"props":12434,"children":12435},{"style":3528},[12436],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":12438,"children":12439},{"style":3533},[12440],{"type":3176,"value":5381},{"type":3171,"tag":3454,"props":12442,"children":12443},{"class":3456,"line":3097},[12444,12449,12453],{"type":3171,"tag":3454,"props":12445,"children":12446},{"style":3599},[12447],{"type":3176,"value":12448},"  nitro",{"type":3171,"tag":3454,"props":12450,"children":12451},{"style":3533},[12452],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":12454,"children":12455},{"style":3533},[12456],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":12458,"children":12459},{"class":3456,"line":3081},[12460,12465,12469],{"type":3171,"tag":3454,"props":12461,"children":12462},{"style":3599},[12463],{"type":3176,"value":12464},"    experimental",{"type":3171,"tag":3454,"props":12466,"children":12467},{"style":3533},[12468],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":12470,"children":12471},{"style":3533},[12472],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":12474,"children":12475},{"class":3456,"line":3717},[12476,12481,12485],{"type":3171,"tag":3454,"props":12477,"children":12478},{"style":3599},[12479],{"type":3176,"value":12480},"      websocket",{"type":3171,"tag":3454,"props":12482,"children":12483},{"style":3533},[12484],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":12486,"children":12487},{"style":5901},[12488],{"type":3176,"value":5904},{"type":3171,"tag":3454,"props":12490,"children":12491},{"class":3456,"line":3726},[12492],{"type":3171,"tag":3454,"props":12493,"children":12494},{"style":3533},[12495],{"type":3176,"value":5507},{"type":3171,"tag":3454,"props":12497,"children":12498},{"class":3456,"line":3743},[12499],{"type":3171,"tag":3454,"props":12500,"children":12501},{"style":3533},[12502],{"type":3176,"value":5155},{"type":3171,"tag":3454,"props":12504,"children":12505},{"class":3456,"line":3077},[12506,12510],{"type":3171,"tag":3454,"props":12507,"children":12508},{"style":3533},[12509],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":12511,"children":12512},{"style":3528},[12513],{"type":3176,"value":4897},{"type":3171,"tag":3178,"props":12515,"children":12516},{},[12517,12518,12524,12526,12532],{"type":3176,"value":11667},{"type":3171,"tag":3316,"props":12519,"children":12521},{"className":12520},[],[12522],{"type":3176,"value":12523},"requireUserSession",{"type":3176,"value":12525}," function in the ",{"type":3171,"tag":3316,"props":12527,"children":12529},{"className":12528},[],[12530],{"type":3176,"value":12531},"upgrade",{"type":3176,"value":12533}," function to check if the user is authenticated before upgrading the WebSocket connection.",{"type":3171,"tag":3444,"props":12535,"children":12537},{"className":4133,"code":12536,"language":4135,"meta":3045,"style":3045},"\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",[12538],{"type":3171,"tag":3316,"props":12539,"children":12540},{"__ignoreMap":3045},[12541,12549,12573,12602,12610,12633,12640,12669,12712,12719,12782,12789,12821,12866,12873],{"type":3171,"tag":3454,"props":12542,"children":12543},{"class":3456,"line":3131},[12544],{"type":3171,"tag":3454,"props":12545,"children":12546},{"style":3519},[12547],{"type":3176,"value":12548},"\u002F\u002F server\u002Froutes\u002Fws.ts\n",{"type":3171,"tag":3454,"props":12550,"children":12551},{"class":3456,"line":3097},[12552,12556,12560,12565,12569],{"type":3171,"tag":3454,"props":12553,"children":12554},{"style":4717},[12555],{"type":3176,"value":5251},{"type":3171,"tag":3454,"props":12557,"children":12558},{"style":4717},[12559],{"type":3176,"value":5366},{"type":3171,"tag":3454,"props":12561,"children":12562},{"style":3690},[12563],{"type":3176,"value":12564}," defineWebSocketHandler",{"type":3171,"tag":3454,"props":12566,"children":12567},{"style":3528},[12568],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":12570,"children":12571},{"style":3533},[12572],{"type":3176,"value":5381},{"type":3171,"tag":3454,"props":12574,"children":12575},{"class":3456,"line":3081},[12576,12580,12585,12589,12594,12598],{"type":3171,"tag":3454,"props":12577,"children":12578},{"style":3605},[12579],{"type":3176,"value":5919},{"type":3171,"tag":3454,"props":12581,"children":12582},{"style":3599},[12583],{"type":3176,"value":12584}," upgrade",{"type":3171,"tag":3454,"props":12586,"children":12587},{"style":3533},[12588],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":12590,"children":12591},{"style":4549},[12592],{"type":3176,"value":12593},"request",{"type":3171,"tag":3454,"props":12595,"children":12596},{"style":3533},[12597],{"type":3176,"value":6137},{"type":3171,"tag":3454,"props":12599,"children":12600},{"style":3533},[12601],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":12603,"children":12604},{"class":3456,"line":3717},[12605],{"type":3171,"tag":3454,"props":12606,"children":12607},{"style":3519},[12608],{"type":3176,"value":12609},"    \u002F\u002F Make sure the user is authenticated before upgrading the WebSocket connection\n",{"type":3171,"tag":3454,"props":12611,"children":12612},{"class":3456,"line":3726},[12613,12617,12621,12625,12629],{"type":3171,"tag":3454,"props":12614,"children":12615},{"style":4717},[12616],{"type":3176,"value":5970},{"type":3171,"tag":3454,"props":12618,"children":12619},{"style":3690},[12620],{"type":3176,"value":5053},{"type":3171,"tag":3454,"props":12622,"children":12623},{"style":3599},[12624],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":12626,"children":12627},{"style":3528},[12628],{"type":3176,"value":12593},{"type":3171,"tag":3454,"props":12630,"children":12631},{"style":3599},[12632],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":12634,"children":12635},{"class":3456,"line":3743},[12636],{"type":3171,"tag":3454,"props":12637,"children":12638},{"style":3533},[12639],{"type":3176,"value":4795},{"type":3171,"tag":3454,"props":12641,"children":12642},{"class":3456,"line":3077},[12643,12647,12652,12656,12661,12665],{"type":3171,"tag":3454,"props":12644,"children":12645},{"style":3605},[12646],{"type":3176,"value":5919},{"type":3171,"tag":3454,"props":12648,"children":12649},{"style":3599},[12650],{"type":3176,"value":12651}," open",{"type":3171,"tag":3454,"props":12653,"children":12654},{"style":3533},[12655],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":12657,"children":12658},{"style":4549},[12659],{"type":3176,"value":12660},"peer",{"type":3171,"tag":3454,"props":12662,"children":12663},{"style":3533},[12664],{"type":3176,"value":6137},{"type":3171,"tag":3454,"props":12666,"children":12667},{"style":3533},[12668],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":12670,"children":12671},{"class":3456,"line":3073},[12672,12676,12680,12684,12688,12692,12696,12700,12704,12708],{"type":3171,"tag":3454,"props":12673,"children":12674},{"style":3605},[12675],{"type":3176,"value":7687},{"type":3171,"tag":3454,"props":12677,"children":12678},{"style":3533},[12679],{"type":3176,"value":3626},{"type":3171,"tag":3454,"props":12681,"children":12682},{"style":3528},[12683],{"type":3176,"value":3641},{"type":3171,"tag":3454,"props":12685,"children":12686},{"style":3533},[12687],{"type":3176,"value":7567},{"type":3171,"tag":3454,"props":12689,"children":12690},{"style":3533},[12691],{"type":3176,"value":3687},{"type":3171,"tag":3454,"props":12693,"children":12694},{"style":4717},[12695],{"type":3176,"value":4973},{"type":3171,"tag":3454,"props":12697,"children":12698},{"style":3690},[12699],{"type":3176,"value":5053},{"type":3171,"tag":3454,"props":12701,"children":12702},{"style":3599},[12703],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":12705,"children":12706},{"style":3528},[12707],{"type":3176,"value":12660},{"type":3171,"tag":3454,"props":12709,"children":12710},{"style":3599},[12711],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":12713,"children":12714},{"class":3456,"line":3069},[12715],{"type":3171,"tag":3454,"props":12716,"children":12717},{"emptyLinePlaceholder":1200},[12718],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":12720,"children":12721},{"class":3456,"line":3905},[12722,12727,12731,12736,12740,12744,12749,12753,12757,12761,12766,12770,12774,12778],{"type":3171,"tag":3454,"props":12723,"children":12724},{"style":3528},[12725],{"type":3176,"value":12726},"    peer",{"type":3171,"tag":3454,"props":12728,"children":12729},{"style":3533},[12730],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":12732,"children":12733},{"style":3690},[12734],{"type":3176,"value":12735},"send",{"type":3171,"tag":3454,"props":12737,"children":12738},{"style":3599},[12739],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":12741,"children":12742},{"style":3533},[12743],{"type":3176,"value":8155},{"type":3171,"tag":3454,"props":12745,"children":12746},{"style":3466},[12747],{"type":3176,"value":12748},"Hello, ",{"type":3171,"tag":3454,"props":12750,"children":12751},{"style":3533},[12752],{"type":3176,"value":9494},{"type":3171,"tag":3454,"props":12754,"children":12755},{"style":3528},[12756],{"type":3176,"value":7741},{"type":3171,"tag":3454,"props":12758,"children":12759},{"style":3533},[12760],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":12762,"children":12763},{"style":3528},[12764],{"type":3176,"value":12765},"name",{"type":3171,"tag":3454,"props":12767,"children":12768},{"style":3533},[12769],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":12771,"children":12772},{"style":3466},[12773],{"type":3176,"value":8180},{"type":3171,"tag":3454,"props":12775,"children":12776},{"style":3533},[12777],{"type":3176,"value":8155},{"type":3171,"tag":3454,"props":12779,"children":12780},{"style":3599},[12781],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":12783,"children":12784},{"class":3456,"line":3922},[12785],{"type":3171,"tag":3454,"props":12786,"children":12787},{"style":3533},[12788],{"type":3176,"value":4795},{"type":3171,"tag":3454,"props":12790,"children":12791},{"class":3456,"line":3943},[12792,12797,12801,12805,12809,12813,12817],{"type":3171,"tag":3454,"props":12793,"children":12794},{"style":3599},[12795],{"type":3176,"value":12796},"  message",{"type":3171,"tag":3454,"props":12798,"children":12799},{"style":3533},[12800],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":12802,"children":12803},{"style":4549},[12804],{"type":3176,"value":12660},{"type":3171,"tag":3454,"props":12806,"children":12807},{"style":3533},[12808],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":12810,"children":12811},{"style":4549},[12812],{"type":3176,"value":7849},{"type":3171,"tag":3454,"props":12814,"children":12815},{"style":3533},[12816],{"type":3176,"value":6137},{"type":3171,"tag":3454,"props":12818,"children":12819},{"style":3533},[12820],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":12822,"children":12823},{"class":3456,"line":3976},[12824,12828,12832,12836,12840,12844,12849,12853,12858,12862],{"type":3171,"tag":3454,"props":12825,"children":12826},{"style":3528},[12827],{"type":3176,"value":12726},{"type":3171,"tag":3454,"props":12829,"children":12830},{"style":3533},[12831],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":12833,"children":12834},{"style":3690},[12835],{"type":3176,"value":12735},{"type":3171,"tag":3454,"props":12837,"children":12838},{"style":3599},[12839],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":12841,"children":12842},{"style":3533},[12843],{"type":3176,"value":8155},{"type":3171,"tag":3454,"props":12845,"children":12846},{"style":3466},[12847],{"type":3176,"value":12848},"Echo: ",{"type":3171,"tag":3454,"props":12850,"children":12851},{"style":3533},[12852],{"type":3176,"value":9494},{"type":3171,"tag":3454,"props":12854,"children":12855},{"style":3528},[12856],{"type":3176,"value":12857},"message",{"type":3171,"tag":3454,"props":12859,"children":12860},{"style":3533},[12861],{"type":3176,"value":9504},{"type":3171,"tag":3454,"props":12863,"children":12864},{"style":3599},[12865],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":12867,"children":12868},{"class":3456,"line":4031},[12869],{"type":3171,"tag":3454,"props":12870,"children":12871},{"style":3533},[12872],{"type":3176,"value":4795},{"type":3171,"tag":3454,"props":12874,"children":12875},{"class":3456,"line":4040},[12876,12880],{"type":3171,"tag":3454,"props":12877,"children":12878},{"style":3533},[12879],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":12881,"children":12882},{"style":3528},[12883],{"type":3176,"value":4897},{"type":3171,"tag":3178,"props":12885,"children":12886},{},[12887,12889,12896],{"type":3176,"value":12888},"Then, in your application, you can use the ",{"type":3171,"tag":3182,"props":12890,"children":12893},{"href":12891,"rel":12892},"https:\u002F\u002Fvueuse.org\u002Fcore\u002FuseWebSocket\u002F",[3186],[12894],{"type":3176,"value":12895},"useWebSocket",{"type":3176,"value":12897}," composable to connect to the WebSocket:",{"type":3171,"tag":3444,"props":12899,"children":12901},{"className":3582,"code":12900,"language":3584,"meta":3045,"style":3045},"\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",[12902],{"type":3171,"tag":3316,"props":12903,"children":12904},{"__ignoreMap":3045},[12905,12924,13035,13042,13050,13063,13078,13085,13100,13115,13147,13179,13194,13247,13300,13353,13368,13383],{"type":3171,"tag":3454,"props":12906,"children":12907},{"class":3456,"line":3131},[12908,12912,12916,12920],{"type":3171,"tag":3454,"props":12909,"children":12910},{"style":3533},[12911],{"type":3176,"value":3596},{"type":3171,"tag":3454,"props":12913,"children":12914},{"style":3599},[12915],{"type":3176,"value":3602},{"type":3171,"tag":3454,"props":12917,"children":12918},{"style":3605},[12919],{"type":3176,"value":3608},{"type":3171,"tag":3454,"props":12921,"children":12922},{"style":3533},[12923],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":12925,"children":12926},{"class":3456,"line":3097},[12927,12931,12935,12940,12944,12949,12953,12958,12962,12966,12970,12975,12979,12983,12988,12992,12996,13001,13005,13009,13013,13018,13022,13027,13031],{"type":3171,"tag":3454,"props":12928,"children":12929},{"style":3605},[12930],{"type":3176,"value":3621},{"type":3171,"tag":3454,"props":12932,"children":12933},{"style":3533},[12934],{"type":3176,"value":3626},{"type":3171,"tag":3454,"props":12936,"children":12937},{"style":3528},[12938],{"type":3176,"value":12939}," status",{"type":3171,"tag":3454,"props":12941,"children":12942},{"style":3533},[12943],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":12945,"children":12946},{"style":3528},[12947],{"type":3176,"value":12948}," data",{"type":3171,"tag":3454,"props":12950,"children":12951},{"style":3533},[12952],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":12954,"children":12955},{"style":3528},[12956],{"type":3176,"value":12957}," send",{"type":3171,"tag":3454,"props":12959,"children":12960},{"style":3533},[12961],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":12963,"children":12964},{"style":3528},[12965],{"type":3176,"value":12651},{"type":3171,"tag":3454,"props":12967,"children":12968},{"style":3533},[12969],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":12971,"children":12972},{"style":3528},[12973],{"type":3176,"value":12974}," close ",{"type":3171,"tag":3454,"props":12976,"children":12977},{"style":3533},[12978],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":12980,"children":12981},{"style":3533},[12982],{"type":3176,"value":3687},{"type":3171,"tag":3454,"props":12984,"children":12985},{"style":3690},[12986],{"type":3176,"value":12987}," useWebSocket",{"type":3171,"tag":3454,"props":12989,"children":12990},{"style":3528},[12991],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":12993,"children":12994},{"style":3533},[12995],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":12997,"children":12998},{"style":3466},[12999],{"type":3176,"value":13000},"\u002Fws",{"type":3171,"tag":3454,"props":13002,"children":13003},{"style":3533},[13004],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":13006,"children":13007},{"style":3533},[13008],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":13010,"children":13011},{"style":3533},[13012],{"type":3176,"value":3626},{"type":3171,"tag":3454,"props":13014,"children":13015},{"style":3599},[13016],{"type":3176,"value":13017}," immediate",{"type":3171,"tag":3454,"props":13019,"children":13020},{"style":3533},[13021],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":13023,"children":13024},{"style":5901},[13025],{"type":3176,"value":13026}," false",{"type":3171,"tag":3454,"props":13028,"children":13029},{"style":3533},[13030],{"type":3176,"value":7567},{"type":3171,"tag":3454,"props":13032,"children":13033},{"style":3528},[13034],{"type":3176,"value":4897},{"type":3171,"tag":3454,"props":13036,"children":13037},{"class":3456,"line":3081},[13038],{"type":3171,"tag":3454,"props":13039,"children":13040},{"emptyLinePlaceholder":1200},[13041],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":13043,"children":13044},{"class":3456,"line":3717},[13045],{"type":3171,"tag":3454,"props":13046,"children":13047},{"style":3519},[13048],{"type":3176,"value":13049},"\u002F\u002F Only open the websocket after the page is hydrated (client-only)\n",{"type":3171,"tag":3454,"props":13051,"children":13052},{"class":3456,"line":3726},[13053,13058],{"type":3171,"tag":3454,"props":13054,"children":13055},{"style":3690},[13056],{"type":3176,"value":13057},"onMounted",{"type":3171,"tag":3454,"props":13059,"children":13060},{"style":3528},[13061],{"type":3176,"value":13062},"(open)\n",{"type":3171,"tag":3454,"props":13064,"children":13065},{"class":3456,"line":3743},[13066,13070,13074],{"type":3171,"tag":3454,"props":13067,"children":13068},{"style":3533},[13069],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":13071,"children":13072},{"style":3599},[13073],{"type":3176,"value":3602},{"type":3171,"tag":3454,"props":13075,"children":13076},{"style":3533},[13077],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":13079,"children":13080},{"class":3456,"line":3077},[13081],{"type":3171,"tag":3454,"props":13082,"children":13083},{"emptyLinePlaceholder":1200},[13084],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":13086,"children":13087},{"class":3456,"line":3073},[13088,13092,13096],{"type":3171,"tag":3454,"props":13089,"children":13090},{"style":3533},[13091],{"type":3176,"value":3596},{"type":3171,"tag":3454,"props":13093,"children":13094},{"style":3599},[13095],{"type":3176,"value":3736},{"type":3171,"tag":3454,"props":13097,"children":13098},{"style":3533},[13099],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":13101,"children":13102},{"class":3456,"line":3069},[13103,13107,13111],{"type":3171,"tag":3454,"props":13104,"children":13105},{"style":3533},[13106],{"type":3176,"value":3749},{"type":3171,"tag":3454,"props":13108,"children":13109},{"style":3599},[13110],{"type":3176,"value":3754},{"type":3171,"tag":3454,"props":13112,"children":13113},{"style":3533},[13114],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":13116,"children":13117},{"class":3456,"line":3905},[13118,13122,13126,13130,13135,13139,13143],{"type":3171,"tag":3454,"props":13119,"children":13120},{"style":3533},[13121],{"type":3176,"value":3789},{"type":3171,"tag":3454,"props":13123,"children":13124},{"style":3599},[13125],{"type":3176,"value":3178},{"type":3171,"tag":3454,"props":13127,"children":13128},{"style":3533},[13129],{"type":3176,"value":3798},{"type":3171,"tag":3454,"props":13131,"children":13132},{"style":3528},[13133],{"type":3176,"value":13134},"Status: {{ status }}",{"type":3171,"tag":3454,"props":13136,"children":13137},{"style":3533},[13138],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":13140,"children":13141},{"style":3599},[13142],{"type":3176,"value":3178},{"type":3171,"tag":3454,"props":13144,"children":13145},{"style":3533},[13146],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":13148,"children":13149},{"class":3456,"line":3922},[13150,13154,13158,13162,13167,13171,13175],{"type":3171,"tag":3454,"props":13151,"children":13152},{"style":3533},[13153],{"type":3176,"value":3789},{"type":3171,"tag":3454,"props":13155,"children":13156},{"style":3599},[13157],{"type":3176,"value":3178},{"type":3171,"tag":3454,"props":13159,"children":13160},{"style":3533},[13161],{"type":3176,"value":3798},{"type":3171,"tag":3454,"props":13163,"children":13164},{"style":3528},[13165],{"type":3176,"value":13166},"Data: {{ data }}",{"type":3171,"tag":3454,"props":13168,"children":13169},{"style":3533},[13170],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":13172,"children":13173},{"style":3599},[13174],{"type":3176,"value":3178},{"type":3171,"tag":3454,"props":13176,"children":13177},{"style":3533},[13178],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":13180,"children":13181},{"class":3456,"line":3943},[13182,13186,13190],{"type":3171,"tag":3454,"props":13183,"children":13184},{"style":3533},[13185],{"type":3176,"value":3789},{"type":3171,"tag":3454,"props":13187,"children":13188},{"style":3599},[13189],{"type":3176,"value":3178},{"type":3171,"tag":3454,"props":13191,"children":13192},{"style":3533},[13193],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":13195,"children":13196},{"class":3456,"line":3976},[13197,13201,13205,13209,13213,13217,13222,13226,13230,13235,13239,13243],{"type":3171,"tag":3454,"props":13198,"children":13199},{"style":3533},[13200],{"type":3176,"value":11779},{"type":3171,"tag":3454,"props":13202,"children":13203},{"style":3599},[13204],{"type":3176,"value":3859},{"type":3171,"tag":3454,"props":13206,"children":13207},{"style":3605},[13208],{"type":3176,"value":3864},{"type":3171,"tag":3454,"props":13210,"children":13211},{"style":3533},[13212],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":13214,"children":13215},{"style":3533},[13216],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":13218,"children":13219},{"style":3466},[13220],{"type":3176,"value":13221},"open",{"type":3171,"tag":3454,"props":13223,"children":13224},{"style":3533},[13225],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":13227,"children":13228},{"style":3533},[13229],{"type":3176,"value":3798},{"type":3171,"tag":3454,"props":13231,"children":13232},{"style":3528},[13233],{"type":3176,"value":13234},"Open",{"type":3171,"tag":3454,"props":13236,"children":13237},{"style":3533},[13238],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":13240,"children":13241},{"style":3599},[13242],{"type":3176,"value":3859},{"type":3171,"tag":3454,"props":13244,"children":13245},{"style":3533},[13246],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":13248,"children":13249},{"class":3456,"line":4031},[13250,13254,13258,13262,13266,13270,13275,13279,13283,13288,13292,13296],{"type":3171,"tag":3454,"props":13251,"children":13252},{"style":3533},[13253],{"type":3176,"value":11779},{"type":3171,"tag":3454,"props":13255,"children":13256},{"style":3599},[13257],{"type":3176,"value":3859},{"type":3171,"tag":3454,"props":13259,"children":13260},{"style":3605},[13261],{"type":3176,"value":3864},{"type":3171,"tag":3454,"props":13263,"children":13264},{"style":3533},[13265],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":13267,"children":13268},{"style":3533},[13269],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":13271,"children":13272},{"style":3466},[13273],{"type":3176,"value":13274},"close(1000, 'Closing')",{"type":3171,"tag":3454,"props":13276,"children":13277},{"style":3533},[13278],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":13280,"children":13281},{"style":3533},[13282],{"type":3176,"value":3798},{"type":3171,"tag":3454,"props":13284,"children":13285},{"style":3528},[13286],{"type":3176,"value":13287},"Close",{"type":3171,"tag":3454,"props":13289,"children":13290},{"style":3533},[13291],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":13293,"children":13294},{"style":3599},[13295],{"type":3176,"value":3859},{"type":3171,"tag":3454,"props":13297,"children":13298},{"style":3533},[13299],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":13301,"children":13302},{"class":3456,"line":4040},[13303,13307,13311,13315,13319,13323,13328,13332,13336,13341,13345,13349],{"type":3171,"tag":3454,"props":13304,"children":13305},{"style":3533},[13306],{"type":3176,"value":11779},{"type":3171,"tag":3454,"props":13308,"children":13309},{"style":3599},[13310],{"type":3176,"value":3859},{"type":3171,"tag":3454,"props":13312,"children":13313},{"style":3605},[13314],{"type":3176,"value":3864},{"type":3171,"tag":3454,"props":13316,"children":13317},{"style":3533},[13318],{"type":3176,"value":3536},{"type":3171,"tag":3454,"props":13320,"children":13321},{"style":3533},[13322],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":13324,"children":13325},{"style":3466},[13326],{"type":3176,"value":13327},"send('hello')",{"type":3171,"tag":3454,"props":13329,"children":13330},{"style":3533},[13331],{"type":3176,"value":3768},{"type":3171,"tag":3454,"props":13333,"children":13334},{"style":3533},[13335],{"type":3176,"value":3798},{"type":3171,"tag":3454,"props":13337,"children":13338},{"style":3528},[13339],{"type":3176,"value":13340},"Send hello",{"type":3171,"tag":3454,"props":13342,"children":13343},{"style":3533},[13344],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":13346,"children":13347},{"style":3599},[13348],{"type":3176,"value":3859},{"type":3171,"tag":3454,"props":13350,"children":13351},{"style":3533},[13352],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":13354,"children":13355},{"class":3456,"line":3065},[13356,13360,13364],{"type":3171,"tag":3454,"props":13357,"children":13358},{"style":3533},[13359],{"type":3176,"value":11910},{"type":3171,"tag":3454,"props":13361,"children":13362},{"style":3599},[13363],{"type":3176,"value":3178},{"type":3171,"tag":3454,"props":13365,"children":13366},{"style":3533},[13367],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":13369,"children":13370},{"class":3456,"line":4108},[13371,13375,13379],{"type":3171,"tag":3454,"props":13372,"children":13373},{"style":3533},[13374],{"type":3176,"value":3911},{"type":3171,"tag":3454,"props":13376,"children":13377},{"style":3599},[13378],{"type":3176,"value":3754},{"type":3171,"tag":3454,"props":13380,"children":13381},{"style":3533},[13382],{"type":3176,"value":3613},{"type":3171,"tag":3454,"props":13384,"children":13385},{"class":3456,"line":4378},[13386,13390,13394],{"type":3171,"tag":3454,"props":13387,"children":13388},{"style":3533},[13389],{"type":3176,"value":3706},{"type":3171,"tag":3454,"props":13391,"children":13392},{"style":3599},[13393],{"type":3176,"value":3736},{"type":3171,"tag":3454,"props":13395,"children":13396},{"style":3533},[13397],{"type":3176,"value":3613},{"type":3171,"tag":3262,"props":13399,"children":13401},{"id":13400},"configuration",[13402],{"type":3176,"value":29},{"type":3171,"tag":3178,"props":13404,"children":13405},{},[13406,13408,13414,13416,13429],{"type":3176,"value":13407},"We leverage ",{"type":3171,"tag":3316,"props":13409,"children":13411},{"className":13410},[],[13412],{"type":3176,"value":13413},"runtimeConfig.session",{"type":3176,"value":13415}," to give the defaults option to ",{"type":3171,"tag":3182,"props":13417,"children":13420},{"href":13418,"rel":13419},"https:\u002F\u002Fh3.unjs.io\u002Fexamples\u002Fhandle-session",[3186],[13421,13423],{"type":3176,"value":13422},"h3 ",{"type":3171,"tag":3316,"props":13424,"children":13426},{"className":13425},[],[13427],{"type":3176,"value":13428},"useSession",{"type":3176,"value":3409},{"type":3171,"tag":3178,"props":13431,"children":13432},{},[13433,13435,13440],{"type":3176,"value":13434},"You can overwrite the options in your ",{"type":3171,"tag":3316,"props":13436,"children":13438},{"className":13437},[],[13439],{"type":3176,"value":233},{"type":3176,"value":4194},{"type":3171,"tag":3444,"props":13442,"children":13444},{"className":4133,"code":13443,"language":4135,"meta":3045,"style":3045},"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",[13445],{"type":3171,"tag":3316,"props":13446,"children":13447},{"__ignoreMap":3045},[13448,13471,13506,13521,13537,13586,13593,13600],{"type":3171,"tag":3454,"props":13449,"children":13450},{"class":3456,"line":3131},[13451,13455,13459,13463,13467],{"type":3171,"tag":3454,"props":13452,"children":13453},{"style":4717},[13454],{"type":3176,"value":5251},{"type":3171,"tag":3454,"props":13456,"children":13457},{"style":4717},[13458],{"type":3176,"value":5366},{"type":3171,"tag":3454,"props":13460,"children":13461},{"style":3690},[13462],{"type":3176,"value":5371},{"type":3171,"tag":3454,"props":13464,"children":13465},{"style":3528},[13466],{"type":3176,"value":5376},{"type":3171,"tag":3454,"props":13468,"children":13469},{"style":3533},[13470],{"type":3176,"value":5381},{"type":3171,"tag":3454,"props":13472,"children":13473},{"class":3456,"line":3097},[13474,13478,13482,13486,13490,13494,13498,13502],{"type":3171,"tag":3454,"props":13475,"children":13476},{"style":3599},[13477],{"type":3176,"value":6603},{"type":3171,"tag":3454,"props":13479,"children":13480},{"style":3533},[13481],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":13483,"children":13484},{"style":3528},[13485],{"type":3176,"value":6612},{"type":3171,"tag":3454,"props":13487,"children":13488},{"style":3533},[13489],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":13491,"children":13492},{"style":3466},[13493],{"type":3176,"value":3044},{"type":3171,"tag":3454,"props":13495,"children":13496},{"style":3533},[13497],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":13499,"children":13500},{"style":3528},[13501],{"type":3176,"value":6629},{"type":3171,"tag":3454,"props":13503,"children":13504},{"style":3533},[13505],{"type":3176,"value":5467},{"type":3171,"tag":3454,"props":13507,"children":13508},{"class":3456,"line":3081},[13509,13513,13517],{"type":3171,"tag":3454,"props":13510,"children":13511},{"style":3599},[13512],{"type":3176,"value":5389},{"type":3171,"tag":3454,"props":13514,"children":13515},{"style":3533},[13516],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":13518,"children":13519},{"style":3533},[13520],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":13522,"children":13523},{"class":3456,"line":3717},[13524,13529,13533],{"type":3171,"tag":3454,"props":13525,"children":13526},{"style":3599},[13527],{"type":3176,"value":13528},"    session",{"type":3171,"tag":3454,"props":13530,"children":13531},{"style":3533},[13532],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":13534,"children":13535},{"style":3533},[13536],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":13538,"children":13539},{"class":3456,"line":3726},[13540,13545,13549,13554,13559,13563,13567,13572,13576,13581],{"type":3171,"tag":3454,"props":13541,"children":13542},{"style":3599},[13543],{"type":3176,"value":13544},"      maxAge",{"type":3171,"tag":3454,"props":13546,"children":13547},{"style":3533},[13548],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":13550,"children":13551},{"style":7055},[13552],{"type":3176,"value":13553}," 60",{"type":3171,"tag":3454,"props":13555,"children":13556},{"style":3533},[13557],{"type":3176,"value":13558}," *",{"type":3171,"tag":3454,"props":13560,"children":13561},{"style":7055},[13562],{"type":3176,"value":13553},{"type":3171,"tag":3454,"props":13564,"children":13565},{"style":3533},[13566],{"type":3176,"value":13558},{"type":3171,"tag":3454,"props":13568,"children":13569},{"style":7055},[13570],{"type":3176,"value":13571}," 24",{"type":3171,"tag":3454,"props":13573,"children":13574},{"style":3533},[13575],{"type":3176,"value":13558},{"type":3171,"tag":3454,"props":13577,"children":13578},{"style":7055},[13579],{"type":3176,"value":13580}," 7",{"type":3171,"tag":3454,"props":13582,"children":13583},{"style":3519},[13584],{"type":3176,"value":13585}," \u002F\u002F 1 week\n",{"type":3171,"tag":3454,"props":13587,"children":13588},{"class":3456,"line":3743},[13589],{"type":3171,"tag":3454,"props":13590,"children":13591},{"style":3533},[13592],{"type":3176,"value":5507},{"type":3171,"tag":3454,"props":13594,"children":13595},{"class":3456,"line":3077},[13596],{"type":3171,"tag":3454,"props":13597,"children":13598},{"style":3533},[13599],{"type":3176,"value":5155},{"type":3171,"tag":3454,"props":13601,"children":13602},{"class":3456,"line":3073},[13603,13607],{"type":3171,"tag":3454,"props":13604,"children":13605},{"style":3533},[13606],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":13608,"children":13609},{"style":3528},[13610],{"type":3176,"value":4897},{"type":3171,"tag":3178,"props":13612,"children":13613},{},[13614],{"type":3176,"value":13615},"Our defaults are:",{"type":3171,"tag":3444,"props":13617,"children":13619},{"className":4133,"code":13618,"language":4135,"meta":3045,"style":3045},"{\n  name: 'nuxt-session',\n  password: process.env.NUXT_SESSION_PASSWORD || '',\n  cookie: {\n    sameSite: 'lax'\n  }\n}\n",[13620],{"type":3171,"tag":3316,"props":13621,"children":13622},{"__ignoreMap":3045},[13623,13630,13659,13707,13723,13748,13755],{"type":3171,"tag":3454,"props":13624,"children":13625},{"class":3456,"line":3131},[13626],{"type":3171,"tag":3454,"props":13627,"children":13628},{"style":3533},[13629],{"type":3176,"value":5381},{"type":3171,"tag":3454,"props":13631,"children":13632},{"class":3456,"line":3097},[13633,13638,13642,13646,13651,13655],{"type":3171,"tag":3454,"props":13634,"children":13635},{"style":3460},[13636],{"type":3176,"value":13637},"  name",{"type":3171,"tag":3454,"props":13639,"children":13640},{"style":3533},[13641],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":13643,"children":13644},{"style":3533},[13645],{"type":3176,"value":4778},{"type":3171,"tag":3454,"props":13647,"children":13648},{"style":3466},[13649],{"type":3176,"value":13650},"nuxt-session",{"type":3171,"tag":3454,"props":13652,"children":13653},{"style":3533},[13654],{"type":3176,"value":5118},{"type":3171,"tag":3454,"props":13656,"children":13657},{"style":3533},[13658],{"type":3176,"value":5467},{"type":3171,"tag":3454,"props":13660,"children":13661},{"class":3456,"line":3081},[13662,13667,13671,13676,13680,13685,13689,13693,13698,13703],{"type":3171,"tag":3454,"props":13663,"children":13664},{"style":3460},[13665],{"type":3176,"value":13666},"  password",{"type":3171,"tag":3454,"props":13668,"children":13669},{"style":3533},[13670],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":13672,"children":13673},{"style":3528},[13674],{"type":3176,"value":13675}," process",{"type":3171,"tag":3454,"props":13677,"children":13678},{"style":3533},[13679],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":13681,"children":13682},{"style":3528},[13683],{"type":3176,"value":13684},"env",{"type":3171,"tag":3454,"props":13686,"children":13687},{"style":3533},[13688],{"type":3176,"value":3409},{"type":3171,"tag":3454,"props":13690,"children":13691},{"style":3528},[13692],{"type":3176,"value":3498},{"type":3171,"tag":3454,"props":13694,"children":13695},{"style":3533},[13696],{"type":3176,"value":13697}," ||",{"type":3171,"tag":3454,"props":13699,"children":13700},{"style":3533},[13701],{"type":3176,"value":13702}," ''",{"type":3171,"tag":3454,"props":13704,"children":13705},{"style":3533},[13706],{"type":3176,"value":5467},{"type":3171,"tag":3454,"props":13708,"children":13709},{"class":3456,"line":3717},[13710,13715,13719],{"type":3171,"tag":3454,"props":13711,"children":13712},{"style":3460},[13713],{"type":3176,"value":13714},"  cookie",{"type":3171,"tag":3454,"props":13716,"children":13717},{"style":3533},[13718],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":13720,"children":13721},{"style":3533},[13722],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":13724,"children":13725},{"class":3456,"line":3726},[13726,13731,13735,13739,13744],{"type":3171,"tag":3454,"props":13727,"children":13728},{"style":3460},[13729],{"type":3176,"value":13730},"    sameSite",{"type":3171,"tag":3454,"props":13732,"children":13733},{"style":3533},[13734],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":13736,"children":13737},{"style":3533},[13738],{"type":3176,"value":4778},{"type":3171,"tag":3454,"props":13740,"children":13741},{"style":3466},[13742],{"type":3176,"value":13743},"lax",{"type":3171,"tag":3454,"props":13745,"children":13746},{"style":3533},[13747],{"type":3176,"value":4787},{"type":3171,"tag":3454,"props":13749,"children":13750},{"class":3456,"line":3743},[13751],{"type":3171,"tag":3454,"props":13752,"children":13753},{"style":3533},[13754],{"type":3176,"value":5155},{"type":3171,"tag":3454,"props":13756,"children":13757},{"class":3456,"line":3077},[13758],{"type":3171,"tag":3454,"props":13759,"children":13760},{"style":3533},[13761],{"type":3176,"value":4633},{"type":3171,"tag":3178,"props":13763,"children":13764},{},[13765,13767,13773,13774,13780],{"type":3176,"value":13766},"You can also overwrite the session config by passing it as 3rd argument of the ",{"type":3171,"tag":3316,"props":13768,"children":13770},{"className":13769},[],[13771],{"type":3176,"value":13772},"setUserSession",{"type":3176,"value":6287},{"type":3171,"tag":3316,"props":13775,"children":13777},{"className":13776},[],[13778],{"type":3176,"value":13779},"replaceUserSession",{"type":3176,"value":13781}," functions:",{"type":3171,"tag":3444,"props":13783,"children":13785},{"className":4133,"code":13784,"language":4135,"meta":3045,"style":3045},"await setUserSession(event, { ... } , {\n  maxAge: 60 * 60 * 24 * 7 \u002F\u002F 1 week\n})\n",[13786],{"type":3171,"tag":3316,"props":13787,"children":13788},{"__ignoreMap":3045},[13789,13830,13874],{"type":3171,"tag":3454,"props":13790,"children":13791},{"class":3456,"line":3131},[13792,13796,13800,13804,13808,13812,13817,13821,13826],{"type":3171,"tag":3454,"props":13793,"children":13794},{"style":4717},[13795],{"type":3176,"value":4720},{"type":3171,"tag":3454,"props":13797,"children":13798},{"style":3690},[13799],{"type":3176,"value":4725},{"type":3171,"tag":3454,"props":13801,"children":13802},{"style":3528},[13803],{"type":3176,"value":4730},{"type":3171,"tag":3454,"props":13805,"children":13806},{"style":3533},[13807],{"type":3176,"value":3636},{"type":3171,"tag":3454,"props":13809,"children":13810},{"style":3533},[13811],{"type":3176,"value":3626},{"type":3171,"tag":3454,"props":13813,"children":13814},{"style":3533},[13815],{"type":3176,"value":13816}," ...",{"type":3171,"tag":3454,"props":13818,"children":13819},{"style":3533},[13820],{"type":3176,"value":7567},{"type":3171,"tag":3454,"props":13822,"children":13823},{"style":3533},[13824],{"type":3176,"value":13825}," ,",{"type":3171,"tag":3454,"props":13827,"children":13828},{"style":3533},[13829],{"type":3176,"value":4157},{"type":3171,"tag":3454,"props":13831,"children":13832},{"class":3456,"line":3097},[13833,13838,13842,13846,13850,13854,13858,13862,13866,13870],{"type":3171,"tag":3454,"props":13834,"children":13835},{"style":3599},[13836],{"type":3176,"value":13837},"  maxAge",{"type":3171,"tag":3454,"props":13839,"children":13840},{"style":3533},[13841],{"type":3176,"value":4194},{"type":3171,"tag":3454,"props":13843,"children":13844},{"style":7055},[13845],{"type":3176,"value":13553},{"type":3171,"tag":3454,"props":13847,"children":13848},{"style":3533},[13849],{"type":3176,"value":13558},{"type":3171,"tag":3454,"props":13851,"children":13852},{"style":7055},[13853],{"type":3176,"value":13553},{"type":3171,"tag":3454,"props":13855,"children":13856},{"style":3533},[13857],{"type":3176,"value":13558},{"type":3171,"tag":3454,"props":13859,"children":13860},{"style":7055},[13861],{"type":3176,"value":13571},{"type":3171,"tag":3454,"props":13863,"children":13864},{"style":3533},[13865],{"type":3176,"value":13558},{"type":3171,"tag":3454,"props":13867,"children":13868},{"style":7055},[13869],{"type":3176,"value":13580},{"type":3171,"tag":3454,"props":13871,"children":13872},{"style":3519},[13873],{"type":3176,"value":13585},{"type":3171,"tag":3454,"props":13875,"children":13876},{"class":3456,"line":3081},[13877,13881],{"type":3171,"tag":3454,"props":13878,"children":13879},{"style":3533},[13880],{"type":3176,"value":3682},{"type":3171,"tag":3454,"props":13882,"children":13883},{"style":3528},[13884],{"type":3176,"value":4897},{"type":3171,"tag":3178,"props":13886,"children":13887},{},[13888,13890,13901],{"type":3176,"value":13889},"Checkout the ",{"type":3171,"tag":3182,"props":13891,"children":13894},{"href":13892,"rel":13893},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fh3\u002Fblob\u002Fc04c458810e34eb15c1647e1369e7d7ef19f567d\u002Fsrc\u002Futils\u002Fsession.ts#L20",[3186],[13895],{"type":3171,"tag":3316,"props":13896,"children":13898},{"className":13897},[],[13899],{"type":3176,"value":13900},"SessionConfig",{"type":3176,"value":13902}," for all options.",{"type":3171,"tag":3262,"props":13904,"children":13906},{"id":13905},"more",[13907],{"type":3176,"value":13908},"More",{"type":3171,"tag":3228,"props":13910,"children":13911},{},[13912],{"type":3171,"tag":3232,"props":13913,"children":13914},{},[13915,13922,13924],{"type":3171,"tag":3182,"props":13916,"children":13919},{"href":13917,"rel":13918},"https:\u002F\u002Fgithub.com\u002Fbarbapapazes\u002Fnuxt-authorization",[3186],[13920],{"type":3176,"value":13921},"nuxt-authorization",{"type":3176,"value":13923},": Authorization module for managing permissions inside a Nuxt app, compatible with ",{"type":3171,"tag":3316,"props":13925,"children":13927},{"className":13926},[],[13928],{"type":3176,"value":3044},{"type":3171,"tag":3262,"props":13930,"children":13932},{"id":13931},"development",[13933],{"type":3176,"value":13934},"Development",{"type":3171,"tag":3444,"props":13936,"children":13938},{"className":3446,"code":13937,"language":3448,"meta":3045,"style":3045},"# 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",[13939],{"type":3171,"tag":3316,"props":13940,"children":13941},{"__ignoreMap":3045},[13942,13950,13963,13970,13978,13995,14002,14010,14026,14033,14041,14057,14064,14072,14088,14095,14103,14119,14135,14142,14150],{"type":3171,"tag":3454,"props":13943,"children":13944},{"class":3456,"line":3131},[13945],{"type":3171,"tag":3454,"props":13946,"children":13947},{"style":3519},[13948],{"type":3176,"value":13949},"# Install dependencies\n",{"type":3171,"tag":3454,"props":13951,"children":13952},{"class":3456,"line":3097},[13953,13958],{"type":3171,"tag":3454,"props":13954,"children":13955},{"style":3460},[13956],{"type":3176,"value":13957},"pnpm",{"type":3171,"tag":3454,"props":13959,"children":13960},{"style":3466},[13961],{"type":3176,"value":13962}," install\n",{"type":3171,"tag":3454,"props":13964,"children":13965},{"class":3456,"line":3081},[13966],{"type":3171,"tag":3454,"props":13967,"children":13968},{"emptyLinePlaceholder":1200},[13969],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":13971,"children":13972},{"class":3456,"line":3717},[13973],{"type":3171,"tag":3454,"props":13974,"children":13975},{"style":3519},[13976],{"type":3176,"value":13977},"# Generate type stubs\n",{"type":3171,"tag":3454,"props":13979,"children":13980},{"class":3456,"line":3726},[13981,13985,13990],{"type":3171,"tag":3454,"props":13982,"children":13983},{"style":3460},[13984],{"type":3176,"value":13957},{"type":3171,"tag":3454,"props":13986,"children":13987},{"style":3466},[13988],{"type":3176,"value":13989}," run",{"type":3171,"tag":3454,"props":13991,"children":13992},{"style":3466},[13993],{"type":3176,"value":13994}," dev:prepare\n",{"type":3171,"tag":3454,"props":13996,"children":13997},{"class":3456,"line":3743},[13998],{"type":3171,"tag":3454,"props":13999,"children":14000},{"emptyLinePlaceholder":1200},[14001],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":14003,"children":14004},{"class":3456,"line":3077},[14005],{"type":3171,"tag":3454,"props":14006,"children":14007},{"style":3519},[14008],{"type":3176,"value":14009},"# Develop with the playground\n",{"type":3171,"tag":3454,"props":14011,"children":14012},{"class":3456,"line":3073},[14013,14017,14021],{"type":3171,"tag":3454,"props":14014,"children":14015},{"style":3460},[14016],{"type":3176,"value":13957},{"type":3171,"tag":3454,"props":14018,"children":14019},{"style":3466},[14020],{"type":3176,"value":13989},{"type":3171,"tag":3454,"props":14022,"children":14023},{"style":3466},[14024],{"type":3176,"value":14025}," dev\n",{"type":3171,"tag":3454,"props":14027,"children":14028},{"class":3456,"line":3069},[14029],{"type":3171,"tag":3454,"props":14030,"children":14031},{"emptyLinePlaceholder":1200},[14032],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":14034,"children":14035},{"class":3456,"line":3905},[14036],{"type":3171,"tag":3454,"props":14037,"children":14038},{"style":3519},[14039],{"type":3176,"value":14040},"# Build the playground\n",{"type":3171,"tag":3454,"props":14042,"children":14043},{"class":3456,"line":3922},[14044,14048,14052],{"type":3171,"tag":3454,"props":14045,"children":14046},{"style":3460},[14047],{"type":3176,"value":13957},{"type":3171,"tag":3454,"props":14049,"children":14050},{"style":3466},[14051],{"type":3176,"value":13989},{"type":3171,"tag":3454,"props":14053,"children":14054},{"style":3466},[14055],{"type":3176,"value":14056}," dev:build\n",{"type":3171,"tag":3454,"props":14058,"children":14059},{"class":3456,"line":3943},[14060],{"type":3171,"tag":3454,"props":14061,"children":14062},{"emptyLinePlaceholder":1200},[14063],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":14065,"children":14066},{"class":3456,"line":3976},[14067],{"type":3171,"tag":3454,"props":14068,"children":14069},{"style":3519},[14070],{"type":3176,"value":14071},"# Run ESLint\n",{"type":3171,"tag":3454,"props":14073,"children":14074},{"class":3456,"line":4031},[14075,14079,14083],{"type":3171,"tag":3454,"props":14076,"children":14077},{"style":3460},[14078],{"type":3176,"value":13957},{"type":3171,"tag":3454,"props":14080,"children":14081},{"style":3466},[14082],{"type":3176,"value":13989},{"type":3171,"tag":3454,"props":14084,"children":14085},{"style":3466},[14086],{"type":3176,"value":14087}," lint\n",{"type":3171,"tag":3454,"props":14089,"children":14090},{"class":3456,"line":4040},[14091],{"type":3171,"tag":3454,"props":14092,"children":14093},{"emptyLinePlaceholder":1200},[14094],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":14096,"children":14097},{"class":3456,"line":3065},[14098],{"type":3171,"tag":3454,"props":14099,"children":14100},{"style":3519},[14101],{"type":3176,"value":14102},"# Run Vitest\n",{"type":3171,"tag":3454,"props":14104,"children":14105},{"class":3456,"line":4108},[14106,14110,14114],{"type":3171,"tag":3454,"props":14107,"children":14108},{"style":3460},[14109],{"type":3176,"value":13957},{"type":3171,"tag":3454,"props":14111,"children":14112},{"style":3466},[14113],{"type":3176,"value":13989},{"type":3171,"tag":3454,"props":14115,"children":14116},{"style":3466},[14117],{"type":3176,"value":14118}," test\n",{"type":3171,"tag":3454,"props":14120,"children":14121},{"class":3456,"line":4378},[14122,14126,14130],{"type":3171,"tag":3454,"props":14123,"children":14124},{"style":3460},[14125],{"type":3176,"value":13957},{"type":3171,"tag":3454,"props":14127,"children":14128},{"style":3466},[14129],{"type":3176,"value":13989},{"type":3171,"tag":3454,"props":14131,"children":14132},{"style":3466},[14133],{"type":3176,"value":14134}," test:watch\n",{"type":3171,"tag":3454,"props":14136,"children":14137},{"class":3456,"line":4386},[14138],{"type":3171,"tag":3454,"props":14139,"children":14140},{"emptyLinePlaceholder":1200},[14141],{"type":3176,"value":3723},{"type":3171,"tag":3454,"props":14143,"children":14144},{"class":3456,"line":4395},[14145],{"type":3171,"tag":3454,"props":14146,"children":14147},{"style":3519},[14148],{"type":3176,"value":14149},"# Release new version\n",{"type":3171,"tag":3454,"props":14151,"children":14152},{"class":3456,"line":4403},[14153,14157,14161],{"type":3171,"tag":3454,"props":14154,"children":14155},{"style":3460},[14156],{"type":3176,"value":13957},{"type":3171,"tag":3454,"props":14158,"children":14159},{"style":3466},[14160],{"type":3176,"value":13989},{"type":3171,"tag":3454,"props":14162,"children":14163},{"style":3466},[14164],{"type":3176,"value":14165}," release\n",{"type":3171,"tag":14167,"props":14168,"children":14169},"style",{},[14170],{"type":3176,"value":14171},"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":3045,"searchDepth":3097,"depth":3097,"links":14173},[14174,14175,14176,14177,14180,14188,14189,14194,14195,14196,14197],{"id":3264,"depth":3097,"text":399},{"id":3382,"depth":3097,"text":3385},{"id":3423,"depth":3097,"text":3426},{"id":3564,"depth":3097,"text":3567,"children":14178},[14179],{"id":3576,"depth":3081,"text":3579},{"id":4658,"depth":3097,"text":4661,"children":14181},[14182,14183,14184,14185,14186,14187],{"id":4677,"depth":3081,"text":4680},{"id":5271,"depth":3081,"text":5274},{"id":6272,"depth":3081,"text":3298},{"id":6724,"depth":3081,"text":6727},{"id":6874,"depth":3081,"text":3307},{"id":10788,"depth":3081,"text":10791},{"id":11081,"depth":3097,"text":11084},{"id":11356,"depth":3097,"text":3278,"children":14190},[14191,14192],{"id":11527,"depth":3081,"text":11530},{"id":11655,"depth":3081,"text":14193},"\u003CAuthState> component",{"id":12376,"depth":3097,"text":12379},{"id":13400,"depth":3097,"text":29},{"id":13905,"depth":3097,"text":13908},{"id":13931,"depth":3097,"text":13934},{"v5":14199,"v4":14200,"v3":14201,"v2":14202},"5 (nightly)","4.5.2","3.21.11","2.18.1"]