[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f30r277ag21rfj":3,"module-auth-utils":3023,"versions":14181},[4,1124,1971,2817],{"title":5,"titleTemplate":6,"icon":7,"path":8,"stem":9,"children":10,"page":108},"Docs",null,"i-lucide-book-marked","\u002Fdocs\u002F3.x","docs\u002F3.x",[11,109,246,430,911,1003,1040,1082],{"title":12,"titleTemplate":13,"icon":14,"path":15,"stem":16,"children":17,"page":108},"Get Started","%s · Get Started with Nuxt","i-lucide-rocket","\u002Fdocs\u002F3.x\u002Fgetting-started","docs\u002F3.x\u002F1.getting-started",[18,23,28,33,38,43,48,53,58,63,68,73,78,83,88,93,98,103],{"title":19,"path":20,"stem":21,"titleTemplate":6,"icon":22},"Introduction","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fintroduction","docs\u002F3.x\u002F1.getting-started\u002F01.introduction","i-lucide-info",{"title":24,"path":25,"stem":26,"titleTemplate":6,"icon":27},"Installation","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Finstallation","docs\u002F3.x\u002F1.getting-started\u002F02.installation","i-lucide-play",{"title":29,"path":30,"stem":31,"titleTemplate":6,"icon":32},"Configuration","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fconfiguration","docs\u002F3.x\u002F1.getting-started\u002F03.configuration","i-lucide-cog",{"title":34,"path":35,"stem":36,"titleTemplate":6,"icon":37},"Views","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fviews","docs\u002F3.x\u002F1.getting-started\u002F04.views","i-lucide-panels-top-left",{"title":39,"path":40,"stem":41,"titleTemplate":6,"icon":42},"Assets","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fassets","docs\u002F3.x\u002F1.getting-started\u002F05.assets","i-lucide-image",{"title":44,"path":45,"stem":46,"titleTemplate":6,"icon":47},"Styling","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fstyling","docs\u002F3.x\u002F1.getting-started\u002F06.styling","i-lucide-palette",{"title":49,"path":50,"stem":51,"titleTemplate":6,"icon":52},"Routing","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Frouting","docs\u002F3.x\u002F1.getting-started\u002F07.routing","i-lucide-milestone",{"title":54,"path":55,"stem":56,"titleTemplate":6,"icon":57},"SEO and Meta","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fseo-meta","docs\u002F3.x\u002F1.getting-started\u002F08.seo-meta","i-lucide-file-search",{"title":59,"path":60,"stem":61,"titleTemplate":6,"icon":62},"Transitions","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ftransitions","docs\u002F3.x\u002F1.getting-started\u002F09.transitions","i-lucide-toggle-right",{"title":64,"path":65,"stem":66,"titleTemplate":6,"icon":67},"Data Fetching","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F3.x\u002F1.getting-started\u002F10.data-fetching","i-lucide-cable",{"title":69,"path":70,"stem":71,"titleTemplate":6,"icon":72},"State Management","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fstate-management","docs\u002F3.x\u002F1.getting-started\u002F11.state-management","i-lucide-database",{"title":74,"path":75,"stem":76,"titleTemplate":6,"icon":77},"Error Handling","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ferror-handling","docs\u002F3.x\u002F1.getting-started\u002F12.error-handling","i-lucide-bug-off",{"title":79,"path":80,"stem":81,"titleTemplate":6,"icon":82},"Server","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fserver","docs\u002F3.x\u002F1.getting-started\u002F13.server","i-lucide-pc-case",{"title":84,"path":85,"stem":86,"titleTemplate":6,"icon":87},"Layers","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Flayers","docs\u002F3.x\u002F1.getting-started\u002F14.layers","i-lucide-layers",{"title":89,"path":90,"stem":91,"titleTemplate":6,"icon":92},"Prerendering","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fprerendering","docs\u002F3.x\u002F1.getting-started\u002F15.prerendering","i-lucide-file-code-2",{"title":94,"path":95,"stem":96,"titleTemplate":6,"icon":97},"Deployment","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fdeployment","docs\u002F3.x\u002F1.getting-started\u002F16.deployment","i-lucide-cloud",{"title":99,"path":100,"stem":101,"titleTemplate":6,"icon":102},"Testing","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Ftesting","docs\u002F3.x\u002F1.getting-started\u002F17.testing","i-lucide-circle-check",{"title":104,"path":105,"stem":106,"titleTemplate":6,"icon":107},"Upgrade Guide","\u002Fdocs\u002F3.x\u002Fgetting-started\u002Fupgrade","docs\u002F3.x\u002F1.getting-started\u002F18.upgrade","i-lucide-circle-arrow-up",false,{"title":110,"titleTemplate":111,"icon":112,"path":113,"stem":114,"children":115,"page":108},"Directory Structure","%s · Nuxt Directory Structure","i-vscode-icons-default-folder","\u002Fdocs\u002F3.x\u002Fdirectory-structure","docs\u002F3.x\u002F2.directory-structure",[116,121,126,131,136,141,146,151,156,161,165,170,174,179,184,189,194,199,204,209,214,218,223,228,232,236,241],{"title":117,"path":118,"stem":119,"titleTemplate":6,"icon":120},".nuxt","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F3.x\u002F2.directory-structure\u002F0.nuxt","i-vscode-icons-folder-type-temp",{"title":122,"path":123,"stem":124,"titleTemplate":6,"icon":125},".output","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Foutput","docs\u002F3.x\u002F2.directory-structure\u002F0.output","i-vscode-icons-folder-type-package",{"title":127,"path":128,"stem":129,"titleTemplate":6,"icon":130},"assets","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fassets","docs\u002F3.x\u002F2.directory-structure\u002F1.assets","i-vscode-icons-folder-type-asset",{"title":132,"path":133,"stem":134,"titleTemplate":6,"icon":135},"components","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcomponents","docs\u002F3.x\u002F2.directory-structure\u002F1.components","i-vscode-icons-folder-type-component",{"title":137,"path":138,"stem":139,"titleTemplate":6,"icon":140},"composables","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcomposables","docs\u002F3.x\u002F2.directory-structure\u002F1.composables","i-vscode-icons-folder-type-src",{"title":142,"path":143,"stem":144,"titleTemplate":6,"icon":145},"content","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fcontent","docs\u002F3.x\u002F2.directory-structure\u002F1.content","i-vscode-icons-folder-type-log",{"title":147,"path":148,"stem":149,"titleTemplate":6,"icon":150},"layers","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Flayers","docs\u002F3.x\u002F2.directory-structure\u002F1.layers","i-vscode-icons-folder-type-nuxt",{"title":152,"path":153,"stem":154,"titleTemplate":6,"icon":155},"layouts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Flayouts","docs\u002F3.x\u002F2.directory-structure\u002F1.layouts","i-vscode-icons-folder-type-view",{"title":157,"path":158,"stem":159,"titleTemplate":6,"icon":160},"middleware","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fmiddleware","docs\u002F3.x\u002F2.directory-structure\u002F1.middleware","i-vscode-icons-folder-type-middleware",{"title":162,"path":163,"stem":164,"titleTemplate":6,"icon":150},"modules","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fmodules","docs\u002F3.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":167,"stem":168,"titleTemplate":6,"icon":169},"node_modules","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F3.x\u002F2.directory-structure\u002F1.node_modules","i-vscode-icons-folder-type-node",{"title":171,"path":172,"stem":173,"titleTemplate":6,"icon":155},"pages","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpages","docs\u002F3.x\u002F2.directory-structure\u002F1.pages",{"title":175,"path":176,"stem":177,"titleTemplate":6,"icon":178},"plugins","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fplugins","docs\u002F3.x\u002F2.directory-structure\u002F1.plugins","i-vscode-icons-folder-type-plugin",{"title":180,"path":181,"stem":182,"titleTemplate":6,"icon":183},"public","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpublic","docs\u002F3.x\u002F2.directory-structure\u002F1.public","i-vscode-icons-folder-type-public",{"title":185,"path":186,"stem":187,"titleTemplate":6,"icon":188},"server","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fserver","docs\u002F3.x\u002F2.directory-structure\u002F1.server","i-vscode-icons-folder-type-server",{"title":190,"path":191,"stem":192,"titleTemplate":6,"icon":193},"shared","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fshared","docs\u002F3.x\u002F2.directory-structure\u002F1.shared","i-vscode-icons-folder-type-shared",{"title":195,"path":196,"stem":197,"titleTemplate":6,"icon":198},"utils","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Futils","docs\u002F3.x\u002F2.directory-structure\u002F1.utils","i-vscode-icons-folder-type-tools",{"title":200,"path":201,"stem":202,"titleTemplate":6,"icon":203},".env","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fenv","docs\u002F3.x\u002F2.directory-structure\u002F2.env","i-vscode-icons-file-type-dotenv",{"title":205,"path":206,"stem":207,"titleTemplate":6,"icon":208},".gitignore","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F3.x\u002F2.directory-structure\u002F2.gitignore","i-vscode-icons-file-type-git",{"title":210,"path":211,"stem":212,"titleTemplate":6,"icon":213},".nuxtignore","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F3.x\u002F2.directory-structure\u002F2.nuxtignore","i-vscode-icons-file-type-nuxt",{"title":215,"path":216,"stem":217,"titleTemplate":6,"icon":213},".nuxtrc","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F3.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":219,"path":220,"stem":221,"titleTemplate":6,"icon":222},"app.vue","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fapp","docs\u002F3.x\u002F2.directory-structure\u002F3.app","i-vscode-icons-file-type-vue",{"title":224,"path":225,"stem":226,"titleTemplate":6,"icon":227},"app.config.ts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fapp-config","docs\u002F3.x\u002F2.directory-structure\u002F3.app-config","i-vscode-icons-file-type-light-config",{"title":229,"path":230,"stem":231,"titleTemplate":6,"icon":222},"error.vue","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Ferror","docs\u002F3.x\u002F2.directory-structure\u002F3.error",{"title":233,"path":234,"stem":235,"titleTemplate":6,"icon":213},"nuxt.config.ts","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F3.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":238,"stem":239,"titleTemplate":6,"icon":240},"package.json","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Fpackage","docs\u002F3.x\u002F2.directory-structure\u002F3.package","i-vscode-icons-file-type-npm",{"title":242,"path":243,"stem":244,"titleTemplate":6,"icon":245},"tsconfig.json","\u002Fdocs\u002F3.x\u002Fdirectory-structure\u002Ftsconfig","docs\u002F3.x\u002F2.directory-structure\u002F3.tsconfig","i-vscode-icons-file-type-tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":249,"stem":250,"children":251,"page":108},"Guide","i-lucide-book-open","\u002Fdocs\u002F3.x\u002Fguide","docs\u002F3.x\u002F3.guide",[252,287,306,321,360,383],{"title":253,"titleTemplate":254,"icon":255,"path":256,"stem":257,"children":258,"page":108},"Key Concepts","%s · Nuxt Concepts","i-lucide-medal","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts","docs\u002F3.x\u002F3.guide\u002F1.concepts",[259,263,267,271,275,279,283],{"title":260,"path":261,"stem":262,"titleTemplate":6},"Rendering Modes","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":265,"stem":266,"titleTemplate":6},"Nuxt Lifecycle","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":269,"stem":270,"titleTemplate":6},"Auto-imports","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":273,"stem":274,"titleTemplate":6},"Server Engine","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":277,"stem":278,"titleTemplate":6},"Modules","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":281,"stem":282,"titleTemplate":6},"TypeScript","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":285,"stem":286,"titleTemplate":6},"Code Style","\u002Fdocs\u002F3.x\u002Fguide\u002Fconcepts\u002Fcode-style","docs\u002F3.x\u002F3.guide\u002F1.concepts\u002F9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":291,"stem":292,"children":293,"page":108},"Best Practices","%s · Best Practices","i-lucide-square-check","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices","docs\u002F3.x\u002F3.guide\u002F2.best-practices",[294,298,302],{"title":295,"path":296,"stem":297,"titleTemplate":6},"Nuxt and hydration","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":300,"stem":301,"titleTemplate":6},"Nuxt Performance","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":304,"stem":305,"titleTemplate":6},"Nuxt Plugins","\u002Fdocs\u002F3.x\u002Fguide\u002Fbest-practices\u002Fplugins","docs\u002F3.x\u002F3.guide\u002F2.best-practices\u002Fplugins",{"title":307,"titleTemplate":308,"icon":309,"path":310,"stem":311,"children":312,"page":108},"Working with AI","Working with AI: %s","i-lucide-bot","\u002Fdocs\u002F3.x\u002Fguide\u002Fai","docs\u002F3.x\u002F3.guide\u002F3.ai",[313,317],{"title":314,"path":315,"stem":316,"titleTemplate":6},"MCP Server","\u002Fdocs\u002F3.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F3.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":319,"stem":320,"titleTemplate":6},"LLMs.txt","\u002Fdocs\u002F3.x\u002Fguide\u002Fai\u002Fllms-txt","docs\u002F3.x\u002F3.guide\u002F3.ai\u002F2.llms-txt",{"title":322,"titleTemplate":323,"icon":324,"path":325,"stem":326,"children":327,"page":108},"Module Author Guide","%s · Nuxt Modules Author Guide","i-lucide-box","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules","docs\u002F3.x\u002F3.guide\u002F4.modules",[328,332,336,340,344,348,352,356],{"title":329,"path":330,"stem":331,"titleTemplate":6},"Create Your First Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":334,"stem":335,"titleTemplate":6},"Understand Module Structure","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":338,"stem":339,"titleTemplate":6},"Add Plugins, Components & More","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":342,"stem":343,"titleTemplate":6},"Module Dependencies","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F4.module-dependencies",{"title":345,"path":346,"stem":347,"titleTemplate":6},"Use Hooks & Extend Types","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F5.recipes-advanced",{"title":349,"path":350,"stem":351,"titleTemplate":6},"Test Your Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F6.testing",{"title":353,"path":354,"stem":355,"titleTemplate":6},"Follow Best Practices","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F7.best-practices",{"title":357,"path":358,"stem":359,"titleTemplate":6},"Publish & Share Your Module","\u002Fdocs\u002F3.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F3.x\u002F3.guide\u002F4.modules\u002F8.ecosystem",{"title":361,"titleTemplate":362,"icon":363,"path":364,"stem":365,"children":366,"page":108},"Recipes","%s · Recipes","i-lucide-cooking-pot","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes","docs\u002F3.x\u002F3.guide\u002F5.recipes",[367,371,375,379],{"title":368,"path":369,"stem":370,"titleTemplate":6},"Custom Routing","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":372,"path":373,"stem":374,"titleTemplate":6},"Vite Plugins","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":376,"path":377,"stem":378,"titleTemplate":6},"Custom useFetch","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":380,"path":381,"stem":382,"titleTemplate":6},"Sessions and Authentication","\u002Fdocs\u002F3.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F3.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":384,"titleTemplate":385,"icon":386,"path":387,"stem":388,"children":389,"page":108},"Going Further","%s · Nuxt Advanced","i-lucide-star","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further","docs\u002F3.x\u002F3.guide\u002F6.going-further",[390,394,398,402,406,410,414,418,422,426],{"title":391,"path":392,"stem":393,"titleTemplate":6},"Custom Events","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":395,"path":396,"stem":397,"titleTemplate":6},"Experimental Features","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":399,"path":400,"stem":401,"titleTemplate":6},"Features","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":403,"path":404,"stem":405,"titleTemplate":6},"Runtime Config","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":407,"path":408,"stem":409,"titleTemplate":6},"Nightly Release Channel","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnightly-release-channel","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F11.nightly-release-channel",{"title":411,"path":412,"stem":413,"titleTemplate":6},"Lifecycle Hooks","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":415,"path":416,"stem":417,"titleTemplate":6},"Nuxt Kit","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":419,"path":420,"stem":421,"titleTemplate":6},"NuxtApp","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":423,"path":424,"stem":425,"titleTemplate":6},"Authoring Nuxt Layers","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":427,"path":428,"stem":429,"titleTemplate":6},"Debugging","\u002Fdocs\u002F3.x\u002Fguide\u002Fgoing-further\u002Fdebugging","docs\u002F3.x\u002F3.guide\u002F6.going-further\u002F9.debugging",{"title":431,"titleTemplate":432,"icon":433,"path":434,"stem":435,"children":436,"page":108},"API","%s · Nuxt API","i-lucide-code-xml","\u002Fdocs\u002F3.x\u002Fapi","docs\u002F3.x\u002F4.api",[437,503,626,749,820,893,906],{"title":438,"titleTemplate":439,"icon":324,"path":440,"stem":441,"children":442,"page":108},"Components","%s · Nuxt Components","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents","docs\u002F3.x\u002F4.api\u002F1.components",[443,447,451,455,459,463,467,471,475,479,483,487,491,495,499],{"title":444,"path":445,"stem":446,"titleTemplate":6},"\u003CClientOnly>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":448,"path":449,"stem":450,"titleTemplate":6},"\u003CDevOnly>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":452,"path":453,"stem":454,"titleTemplate":6},"\u003CNuxtClientFallback>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F3.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":456,"path":457,"stem":458,"titleTemplate":6},"\u003CNuxtPicture>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F3.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":460,"path":461,"stem":462,"titleTemplate":6},"\u003CTeleport>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F3.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":464,"path":465,"stem":466,"titleTemplate":6},"\u003CNuxtRouteAnnouncer>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F3.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":468,"path":469,"stem":470,"titleTemplate":6},"\u003CNuxtTime>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F3.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":472,"path":473,"stem":474,"titleTemplate":6},"\u003CNuxtPage>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F3.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":476,"path":477,"stem":478,"titleTemplate":6},"\u003CNuxtLayout>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F3.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":480,"path":481,"stem":482,"titleTemplate":6},"\u003CNuxtLink>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F3.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":484,"path":485,"stem":486,"titleTemplate":6},"\u003CNuxtLoadingIndicator>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F3.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":488,"path":489,"stem":490,"titleTemplate":6},"\u003CNuxtErrorBoundary>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F3.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":492,"path":493,"stem":494,"titleTemplate":6},"\u003CNuxtWelcome>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F3.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":496,"path":497,"stem":498,"titleTemplate":6},"\u003CNuxtIsland>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F3.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":500,"path":501,"stem":502,"titleTemplate":6},"\u003CNuxtImg>","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomponents\u002Fnuxt-img","docs\u002F3.x\u002F4.api\u002F1.components\u002F9.nuxt-img",{"title":504,"titleTemplate":505,"icon":506,"path":507,"stem":508,"children":509,"page":108},"Composables","%s · Nuxt Composables","i-lucide-arrow-left-right","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables","docs\u002F3.x\u002F4.api\u002F2.composables",[510,514,518,522,526,530,534,538,542,546,550,554,558,562,566,570,574,578,582,586,590,594,598,602,606,610,614,618,622],{"title":511,"path":512,"stem":513,"titleTemplate":6},"onPrehydrate","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":515,"path":516,"stem":517,"titleTemplate":6},"useAppConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":519,"path":520,"stem":521,"titleTemplate":6},"useAsyncData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":523,"path":524,"stem":525,"titleTemplate":6},"useCookie","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":527,"path":528,"stem":529,"titleTemplate":6},"useError","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":531,"path":532,"stem":533,"titleTemplate":6},"useFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":535,"path":536,"stem":537,"titleTemplate":6},"useHead","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":539,"path":540,"stem":541,"titleTemplate":6},"useHeadSafe","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":543,"path":544,"stem":545,"titleTemplate":6},"useHydration","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":547,"path":548,"stem":549,"titleTemplate":6},"useLazyAsyncData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-async-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-lazy-async-data",{"title":551,"path":552,"stem":553,"titleTemplate":6},"useLazyFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":555,"path":556,"stem":557,"titleTemplate":6},"useLoadingIndicator","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":559,"path":560,"stem":561,"titleTemplate":6},"useNuxtApp","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":563,"path":564,"stem":565,"titleTemplate":6},"useNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":567,"path":568,"stem":569,"titleTemplate":6},"usePreviewMode","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":571,"path":572,"stem":573,"titleTemplate":6},"useRequestEvent","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":575,"path":576,"stem":577,"titleTemplate":6},"useRequestFetch","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":579,"path":580,"stem":581,"titleTemplate":6},"useRequestHeader","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":583,"path":584,"stem":585,"titleTemplate":6},"useRequestHeaders","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":587,"path":588,"stem":589,"titleTemplate":6},"useRequestURL","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":591,"path":592,"stem":593,"titleTemplate":6},"useResponseHeader","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":595,"path":596,"stem":597,"titleTemplate":6},"useRoute","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":599,"path":600,"stem":601,"titleTemplate":6},"useRouteAnnouncer","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":603,"path":604,"stem":605,"titleTemplate":6},"useRouter","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":607,"path":608,"stem":609,"titleTemplate":6},"useRuntimeConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":611,"path":612,"stem":613,"titleTemplate":6},"useRuntimeHook","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":615,"path":616,"stem":617,"titleTemplate":6},"useSeoMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":619,"path":620,"stem":621,"titleTemplate":6},"useServerSeoMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-server-seo-meta","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-server-seo-meta",{"title":623,"path":624,"stem":625,"titleTemplate":6},"useState","\u002Fdocs\u002F3.x\u002Fapi\u002Fcomposables\u002Fuse-state","docs\u002F3.x\u002F4.api\u002F2.composables\u002Fuse-state",{"title":627,"titleTemplate":628,"icon":629,"path":630,"stem":631,"children":632,"page":108},"Utils","%s · Nuxt Utils","i-lucide-square-function","\u002Fdocs\u002F3.x\u002Fapi\u002Futils","docs\u002F3.x\u002F4.api\u002F3.utils",[633,637,641,645,649,653,657,661,665,669,673,677,681,685,689,693,697,701,705,709,713,717,721,725,729,733,737,741,745],{"title":634,"path":635,"stem":636,"titleTemplate":6},"$fetch","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F3.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":638,"path":639,"stem":640,"titleTemplate":6},"abortNavigation","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":642,"path":643,"stem":644,"titleTemplate":6},"addRouteMiddleware","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":646,"path":647,"stem":648,"titleTemplate":6},"callOnce","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":650,"path":651,"stem":652,"titleTemplate":6},"clearError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":654,"path":655,"stem":656,"titleTemplate":6},"clearNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":658,"path":659,"stem":660,"titleTemplate":6},"clearNuxtState","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":662,"path":663,"stem":664,"titleTemplate":6},"createError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":666,"path":667,"stem":668,"titleTemplate":6},"defineLazyHydrationComponent","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-lazy-hydration-component","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-lazy-hydration-component",{"title":670,"path":671,"stem":672,"titleTemplate":6},"defineNuxtComponent","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":674,"path":675,"stem":676,"titleTemplate":6},"defineNuxtPlugin","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":678,"path":679,"stem":680,"titleTemplate":6},"defineNuxtRouteMiddleware","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-nuxt-route-middleware","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-route-middleware",{"title":682,"path":683,"stem":684,"titleTemplate":6},"definePageMeta","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":686,"path":687,"stem":688,"titleTemplate":6},"defineRouteRules","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":690,"path":691,"stem":692,"titleTemplate":6},"navigateTo","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":694,"path":695,"stem":696,"titleTemplate":6},"onBeforeRouteLeave","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-leave","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-before-route-leave",{"title":698,"path":699,"stem":700,"titleTemplate":6},"onBeforeRouteUpdate","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-before-route-update","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-before-route-update",{"title":702,"path":703,"stem":704,"titleTemplate":6},"onNuxtReady","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":706,"path":707,"stem":708,"titleTemplate":6},"prefetchComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":710,"path":711,"stem":712,"titleTemplate":6},"preloadComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":714,"path":715,"stem":716,"titleTemplate":6},"preloadRouteComponents","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":718,"path":719,"stem":720,"titleTemplate":6},"prerenderRoutes","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":722,"path":723,"stem":724,"titleTemplate":6},"refreshCookie","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F3.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":726,"path":727,"stem":728,"titleTemplate":6},"refreshNuxtData","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F3.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":730,"path":731,"stem":732,"titleTemplate":6},"reloadNuxtApp","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F3.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":734,"path":735,"stem":736,"titleTemplate":6},"setPageLayout","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":738,"path":739,"stem":740,"titleTemplate":6},"setResponseStatus","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":742,"path":743,"stem":744,"titleTemplate":6},"showError","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":746,"path":747,"stem":748,"titleTemplate":6},"updateAppConfig","\u002Fdocs\u002F3.x\u002Fapi\u002Futils\u002Fupdate-app-config","docs\u002F3.x\u002F4.api\u002F3.utils\u002Fupdate-app-config",{"title":750,"titleTemplate":751,"icon":752,"path":753,"stem":754,"children":755,"page":108},"Commands","%s · Nuxt Commands","i-lucide-square-terminal","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands","docs\u002F3.x\u002F4.api\u002F4.commands",[756,760,764,768,772,776,780,784,788,792,796,800,804,808,812,816],{"title":757,"path":758,"stem":759,"titleTemplate":6},"nuxt add","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fadd",{"title":761,"path":762,"stem":763,"titleTemplate":6},"nuxt analyze","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":765,"path":766,"stem":767,"titleTemplate":6},"nuxt build","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":769,"path":770,"stem":771,"titleTemplate":6},"nuxt build-module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":773,"path":774,"stem":775,"titleTemplate":6},"nuxt cleanup","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":777,"path":778,"stem":779,"titleTemplate":6},"nuxt dev","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdev",{"title":781,"path":782,"stem":783,"titleTemplate":6},"nuxt devtools","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":785,"path":786,"stem":787,"titleTemplate":6},"nuxt generate","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":789,"path":790,"stem":791,"titleTemplate":6},"nuxt info","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finfo",{"title":793,"path":794,"stem":795,"titleTemplate":6},"create nuxt","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finit",{"title":797,"path":798,"stem":799,"titleTemplate":6},"nuxt module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":801,"path":802,"stem":803,"titleTemplate":6},"nuxt prepare","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":805,"path":806,"stem":807,"titleTemplate":6},"nuxt preview","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":809,"path":810,"stem":811,"titleTemplate":6},"nuxt test","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftest",{"title":813,"path":814,"stem":815,"titleTemplate":6},"nuxt typecheck","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":817,"path":818,"stem":819,"titleTemplate":6},"nuxt upgrade","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":415,"titleTemplate":821,"icon":822,"path":823,"stem":824,"children":825,"page":108},"%s · Nuxt Kit","i-lucide-package","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit","docs\u002F3.x\u002F4.api\u002F5.kit",[826,829,832,836,840,844,848,852,856,859,863,867,870,873,877,881,885,889],{"title":276,"path":827,"stem":828,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F3.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":403,"path":830,"stem":831,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":833,"path":834,"stem":835,"titleTemplate":6},"Templates","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":837,"path":838,"stem":839,"titleTemplate":6},"Nitro","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F3.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":841,"path":842,"stem":843,"titleTemplate":6},"Resolving","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F3.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":845,"path":846,"stem":847,"titleTemplate":6},"Logging","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F3.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":849,"path":850,"stem":851,"titleTemplate":6},"Builder","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F3.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":853,"path":854,"stem":855,"titleTemplate":6},"Examples","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F3.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":857,"stem":858,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F3.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":860,"path":861,"stem":862,"titleTemplate":6},"Programmatic Usage","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F3.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":864,"path":865,"stem":866,"titleTemplate":6},"Compatibility","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F3.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":868,"stem":869,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F3.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":438,"path":871,"stem":872,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F3.x\u002F4.api\u002F5.kit\u002F5.components",{"title":874,"path":875,"stem":876,"titleTemplate":6},"Context","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F3.x\u002F4.api\u002F5.kit\u002F6.context",{"title":878,"path":879,"stem":880,"titleTemplate":6},"Pages","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F3.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":882,"path":883,"stem":884,"titleTemplate":6},"Layout","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F3.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":886,"path":887,"stem":888,"titleTemplate":6},"Head","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.head",{"title":890,"path":891,"stem":892,"titleTemplate":6},"Plugins","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":894,"titleTemplate":6,"icon":895,"path":896,"stem":897,"children":898,"page":108},"Advanced","i-lucide-brain","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced","docs\u002F3.x\u002F4.api\u002F6.advanced",[899,902],{"title":411,"path":900,"stem":901,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":903,"path":904,"stem":905,"titleTemplate":6},"Import meta","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":907,"path":908,"stem":909,"titleTemplate":910,"icon":32},"Nuxt Configuration","\u002Fdocs\u002F3.x\u002Fapi\u002Fnuxt-config","docs\u002F3.x\u002F4.api\u002F6.nuxt-config","%s",{"title":853,"titleTemplate":912,"icon":913,"path":914,"stem":915,"children":916,"page":108},"%s · Nuxt Examples","i-lucide-app-window-mac","\u002Fdocs\u002F3.x\u002Fexamples","docs\u002F3.x\u002F4.examples",[917,921,943,958,994],{"title":918,"path":919,"stem":920,"titleTemplate":6},"Hello World","\u002Fdocs\u002F3.x\u002Fexamples\u002Fhello-world","docs\u002F3.x\u002F4.examples\u002F0.hello-world",{"title":399,"path":922,"stem":923,"children":924,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures","docs\u002F3.x\u002F4.examples\u002F1.features",[925,929,932,935,939],{"title":926,"path":927,"stem":928,"titleTemplate":6},"Auto Imports","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F3.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":930,"stem":931,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F3.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":933,"stem":934,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F3.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":936,"path":937,"stem":938,"titleTemplate":6},"Meta Tags","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F3.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":940,"path":941,"stem":942,"titleTemplate":6},"Layouts","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F3.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":944,"stem":945,"children":946,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting","docs\u002F3.x\u002F4.examples\u002F2.routing",[947,951,954],{"title":948,"path":949,"stem":950,"titleTemplate":6},"Middleware","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":878,"path":952,"stem":953,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":955,"path":956,"stem":957,"titleTemplate":6},"Universal Router","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":894,"path":959,"stem":960,"children":961,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced","docs\u002F3.x\u002F4.examples\u002F4.advanced",[962,965,968,972,976,980,984,987,990],{"title":84,"path":963,"stem":964,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":966,"stem":967,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":969,"path":970,"stem":971,"titleTemplate":6},"JSX \u002F TSX","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":973,"path":974,"stem":975,"titleTemplate":6},"Locale","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":977,"path":978,"stem":979,"titleTemplate":6},"Module Extend Pages","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":981,"path":982,"stem":983,"titleTemplate":6},"Teleport","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":985,"stem":986,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":523,"path":988,"stem":989,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":991,"path":992,"stem":993,"titleTemplate":6},"Use Custom Fetch Composable","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":995,"path":996,"stem":997,"children":998,"page":108},"Experimental","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental","docs\u002F3.x\u002F4.examples\u002F7.experimental",[999],{"title":1000,"path":1001,"stem":1002,"titleTemplate":6},"WASM","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F3.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1004,"titleTemplate":1005,"icon":1006,"path":1007,"stem":1008,"children":1009,"page":108},"Community","%s · Nuxt Community","i-lucide-messages-square","\u002Fdocs\u002F3.x\u002Fcommunity","docs\u002F3.x\u002F5.community",[1010,1015,1020,1025,1030,1035],{"title":1011,"path":1012,"stem":1013,"titleTemplate":6,"icon":1014},"Getting Help","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fgetting-help","docs\u002F3.x\u002F5.community\u002F2.getting-help","i-lucide-life-buoy",{"title":1016,"path":1017,"stem":1018,"titleTemplate":6,"icon":1019},"Reporting Bugs","\u002Fdocs\u002F3.x\u002Fcommunity\u002Freporting-bugs","docs\u002F3.x\u002F5.community\u002F3.reporting-bugs","i-lucide-bug",{"title":1021,"path":1022,"stem":1023,"titleTemplate":6,"icon":1024},"Contribution","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fcontribution","docs\u002F3.x\u002F5.community\u002F4.contribution","i-lucide-git-pull-request",{"title":1026,"path":1027,"stem":1028,"titleTemplate":6,"icon":1029},"Framework","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fframework-contribution","docs\u002F3.x\u002F5.community\u002F5.framework-contribution","i-lucide-github",{"title":1031,"path":1032,"stem":1033,"titleTemplate":6,"icon":1034},"Roadmap","\u002Fdocs\u002F3.x\u002Fcommunity\u002Froadmap","docs\u002F3.x\u002F5.community\u002F6.roadmap","i-lucide-map",{"title":1036,"path":1037,"stem":1038,"titleTemplate":6,"icon":1039},"Releases","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fchangelog","docs\u002F3.x\u002F5.community\u002F7.changelog","i-lucide-bell-dot",{"title":1041,"titleTemplate":1042,"icon":1043,"path":1044,"stem":1045,"children":1046,"page":108},"Migrate to Nuxt Bridge","Migrate to Nuxt Bridge: %s","i-lucide-ship","\u002Fdocs\u002F3.x\u002Fbridge","docs\u002F3.x\u002F6.bridge",[1047,1051,1054,1057,1061,1065,1069,1072,1075,1078],{"title":1048,"path":1049,"stem":1050,"titleTemplate":6},"Overview","\u002Fdocs\u002F3.x\u002Fbridge\u002Foverview","docs\u002F3.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1052,"stem":1053,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fconfiguration","docs\u002F3.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1055,"stem":1056,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Ftypescript","docs\u002F3.x\u002F6.bridge\u002F2.typescript",{"title":1058,"path":1059,"stem":1060,"titleTemplate":6},"Legacy Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F3.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1062,"path":1063,"stem":1064,"titleTemplate":6},"Plugins and Middleware","\u002Fdocs\u002F3.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F3.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1066,"path":1067,"stem":1068,"titleTemplate":6},"New Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F3.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":936,"path":1070,"stem":1071,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fmeta","docs\u002F3.x\u002F6.bridge\u002F6.meta",{"title":403,"path":1073,"stem":1074,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fruntime-config","docs\u002F3.x\u002F6.bridge\u002F7.runtime-config",{"title":837,"path":1076,"stem":1077,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fnitro","docs\u002F3.x\u002F6.bridge\u002F8.nitro",{"title":1079,"path":1080,"stem":1081,"titleTemplate":6},"Vite","\u002Fdocs\u002F3.x\u002Fbridge\u002Fvite","docs\u002F3.x\u002F6.bridge\u002F9.vite",{"title":1083,"titleTemplate":1084,"icon":107,"path":1085,"stem":1086,"children":1087,"page":108},"Migrate to Nuxt 3","Migrate to Nuxt 3: %s","\u002Fdocs\u002F3.x\u002Fmigration","docs\u002F3.x\u002F7.migration",[1088,1091,1095,1098,1101,1104,1107,1110,1113,1117,1121],{"title":1048,"path":1089,"stem":1090,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Foverview","docs\u002F3.x\u002F7.migration\u002F1.overview",{"title":1092,"path":1093,"stem":1094,"titleTemplate":6},"Build Tooling","\u002Fdocs\u002F3.x\u002Fmigration\u002Fbundling","docs\u002F3.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1096,"stem":1097,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fserver","docs\u002F3.x\u002F7.migration\u002F11.server",{"title":29,"path":1099,"stem":1100,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fconfiguration","docs\u002F3.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1102,"stem":1103,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmodule-authors","docs\u002F3.x\u002F7.migration\u002F20.module-authors",{"title":926,"path":1105,"stem":1106,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fauto-imports","docs\u002F3.x\u002F7.migration\u002F3.auto-imports",{"title":936,"path":1108,"stem":1109,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmeta","docs\u002F3.x\u002F7.migration\u002F4.meta",{"title":1062,"path":1111,"stem":1112,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F3.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1114,"path":1115,"stem":1116,"titleTemplate":6},"Pages and Layouts","\u002Fdocs\u002F3.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F3.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1118,"path":1119,"stem":1120,"titleTemplate":6},"Component Options","\u002Fdocs\u002F3.x\u002Fmigration\u002Fcomponent-options","docs\u002F3.x\u002F7.migration\u002F7.component-options",{"title":403,"path":1122,"stem":1123,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fruntime-config","docs\u002F3.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1125,"stem":1126,"children":1127,"page":108},"\u002Fdocs\u002F4.x","docs\u002F4.x",[1128,1186,1280,1419,1801,1878,1900,1934],{"title":12,"titleTemplate":13,"icon":14,"path":1129,"stem":1130,"children":1131,"page":108},"\u002Fdocs\u002F4.x\u002Fgetting-started","docs\u002F4.x\u002F1.getting-started",[1132,1135,1138,1141,1144,1147,1150,1153,1156,1159,1162,1165,1168,1171,1174,1177,1180,1183],{"title":19,"path":1133,"stem":1134,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fintroduction","docs\u002F4.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1136,"stem":1137,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Finstallation","docs\u002F4.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1139,"stem":1140,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fconfiguration","docs\u002F4.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":1142,"stem":1143,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fviews","docs\u002F4.x\u002F1.getting-started\u002F04.views",{"title":39,"path":1145,"stem":1146,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fassets","docs\u002F4.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":1148,"stem":1149,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstyling","docs\u002F4.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":1151,"stem":1152,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Frouting","docs\u002F4.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":1154,"stem":1155,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fseo-meta","docs\u002F4.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":1157,"stem":1158,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftransitions","docs\u002F4.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":1160,"stem":1161,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F4.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":1163,"stem":1164,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstate-management","docs\u002F4.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":1166,"stem":1167,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ferror-handling","docs\u002F4.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":1169,"stem":1170,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fserver","docs\u002F4.x\u002F1.getting-started\u002F13.server",{"title":84,"path":1172,"stem":1173,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Flayers","docs\u002F4.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":1175,"stem":1176,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fprerendering","docs\u002F4.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":1178,"stem":1179,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdeployment","docs\u002F4.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":1181,"stem":1182,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftesting","docs\u002F4.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":1184,"stem":1185,"titleTemplate":6,"icon":107},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fupgrade","docs\u002F4.x\u002F1.getting-started\u002F18.upgrade",{"title":110,"titleTemplate":111,"icon":112,"path":1187,"stem":1188,"children":1189,"page":108},"\u002Fdocs\u002F4.x\u002Fdirectory-structure","docs\u002F4.x\u002F2.directory-structure",[1190,1193,1196,1238,1241,1244,1247,1250,1253,1256,1259,1262,1265,1268,1271,1274,1277],{"title":117,"path":1191,"stem":1192,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F4.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":1194,"stem":1195,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Foutput","docs\u002F4.x\u002F2.directory-structure\u002F0.output",{"title":1197,"titleTemplate":111,"head":1198,"defaultOpen":1200,"icon":1201,"path":1202,"stem":1203,"children":1204,"page":108},"app",{"title":1199},"app\u002F",true,"i-vscode-icons-folder-type-app","\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app",[1205,1208,1211,1214,1217,1220,1223,1226,1229,1232,1235],{"title":127,"path":1206,"stem":1207,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":1209,"stem":1210,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":1212,"stem":1213,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":1215,"stem":1216,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":1218,"stem":1219,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":1221,"stem":1222,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":1224,"stem":1225,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":1227,"stem":1228,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":1230,"stem":1231,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":1233,"stem":1234,"titleTemplate":6,"icon":227},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp-config","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.app-config",{"title":229,"path":1236,"stem":1237,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":1239,"stem":1240,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fcontent","docs\u002F4.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":1242,"stem":1243,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Flayers","docs\u002F4.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":1245,"stem":1246,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fmodules","docs\u002F4.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":1248,"stem":1249,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F4.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":1251,"stem":1252,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpublic","docs\u002F4.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":1254,"stem":1255,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fserver","docs\u002F4.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":1257,"stem":1258,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fshared","docs\u002F4.x\u002F2.directory-structure\u002F1.shared",{"title":200,"path":1260,"stem":1261,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fenv","docs\u002F4.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":1263,"stem":1264,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F4.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":1266,"stem":1267,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":1269,"stem":1270,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":1272,"stem":1273,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F4.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":1275,"stem":1276,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpackage","docs\u002F4.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":1278,"stem":1279,"titleTemplate":6,"icon":245},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Ftsconfig","docs\u002F4.x\u002F2.directory-structure\u002F3.tsconfig",{"title":247,"titleTemplate":6,"icon":248,"path":1281,"stem":1282,"children":1283,"page":108},"\u002Fdocs\u002F4.x\u002Fguide","docs\u002F4.x\u002F3.guide",[1284,1309,1327,1337,1365,1381],{"title":253,"titleTemplate":254,"icon":255,"path":1285,"stem":1286,"children":1287,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts","docs\u002F4.x\u002F3.guide\u002F1.concepts",[1288,1291,1294,1297,1300,1303,1306],{"title":260,"path":1289,"stem":1290,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":1292,"stem":1293,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":1295,"stem":1296,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":1298,"stem":1299,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":1301,"stem":1302,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":280,"path":1304,"stem":1305,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":1307,"stem":1308,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fcode-style","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F9.code-style",{"title":288,"titleTemplate":289,"icon":290,"path":1310,"stem":1311,"children":1312,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F2.best-practices",[1313,1317,1321,1324],{"title":1314,"path":1315,"stem":1316,"titleTemplate":6},"Dev Containers","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fdevcontainers","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fdevcontainers",{"title":1318,"path":1319,"stem":1320,"titleTemplate":6},"Nuxt and Hydration","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":1322,"stem":1323,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":1325,"stem":1326,"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":1328,"stem":1329,"children":1330,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai","docs\u002F4.x\u002F3.guide\u002F3.ai",[1331,1334],{"title":314,"path":1332,"stem":1333,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F4.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":1335,"stem":1336,"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":1338,"stem":1339,"children":1340,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F4.modules",[1341,1344,1347,1350,1353,1356,1359,1362],{"title":329,"path":1342,"stem":1343,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":1345,"stem":1346,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":1348,"stem":1349,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":1351,"stem":1352,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F4.module-dependencies",{"title":345,"path":1354,"stem":1355,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F5.recipes-advanced",{"title":349,"path":1357,"stem":1358,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F6.testing",{"title":353,"path":1360,"stem":1361,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F7.best-practices",{"title":357,"path":1363,"stem":1364,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F8.ecosystem",{"title":361,"titleTemplate":362,"icon":363,"path":1366,"stem":1367,"children":1368,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes","docs\u002F4.x\u002F3.guide\u002F5.recipes",[1369,1372,1375,1378],{"title":368,"path":1370,"stem":1371,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":372,"path":1373,"stem":1374,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":376,"path":1376,"stem":1377,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":380,"path":1379,"stem":1380,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":384,"titleTemplate":385,"icon":386,"path":1382,"stem":1383,"children":1384,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further","docs\u002F4.x\u002F3.guide\u002F6.going-further",[1385,1388,1391,1394,1397,1400,1403,1406,1409,1412,1416],{"title":391,"path":1386,"stem":1387,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":395,"path":1389,"stem":1390,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":399,"path":1392,"stem":1393,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":403,"path":1395,"stem":1396,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":407,"path":1398,"stem":1399,"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":1401,"stem":1402,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":415,"path":1404,"stem":1405,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":419,"path":1407,"stem":1408,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":423,"path":1410,"stem":1411,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":1413,"path":1414,"stem":1415,"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":1417,"stem":1418,"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":1420,"stem":1421,"children":1422,"page":108},"\u002Fdocs\u002F4.x\u002Fapi","docs\u002F4.x\u002F4.api",[1423,1476,1583,1674,1726,1788,1798],{"title":438,"titleTemplate":439,"icon":324,"path":1424,"stem":1425,"children":1426,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F1.components",[1427,1430,1433,1436,1439,1442,1445,1448,1452,1455,1458,1461,1464,1467,1470,1473],{"title":444,"path":1428,"stem":1429,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":448,"path":1431,"stem":1432,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":452,"path":1434,"stem":1435,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":456,"path":1437,"stem":1438,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F4.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":460,"path":1440,"stem":1441,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F4.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":464,"path":1443,"stem":1444,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":468,"path":1446,"stem":1447,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F4.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1449,"path":1450,"stem":1451,"titleTemplate":6},"\u003CNuxtAnnouncer>","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":472,"path":1453,"stem":1454,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F4.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":476,"path":1456,"stem":1457,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F4.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":480,"path":1459,"stem":1460,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F4.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":484,"path":1462,"stem":1463,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F4.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":488,"path":1465,"stem":1466,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F4.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":492,"path":1468,"stem":1469,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F4.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":496,"path":1471,"stem":1472,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F4.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":500,"path":1474,"stem":1475,"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":1477,"stem":1478,"children":1479,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables","docs\u002F4.x\u002F4.api\u002F2.composables",[1480,1484,1488,1491,1495,1498,1501,1504,1507,1510,1513,1516,1519,1523,1526,1529,1532,1535,1538,1541,1544,1547,1550,1553,1556,1559,1562,1565,1568,1571,1574,1577,1580],{"title":1481,"path":1482,"stem":1483,"titleTemplate":6},"createUseAsyncData","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1485,"path":1486,"stem":1487,"titleTemplate":6},"createUseFetch","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":511,"path":1489,"stem":1490,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1492,"path":1493,"stem":1494,"titleTemplate":6},"useAnnouncer","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":515,"path":1496,"stem":1497,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":519,"path":1499,"stem":1500,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":523,"path":1502,"stem":1503,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":527,"path":1505,"stem":1506,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":531,"path":1508,"stem":1509,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":535,"path":1511,"stem":1512,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":539,"path":1514,"stem":1515,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":543,"path":1517,"stem":1518,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":1520,"path":1521,"stem":1522,"titleTemplate":6},"useLayout","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-layout","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-layout",{"title":547,"path":1524,"stem":1525,"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":1527,"stem":1528,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":555,"path":1530,"stem":1531,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":559,"path":1533,"stem":1534,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":563,"path":1536,"stem":1537,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":567,"path":1539,"stem":1540,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":571,"path":1542,"stem":1543,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":575,"path":1545,"stem":1546,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":579,"path":1548,"stem":1549,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":583,"path":1551,"stem":1552,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":587,"path":1554,"stem":1555,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":591,"path":1557,"stem":1558,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":595,"path":1560,"stem":1561,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":599,"path":1563,"stem":1564,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":603,"path":1566,"stem":1567,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":607,"path":1569,"stem":1570,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":611,"path":1572,"stem":1573,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":615,"path":1575,"stem":1576,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":619,"path":1578,"stem":1579,"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":1581,"stem":1582,"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":1584,"stem":1585,"children":1586,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils","docs\u002F4.x\u002F4.api\u002F3.utils",[1587,1590,1593,1596,1599,1602,1605,1608,1611,1614,1617,1620,1623,1626,1629,1632,1635,1638,1641,1644,1647,1650,1653,1656,1659,1662,1665,1668,1671],{"title":634,"path":1588,"stem":1589,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F4.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":638,"path":1591,"stem":1592,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":642,"path":1594,"stem":1595,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":646,"path":1597,"stem":1598,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":650,"path":1600,"stem":1601,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":654,"path":1603,"stem":1604,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":658,"path":1606,"stem":1607,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":662,"path":1609,"stem":1610,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":666,"path":1612,"stem":1613,"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":1615,"stem":1616,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":674,"path":1618,"stem":1619,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":678,"path":1621,"stem":1622,"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":1624,"stem":1625,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":686,"path":1627,"stem":1628,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":690,"path":1630,"stem":1631,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":694,"path":1633,"stem":1634,"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":1636,"stem":1637,"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":1639,"stem":1640,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":706,"path":1642,"stem":1643,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":710,"path":1645,"stem":1646,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":714,"path":1648,"stem":1649,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":718,"path":1651,"stem":1652,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":722,"path":1654,"stem":1655,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":726,"path":1657,"stem":1658,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":730,"path":1660,"stem":1661,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F4.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":734,"path":1663,"stem":1664,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":738,"path":1666,"stem":1667,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":742,"path":1669,"stem":1670,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":746,"path":1672,"stem":1673,"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":1675,"stem":1676,"children":1677,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands","docs\u002F4.x\u002F4.api\u002F4.commands",[1678,1681,1684,1687,1690,1693,1696,1699,1702,1705,1708,1711,1714,1717,1720,1723],{"title":757,"path":1679,"stem":1680,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fadd",{"title":761,"path":1682,"stem":1683,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":765,"path":1685,"stem":1686,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":769,"path":1688,"stem":1689,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":773,"path":1691,"stem":1692,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":777,"path":1694,"stem":1695,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdev",{"title":781,"path":1697,"stem":1698,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":785,"path":1700,"stem":1701,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":789,"path":1703,"stem":1704,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finfo",{"title":793,"path":1706,"stem":1707,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finit",{"title":797,"path":1709,"stem":1710,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":801,"path":1712,"stem":1713,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":805,"path":1715,"stem":1716,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":809,"path":1718,"stem":1719,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftest",{"title":813,"path":1721,"stem":1722,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":817,"path":1724,"stem":1725,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":415,"titleTemplate":821,"icon":822,"path":1727,"stem":1728,"children":1729,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit","docs\u002F4.x\u002F4.api\u002F5.kit",[1730,1733,1736,1739,1743,1746,1749,1752,1755,1758,1761,1764,1767,1770,1773,1776,1779,1782,1785],{"title":276,"path":1731,"stem":1732,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F4.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":403,"path":1734,"stem":1735,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":833,"path":1737,"stem":1738,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":1740,"path":1741,"stem":1742,"titleTemplate":6},"App Config","\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fapp-config","docs\u002F4.x\u002F4.api\u002F5.kit\u002F11.app-config",{"title":837,"path":1744,"stem":1745,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F4.x\u002F4.api\u002F5.kit\u002F12.nitro",{"title":841,"path":1747,"stem":1748,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F4.x\u002F4.api\u002F5.kit\u002F13.resolving",{"title":845,"path":1750,"stem":1751,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F4.x\u002F4.api\u002F5.kit\u002F14.logging",{"title":849,"path":1753,"stem":1754,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F4.x\u002F4.api\u002F5.kit\u002F15.builder",{"title":853,"path":1756,"stem":1757,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F4.x\u002F4.api\u002F5.kit\u002F16.examples",{"title":84,"path":1759,"stem":1760,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F4.x\u002F4.api\u002F5.kit\u002F17.layers",{"title":860,"path":1762,"stem":1763,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F4.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":864,"path":1765,"stem":1766,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F4.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":1768,"stem":1769,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F4.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":438,"path":1771,"stem":1772,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F5.kit\u002F5.components",{"title":874,"path":1774,"stem":1775,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F4.x\u002F4.api\u002F5.kit\u002F6.context",{"title":878,"path":1777,"stem":1778,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F4.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":882,"path":1780,"stem":1781,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F4.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":886,"path":1783,"stem":1784,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.head",{"title":890,"path":1786,"stem":1787,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":894,"titleTemplate":6,"icon":895,"path":1789,"stem":1790,"children":1791,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced","docs\u002F4.x\u002F4.api\u002F6.advanced",[1792,1795],{"title":411,"path":1793,"stem":1794,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":903,"path":1796,"stem":1797,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":907,"path":1799,"stem":1800,"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":1802,"stem":1803,"children":1804,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples","docs\u002F4.x\u002F4.examples",[1805,1808,1827,1840,1871],{"title":918,"path":1806,"stem":1807,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fhello-world","docs\u002F4.x\u002F4.examples\u002F0.hello-world",{"title":399,"path":1809,"stem":1810,"children":1811,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures","docs\u002F4.x\u002F4.examples\u002F1.features",[1812,1815,1818,1821,1824],{"title":926,"path":1813,"stem":1814,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F4.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":1816,"stem":1817,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F4.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":1819,"stem":1820,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F4.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":936,"path":1822,"stem":1823,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F4.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":940,"path":1825,"stem":1826,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F4.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":1828,"stem":1829,"children":1830,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting","docs\u002F4.x\u002F4.examples\u002F2.routing",[1831,1834,1837],{"title":948,"path":1832,"stem":1833,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":878,"path":1835,"stem":1836,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":955,"path":1838,"stem":1839,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":894,"path":1841,"stem":1842,"children":1843,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced","docs\u002F4.x\u002F4.examples\u002F4.advanced",[1844,1847,1850,1853,1856,1859,1862,1865,1868],{"title":84,"path":1845,"stem":1846,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":1848,"stem":1849,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":969,"path":1851,"stem":1852,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":973,"path":1854,"stem":1855,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":977,"path":1857,"stem":1858,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":981,"path":1860,"stem":1861,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":1863,"stem":1864,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":523,"path":1866,"stem":1867,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":991,"path":1869,"stem":1870,"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":1872,"stem":1873,"children":1874,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental","docs\u002F4.x\u002F4.examples\u002F7.experimental",[1875],{"title":1000,"path":1876,"stem":1877,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F4.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1004,"titleTemplate":1005,"icon":1006,"path":1879,"stem":1880,"children":1881,"page":108},"\u002Fdocs\u002F4.x\u002Fcommunity","docs\u002F4.x\u002F5.community",[1882,1885,1888,1891,1894,1897],{"title":1011,"path":1883,"stem":1884,"titleTemplate":6,"icon":1014},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fgetting-help","docs\u002F4.x\u002F5.community\u002F2.getting-help",{"title":1016,"path":1886,"stem":1887,"titleTemplate":6,"icon":1019},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Freporting-bugs","docs\u002F4.x\u002F5.community\u002F3.reporting-bugs",{"title":1021,"path":1889,"stem":1890,"titleTemplate":6,"icon":1024},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fcontribution","docs\u002F4.x\u002F5.community\u002F4.contribution",{"title":1026,"path":1892,"stem":1893,"titleTemplate":6,"icon":1029},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fframework-contribution","docs\u002F4.x\u002F5.community\u002F5.framework-contribution",{"title":1031,"path":1895,"stem":1896,"titleTemplate":6,"icon":1034},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Froadmap","docs\u002F4.x\u002F5.community\u002F6.roadmap",{"title":1036,"path":1898,"stem":1899,"titleTemplate":6,"icon":1039},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fchangelog","docs\u002F4.x\u002F5.community\u002F7.changelog",{"title":1041,"titleTemplate":1042,"icon":1043,"path":1901,"stem":1902,"children":1903,"page":108},"\u002Fdocs\u002F4.x\u002Fbridge","docs\u002F4.x\u002F6.bridge",[1904,1907,1910,1913,1916,1919,1922,1925,1928,1931],{"title":1048,"path":1905,"stem":1906,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Foverview","docs\u002F4.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1908,"stem":1909,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fconfiguration","docs\u002F4.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1911,"stem":1912,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Ftypescript","docs\u002F4.x\u002F6.bridge\u002F2.typescript",{"title":1058,"path":1914,"stem":1915,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F4.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1062,"path":1917,"stem":1918,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F4.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1066,"path":1920,"stem":1921,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F4.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":936,"path":1923,"stem":1924,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fmeta","docs\u002F4.x\u002F6.bridge\u002F6.meta",{"title":403,"path":1926,"stem":1927,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fruntime-config","docs\u002F4.x\u002F6.bridge\u002F7.runtime-config",{"title":837,"path":1929,"stem":1930,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnitro","docs\u002F4.x\u002F6.bridge\u002F8.nitro",{"title":1079,"path":1932,"stem":1933,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fvite","docs\u002F4.x\u002F6.bridge\u002F9.vite",{"title":1083,"titleTemplate":1084,"icon":107,"path":1935,"stem":1936,"children":1937,"page":108},"\u002Fdocs\u002F4.x\u002Fmigration","docs\u002F4.x\u002F7.migration",[1938,1941,1944,1947,1950,1953,1956,1959,1962,1965,1968],{"title":1048,"path":1939,"stem":1940,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Foverview","docs\u002F4.x\u002F7.migration\u002F1.overview",{"title":1092,"path":1942,"stem":1943,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fbundling","docs\u002F4.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1945,"stem":1946,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fserver","docs\u002F4.x\u002F7.migration\u002F11.server",{"title":29,"path":1948,"stem":1949,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fconfiguration","docs\u002F4.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1951,"stem":1952,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmodule-authors","docs\u002F4.x\u002F7.migration\u002F20.module-authors",{"title":926,"path":1954,"stem":1955,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fauto-imports","docs\u002F4.x\u002F7.migration\u002F3.auto-imports",{"title":936,"path":1957,"stem":1958,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmeta","docs\u002F4.x\u002F7.migration\u002F4.meta",{"title":1062,"path":1960,"stem":1961,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F4.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1114,"path":1963,"stem":1964,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F4.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1118,"path":1966,"stem":1967,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fcomponent-options","docs\u002F4.x\u002F7.migration\u002F7.component-options",{"title":403,"path":1969,"stem":1970,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fruntime-config","docs\u002F4.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1972,"stem":1973,"children":1974,"page":108},"\u002Fdocs\u002F5.x","docs\u002F5.x",[1975,2033,2123,2271,2647,2724,2746,2780],{"title":12,"titleTemplate":13,"icon":14,"path":1976,"stem":1977,"children":1978,"page":108},"\u002Fdocs\u002F5.x\u002Fgetting-started","docs\u002F5.x\u002F1.getting-started",[1979,1982,1985,1988,1991,1994,1997,2000,2003,2006,2009,2012,2015,2018,2021,2024,2027,2030],{"title":19,"path":1980,"stem":1981,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fintroduction","docs\u002F5.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1983,"stem":1984,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Finstallation","docs\u002F5.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1986,"stem":1987,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fconfiguration","docs\u002F5.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":1989,"stem":1990,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fviews","docs\u002F5.x\u002F1.getting-started\u002F04.views",{"title":39,"path":1992,"stem":1993,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fassets","docs\u002F5.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":1995,"stem":1996,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstyling","docs\u002F5.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":1998,"stem":1999,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Frouting","docs\u002F5.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":2001,"stem":2002,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fseo-meta","docs\u002F5.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":2004,"stem":2005,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftransitions","docs\u002F5.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":2007,"stem":2008,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F5.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":2010,"stem":2011,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstate-management","docs\u002F5.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":2013,"stem":2014,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ferror-handling","docs\u002F5.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":2016,"stem":2017,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fserver","docs\u002F5.x\u002F1.getting-started\u002F13.server",{"title":84,"path":2019,"stem":2020,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Flayers","docs\u002F5.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":2022,"stem":2023,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fprerendering","docs\u002F5.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":2025,"stem":2026,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdeployment","docs\u002F5.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":2028,"stem":2029,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftesting","docs\u002F5.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":2031,"stem":2032,"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":2034,"stem":2035,"children":2036,"page":108},"\u002Fdocs\u002F5.x\u002Fdirectory-structure","docs\u002F5.x\u002F2.directory-structure",[2037,2040,2043,2081,2084,2087,2090,2093,2096,2099,2102,2105,2108,2111,2114,2117,2120],{"title":117,"path":2038,"stem":2039,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F5.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":2041,"stem":2042,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Foutput","docs\u002F5.x\u002F2.directory-structure\u002F0.output",{"title":1197,"titleTemplate":111,"head":2044,"defaultOpen":1200,"icon":1201,"path":2045,"stem":2046,"children":2047,"page":108},{"title":1199},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app",[2048,2051,2054,2057,2060,2063,2066,2069,2072,2075,2078],{"title":127,"path":2049,"stem":2050,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":2052,"stem":2053,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":2055,"stem":2056,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":2058,"stem":2059,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":2061,"stem":2062,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":2064,"stem":2065,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":2067,"stem":2068,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":2070,"stem":2071,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":2073,"stem":2074,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":2076,"stem":2077,"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":2079,"stem":2080,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":2082,"stem":2083,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fcontent","docs\u002F5.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":2085,"stem":2086,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Flayers","docs\u002F5.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":2088,"stem":2089,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fmodules","docs\u002F5.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":2091,"stem":2092,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F5.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":2094,"stem":2095,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpublic","docs\u002F5.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":2097,"stem":2098,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fserver","docs\u002F5.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":2100,"stem":2101,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fshared","docs\u002F5.x\u002F2.directory-structure\u002F1.shared",{"title":200,"path":2103,"stem":2104,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fenv","docs\u002F5.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":2106,"stem":2107,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F5.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":2109,"stem":2110,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":2112,"stem":2113,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":2115,"stem":2116,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F5.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":2118,"stem":2119,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpackage","docs\u002F5.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":2121,"stem":2122,"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":2124,"stem":2125,"children":2126,"page":108},"\u002Fdocs\u002F5.x\u002Fguide","docs\u002F5.x\u002F3.guide",[2127,2156,2176,2186,2214,2234],{"title":253,"titleTemplate":254,"icon":255,"path":2128,"stem":2129,"children":2130,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts","docs\u002F5.x\u002F3.guide\u002F1.concepts",[2131,2134,2137,2140,2143,2146,2150,2153],{"title":260,"path":2132,"stem":2133,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":2135,"stem":2136,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":2138,"stem":2139,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":2141,"stem":2142,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":2144,"stem":2145,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":2147,"path":2148,"stem":2149,"titleTemplate":6},"Server Components","\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-components","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F6.server-components",{"title":280,"path":2151,"stem":2152,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":2154,"stem":2155,"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":2157,"stem":2158,"children":2159,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F2.best-practices",[2160,2164,2167,2170,2173],{"title":2161,"path":2162,"stem":2163,"titleTemplate":6},"Accessibility","\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Faccessibility","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Faccessibility",{"title":1314,"path":2165,"stem":2166,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fdevcontainers","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fdevcontainers",{"title":1318,"path":2168,"stem":2169,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":2171,"stem":2172,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":2174,"stem":2175,"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":2177,"stem":2178,"children":2179,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai","docs\u002F5.x\u002F3.guide\u002F3.ai",[2180,2183],{"title":314,"path":2181,"stem":2182,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F5.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":2184,"stem":2185,"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":2187,"stem":2188,"children":2189,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F4.modules",[2190,2193,2196,2199,2202,2205,2208,2211],{"title":329,"path":2191,"stem":2192,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":2194,"stem":2195,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":2197,"stem":2198,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":2200,"stem":2201,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F4.module-dependencies",{"title":345,"path":2203,"stem":2204,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F5.recipes-advanced",{"title":349,"path":2206,"stem":2207,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F6.testing",{"title":353,"path":2209,"stem":2210,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F7.best-practices",{"title":357,"path":2212,"stem":2213,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F8.ecosystem",{"title":361,"titleTemplate":362,"icon":363,"path":2215,"stem":2216,"children":2217,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes","docs\u002F5.x\u002F3.guide\u002F5.recipes",[2218,2221,2224,2227,2230],{"title":368,"path":2219,"stem":2220,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":372,"path":2222,"stem":2223,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":376,"path":2225,"stem":2226,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":380,"path":2228,"stem":2229,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":2231,"path":2232,"stem":2233,"titleTemplate":6},"Mostly-Static Sites","\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":2235,"stem":2236,"children":2237,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further","docs\u002F5.x\u002F3.guide\u002F6.going-further",[2238,2241,2244,2247,2250,2253,2256,2259,2262,2265,2268],{"title":391,"path":2239,"stem":2240,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":395,"path":2242,"stem":2243,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":399,"path":2245,"stem":2246,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":403,"path":2248,"stem":2249,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":407,"path":2251,"stem":2252,"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":2254,"stem":2255,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":415,"path":2257,"stem":2258,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":419,"path":2260,"stem":2261,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":423,"path":2263,"stem":2264,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":1413,"path":2266,"stem":2267,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fbuilders","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F8.builders",{"title":427,"path":2269,"stem":2270,"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":2272,"stem":2273,"children":2274,"page":108},"\u002Fdocs\u002F5.x\u002Fapi","docs\u002F5.x\u002F4.api",[2275,2327,2430,2521,2573,2634,2644],{"title":438,"titleTemplate":439,"icon":324,"path":2276,"stem":2277,"children":2278,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F1.components",[2279,2282,2285,2288,2291,2294,2297,2300,2303,2306,2309,2312,2315,2318,2321,2324],{"title":444,"path":2280,"stem":2281,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":448,"path":2283,"stem":2284,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":452,"path":2286,"stem":2287,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":456,"path":2289,"stem":2290,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F5.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":460,"path":2292,"stem":2293,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F5.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":464,"path":2295,"stem":2296,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":468,"path":2298,"stem":2299,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F5.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1449,"path":2301,"stem":2302,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":472,"path":2304,"stem":2305,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F5.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":476,"path":2307,"stem":2308,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F5.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":480,"path":2310,"stem":2311,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F5.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":484,"path":2313,"stem":2314,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F5.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":488,"path":2316,"stem":2317,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F5.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":492,"path":2319,"stem":2320,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F5.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":496,"path":2322,"stem":2323,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F5.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":500,"path":2325,"stem":2326,"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":2328,"stem":2329,"children":2330,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables","docs\u002F5.x\u002F4.api\u002F2.composables",[2331,2334,2337,2340,2343,2346,2349,2352,2355,2358,2361,2364,2367,2370,2373,2376,2379,2382,2385,2388,2391,2394,2397,2400,2403,2406,2409,2412,2415,2418,2421,2424,2427],{"title":1481,"path":2332,"stem":2333,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1485,"path":2335,"stem":2336,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":511,"path":2338,"stem":2339,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1492,"path":2341,"stem":2342,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":515,"path":2344,"stem":2345,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":519,"path":2347,"stem":2348,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":523,"path":2350,"stem":2351,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":527,"path":2353,"stem":2354,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":531,"path":2356,"stem":2357,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":535,"path":2359,"stem":2360,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":539,"path":2362,"stem":2363,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":543,"path":2365,"stem":2366,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":1520,"path":2368,"stem":2369,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-layout","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-layout",{"title":547,"path":2371,"stem":2372,"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":2374,"stem":2375,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":555,"path":2377,"stem":2378,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":559,"path":2380,"stem":2381,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":563,"path":2383,"stem":2384,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":567,"path":2386,"stem":2387,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":571,"path":2389,"stem":2390,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":575,"path":2392,"stem":2393,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":579,"path":2395,"stem":2396,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":583,"path":2398,"stem":2399,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":587,"path":2401,"stem":2402,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":591,"path":2404,"stem":2405,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":595,"path":2407,"stem":2408,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":599,"path":2410,"stem":2411,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":603,"path":2413,"stem":2414,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":607,"path":2416,"stem":2417,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":611,"path":2419,"stem":2420,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":615,"path":2422,"stem":2423,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":619,"path":2425,"stem":2426,"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":2428,"stem":2429,"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":2431,"stem":2432,"children":2433,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils","docs\u002F5.x\u002F4.api\u002F3.utils",[2434,2437,2440,2443,2446,2449,2452,2455,2458,2461,2464,2467,2470,2473,2476,2479,2482,2485,2488,2491,2494,2497,2500,2503,2506,2509,2512,2515,2518],{"title":634,"path":2435,"stem":2436,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F5.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":638,"path":2438,"stem":2439,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":642,"path":2441,"stem":2442,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":646,"path":2444,"stem":2445,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":650,"path":2447,"stem":2448,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":654,"path":2450,"stem":2451,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":658,"path":2453,"stem":2454,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":662,"path":2456,"stem":2457,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":666,"path":2459,"stem":2460,"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":2462,"stem":2463,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":674,"path":2465,"stem":2466,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":678,"path":2468,"stem":2469,"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":2471,"stem":2472,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":686,"path":2474,"stem":2475,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":690,"path":2477,"stem":2478,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":694,"path":2480,"stem":2481,"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":2483,"stem":2484,"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":2486,"stem":2487,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":706,"path":2489,"stem":2490,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":710,"path":2492,"stem":2493,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":714,"path":2495,"stem":2496,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":718,"path":2498,"stem":2499,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":722,"path":2501,"stem":2502,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":726,"path":2504,"stem":2505,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":730,"path":2507,"stem":2508,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F5.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":734,"path":2510,"stem":2511,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":738,"path":2513,"stem":2514,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":742,"path":2516,"stem":2517,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":746,"path":2519,"stem":2520,"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":2522,"stem":2523,"children":2524,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands","docs\u002F5.x\u002F4.api\u002F4.commands",[2525,2528,2531,2534,2537,2540,2543,2546,2549,2552,2555,2558,2561,2564,2567,2570],{"title":757,"path":2526,"stem":2527,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fadd",{"title":761,"path":2529,"stem":2530,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":765,"path":2532,"stem":2533,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":769,"path":2535,"stem":2536,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":773,"path":2538,"stem":2539,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":777,"path":2541,"stem":2542,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdev",{"title":781,"path":2544,"stem":2545,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":785,"path":2547,"stem":2548,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":789,"path":2550,"stem":2551,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finfo",{"title":793,"path":2553,"stem":2554,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finit",{"title":797,"path":2556,"stem":2557,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":801,"path":2559,"stem":2560,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":805,"path":2562,"stem":2563,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":809,"path":2565,"stem":2566,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftest",{"title":813,"path":2568,"stem":2569,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":817,"path":2571,"stem":2572,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":415,"titleTemplate":821,"icon":822,"path":2574,"stem":2575,"children":2576,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit","docs\u002F5.x\u002F4.api\u002F5.kit",[2577,2580,2583,2586,2589,2592,2595,2598,2601,2604,2607,2610,2613,2616,2619,2622,2625,2628,2631],{"title":276,"path":2578,"stem":2579,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F5.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":403,"path":2581,"stem":2582,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":833,"path":2584,"stem":2585,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":1740,"path":2587,"stem":2588,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fapp-config","docs\u002F5.x\u002F4.api\u002F5.kit\u002F11.app-config",{"title":837,"path":2590,"stem":2591,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F5.x\u002F4.api\u002F5.kit\u002F12.nitro",{"title":841,"path":2593,"stem":2594,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F5.x\u002F4.api\u002F5.kit\u002F13.resolving",{"title":845,"path":2596,"stem":2597,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F5.x\u002F4.api\u002F5.kit\u002F14.logging",{"title":849,"path":2599,"stem":2600,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F5.x\u002F4.api\u002F5.kit\u002F15.builder",{"title":853,"path":2602,"stem":2603,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F5.x\u002F4.api\u002F5.kit\u002F16.examples",{"title":84,"path":2605,"stem":2606,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F5.x\u002F4.api\u002F5.kit\u002F17.layers",{"title":860,"path":2608,"stem":2609,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F5.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":864,"path":2611,"stem":2612,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F5.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":2614,"stem":2615,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F5.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":438,"path":2617,"stem":2618,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F5.kit\u002F5.components",{"title":874,"path":2620,"stem":2621,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F5.x\u002F4.api\u002F5.kit\u002F6.context",{"title":878,"path":2623,"stem":2624,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F5.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":882,"path":2626,"stem":2627,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F5.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":886,"path":2629,"stem":2630,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.head",{"title":890,"path":2632,"stem":2633,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":894,"titleTemplate":6,"icon":895,"path":2635,"stem":2636,"children":2637,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced","docs\u002F5.x\u002F4.api\u002F6.advanced",[2638,2641],{"title":411,"path":2639,"stem":2640,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":903,"path":2642,"stem":2643,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":907,"path":2645,"stem":2646,"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":2648,"stem":2649,"children":2650,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples","docs\u002F5.x\u002F4.examples",[2651,2654,2673,2686,2717],{"title":918,"path":2652,"stem":2653,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fhello-world","docs\u002F5.x\u002F4.examples\u002F0.hello-world",{"title":399,"path":2655,"stem":2656,"children":2657,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures","docs\u002F5.x\u002F4.examples\u002F1.features",[2658,2661,2664,2667,2670],{"title":926,"path":2659,"stem":2660,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F5.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":2662,"stem":2663,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F5.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":2665,"stem":2666,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F5.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":936,"path":2668,"stem":2669,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F5.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":940,"path":2671,"stem":2672,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F5.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":2674,"stem":2675,"children":2676,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting","docs\u002F5.x\u002F4.examples\u002F2.routing",[2677,2680,2683],{"title":948,"path":2678,"stem":2679,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":878,"path":2681,"stem":2682,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":955,"path":2684,"stem":2685,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":894,"path":2687,"stem":2688,"children":2689,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced","docs\u002F5.x\u002F4.examples\u002F4.advanced",[2690,2693,2696,2699,2702,2705,2708,2711,2714],{"title":84,"path":2691,"stem":2692,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":2694,"stem":2695,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":969,"path":2697,"stem":2698,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":973,"path":2700,"stem":2701,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":977,"path":2703,"stem":2704,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":981,"path":2706,"stem":2707,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":2709,"stem":2710,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":523,"path":2712,"stem":2713,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":991,"path":2715,"stem":2716,"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":2718,"stem":2719,"children":2720,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental","docs\u002F5.x\u002F4.examples\u002F7.experimental",[2721],{"title":1000,"path":2722,"stem":2723,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F5.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1004,"titleTemplate":1005,"icon":1006,"path":2725,"stem":2726,"children":2727,"page":108},"\u002Fdocs\u002F5.x\u002Fcommunity","docs\u002F5.x\u002F5.community",[2728,2731,2734,2737,2740,2743],{"title":1011,"path":2729,"stem":2730,"titleTemplate":6,"icon":1014},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fgetting-help","docs\u002F5.x\u002F5.community\u002F2.getting-help",{"title":1016,"path":2732,"stem":2733,"titleTemplate":6,"icon":1019},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Freporting-bugs","docs\u002F5.x\u002F5.community\u002F3.reporting-bugs",{"title":1021,"path":2735,"stem":2736,"titleTemplate":6,"icon":1024},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fcontribution","docs\u002F5.x\u002F5.community\u002F4.contribution",{"title":1026,"path":2738,"stem":2739,"titleTemplate":6,"icon":1029},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fframework-contribution","docs\u002F5.x\u002F5.community\u002F5.framework-contribution",{"title":1031,"path":2741,"stem":2742,"titleTemplate":6,"icon":1034},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Froadmap","docs\u002F5.x\u002F5.community\u002F6.roadmap",{"title":1036,"path":2744,"stem":2745,"titleTemplate":6,"icon":1039},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fchangelog","docs\u002F5.x\u002F5.community\u002F7.changelog",{"title":1041,"titleTemplate":1042,"icon":1043,"path":2747,"stem":2748,"children":2749,"page":108},"\u002Fdocs\u002F5.x\u002Fbridge","docs\u002F5.x\u002F6.bridge",[2750,2753,2756,2759,2762,2765,2768,2771,2774,2777],{"title":1048,"path":2751,"stem":2752,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Foverview","docs\u002F5.x\u002F6.bridge\u002F1.overview",{"title":29,"path":2754,"stem":2755,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fconfiguration","docs\u002F5.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":2757,"stem":2758,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Ftypescript","docs\u002F5.x\u002F6.bridge\u002F2.typescript",{"title":1058,"path":2760,"stem":2761,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F5.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1062,"path":2763,"stem":2764,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F5.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1066,"path":2766,"stem":2767,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F5.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":936,"path":2769,"stem":2770,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fmeta","docs\u002F5.x\u002F6.bridge\u002F6.meta",{"title":403,"path":2772,"stem":2773,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fruntime-config","docs\u002F5.x\u002F6.bridge\u002F7.runtime-config",{"title":837,"path":2775,"stem":2776,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnitro","docs\u002F5.x\u002F6.bridge\u002F8.nitro",{"title":1079,"path":2778,"stem":2779,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fvite","docs\u002F5.x\u002F6.bridge\u002F9.vite",{"title":1083,"titleTemplate":1084,"icon":107,"path":2781,"stem":2782,"children":2783,"page":108},"\u002Fdocs\u002F5.x\u002Fmigration","docs\u002F5.x\u002F7.migration",[2784,2787,2790,2793,2796,2799,2802,2805,2808,2811,2814],{"title":1048,"path":2785,"stem":2786,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Foverview","docs\u002F5.x\u002F7.migration\u002F1.overview",{"title":1092,"path":2788,"stem":2789,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fbundling","docs\u002F5.x\u002F7.migration\u002F10.bundling",{"title":79,"path":2791,"stem":2792,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fserver","docs\u002F5.x\u002F7.migration\u002F11.server",{"title":29,"path":2794,"stem":2795,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fconfiguration","docs\u002F5.x\u002F7.migration\u002F2.configuration",{"title":276,"path":2797,"stem":2798,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmodule-authors","docs\u002F5.x\u002F7.migration\u002F20.module-authors",{"title":926,"path":2800,"stem":2801,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fauto-imports","docs\u002F5.x\u002F7.migration\u002F3.auto-imports",{"title":936,"path":2803,"stem":2804,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmeta","docs\u002F5.x\u002F7.migration\u002F4.meta",{"title":1062,"path":2806,"stem":2807,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F5.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1114,"path":2809,"stem":2810,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F5.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1118,"path":2812,"stem":2813,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fcomponent-options","docs\u002F5.x\u002F7.migration\u002F7.component-options",{"title":403,"path":2815,"stem":2816,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fruntime-config","docs\u002F5.x\u002F7.migration\u002F8.runtime-config",{"title":2818,"icon":2819,"path":2820,"stem":2821,"children":2822,"page":108},"Blog","i-lucide-newspaper","\u002Fblog","blog",[2823,2827,2831,2835,2839,2843,2847,2851,2855,2859,2863,2867,2871,2875,2879,2883,2887,2891,2895,2899,2903,2907,2911,2915,2919,2923,2927,2931,2935,2939,2943,2947,2951,2955,2959,2963,2967,2971,2975,2979,2983,2987,2991,2995,2999,3003,3007,3011,3015,3019],{"title":2824,"path":2825,"stem":2826},"Announcing 3.0","\u002Fblog\u002Fv3","blog\u002F1.v3",{"title":2828,"path":2829,"stem":2830},"Nuxt 3.3","\u002Fblog\u002Fv3-3","blog\u002F10.v3-3",{"title":2832,"path":2833,"stem":2834},"Nuxt 3.4","\u002Fblog\u002Fv3-4","blog\u002F11.v3-4",{"title":2836,"path":2837,"stem":2838},"Nuxt 3.5","\u002Fblog\u002Fv3-5","blog\u002F12.v3-5",{"title":2840,"path":2841,"stem":2842},"Nuxt 3.6","\u002Fblog\u002Fv3-6","blog\u002F13.v3-6",{"title":2844,"path":2845,"stem":2846},"Nuxt on the Edge","\u002Fblog\u002Fnuxt-on-the-edge","blog\u002F14.nuxt-on-the-edge",{"title":2848,"path":2849,"stem":2850},"Nuxt 3.7","\u002Fblog\u002Fv3-7","blog\u002F15.v3-7",{"title":2852,"path":2853,"stem":2854},"A New Website","\u002Fblog\u002Fnew-website","blog\u002F16.new-website",{"title":2856,"path":2857,"stem":2858},"Nuxt 3.8","\u002Fblog\u002Fv3-8","blog\u002F17.v3-8",{"title":2860,"path":2861,"stem":2862},"Nuxt DevTools v1.0","\u002Fblog\u002Fnuxt-devtools-v1-0","blog\u002F18.nuxt-devtools-v1-0",{"title":2864,"path":2865,"stem":2866},"Nuxt 3.9","\u002Fblog\u002Fv3-9","blog\u002F19.v3-9",{"title":2868,"path":2869,"stem":2870},"Nuxt: A vision for 2023","\u002Fblog\u002Fvision-2023","blog\u002F2.vision-2023",{"title":2872,"path":2873,"stem":2874},"Nuxt 3.10","\u002Fblog\u002Fv3-10","blog\u002F20.v3-10",{"title":2876,"path":2877,"stem":2878},"The Evolution of Shiki v1.0","\u002Fblog\u002Fshiki-v1","blog\u002F21.shiki-v1",{"title":2880,"path":2881,"stem":2882},"Nuxt 3.11","\u002Fblog\u002Fv3-11","blog\u002F22.v3-11",{"title":2884,"path":2885,"stem":2886},"Nuxt: Looking forward","\u002Fblog\u002Flooking-forward-2024","blog\u002F23.looking-forward-2024",{"title":2888,"path":2889,"stem":2890},"Refreshed Nuxt ESLint Integrations","\u002Fblog\u002Feslint-module","blog\u002F24.eslint-module",{"title":2892,"path":2893,"stem":2894},"Nuxt 3.12","\u002Fblog\u002Fv3-12","blog\u002F25.v3-12",{"title":2896,"path":2897,"stem":2898},"Introducing Nuxt Scripts","\u002Fblog\u002Fnuxt-scripts","blog\u002F26.nuxt-scripts",{"title":2900,"path":2901,"stem":2902},"Nuxt 3.13","\u002Fblog\u002Fv3-13","blog\u002F27.v3-13",{"title":2904,"path":2905,"stem":2906},"Nuxt 3.14","\u002Fblog\u002Fv3-14","blog\u002F27.v3-14",{"title":2908,"path":2909,"stem":2910},"Introducing Nuxt Icon v1","\u002Fblog\u002Fnuxt-icon-v1-0","blog\u002F29.nuxt-icon-v1-0",{"title":2912,"path":2913,"stem":2914},"Introducing Nuxt DevTools","\u002Fblog\u002Fintroducing-nuxt-devtools","blog\u002F3.introducing-nuxt-devtools",{"title":2916,"path":2917,"stem":2918},"Announcing Nuxt 3 Release Candidate","\u002Fblog\u002Fnuxt3-rc","blog\u002F3.nuxt3-rc",{"title":2920,"path":2921,"stem":2922},"Nuxt 3.15","\u002Fblog\u002Fv3-15","blog\u002F30.v3-15",{"title":2924,"path":2925,"stem":2926},"Nuxt 3.16","\u002Fblog\u002Fv3-16","blog\u002F31.v3-16",{"title":2928,"path":2929,"stem":2930},"Nuxt UI v3","\u002Fblog\u002Fnuxt-ui-v3","blog\u002F32.nuxt-ui-v3",{"title":2932,"path":2933,"stem":2934},"Nuxt 3.17","\u002Fblog\u002Fv3-17","blog\u002F33.v3-17",{"title":2936,"path":2937,"stem":2938},"Roadmap to v4","\u002Fblog\u002Froadmap-v4","blog\u002F34.roadmap-v4",{"title":2940,"path":2941,"stem":2942},"Building a Privacy-First Feedback Widget","\u002Fblog\u002Fbuilding-a-feedback-widget","blog\u002F35.building-a-feedback-widget",{"title":2944,"path":2945,"stem":2946},"Announcing Nuxt 4.0","\u002Fblog\u002Fv4","blog\u002F36.v4",{"title":2948,"path":2949,"stem":2950},"Nuxt 3.18","\u002Fblog\u002Fv3-18","blog\u002F37.v3-18",{"title":2952,"path":2953,"stem":2954},"Nuxt 4.1","\u002Fblog\u002Fv4-1","blog\u002F38.v4-1",{"title":2956,"path":2957,"stem":2958},"Nuxt UI v4","\u002Fblog\u002Fnuxt-ui-v4","blog\u002F39.nuxt-ui-v4",{"title":2960,"path":2961,"stem":2962},"Nuxt 2 End-of-Life (EOL)","\u002Fblog\u002Fnuxt2-eol","blog\u002F4.nuxt2-eol",{"title":2964,"path":2965,"stem":2966},"Introducing Nuxt 3 Beta","\u002Fblog\u002Fnuxt3-beta","blog\u002F4.nuxt3-beta",{"title":2968,"path":2969,"stem":2970},"Building an MCP Server for Nuxt","\u002Fblog\u002Fbuilding-nuxt-mcp","blog\u002F40.building-nuxt-mcp",{"title":2972,"path":2973,"stem":2974},"Nuxt 4.2","\u002Fblog\u002Fv4-2","blog\u002F40.v4-2",{"title":2976,"path":2977,"stem":2978},"Nuxt Image v2","\u002Fblog\u002Fnuxt-image-v2","blog\u002F41.nuxt-image-v2",{"title":2980,"path":2981,"stem":2982},"Nuxt 4.3","\u002Fblog\u002Fv4-3","blog\u002F42.v4-3",{"title":2984,"path":2985,"stem":2986},"Nuxt 4.4","\u002Fblog\u002Fv4-4","blog\u002F43.v4-4",{"title":2988,"path":2989,"stem":2990},"Introducing the Nuxt Agent","\u002Fblog\u002Fintroducing-nuxt-agent","blog\u002F44.introducing-nuxt-agent",{"title":2992,"path":2993,"stem":2994},"Meet Nuxi","\u002Fblog\u002Fmeet-nuxi","blog\u002F45.meet-nuxi",{"title":2996,"path":2997,"stem":2998},"Nuxt 4.5","\u002Fblog\u002Fv4-5","blog\u002F46.v4-5",{"title":3000,"path":3001,"stem":3002},"Nuxt Security Patch Releases","\u002Fblog\u002Fv4-5-security","blog\u002F47.v4-5-security",{"title":3004,"path":3005,"stem":3006},"Going Full Static","\u002Fblog\u002Fgoing-full-static","blog\u002F5.going-full-static",{"title":3008,"path":3009,"stem":3010},"Introducing Smart Prefetching","\u002Fblog\u002Fintroducing-smart-prefetching","blog\u002F6.introducing-smart-prefetching",{"title":3012,"path":3013,"stem":3014},"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":3016,"path":3017,"stem":3018},"Nuxt 2 Static Improvements","\u002Fblog\u002Fnuxt-static-improvements","blog\u002F8.nuxt-static-improvements",{"title":3020,"path":3021,"stem":3022},"Nuxt 2: From Terminal to Browser","\u002Fblog\u002Fnuxtjs-from-terminal-to-browser","blog\u002F9.nuxtjs-from-terminal-to-browser",{"name":3024,"description":3025,"repo":3026,"npm":3027,"icon":3028,"github":3029,"website":3029,"learn_more":3028,"category":3030,"type":3031,"maintainers":3032,"compatibility":3037,"generatedAt":3040,"contributors":3041,"stats":3139,"readme":3147},"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",[3033],{"name":3034,"github":3035,"twitter":3035,"bluesky":3036},"Sébastien Chopin","atinux","atinux.com",{"nuxt":3038,"requires":3039},">=3.0.0",{},"2026-08-07T07:47:38.163Z",[3042,3045,3049,3053,3057,3061,3065,3068,3071,3074,3077,3081,3084,3087,3090,3093,3096,3099,3102,3105,3108,3111,3115,3118,3121,3124,3127,3130,3133,3136],{"id":3043,"username":3035,"contributions":3044},904724,199,{"id":3046,"username":3047,"contributions":3048},28706372,"danielroe",16,{"id":3050,"username":3051,"contributions":3052},50090595,"ahmedrangel",9,{"id":3054,"username":3055,"contributions":3056},12988935,"Gerbuuun",8,{"id":3058,"username":3059,"contributions":3060},45267552,"Barbapapazes",7,{"id":3062,"username":3063,"contributions":3064},13056429,"sandros94",3,{"id":3066,"username":3067,"contributions":3064},16264115,"Yizack",{"id":3069,"username":3070,"contributions":3064},967369,"acidjazz",{"id":3072,"username":3073,"contributions":3064},15887916,"blumgart",{"id":3075,"username":3076,"contributions":3064},67746033,"justserdar",{"id":3078,"username":3079,"contributions":3080},10636392,"brianacdev",2,{"id":3082,"username":3083,"contributions":3080},67898185,"larsrickert",{"id":3085,"username":3086,"contributions":3080},40021217,"kingyue737",{"id":3088,"username":3089,"contributions":3080},59120414,"cth-latest",{"id":3091,"username":3092,"contributions":3080},19751938,"noook",{"id":3094,"username":3095,"contributions":3080},1409645,"mariosant",{"id":3097,"username":3098,"contributions":3080},24661232,"Jorgagu",{"id":3100,"username":3101,"contributions":3080},5326365,"harlan-zw",{"id":3103,"username":3104,"contributions":3080},61092270,"stranavad",{"id":3106,"username":3107,"contributions":3080},1592441,"mendrinos",{"id":3109,"username":3110,"contributions":3080},376963,"bisand",{"id":3112,"username":3113,"contributions":3114},68467996,"tejas161",1,{"id":3116,"username":3117,"contributions":3114},18315316,"Syrex-o",{"id":3119,"username":3120,"contributions":3114},3109921,"silvio-e",{"id":3122,"username":3123,"contributions":3114},18753964,"sifferhans",{"id":3125,"username":3126,"contributions":3114},17186421,"samulefevre",{"id":3128,"username":3129,"contributions":3114},15785987,"samydoesit",{"id":3131,"username":3132,"contributions":3114},31662219,"rudokemper",{"id":3134,"username":3135,"contributions":3114},29805551,"RobertHaba",{"id":3137,"username":3138,"contributions":3114},1231105,"SteinRobert",{"version":3140,"downloads":3141,"stars":3142,"watchers":3142,"forks":3143,"defaultBranch":3144,"publishedAt":3145,"createdAt":3146},"0.5.30",378011,1589,187,"main",1785851859387,1699356484873,{"data":3148,"body":3150,"toc":14155},{"title":3149,"description":3028},"Nuxt Auth Utils",{"type":3151,"children":3152},"root",[3153,3160,3206,3210,3244,3250,3349,3363,3369,3381,3393,3404,3410,3426,3468,3490,3525,3537,3545,3551,3556,3563,4105,4114,4617,4639,4645,4658,4664,5041,5061,5240,5252,5258,5263,5283,5304,5331,5509,5514,5535,5543,5550,5793,5806,5812,5823,6228,6240,6253,6258,6288,6414,6427,6538,6549,6705,6711,6716,6721,6729,6763,6776,6855,6860,6865,6870,6877,6909,6921,7000,7005,7010,7024,7344,7484,7514,8442,8477,9314,9348,9861,9866,10705,10723,10729,10758,10769,10775,10780,11062,11068,11087,11313,11337,11342,11362,11367,11375,11394,11482,11508,11514,11531,11618,11636,11646,11658,11663,11932,11944,11956,12329,12357,12363,12376,12394,12497,12517,12867,12881,13381,13386,13413,13424,13594,13599,13745,13765,13868,13886,13892,13912,13918,14149],{"type":3154,"tag":3155,"props":3156,"children":3157},"element","h1",{"id":3027},[3158],{"type":3159,"value":3149},"text",{"type":3154,"tag":3161,"props":3162,"children":3163},"p",{},[3164,3177,3187,3196],{"type":3154,"tag":3165,"props":3166,"children":3170},"a",{"href":3167,"rel":3168},"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fnuxt-auth-utils",[3169],"nofollow",[3171],{"type":3154,"tag":3172,"props":3173,"children":3176},"img",{"alt":3174,"src":3175},"npm version","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fnuxt-auth-utils\u002Flatest.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3154,"tag":3165,"props":3178,"children":3181},{"href":3179,"rel":3180},"https:\u002F\u002Fnpm.chart.dev\u002Fnuxt-auth-utils",[3169],[3182],{"type":3154,"tag":3172,"props":3183,"children":3186},{"alt":3184,"src":3185},"npm downloads","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3154,"tag":3165,"props":3188,"children":3190},{"href":3167,"rel":3189},[3169],[3191],{"type":3154,"tag":3172,"props":3192,"children":3195},{"alt":3193,"src":3194},"License","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3154,"tag":3165,"props":3197,"children":3200},{"href":3198,"rel":3199},"https:\u002F\u002Fnuxt.com",[3169],[3201],{"type":3154,"tag":3172,"props":3202,"children":3205},{"alt":3203,"src":3204},"Nuxt","https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNuxt-020420?logo=nuxt.js",[],{"type":3154,"tag":3161,"props":3207,"children":3208},{},[3209],{"type":3159,"value":3025},{"type":3154,"tag":3211,"props":3212,"children":3213},"ul",{},[3214,3224,3234],{"type":3154,"tag":3215,"props":3216,"children":3217},"li",{},[3218],{"type":3154,"tag":3165,"props":3219,"children":3221},{"href":3220},"\u002FCHANGELOG.md",[3222],{"type":3159,"value":3223},"Release Notes",{"type":3154,"tag":3215,"props":3225,"children":3226},{},[3227],{"type":3154,"tag":3165,"props":3228,"children":3231},{"href":3229,"rel":3230},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fatidone",[3169],[3232],{"type":3159,"value":3233},"Demo with OAuth",{"type":3154,"tag":3215,"props":3235,"children":3236},{},[3237],{"type":3154,"tag":3165,"props":3238,"children":3241},{"href":3239,"rel":3240},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Ftodo-passkeys",[3169],[3242],{"type":3159,"value":3243},"Demo with Passkeys",{"type":3154,"tag":3245,"props":3246,"children":3248},"h2",{"id":3247},"features",[3249],{"type":3159,"value":399},{"type":3154,"tag":3211,"props":3251,"children":3252},{},[3253,3264,3273,3282,3291,3307,3316,3331,3340],{"type":3154,"tag":3215,"props":3254,"children":3255},{},[3256,3262],{"type":3154,"tag":3165,"props":3257,"children":3259},{"href":3258},"#hybrid-rendering",[3260],{"type":3159,"value":3261},"Hybrid Rendering",{"type":3159,"value":3263}," support (SSR \u002F CSR \u002F SWR \u002F Prerendering)",{"type":3154,"tag":3215,"props":3265,"children":3266},{},[3267],{"type":3154,"tag":3165,"props":3268,"children":3270},{"href":3269},"#supported-oauth-providers",[3271],{"type":3159,"value":3272},"40+ OAuth Providers",{"type":3154,"tag":3215,"props":3274,"children":3275},{},[3276],{"type":3154,"tag":3165,"props":3277,"children":3279},{"href":3278},"#password-hashing",[3280],{"type":3159,"value":3281},"Password Hashing",{"type":3154,"tag":3215,"props":3283,"children":3284},{},[3285],{"type":3154,"tag":3165,"props":3286,"children":3288},{"href":3287},"#webauthn-passkey",[3289],{"type":3159,"value":3290},"WebAuthn (passkey)",{"type":3154,"tag":3215,"props":3292,"children":3293},{},[3294],{"type":3154,"tag":3165,"props":3295,"children":3297},{"href":3296},"#vue-composable",[3298,3305],{"type":3154,"tag":3299,"props":3300,"children":3302},"code",{"className":3301},[],[3303],{"type":3159,"value":3304},"useUserSession()",{"type":3159,"value":3306}," Vue composable",{"type":3154,"tag":3215,"props":3308,"children":3309},{},[3310],{"type":3154,"tag":3165,"props":3311,"children":3313},{"href":3312},"#server-utils",[3314],{"type":3159,"value":3315},"Tree-shakable server utils",{"type":3154,"tag":3215,"props":3317,"children":3318},{},[3319],{"type":3154,"tag":3165,"props":3320,"children":3322},{"href":3321},"#authstate-component",[3323,3329],{"type":3154,"tag":3299,"props":3324,"children":3326},{"className":3325},[],[3327],{"type":3159,"value":3328},"\u003CAuthState>",{"type":3159,"value":3330}," component",{"type":3154,"tag":3215,"props":3332,"children":3333},{},[3334],{"type":3154,"tag":3165,"props":3335,"children":3337},{"href":3336},"#extend-session",[3338],{"type":3159,"value":3339},"Extendable with hooks",{"type":3154,"tag":3215,"props":3341,"children":3342},{},[3343],{"type":3154,"tag":3165,"props":3344,"children":3346},{"href":3345},"#websocket-support",[3347],{"type":3159,"value":3348},"WebSocket support",{"type":3154,"tag":3161,"props":3350,"children":3351},{},[3352,3354,3361],{"type":3159,"value":3353},"It has few dependencies (only from ",{"type":3154,"tag":3165,"props":3355,"children":3358},{"href":3356,"rel":3357},"https:\u002F\u002Fgithub.com\u002Funjs",[3169],[3359],{"type":3159,"value":3360},"UnJS",{"type":3159,"value":3362},"), run on multiple JS environments (Node, Deno, Workers) and is fully typed with TypeScript.",{"type":3154,"tag":3245,"props":3364,"children":3366},{"id":3365},"requirements",[3367],{"type":3159,"value":3368},"Requirements",{"type":3154,"tag":3161,"props":3370,"children":3371},{},[3372,3374,3379],{"type":3159,"value":3373},"This module only works with a Nuxt server running as it uses server API routes (",{"type":3154,"tag":3299,"props":3375,"children":3377},{"className":3376},[],[3378],{"type":3159,"value":765},{"type":3159,"value":3380},").",{"type":3154,"tag":3161,"props":3382,"children":3383},{},[3384,3386,3391],{"type":3159,"value":3385},"This means that you cannot use this module with ",{"type":3154,"tag":3299,"props":3387,"children":3389},{"className":3388},[],[3390],{"type":3159,"value":785},{"type":3159,"value":3392},".",{"type":3154,"tag":3161,"props":3394,"children":3395},{},[3396,3398,3402],{"type":3159,"value":3397},"You can anyway use ",{"type":3154,"tag":3165,"props":3399,"children":3400},{"href":3258},[3401],{"type":3159,"value":3261},{"type":3159,"value":3403}," to pre-render pages of your application or disable server-side rendering completely.",{"type":3154,"tag":3245,"props":3405,"children":3407},{"id":3406},"quick-setup",[3408],{"type":3159,"value":3409},"Quick Setup",{"type":3154,"tag":3411,"props":3412,"children":3413},"ol",{},[3414],{"type":3154,"tag":3215,"props":3415,"children":3416},{},[3417,3419,3424],{"type":3159,"value":3418},"Add ",{"type":3154,"tag":3299,"props":3420,"children":3422},{"className":3421},[],[3423],{"type":3159,"value":3027},{"type":3159,"value":3425}," in your Nuxt project",{"type":3154,"tag":3427,"props":3428,"children":3432},"pre",{"className":3429,"code":3430,"language":3431,"meta":3028,"style":3028},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","npx nuxi@latest module add auth-utils\n","bash",[3433],{"type":3154,"tag":3299,"props":3434,"children":3435},{"__ignoreMap":3028},[3436],{"type":3154,"tag":3437,"props":3438,"children":3440},"span",{"class":3439,"line":3114},"line",[3441,3447,3453,3458,3463],{"type":3154,"tag":3437,"props":3442,"children":3444},{"style":3443},"--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B",[3445],{"type":3159,"value":3446},"npx",{"type":3154,"tag":3437,"props":3448,"children":3450},{"style":3449},"--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D",[3451],{"type":3159,"value":3452}," nuxi@latest",{"type":3154,"tag":3437,"props":3454,"children":3455},{"style":3449},[3456],{"type":3159,"value":3457}," module",{"type":3154,"tag":3437,"props":3459,"children":3460},{"style":3449},[3461],{"type":3159,"value":3462}," add",{"type":3154,"tag":3437,"props":3464,"children":3465},{"style":3449},[3466],{"type":3159,"value":3467}," auth-utils\n",{"type":3154,"tag":3411,"props":3469,"children":3470},{"start":3080},[3471],{"type":3154,"tag":3215,"props":3472,"children":3473},{},[3474,3476,3482,3484,3489],{"type":3159,"value":3475},"Add a ",{"type":3154,"tag":3299,"props":3477,"children":3479},{"className":3478},[],[3480],{"type":3159,"value":3481},"NUXT_SESSION_PASSWORD",{"type":3159,"value":3483}," env variable with at least 32 characters in the ",{"type":3154,"tag":3299,"props":3485,"children":3487},{"className":3486},[],[3488],{"type":3159,"value":200},{"type":3159,"value":3392},{"type":3154,"tag":3427,"props":3491,"children":3493},{"className":3429,"code":3492,"language":3431,"meta":3028,"style":3028},"# .env\nNUXT_SESSION_PASSWORD=password-with-at-least-32-characters\n",[3494],{"type":3154,"tag":3299,"props":3495,"children":3496},{"__ignoreMap":3028},[3497,3506],{"type":3154,"tag":3437,"props":3498,"children":3499},{"class":3439,"line":3114},[3500],{"type":3154,"tag":3437,"props":3501,"children":3503},{"style":3502},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[3504],{"type":3159,"value":3505},"# .env\n",{"type":3154,"tag":3437,"props":3507,"children":3508},{"class":3439,"line":3080},[3509,3514,3520],{"type":3154,"tag":3437,"props":3510,"children":3512},{"style":3511},"--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8",[3513],{"type":3159,"value":3481},{"type":3154,"tag":3437,"props":3515,"children":3517},{"style":3516},"--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF",[3518],{"type":3159,"value":3519},"=",{"type":3154,"tag":3437,"props":3521,"children":3522},{"style":3449},[3523],{"type":3159,"value":3524},"password-with-at-least-32-characters\n",{"type":3154,"tag":3161,"props":3526,"children":3527},{},[3528,3530,3535],{"type":3159,"value":3529},"Nuxt Auth Utils generates one for you when running Nuxt in development the first time if no ",{"type":3154,"tag":3299,"props":3531,"children":3533},{"className":3532},[],[3534],{"type":3159,"value":3481},{"type":3159,"value":3536}," is set.",{"type":3154,"tag":3411,"props":3538,"children":3539},{"start":3064},[3540],{"type":3154,"tag":3215,"props":3541,"children":3542},{},[3543],{"type":3159,"value":3544},"That's it! You can now add authentication to your Nuxt app ✨",{"type":3154,"tag":3245,"props":3546,"children":3548},{"id":3547},"vue-composable",[3549],{"type":3159,"value":3550},"Vue Composable",{"type":3154,"tag":3161,"props":3552,"children":3553},{},[3554],{"type":3159,"value":3555},"Nuxt Auth Utils automatically adds some plugins to fetch the current user session to let you access it from your Vue components.",{"type":3154,"tag":3557,"props":3558,"children":3560},"h3",{"id":3559},"user-session",[3561],{"type":3159,"value":3562},"User Session",{"type":3154,"tag":3427,"props":3564,"children":3568},{"className":3565,"code":3566,"language":3567,"meta":3028,"style":3028},"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",[3569],{"type":3154,"tag":3299,"props":3570,"children":3571},{"__ignoreMap":3028},[3572,3597,3682,3698,3707,3724,3765,3799,3831,3886,3903,3924,3957,4012,4021,4074,4089],{"type":3154,"tag":3437,"props":3573,"children":3574},{"class":3439,"line":3114},[3575,3580,3586,3592],{"type":3154,"tag":3437,"props":3576,"children":3577},{"style":3516},[3578],{"type":3159,"value":3579},"\u003C",{"type":3154,"tag":3437,"props":3581,"children":3583},{"style":3582},"--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178",[3584],{"type":3159,"value":3585},"script",{"type":3154,"tag":3437,"props":3587,"children":3589},{"style":3588},"--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA",[3590],{"type":3159,"value":3591}," setup",{"type":3154,"tag":3437,"props":3593,"children":3594},{"style":3516},[3595],{"type":3159,"value":3596},">\n",{"type":3154,"tag":3437,"props":3598,"children":3599},{"class":3439,"line":3080},[3600,3605,3610,3615,3620,3625,3629,3634,3638,3643,3647,3652,3656,3661,3666,3671,3677],{"type":3154,"tag":3437,"props":3601,"children":3602},{"style":3588},[3603],{"type":3159,"value":3604},"const",{"type":3154,"tag":3437,"props":3606,"children":3607},{"style":3516},[3608],{"type":3159,"value":3609}," {",{"type":3154,"tag":3437,"props":3611,"children":3612},{"style":3511},[3613],{"type":3159,"value":3614}," loggedIn",{"type":3154,"tag":3437,"props":3616,"children":3617},{"style":3516},[3618],{"type":3159,"value":3619},",",{"type":3154,"tag":3437,"props":3621,"children":3622},{"style":3511},[3623],{"type":3159,"value":3624}," user",{"type":3154,"tag":3437,"props":3626,"children":3627},{"style":3516},[3628],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":3630,"children":3631},{"style":3511},[3632],{"type":3159,"value":3633}," session",{"type":3154,"tag":3437,"props":3635,"children":3636},{"style":3516},[3637],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":3639,"children":3640},{"style":3511},[3641],{"type":3159,"value":3642}," fetch",{"type":3154,"tag":3437,"props":3644,"children":3645},{"style":3516},[3646],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":3648,"children":3649},{"style":3511},[3650],{"type":3159,"value":3651}," clear",{"type":3154,"tag":3437,"props":3653,"children":3654},{"style":3516},[3655],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":3657,"children":3658},{"style":3511},[3659],{"type":3159,"value":3660}," openInPopup ",{"type":3154,"tag":3437,"props":3662,"children":3663},{"style":3516},[3664],{"type":3159,"value":3665},"}",{"type":3154,"tag":3437,"props":3667,"children":3668},{"style":3516},[3669],{"type":3159,"value":3670}," =",{"type":3154,"tag":3437,"props":3672,"children":3674},{"style":3673},"--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF",[3675],{"type":3159,"value":3676}," useUserSession",{"type":3154,"tag":3437,"props":3678,"children":3679},{"style":3511},[3680],{"type":3159,"value":3681},"()\n",{"type":3154,"tag":3437,"props":3683,"children":3684},{"class":3439,"line":3064},[3685,3690,3694],{"type":3154,"tag":3437,"props":3686,"children":3687},{"style":3516},[3688],{"type":3159,"value":3689},"\u003C\u002F",{"type":3154,"tag":3437,"props":3691,"children":3692},{"style":3582},[3693],{"type":3159,"value":3585},{"type":3154,"tag":3437,"props":3695,"children":3696},{"style":3516},[3697],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":3699,"children":3701},{"class":3439,"line":3700},4,[3702],{"type":3154,"tag":3437,"props":3703,"children":3704},{"emptyLinePlaceholder":1200},[3705],{"type":3159,"value":3706},"\n",{"type":3154,"tag":3437,"props":3708,"children":3710},{"class":3439,"line":3709},5,[3711,3715,3720],{"type":3154,"tag":3437,"props":3712,"children":3713},{"style":3516},[3714],{"type":3159,"value":3579},{"type":3154,"tag":3437,"props":3716,"children":3717},{"style":3582},[3718],{"type":3159,"value":3719},"template",{"type":3154,"tag":3437,"props":3721,"children":3722},{"style":3516},[3723],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":3725,"children":3727},{"class":3439,"line":3726},6,[3728,3733,3738,3743,3747,3752,3757,3761],{"type":3154,"tag":3437,"props":3729,"children":3730},{"style":3516},[3731],{"type":3159,"value":3732},"  \u003C",{"type":3154,"tag":3437,"props":3734,"children":3735},{"style":3582},[3736],{"type":3159,"value":3737},"div",{"type":3154,"tag":3437,"props":3739,"children":3740},{"style":3588},[3741],{"type":3159,"value":3742}," v-if",{"type":3154,"tag":3437,"props":3744,"children":3745},{"style":3516},[3746],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":3748,"children":3749},{"style":3516},[3750],{"type":3159,"value":3751},"\"",{"type":3154,"tag":3437,"props":3753,"children":3754},{"style":3449},[3755],{"type":3159,"value":3756},"loggedIn",{"type":3154,"tag":3437,"props":3758,"children":3759},{"style":3516},[3760],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":3762,"children":3763},{"style":3516},[3764],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":3766,"children":3767},{"class":3439,"line":3060},[3768,3773,3777,3782,3787,3791,3795],{"type":3154,"tag":3437,"props":3769,"children":3770},{"style":3516},[3771],{"type":3159,"value":3772},"    \u003C",{"type":3154,"tag":3437,"props":3774,"children":3775},{"style":3582},[3776],{"type":3159,"value":3155},{"type":3154,"tag":3437,"props":3778,"children":3779},{"style":3516},[3780],{"type":3159,"value":3781},">",{"type":3154,"tag":3437,"props":3783,"children":3784},{"style":3511},[3785],{"type":3159,"value":3786},"Welcome {{ user.login }}!",{"type":3154,"tag":3437,"props":3788,"children":3789},{"style":3516},[3790],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":3792,"children":3793},{"style":3582},[3794],{"type":3159,"value":3155},{"type":3154,"tag":3437,"props":3796,"children":3797},{"style":3516},[3798],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":3800,"children":3801},{"class":3439,"line":3056},[3802,3806,3810,3814,3819,3823,3827],{"type":3154,"tag":3437,"props":3803,"children":3804},{"style":3516},[3805],{"type":3159,"value":3772},{"type":3154,"tag":3437,"props":3807,"children":3808},{"style":3582},[3809],{"type":3159,"value":3161},{"type":3154,"tag":3437,"props":3811,"children":3812},{"style":3516},[3813],{"type":3159,"value":3781},{"type":3154,"tag":3437,"props":3815,"children":3816},{"style":3511},[3817],{"type":3159,"value":3818},"Logged in since {{ session.loggedInAt }}",{"type":3154,"tag":3437,"props":3820,"children":3821},{"style":3516},[3822],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":3824,"children":3825},{"style":3582},[3826],{"type":3159,"value":3161},{"type":3154,"tag":3437,"props":3828,"children":3829},{"style":3516},[3830],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":3832,"children":3833},{"class":3439,"line":3052},[3834,3838,3843,3848,3852,3856,3861,3865,3869,3874,3878,3882],{"type":3154,"tag":3437,"props":3835,"children":3836},{"style":3516},[3837],{"type":3159,"value":3772},{"type":3154,"tag":3437,"props":3839,"children":3840},{"style":3582},[3841],{"type":3159,"value":3842},"button",{"type":3154,"tag":3437,"props":3844,"children":3845},{"style":3588},[3846],{"type":3159,"value":3847}," @click",{"type":3154,"tag":3437,"props":3849,"children":3850},{"style":3516},[3851],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":3853,"children":3854},{"style":3516},[3855],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":3857,"children":3858},{"style":3449},[3859],{"type":3159,"value":3860},"clear",{"type":3154,"tag":3437,"props":3862,"children":3863},{"style":3516},[3864],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":3866,"children":3867},{"style":3516},[3868],{"type":3159,"value":3781},{"type":3154,"tag":3437,"props":3870,"children":3871},{"style":3511},[3872],{"type":3159,"value":3873},"Logout",{"type":3154,"tag":3437,"props":3875,"children":3876},{"style":3516},[3877],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":3879,"children":3880},{"style":3582},[3881],{"type":3159,"value":3842},{"type":3154,"tag":3437,"props":3883,"children":3884},{"style":3516},[3885],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":3887,"children":3889},{"class":3439,"line":3888},10,[3890,3895,3899],{"type":3154,"tag":3437,"props":3891,"children":3892},{"style":3516},[3893],{"type":3159,"value":3894},"  \u003C\u002F",{"type":3154,"tag":3437,"props":3896,"children":3897},{"style":3582},[3898],{"type":3159,"value":3737},{"type":3154,"tag":3437,"props":3900,"children":3901},{"style":3516},[3902],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":3904,"children":3906},{"class":3439,"line":3905},11,[3907,3911,3915,3920],{"type":3154,"tag":3437,"props":3908,"children":3909},{"style":3516},[3910],{"type":3159,"value":3732},{"type":3154,"tag":3437,"props":3912,"children":3913},{"style":3582},[3914],{"type":3159,"value":3737},{"type":3154,"tag":3437,"props":3916,"children":3917},{"style":3588},[3918],{"type":3159,"value":3919}," v-else",{"type":3154,"tag":3437,"props":3921,"children":3922},{"style":3516},[3923],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":3925,"children":3927},{"class":3439,"line":3926},12,[3928,3932,3936,3940,3945,3949,3953],{"type":3154,"tag":3437,"props":3929,"children":3930},{"style":3516},[3931],{"type":3159,"value":3772},{"type":3154,"tag":3437,"props":3933,"children":3934},{"style":3582},[3935],{"type":3159,"value":3155},{"type":3154,"tag":3437,"props":3937,"children":3938},{"style":3516},[3939],{"type":3159,"value":3781},{"type":3154,"tag":3437,"props":3941,"children":3942},{"style":3511},[3943],{"type":3159,"value":3944},"Not logged in",{"type":3154,"tag":3437,"props":3946,"children":3947},{"style":3516},[3948],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":3950,"children":3951},{"style":3582},[3952],{"type":3159,"value":3155},{"type":3154,"tag":3437,"props":3954,"children":3955},{"style":3516},[3956],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":3958,"children":3960},{"class":3439,"line":3959},13,[3961,3965,3969,3974,3978,3982,3987,3991,3995,4000,4004,4008],{"type":3154,"tag":3437,"props":3962,"children":3963},{"style":3516},[3964],{"type":3159,"value":3772},{"type":3154,"tag":3437,"props":3966,"children":3967},{"style":3582},[3968],{"type":3159,"value":3165},{"type":3154,"tag":3437,"props":3970,"children":3971},{"style":3588},[3972],{"type":3159,"value":3973}," href",{"type":3154,"tag":3437,"props":3975,"children":3976},{"style":3516},[3977],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":3979,"children":3980},{"style":3516},[3981],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":3983,"children":3984},{"style":3449},[3985],{"type":3159,"value":3986},"\u002Fauth\u002Fgithub",{"type":3154,"tag":3437,"props":3988,"children":3989},{"style":3516},[3990],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":3992,"children":3993},{"style":3516},[3994],{"type":3159,"value":3781},{"type":3154,"tag":3437,"props":3996,"children":3997},{"style":3511},[3998],{"type":3159,"value":3999},"Login with GitHub",{"type":3154,"tag":3437,"props":4001,"children":4002},{"style":3516},[4003],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":4005,"children":4006},{"style":3582},[4007],{"type":3159,"value":3165},{"type":3154,"tag":3437,"props":4009,"children":4010},{"style":3516},[4011],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":4013,"children":4015},{"class":3439,"line":4014},14,[4016],{"type":3154,"tag":3437,"props":4017,"children":4018},{"style":3502},[4019],{"type":3159,"value":4020},"    \u003C!-- or open the OAuth route in a popup -->\n",{"type":3154,"tag":3437,"props":4022,"children":4024},{"class":3439,"line":4023},15,[4025,4029,4033,4037,4041,4045,4050,4054,4058,4062,4066,4070],{"type":3154,"tag":3437,"props":4026,"children":4027},{"style":3516},[4028],{"type":3159,"value":3772},{"type":3154,"tag":3437,"props":4030,"children":4031},{"style":3582},[4032],{"type":3159,"value":3842},{"type":3154,"tag":3437,"props":4034,"children":4035},{"style":3588},[4036],{"type":3159,"value":3847},{"type":3154,"tag":3437,"props":4038,"children":4039},{"style":3516},[4040],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":4042,"children":4043},{"style":3516},[4044],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":4046,"children":4047},{"style":3449},[4048],{"type":3159,"value":4049},"openInPopup('\u002Fauth\u002Fgithub')",{"type":3154,"tag":3437,"props":4051,"children":4052},{"style":3516},[4053],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":4055,"children":4056},{"style":3516},[4057],{"type":3159,"value":3781},{"type":3154,"tag":3437,"props":4059,"children":4060},{"style":3511},[4061],{"type":3159,"value":3999},{"type":3154,"tag":3437,"props":4063,"children":4064},{"style":3516},[4065],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":4067,"children":4068},{"style":3582},[4069],{"type":3159,"value":3842},{"type":3154,"tag":3437,"props":4071,"children":4072},{"style":3516},[4073],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":4075,"children":4076},{"class":3439,"line":3048},[4077,4081,4085],{"type":3154,"tag":3437,"props":4078,"children":4079},{"style":3516},[4080],{"type":3159,"value":3894},{"type":3154,"tag":3437,"props":4082,"children":4083},{"style":3582},[4084],{"type":3159,"value":3737},{"type":3154,"tag":3437,"props":4086,"children":4087},{"style":3516},[4088],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":4090,"children":4092},{"class":3439,"line":4091},17,[4093,4097,4101],{"type":3154,"tag":3437,"props":4094,"children":4095},{"style":3516},[4096],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":4098,"children":4099},{"style":3582},[4100],{"type":3159,"value":3719},{"type":3154,"tag":3437,"props":4102,"children":4103},{"style":3516},[4104],{"type":3159,"value":3596},{"type":3154,"tag":3161,"props":4106,"children":4107},{},[4108],{"type":3154,"tag":4109,"props":4110,"children":4111},"strong",{},[4112],{"type":3159,"value":4113},"TypeScript Signature:",{"type":3154,"tag":3427,"props":4115,"children":4119},{"className":4116,"code":4117,"language":4118,"meta":3028,"style":3028},"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",[4120],{"type":3154,"tag":3299,"props":4121,"children":4122},{"__ignoreMap":3028},[4123,4141,4149,4157,4165,4196,4203,4211,4218,4246,4253,4261,4268,4307,4314,4322,4329,4359,4367,4376,4384,4425,4433,4442,4450,4487,4495,4504,4512,4608],{"type":3154,"tag":3437,"props":4124,"children":4125},{"class":3439,"line":3114},[4126,4131,4136],{"type":3154,"tag":3437,"props":4127,"children":4128},{"style":3588},[4129],{"type":3159,"value":4130},"interface",{"type":3154,"tag":3437,"props":4132,"children":4133},{"style":3443},[4134],{"type":3159,"value":4135}," UserSessionComposable",{"type":3154,"tag":3437,"props":4137,"children":4138},{"style":3516},[4139],{"type":3159,"value":4140}," {\n",{"type":3154,"tag":3437,"props":4142,"children":4143},{"class":3439,"line":3080},[4144],{"type":3154,"tag":3437,"props":4145,"children":4146},{"style":3502},[4147],{"type":3159,"value":4148},"  \u002F**\n",{"type":3154,"tag":3437,"props":4150,"children":4151},{"class":3439,"line":3064},[4152],{"type":3154,"tag":3437,"props":4153,"children":4154},{"style":3502},[4155],{"type":3159,"value":4156},"   * Computed indicating if the auth session is ready\n",{"type":3154,"tag":3437,"props":4158,"children":4159},{"class":3439,"line":3700},[4160],{"type":3154,"tag":3437,"props":4161,"children":4162},{"style":3502},[4163],{"type":3159,"value":4164},"   *\u002F\n",{"type":3154,"tag":3437,"props":4166,"children":4167},{"class":3439,"line":3709},[4168,4173,4178,4183,4187,4192],{"type":3154,"tag":3437,"props":4169,"children":4170},{"style":3582},[4171],{"type":3159,"value":4172},"  ready",{"type":3154,"tag":3437,"props":4174,"children":4175},{"style":3516},[4176],{"type":3159,"value":4177},":",{"type":3154,"tag":3437,"props":4179,"children":4180},{"style":3443},[4181],{"type":3159,"value":4182}," ComputedRef",{"type":3154,"tag":3437,"props":4184,"children":4185},{"style":3516},[4186],{"type":3159,"value":3579},{"type":3154,"tag":3437,"props":4188,"children":4189},{"style":3443},[4190],{"type":3159,"value":4191},"boolean",{"type":3154,"tag":3437,"props":4193,"children":4194},{"style":3516},[4195],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":4197,"children":4198},{"class":3439,"line":3726},[4199],{"type":3154,"tag":3437,"props":4200,"children":4201},{"style":3502},[4202],{"type":3159,"value":4148},{"type":3154,"tag":3437,"props":4204,"children":4205},{"class":3439,"line":3060},[4206],{"type":3154,"tag":3437,"props":4207,"children":4208},{"style":3502},[4209],{"type":3159,"value":4210},"   * Computed indicating if the user is logged in.\n",{"type":3154,"tag":3437,"props":4212,"children":4213},{"class":3439,"line":3056},[4214],{"type":3154,"tag":3437,"props":4215,"children":4216},{"style":3502},[4217],{"type":3159,"value":4164},{"type":3154,"tag":3437,"props":4219,"children":4220},{"class":3439,"line":3052},[4221,4226,4230,4234,4238,4242],{"type":3154,"tag":3437,"props":4222,"children":4223},{"style":3582},[4224],{"type":3159,"value":4225},"  loggedIn",{"type":3154,"tag":3437,"props":4227,"children":4228},{"style":3516},[4229],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":4231,"children":4232},{"style":3443},[4233],{"type":3159,"value":4182},{"type":3154,"tag":3437,"props":4235,"children":4236},{"style":3516},[4237],{"type":3159,"value":3579},{"type":3154,"tag":3437,"props":4239,"children":4240},{"style":3443},[4241],{"type":3159,"value":4191},{"type":3154,"tag":3437,"props":4243,"children":4244},{"style":3516},[4245],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":4247,"children":4248},{"class":3439,"line":3888},[4249],{"type":3154,"tag":3437,"props":4250,"children":4251},{"style":3502},[4252],{"type":3159,"value":4148},{"type":3154,"tag":3437,"props":4254,"children":4255},{"class":3439,"line":3905},[4256],{"type":3154,"tag":3437,"props":4257,"children":4258},{"style":3502},[4259],{"type":3159,"value":4260},"   * The user object if logged in, null otherwise.\n",{"type":3154,"tag":3437,"props":4262,"children":4263},{"class":3439,"line":3926},[4264],{"type":3154,"tag":3437,"props":4265,"children":4266},{"style":3502},[4267],{"type":3159,"value":4164},{"type":3154,"tag":3437,"props":4269,"children":4270},{"class":3439,"line":3959},[4271,4276,4280,4284,4288,4293,4298,4303],{"type":3154,"tag":3437,"props":4272,"children":4273},{"style":3582},[4274],{"type":3159,"value":4275},"  user",{"type":3154,"tag":3437,"props":4277,"children":4278},{"style":3516},[4279],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":4281,"children":4282},{"style":3443},[4283],{"type":3159,"value":4182},{"type":3154,"tag":3437,"props":4285,"children":4286},{"style":3516},[4287],{"type":3159,"value":3579},{"type":3154,"tag":3437,"props":4289,"children":4290},{"style":3443},[4291],{"type":3159,"value":4292},"User",{"type":3154,"tag":3437,"props":4294,"children":4295},{"style":3516},[4296],{"type":3159,"value":4297}," |",{"type":3154,"tag":3437,"props":4299,"children":4300},{"style":3443},[4301],{"type":3159,"value":4302}," null",{"type":3154,"tag":3437,"props":4304,"children":4305},{"style":3516},[4306],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":4308,"children":4309},{"class":3439,"line":4014},[4310],{"type":3154,"tag":3437,"props":4311,"children":4312},{"style":3502},[4313],{"type":3159,"value":4148},{"type":3154,"tag":3437,"props":4315,"children":4316},{"class":3439,"line":4023},[4317],{"type":3154,"tag":3437,"props":4318,"children":4319},{"style":3502},[4320],{"type":3159,"value":4321},"   * The session object.\n",{"type":3154,"tag":3437,"props":4323,"children":4324},{"class":3439,"line":3048},[4325],{"type":3154,"tag":3437,"props":4326,"children":4327},{"style":3502},[4328],{"type":3159,"value":4164},{"type":3154,"tag":3437,"props":4330,"children":4331},{"class":3439,"line":4091},[4332,4337,4341,4346,4350,4355],{"type":3154,"tag":3437,"props":4333,"children":4334},{"style":3582},[4335],{"type":3159,"value":4336},"  session",{"type":3154,"tag":3437,"props":4338,"children":4339},{"style":3516},[4340],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":4342,"children":4343},{"style":3443},[4344],{"type":3159,"value":4345}," Ref",{"type":3154,"tag":3437,"props":4347,"children":4348},{"style":3516},[4349],{"type":3159,"value":3579},{"type":3154,"tag":3437,"props":4351,"children":4352},{"style":3443},[4353],{"type":3159,"value":4354},"UserSession",{"type":3154,"tag":3437,"props":4356,"children":4357},{"style":3516},[4358],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":4360,"children":4362},{"class":3439,"line":4361},18,[4363],{"type":3154,"tag":3437,"props":4364,"children":4365},{"style":3502},[4366],{"type":3159,"value":4148},{"type":3154,"tag":3437,"props":4368,"children":4370},{"class":3439,"line":4369},19,[4371],{"type":3154,"tag":3437,"props":4372,"children":4373},{"style":3502},[4374],{"type":3159,"value":4375},"   * Fetch the user session from the server.\n",{"type":3154,"tag":3437,"props":4377,"children":4379},{"class":3439,"line":4378},20,[4380],{"type":3154,"tag":3437,"props":4381,"children":4382},{"style":3502},[4383],{"type":3159,"value":4164},{"type":3154,"tag":3437,"props":4385,"children":4387},{"class":3439,"line":4386},21,[4388,4393,4397,4402,4407,4412,4416,4421],{"type":3154,"tag":3437,"props":4389,"children":4390},{"style":3582},[4391],{"type":3159,"value":4392},"  fetch",{"type":3154,"tag":3437,"props":4394,"children":4395},{"style":3516},[4396],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":4398,"children":4399},{"style":3516},[4400],{"type":3159,"value":4401}," ()",{"type":3154,"tag":3437,"props":4403,"children":4404},{"style":3588},[4405],{"type":3159,"value":4406}," =>",{"type":3154,"tag":3437,"props":4408,"children":4409},{"style":3443},[4410],{"type":3159,"value":4411}," Promise",{"type":3154,"tag":3437,"props":4413,"children":4414},{"style":3516},[4415],{"type":3159,"value":3579},{"type":3154,"tag":3437,"props":4417,"children":4418},{"style":3443},[4419],{"type":3159,"value":4420},"void",{"type":3154,"tag":3437,"props":4422,"children":4423},{"style":3516},[4424],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":4426,"children":4428},{"class":3439,"line":4427},22,[4429],{"type":3154,"tag":3437,"props":4430,"children":4431},{"style":3502},[4432],{"type":3159,"value":4148},{"type":3154,"tag":3437,"props":4434,"children":4436},{"class":3439,"line":4435},23,[4437],{"type":3154,"tag":3437,"props":4438,"children":4439},{"style":3502},[4440],{"type":3159,"value":4441},"   * Clear the user session and remove the session cookie.\n",{"type":3154,"tag":3437,"props":4443,"children":4445},{"class":3439,"line":4444},24,[4446],{"type":3154,"tag":3437,"props":4447,"children":4448},{"style":3502},[4449],{"type":3159,"value":4164},{"type":3154,"tag":3437,"props":4451,"children":4453},{"class":3439,"line":4452},25,[4454,4459,4463,4467,4471,4475,4479,4483],{"type":3154,"tag":3437,"props":4455,"children":4456},{"style":3582},[4457],{"type":3159,"value":4458},"  clear",{"type":3154,"tag":3437,"props":4460,"children":4461},{"style":3516},[4462],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":4464,"children":4465},{"style":3516},[4466],{"type":3159,"value":4401},{"type":3154,"tag":3437,"props":4468,"children":4469},{"style":3588},[4470],{"type":3159,"value":4406},{"type":3154,"tag":3437,"props":4472,"children":4473},{"style":3443},[4474],{"type":3159,"value":4411},{"type":3154,"tag":3437,"props":4476,"children":4477},{"style":3516},[4478],{"type":3159,"value":3579},{"type":3154,"tag":3437,"props":4480,"children":4481},{"style":3443},[4482],{"type":3159,"value":4420},{"type":3154,"tag":3437,"props":4484,"children":4485},{"style":3516},[4486],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":4488,"children":4490},{"class":3439,"line":4489},26,[4491],{"type":3154,"tag":3437,"props":4492,"children":4493},{"style":3502},[4494],{"type":3159,"value":4148},{"type":3154,"tag":3437,"props":4496,"children":4498},{"class":3439,"line":4497},27,[4499],{"type":3154,"tag":3437,"props":4500,"children":4501},{"style":3502},[4502],{"type":3159,"value":4503},"   * Open the OAuth route in a popup that auto-closes when successful.\n",{"type":3154,"tag":3437,"props":4505,"children":4507},{"class":3439,"line":4506},28,[4508],{"type":3154,"tag":3437,"props":4509,"children":4510},{"style":3502},[4511],{"type":3159,"value":4164},{"type":3154,"tag":3437,"props":4513,"children":4515},{"class":3439,"line":4514},29,[4516,4521,4525,4530,4536,4540,4545,4549,4554,4559,4563,4568,4572,4577,4581,4586,4590,4594,4599,4603],{"type":3154,"tag":3437,"props":4517,"children":4518},{"style":3582},[4519],{"type":3159,"value":4520},"  openInPopup",{"type":3154,"tag":3437,"props":4522,"children":4523},{"style":3516},[4524],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":4526,"children":4527},{"style":3516},[4528],{"type":3159,"value":4529}," (",{"type":3154,"tag":3437,"props":4531,"children":4533},{"style":4532},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[4534],{"type":3159,"value":4535},"route",{"type":3154,"tag":3437,"props":4537,"children":4538},{"style":3516},[4539],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":4541,"children":4542},{"style":3443},[4543],{"type":3159,"value":4544}," string",{"type":3154,"tag":3437,"props":4546,"children":4547},{"style":3516},[4548],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":4550,"children":4551},{"style":4532},[4552],{"type":3159,"value":4553}," size",{"type":3154,"tag":3437,"props":4555,"children":4556},{"style":3516},[4557],{"type":3159,"value":4558},"?:",{"type":3154,"tag":3437,"props":4560,"children":4561},{"style":3516},[4562],{"type":3159,"value":3609},{"type":3154,"tag":3437,"props":4564,"children":4565},{"style":3582},[4566],{"type":3159,"value":4567}," width",{"type":3154,"tag":3437,"props":4569,"children":4570},{"style":3516},[4571],{"type":3159,"value":4558},{"type":3154,"tag":3437,"props":4573,"children":4574},{"style":3443},[4575],{"type":3159,"value":4576}," number",{"type":3154,"tag":3437,"props":4578,"children":4579},{"style":3516},[4580],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":4582,"children":4583},{"style":3582},[4584],{"type":3159,"value":4585}," height",{"type":3154,"tag":3437,"props":4587,"children":4588},{"style":3516},[4589],{"type":3159,"value":4558},{"type":3154,"tag":3437,"props":4591,"children":4592},{"style":3443},[4593],{"type":3159,"value":4576},{"type":3154,"tag":3437,"props":4595,"children":4596},{"style":3516},[4597],{"type":3159,"value":4598}," })",{"type":3154,"tag":3437,"props":4600,"children":4601},{"style":3588},[4602],{"type":3159,"value":4406},{"type":3154,"tag":3437,"props":4604,"children":4605},{"style":3443},[4606],{"type":3159,"value":4607}," void\n",{"type":3154,"tag":3437,"props":4609,"children":4611},{"class":3439,"line":4610},30,[4612],{"type":3154,"tag":3437,"props":4613,"children":4614},{"style":3516},[4615],{"type":3159,"value":4616},"}\n",{"type":3154,"tag":4618,"props":4619,"children":4620},"blockquote",{},[4621],{"type":3154,"tag":3161,"props":4622,"children":4623},{},[4624,4629,4631,4637],{"type":3154,"tag":3437,"props":4625,"children":4626},{},[4627],{"type":3159,"value":4628},"!IMPORTANT",{"type":3159,"value":4630},"\nNuxt Auth Utils uses the ",{"type":3154,"tag":3299,"props":4632,"children":4634},{"className":4633},[],[4635],{"type":3159,"value":4636},"\u002Fapi\u002F_auth\u002Fsession",{"type":3159,"value":4638}," route for session management. Ensure your API route middleware doesn't interfere with this path.",{"type":3154,"tag":3245,"props":4640,"children":4642},{"id":4641},"server-utils",[4643],{"type":3159,"value":4644},"Server Utils",{"type":3154,"tag":3161,"props":4646,"children":4647},{},[4648,4650,4656],{"type":3159,"value":4649},"The following helpers are auto-imported in your ",{"type":3154,"tag":3299,"props":4651,"children":4653},{"className":4652},[],[4654],{"type":3159,"value":4655},"server\u002F",{"type":3159,"value":4657}," directory.",{"type":3154,"tag":3557,"props":4659,"children":4661},{"id":4660},"session-management",[4662],{"type":3159,"value":4663},"Session Management",{"type":3154,"tag":3427,"props":4665,"children":4667},{"className":4116,"code":4666,"language":4118,"meta":3028,"style":3028},"\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",[4668],{"type":3154,"tag":3299,"props":4669,"children":4670},{"__ignoreMap":3028},[4671,4679,4687,4695,4722,4730,4745,4771,4779,4787,4803,4828,4835,4843,4869,4881,4888,4896,4921,4928,4936,4967,4974,4982,4998,5005,5013],{"type":3154,"tag":3437,"props":4672,"children":4673},{"class":3439,"line":3114},[4674],{"type":3154,"tag":3437,"props":4675,"children":4676},{"style":3502},[4677],{"type":3159,"value":4678},"\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":3154,"tag":3437,"props":4680,"children":4681},{"class":3439,"line":3080},[4682],{"type":3154,"tag":3437,"props":4683,"children":4684},{"style":3502},[4685],{"type":3159,"value":4686},"\u002F\u002F Only store the data that allow you to recognize a user, but do not store sensitive data\n",{"type":3154,"tag":3437,"props":4688,"children":4689},{"class":3439,"line":3064},[4690],{"type":3154,"tag":3437,"props":4691,"children":4692},{"style":3502},[4693],{"type":3159,"value":4694},"\u002F\u002F Merges new data with existing data using unjs\u002Fdefu library\n",{"type":3154,"tag":3437,"props":4696,"children":4697},{"class":3439,"line":3700},[4698,4704,4709,4714,4718],{"type":3154,"tag":3437,"props":4699,"children":4701},{"style":4700},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[4702],{"type":3159,"value":4703},"await",{"type":3154,"tag":3437,"props":4705,"children":4706},{"style":3673},[4707],{"type":3159,"value":4708}," setUserSession",{"type":3154,"tag":3437,"props":4710,"children":4711},{"style":3511},[4712],{"type":3159,"value":4713},"(event",{"type":3154,"tag":3437,"props":4715,"children":4716},{"style":3516},[4717],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":4719,"children":4720},{"style":3516},[4721],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":4723,"children":4724},{"class":3439,"line":3709},[4725],{"type":3154,"tag":3437,"props":4726,"children":4727},{"style":3502},[4728],{"type":3159,"value":4729},"  \u002F\u002F User data\n",{"type":3154,"tag":3437,"props":4731,"children":4732},{"class":3439,"line":3726},[4733,4737,4741],{"type":3154,"tag":3437,"props":4734,"children":4735},{"style":3582},[4736],{"type":3159,"value":4275},{"type":3154,"tag":3437,"props":4738,"children":4739},{"style":3516},[4740],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":4742,"children":4743},{"style":3516},[4744],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":4746,"children":4747},{"class":3439,"line":3060},[4748,4753,4757,4762,4766],{"type":3154,"tag":3437,"props":4749,"children":4750},{"style":3582},[4751],{"type":3159,"value":4752},"    login",{"type":3154,"tag":3437,"props":4754,"children":4755},{"style":3516},[4756],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":4758,"children":4759},{"style":3516},[4760],{"type":3159,"value":4761}," '",{"type":3154,"tag":3437,"props":4763,"children":4764},{"style":3449},[4765],{"type":3159,"value":3035},{"type":3154,"tag":3437,"props":4767,"children":4768},{"style":3516},[4769],{"type":3159,"value":4770},"'\n",{"type":3154,"tag":3437,"props":4772,"children":4773},{"class":3439,"line":3056},[4774],{"type":3154,"tag":3437,"props":4775,"children":4776},{"style":3516},[4777],{"type":3159,"value":4778},"  },\n",{"type":3154,"tag":3437,"props":4780,"children":4781},{"class":3439,"line":3052},[4782],{"type":3154,"tag":3437,"props":4783,"children":4784},{"style":3502},[4785],{"type":3159,"value":4786},"  \u002F\u002F Private data accessible only on server\u002F routes\n",{"type":3154,"tag":3437,"props":4788,"children":4789},{"class":3439,"line":3888},[4790,4795,4799],{"type":3154,"tag":3437,"props":4791,"children":4792},{"style":3582},[4793],{"type":3159,"value":4794},"  secure",{"type":3154,"tag":3437,"props":4796,"children":4797},{"style":3516},[4798],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":4800,"children":4801},{"style":3516},[4802],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":4804,"children":4805},{"class":3439,"line":3905},[4806,4811,4815,4819,4824],{"type":3154,"tag":3437,"props":4807,"children":4808},{"style":3582},[4809],{"type":3159,"value":4810},"    apiToken",{"type":3154,"tag":3437,"props":4812,"children":4813},{"style":3516},[4814],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":4816,"children":4817},{"style":3516},[4818],{"type":3159,"value":4761},{"type":3154,"tag":3437,"props":4820,"children":4821},{"style":3449},[4822],{"type":3159,"value":4823},"1234567890",{"type":3154,"tag":3437,"props":4825,"children":4826},{"style":3516},[4827],{"type":3159,"value":4770},{"type":3154,"tag":3437,"props":4829,"children":4830},{"class":3439,"line":3926},[4831],{"type":3154,"tag":3437,"props":4832,"children":4833},{"style":3516},[4834],{"type":3159,"value":4778},{"type":3154,"tag":3437,"props":4836,"children":4837},{"class":3439,"line":3959},[4838],{"type":3154,"tag":3437,"props":4839,"children":4840},{"style":3502},[4841],{"type":3159,"value":4842},"  \u002F\u002F Any extra fields for the session data\n",{"type":3154,"tag":3437,"props":4844,"children":4845},{"class":3439,"line":4014},[4846,4851,4855,4860,4865],{"type":3154,"tag":3437,"props":4847,"children":4848},{"style":3582},[4849],{"type":3159,"value":4850},"  loggedInAt",{"type":3154,"tag":3437,"props":4852,"children":4853},{"style":3516},[4854],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":4856,"children":4857},{"style":3516},[4858],{"type":3159,"value":4859}," new",{"type":3154,"tag":3437,"props":4861,"children":4862},{"style":3673},[4863],{"type":3159,"value":4864}," Date",{"type":3154,"tag":3437,"props":4866,"children":4867},{"style":3511},[4868],{"type":3159,"value":3681},{"type":3154,"tag":3437,"props":4870,"children":4871},{"class":3439,"line":4023},[4872,4876],{"type":3154,"tag":3437,"props":4873,"children":4874},{"style":3516},[4875],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":4877,"children":4878},{"style":3511},[4879],{"type":3159,"value":4880},")\n",{"type":3154,"tag":3437,"props":4882,"children":4883},{"class":3439,"line":3048},[4884],{"type":3154,"tag":3437,"props":4885,"children":4886},{"emptyLinePlaceholder":1200},[4887],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":4889,"children":4890},{"class":3439,"line":4091},[4891],{"type":3154,"tag":3437,"props":4892,"children":4893},{"style":3502},[4894],{"type":3159,"value":4895},"\u002F\u002F Replace a user session. Same behaviour as setUserSession, except it does not merge data with existing data\n",{"type":3154,"tag":3437,"props":4897,"children":4898},{"class":3439,"line":4361},[4899,4903,4908,4912,4916],{"type":3154,"tag":3437,"props":4900,"children":4901},{"style":4700},[4902],{"type":3159,"value":4703},{"type":3154,"tag":3437,"props":4904,"children":4905},{"style":3673},[4906],{"type":3159,"value":4907}," replaceUserSession",{"type":3154,"tag":3437,"props":4909,"children":4910},{"style":3511},[4911],{"type":3159,"value":4713},{"type":3154,"tag":3437,"props":4913,"children":4914},{"style":3516},[4915],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":4917,"children":4918},{"style":3511},[4919],{"type":3159,"value":4920}," data)\n",{"type":3154,"tag":3437,"props":4922,"children":4923},{"class":3439,"line":4369},[4924],{"type":3154,"tag":3437,"props":4925,"children":4926},{"emptyLinePlaceholder":1200},[4927],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":4929,"children":4930},{"class":3439,"line":4378},[4931],{"type":3154,"tag":3437,"props":4932,"children":4933},{"style":3502},[4934],{"type":3159,"value":4935},"\u002F\u002F Get the current user session\n",{"type":3154,"tag":3437,"props":4937,"children":4938},{"class":3439,"line":4386},[4939,4943,4948,4952,4957,4962],{"type":3154,"tag":3437,"props":4940,"children":4941},{"style":3588},[4942],{"type":3159,"value":3604},{"type":3154,"tag":3437,"props":4944,"children":4945},{"style":3511},[4946],{"type":3159,"value":4947}," session ",{"type":3154,"tag":3437,"props":4949,"children":4950},{"style":3516},[4951],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":4953,"children":4954},{"style":4700},[4955],{"type":3159,"value":4956}," await",{"type":3154,"tag":3437,"props":4958,"children":4959},{"style":3673},[4960],{"type":3159,"value":4961}," getUserSession",{"type":3154,"tag":3437,"props":4963,"children":4964},{"style":3511},[4965],{"type":3159,"value":4966},"(event)\n",{"type":3154,"tag":3437,"props":4968,"children":4969},{"class":3439,"line":4427},[4970],{"type":3154,"tag":3437,"props":4971,"children":4972},{"emptyLinePlaceholder":1200},[4973],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":4975,"children":4976},{"class":3439,"line":4435},[4977],{"type":3154,"tag":3437,"props":4978,"children":4979},{"style":3502},[4980],{"type":3159,"value":4981},"\u002F\u002F Clear the current user session\n",{"type":3154,"tag":3437,"props":4983,"children":4984},{"class":3439,"line":4444},[4985,4989,4994],{"type":3154,"tag":3437,"props":4986,"children":4987},{"style":4700},[4988],{"type":3159,"value":4703},{"type":3154,"tag":3437,"props":4990,"children":4991},{"style":3673},[4992],{"type":3159,"value":4993}," clearUserSession",{"type":3154,"tag":3437,"props":4995,"children":4996},{"style":3511},[4997],{"type":3159,"value":4966},{"type":3154,"tag":3437,"props":4999,"children":5000},{"class":3439,"line":4452},[5001],{"type":3154,"tag":3437,"props":5002,"children":5003},{"emptyLinePlaceholder":1200},[5004],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":5006,"children":5007},{"class":3439,"line":4489},[5008],{"type":3154,"tag":3437,"props":5009,"children":5010},{"style":3502},[5011],{"type":3159,"value":5012},"\u002F\u002F Require a user session (send back 401 if no `user` key in session)\n",{"type":3154,"tag":3437,"props":5014,"children":5015},{"class":3439,"line":4497},[5016,5020,5024,5028,5032,5037],{"type":3154,"tag":3437,"props":5017,"children":5018},{"style":3588},[5019],{"type":3159,"value":3604},{"type":3154,"tag":3437,"props":5021,"children":5022},{"style":3511},[5023],{"type":3159,"value":4947},{"type":3154,"tag":3437,"props":5025,"children":5026},{"style":3516},[5027],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":5029,"children":5030},{"style":4700},[5031],{"type":3159,"value":4956},{"type":3154,"tag":3437,"props":5033,"children":5034},{"style":3673},[5035],{"type":3159,"value":5036}," requireUserSession",{"type":3154,"tag":3437,"props":5038,"children":5039},{"style":3511},[5040],{"type":3159,"value":4966},{"type":3154,"tag":3161,"props":5042,"children":5043},{},[5044,5046,5052,5054,5059],{"type":3159,"value":5045},"You can define the type for your user session by creating a type declaration file (for example, ",{"type":3154,"tag":3299,"props":5047,"children":5049},{"className":5048},[],[5050],{"type":3159,"value":5051},"auth.d.ts",{"type":3159,"value":5053},") in your project to augment the ",{"type":3154,"tag":3299,"props":5055,"children":5057},{"className":5056},[],[5058],{"type":3159,"value":4354},{"type":3159,"value":5060}," type:",{"type":3154,"tag":3427,"props":5062,"children":5064},{"className":4116,"code":5063,"language":4118,"meta":3028,"style":3028},"\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",[5065],{"type":3154,"tag":3299,"props":5066,"children":5067},{"__ignoreMap":3028},[5068,5076,5106,5123,5131,5139,5146,5162,5169,5176,5183,5199,5206,5213,5220,5227],{"type":3154,"tag":3437,"props":5069,"children":5070},{"class":3439,"line":3114},[5071],{"type":3154,"tag":3437,"props":5072,"children":5073},{"style":3502},[5074],{"type":3159,"value":5075},"\u002F\u002F shared\u002Ftypes\u002Fauth.d.ts\n",{"type":3154,"tag":3437,"props":5077,"children":5078},{"class":3439,"line":3080},[5079,5084,5088,5092,5097,5102],{"type":3154,"tag":3437,"props":5080,"children":5081},{"style":3588},[5082],{"type":3159,"value":5083},"declare",{"type":3154,"tag":3437,"props":5085,"children":5086},{"style":3588},[5087],{"type":3159,"value":3457},{"type":3154,"tag":3437,"props":5089,"children":5090},{"style":3516},[5091],{"type":3159,"value":4761},{"type":3154,"tag":3437,"props":5093,"children":5094},{"style":3449},[5095],{"type":3159,"value":5096},"#auth-utils",{"type":3154,"tag":3437,"props":5098,"children":5099},{"style":3516},[5100],{"type":3159,"value":5101},"'",{"type":3154,"tag":3437,"props":5103,"children":5104},{"style":3516},[5105],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":5107,"children":5108},{"class":3439,"line":3064},[5109,5114,5119],{"type":3154,"tag":3437,"props":5110,"children":5111},{"style":3588},[5112],{"type":3159,"value":5113},"  interface",{"type":3154,"tag":3437,"props":5115,"children":5116},{"style":3443},[5117],{"type":3159,"value":5118}," User",{"type":3154,"tag":3437,"props":5120,"children":5121},{"style":3516},[5122],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":5124,"children":5125},{"class":3439,"line":3700},[5126],{"type":3154,"tag":3437,"props":5127,"children":5128},{"style":3502},[5129],{"type":3159,"value":5130},"    \u002F\u002F Add your own fields\n",{"type":3154,"tag":3437,"props":5132,"children":5133},{"class":3439,"line":3709},[5134],{"type":3154,"tag":3437,"props":5135,"children":5136},{"style":3516},[5137],{"type":3159,"value":5138},"  }\n",{"type":3154,"tag":3437,"props":5140,"children":5141},{"class":3439,"line":3726},[5142],{"type":3154,"tag":3437,"props":5143,"children":5144},{"emptyLinePlaceholder":1200},[5145],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":5147,"children":5148},{"class":3439,"line":3060},[5149,5153,5158],{"type":3154,"tag":3437,"props":5150,"children":5151},{"style":3588},[5152],{"type":3159,"value":5113},{"type":3154,"tag":3437,"props":5154,"children":5155},{"style":3443},[5156],{"type":3159,"value":5157}," UserSession",{"type":3154,"tag":3437,"props":5159,"children":5160},{"style":3516},[5161],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":5163,"children":5164},{"class":3439,"line":3056},[5165],{"type":3154,"tag":3437,"props":5166,"children":5167},{"style":3502},[5168],{"type":3159,"value":5130},{"type":3154,"tag":3437,"props":5170,"children":5171},{"class":3439,"line":3052},[5172],{"type":3154,"tag":3437,"props":5173,"children":5174},{"style":3516},[5175],{"type":3159,"value":5138},{"type":3154,"tag":3437,"props":5177,"children":5178},{"class":3439,"line":3888},[5179],{"type":3154,"tag":3437,"props":5180,"children":5181},{"emptyLinePlaceholder":1200},[5182],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":5184,"children":5185},{"class":3439,"line":3905},[5186,5190,5195],{"type":3154,"tag":3437,"props":5187,"children":5188},{"style":3588},[5189],{"type":3159,"value":5113},{"type":3154,"tag":3437,"props":5191,"children":5192},{"style":3443},[5193],{"type":3159,"value":5194}," SecureSessionData",{"type":3154,"tag":3437,"props":5196,"children":5197},{"style":3516},[5198],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":5200,"children":5201},{"class":3439,"line":3926},[5202],{"type":3154,"tag":3437,"props":5203,"children":5204},{"style":3502},[5205],{"type":3159,"value":5130},{"type":3154,"tag":3437,"props":5207,"children":5208},{"class":3439,"line":3959},[5209],{"type":3154,"tag":3437,"props":5210,"children":5211},{"style":3516},[5212],{"type":3159,"value":5138},{"type":3154,"tag":3437,"props":5214,"children":5215},{"class":3439,"line":4014},[5216],{"type":3154,"tag":3437,"props":5217,"children":5218},{"style":3516},[5219],{"type":3159,"value":4616},{"type":3154,"tag":3437,"props":5221,"children":5222},{"class":3439,"line":4023},[5223],{"type":3154,"tag":3437,"props":5224,"children":5225},{"emptyLinePlaceholder":1200},[5226],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":5228,"children":5229},{"class":3439,"line":3048},[5230,5235],{"type":3154,"tag":3437,"props":5231,"children":5232},{"style":4700},[5233],{"type":3159,"value":5234},"export",{"type":3154,"tag":3437,"props":5236,"children":5237},{"style":3516},[5238],{"type":3159,"value":5239}," {}\n",{"type":3154,"tag":4618,"props":5241,"children":5242},{},[5243],{"type":3154,"tag":3161,"props":5244,"children":5245},{},[5246,5250],{"type":3154,"tag":3437,"props":5247,"children":5248},{},[5249],{"type":3159,"value":4628},{"type":3159,"value":5251},"\nSince we encrypt and store session data in cookies, we're constrained by the 4096-byte cookie size limit. Store only essential information.",{"type":3154,"tag":3557,"props":5253,"children":5255},{"id":5254},"oauth-event-handlers",[5256],{"type":3159,"value":5257},"OAuth Event Handlers",{"type":3154,"tag":3161,"props":5259,"children":5260},{},[5261],{"type":3159,"value":5262},"All handlers can be auto-imported and used in your server routes or API routes.",{"type":3154,"tag":3161,"props":5264,"children":5265},{},[5266,5268,5274,5276,5282],{"type":3159,"value":5267},"The pattern is ",{"type":3154,"tag":3299,"props":5269,"children":5271},{"className":5270},[],[5272],{"type":3159,"value":5273},"defineOAuth\u003CProvider>EventHandler({ onSuccess, config?, onError? })",{"type":3159,"value":5275},", example: ",{"type":3154,"tag":3299,"props":5277,"children":5279},{"className":5278},[],[5280],{"type":3159,"value":5281},"defineOAuthGitHubEventHandler",{"type":3159,"value":3392},{"type":3154,"tag":3161,"props":5284,"children":5285},{},[5286,5288,5294,5296,5302],{"type":3159,"value":5287},"The helper returns an event handler that automatically redirects to the provider authorization page and then calls ",{"type":3154,"tag":3299,"props":5289,"children":5291},{"className":5290},[],[5292],{"type":3159,"value":5293},"onSuccess",{"type":3159,"value":5295}," or ",{"type":3154,"tag":3299,"props":5297,"children":5299},{"className":5298},[],[5300],{"type":3159,"value":5301},"onError",{"type":3159,"value":5303}," depending on the result.",{"type":3154,"tag":3161,"props":5305,"children":5306},{},[5307,5309,5315,5317,5323,5325,5330],{"type":3159,"value":5308},"The ",{"type":3154,"tag":3299,"props":5310,"children":5312},{"className":5311},[],[5313],{"type":3159,"value":5314},"config",{"type":3159,"value":5316}," can be defined directly from the ",{"type":3154,"tag":3299,"props":5318,"children":5320},{"className":5319},[],[5321],{"type":3159,"value":5322},"runtimeConfig",{"type":3159,"value":5324}," in your ",{"type":3154,"tag":3299,"props":5326,"children":5328},{"className":5327},[],[5329],{"type":3159,"value":233},{"type":3159,"value":4177},{"type":3154,"tag":3427,"props":5332,"children":5334},{"className":4116,"code":5333,"language":4118,"meta":3028,"style":3028},"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",[5335],{"type":3154,"tag":3299,"props":5336,"children":5337},{"__ignoreMap":3028},[5338,5365,5381,5397,5405,5421,5451,5475,5483,5491,5498],{"type":3154,"tag":3437,"props":5339,"children":5340},{"class":3439,"line":3114},[5341,5345,5350,5355,5360],{"type":3154,"tag":3437,"props":5342,"children":5343},{"style":4700},[5344],{"type":3159,"value":5234},{"type":3154,"tag":3437,"props":5346,"children":5347},{"style":4700},[5348],{"type":3159,"value":5349}," default",{"type":3154,"tag":3437,"props":5351,"children":5352},{"style":3673},[5353],{"type":3159,"value":5354}," defineNuxtConfig",{"type":3154,"tag":3437,"props":5356,"children":5357},{"style":3511},[5358],{"type":3159,"value":5359},"(",{"type":3154,"tag":3437,"props":5361,"children":5362},{"style":3516},[5363],{"type":3159,"value":5364},"{\n",{"type":3154,"tag":3437,"props":5366,"children":5367},{"class":3439,"line":3080},[5368,5373,5377],{"type":3154,"tag":3437,"props":5369,"children":5370},{"style":3582},[5371],{"type":3159,"value":5372},"  runtimeConfig",{"type":3154,"tag":3437,"props":5374,"children":5375},{"style":3516},[5376],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":5378,"children":5379},{"style":3516},[5380],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":5382,"children":5383},{"class":3439,"line":3064},[5384,5389,5393],{"type":3154,"tag":3437,"props":5385,"children":5386},{"style":3582},[5387],{"type":3159,"value":5388},"    oauth",{"type":3154,"tag":3437,"props":5390,"children":5391},{"style":3516},[5392],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":5394,"children":5395},{"style":3516},[5396],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":5398,"children":5399},{"class":3439,"line":3700},[5400],{"type":3154,"tag":3437,"props":5401,"children":5402},{"style":3502},[5403],{"type":3159,"value":5404},"      \u002F\u002F provider in lowercase (github, google, etc.)\n",{"type":3154,"tag":3437,"props":5406,"children":5407},{"class":3439,"line":3709},[5408,5413,5417],{"type":3154,"tag":3437,"props":5409,"children":5410},{"style":3511},[5411],{"type":3159,"value":5412},"      \u003Cprovider>",{"type":3154,"tag":3437,"props":5414,"children":5415},{"style":3516},[5416],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":5418,"children":5419},{"style":3516},[5420],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":5422,"children":5423},{"class":3439,"line":3726},[5424,5429,5433,5437,5442,5446],{"type":3154,"tag":3437,"props":5425,"children":5426},{"style":3582},[5427],{"type":3159,"value":5428},"        clientId",{"type":3154,"tag":3437,"props":5430,"children":5431},{"style":3516},[5432],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":5434,"children":5435},{"style":3516},[5436],{"type":3159,"value":4761},{"type":3154,"tag":3437,"props":5438,"children":5439},{"style":3449},[5440],{"type":3159,"value":5441},"...",{"type":3154,"tag":3437,"props":5443,"children":5444},{"style":3516},[5445],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":5447,"children":5448},{"style":3516},[5449],{"type":3159,"value":5450},",\n",{"type":3154,"tag":3437,"props":5452,"children":5453},{"class":3439,"line":3060},[5454,5459,5463,5467,5471],{"type":3154,"tag":3437,"props":5455,"children":5456},{"style":3582},[5457],{"type":3159,"value":5458},"        clientSecret",{"type":3154,"tag":3437,"props":5460,"children":5461},{"style":3516},[5462],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":5464,"children":5465},{"style":3516},[5466],{"type":3159,"value":4761},{"type":3154,"tag":3437,"props":5468,"children":5469},{"style":3449},[5470],{"type":3159,"value":5441},{"type":3154,"tag":3437,"props":5472,"children":5473},{"style":3516},[5474],{"type":3159,"value":4770},{"type":3154,"tag":3437,"props":5476,"children":5477},{"class":3439,"line":3056},[5478],{"type":3154,"tag":3437,"props":5479,"children":5480},{"style":3516},[5481],{"type":3159,"value":5482},"      }\n",{"type":3154,"tag":3437,"props":5484,"children":5485},{"class":3439,"line":3052},[5486],{"type":3154,"tag":3437,"props":5487,"children":5488},{"style":3516},[5489],{"type":3159,"value":5490},"    }\n",{"type":3154,"tag":3437,"props":5492,"children":5493},{"class":3439,"line":3888},[5494],{"type":3154,"tag":3437,"props":5495,"children":5496},{"style":3516},[5497],{"type":3159,"value":5138},{"type":3154,"tag":3437,"props":5499,"children":5500},{"class":3439,"line":3905},[5501,5505],{"type":3154,"tag":3437,"props":5502,"children":5503},{"style":3516},[5504],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":5506,"children":5507},{"style":3511},[5508],{"type":3159,"value":4880},{"type":3154,"tag":3161,"props":5510,"children":5511},{},[5512],{"type":3159,"value":5513},"It can also be set using environment variables:",{"type":3154,"tag":3211,"props":5515,"children":5516},{},[5517,5526],{"type":3154,"tag":3215,"props":5518,"children":5519},{},[5520],{"type":3154,"tag":3299,"props":5521,"children":5523},{"className":5522},[],[5524],{"type":3159,"value":5525},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_ID",{"type":3154,"tag":3215,"props":5527,"children":5528},{},[5529],{"type":3154,"tag":3299,"props":5530,"children":5532},{"className":5531},[],[5533],{"type":3159,"value":5534},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_SECRET",{"type":3154,"tag":4618,"props":5536,"children":5537},{},[5538],{"type":3154,"tag":3161,"props":5539,"children":5540},{},[5541],{"type":3159,"value":5542},"Provider is in uppercase (GITHUB, GOOGLE, etc.)",{"type":3154,"tag":5544,"props":5545,"children":5547},"h4",{"id":5546},"supported-oauth-providers",[5548],{"type":3159,"value":5549},"Supported OAuth Providers",{"type":3154,"tag":3211,"props":5551,"children":5552},{},[5553,5558,5563,5568,5573,5578,5583,5588,5593,5598,5603,5608,5613,5618,5623,5628,5633,5638,5643,5648,5653,5658,5663,5668,5673,5678,5683,5688,5693,5698,5703,5708,5713,5718,5723,5728,5733,5738,5743,5748,5753,5758,5763,5768,5773,5778,5783,5788],{"type":3154,"tag":3215,"props":5554,"children":5555},{},[5556],{"type":3159,"value":5557},"Apple",{"type":3154,"tag":3215,"props":5559,"children":5560},{},[5561],{"type":3159,"value":5562},"Atlassian",{"type":3154,"tag":3215,"props":5564,"children":5565},{},[5566],{"type":3159,"value":5567},"Auth0",{"type":3154,"tag":3215,"props":5569,"children":5570},{},[5571],{"type":3159,"value":5572},"Authentik",{"type":3154,"tag":3215,"props":5574,"children":5575},{},[5576],{"type":3159,"value":5577},"AWS Cognito",{"type":3154,"tag":3215,"props":5579,"children":5580},{},[5581],{"type":3159,"value":5582},"Azure B2C",{"type":3154,"tag":3215,"props":5584,"children":5585},{},[5586],{"type":3159,"value":5587},"Battle.net",{"type":3154,"tag":3215,"props":5589,"children":5590},{},[5591],{"type":3159,"value":5592},"Bluesky (AT Protocol)",{"type":3154,"tag":3215,"props":5594,"children":5595},{},[5596],{"type":3159,"value":5597},"Box.com",{"type":3154,"tag":3215,"props":5599,"children":5600},{},[5601],{"type":3159,"value":5602},"Discord",{"type":3154,"tag":3215,"props":5604,"children":5605},{},[5606],{"type":3159,"value":5607},"Dropbox",{"type":3154,"tag":3215,"props":5609,"children":5610},{},[5611],{"type":3159,"value":5612},"Facebook",{"type":3154,"tag":3215,"props":5614,"children":5615},{},[5616],{"type":3159,"value":5617},"GitHub",{"type":3154,"tag":3215,"props":5619,"children":5620},{},[5621],{"type":3159,"value":5622},"GitLab",{"type":3154,"tag":3215,"props":5624,"children":5625},{},[5626],{"type":3159,"value":5627},"Gitea",{"type":3154,"tag":3215,"props":5629,"children":5630},{},[5631],{"type":3159,"value":5632},"Google",{"type":3154,"tag":3215,"props":5634,"children":5635},{},[5636],{"type":3159,"value":5637},"Heroku",{"type":3154,"tag":3215,"props":5639,"children":5640},{},[5641],{"type":3159,"value":5642},"Hubspot",{"type":3154,"tag":3215,"props":5644,"children":5645},{},[5646],{"type":3159,"value":5647},"Instagram",{"type":3154,"tag":3215,"props":5649,"children":5650},{},[5651],{"type":3159,"value":5652},"Kick",{"type":3154,"tag":3215,"props":5654,"children":5655},{},[5656],{"type":3159,"value":5657},"Keycloak",{"type":3154,"tag":3215,"props":5659,"children":5660},{},[5661],{"type":3159,"value":5662},"Line",{"type":3154,"tag":3215,"props":5664,"children":5665},{},[5666],{"type":3159,"value":5667},"Linear",{"type":3154,"tag":3215,"props":5669,"children":5670},{},[5671],{"type":3159,"value":5672},"LinkedIn",{"type":3154,"tag":3215,"props":5674,"children":5675},{},[5676],{"type":3159,"value":5677},"LiveChat",{"type":3154,"tag":3215,"props":5679,"children":5680},{},[5681],{"type":3159,"value":5682},"Microsoft",{"type":3154,"tag":3215,"props":5684,"children":5685},{},[5686],{"type":3159,"value":5687},"OIDC \u002F OpenID Connect (Generic)",{"type":3154,"tag":3215,"props":5689,"children":5690},{},[5691],{"type":3159,"value":5692},"Okta",{"type":3154,"tag":3215,"props":5694,"children":5695},{},[5696],{"type":3159,"value":5697},"Ory",{"type":3154,"tag":3215,"props":5699,"children":5700},{},[5701],{"type":3159,"value":5702},"osu!",{"type":3154,"tag":3215,"props":5704,"children":5705},{},[5706],{"type":3159,"value":5707},"PayPal",{"type":3154,"tag":3215,"props":5709,"children":5710},{},[5711],{"type":3159,"value":5712},"Polar",{"type":3154,"tag":3215,"props":5714,"children":5715},{},[5716],{"type":3159,"value":5717},"Riot Games",{"type":3154,"tag":3215,"props":5719,"children":5720},{},[5721],{"type":3159,"value":5722},"Salesforce",{"type":3154,"tag":3215,"props":5724,"children":5725},{},[5726],{"type":3159,"value":5727},"Seznam",{"type":3154,"tag":3215,"props":5729,"children":5730},{},[5731],{"type":3159,"value":5732},"Shopify Customer",{"type":3154,"tag":3215,"props":5734,"children":5735},{},[5736],{"type":3159,"value":5737},"Slack",{"type":3154,"tag":3215,"props":5739,"children":5740},{},[5741],{"type":3159,"value":5742},"Spotify",{"type":3154,"tag":3215,"props":5744,"children":5745},{},[5746],{"type":3159,"value":5747},"Steam",{"type":3154,"tag":3215,"props":5749,"children":5750},{},[5751],{"type":3159,"value":5752},"Strava",{"type":3154,"tag":3215,"props":5754,"children":5755},{},[5756],{"type":3159,"value":5757},"TikTok",{"type":3154,"tag":3215,"props":5759,"children":5760},{},[5761],{"type":3159,"value":5762},"Twitch",{"type":3154,"tag":3215,"props":5764,"children":5765},{},[5766],{"type":3159,"value":5767},"VK",{"type":3154,"tag":3215,"props":5769,"children":5770},{},[5771],{"type":3159,"value":5772},"WorkOS",{"type":3154,"tag":3215,"props":5774,"children":5775},{},[5776],{"type":3159,"value":5777},"X (Twitter)",{"type":3154,"tag":3215,"props":5779,"children":5780},{},[5781],{"type":3159,"value":5782},"XSUAA",{"type":3154,"tag":3215,"props":5784,"children":5785},{},[5786],{"type":3159,"value":5787},"Yandex",{"type":3154,"tag":3215,"props":5789,"children":5790},{},[5791],{"type":3159,"value":5792},"Zitadel",{"type":3154,"tag":3161,"props":5794,"children":5795},{},[5796,5798,5805],{"type":3159,"value":5797},"You can add your favorite provider by creating a new file in ",{"type":3154,"tag":3165,"props":5799,"children":5802},{"href":5800,"rel":5801},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Ftree\u002Fmain\u002Fsrc\u002Fruntime\u002Fserver\u002Flib\u002Foauth",[3169],[5803],{"type":3159,"value":5804},"src\u002Fruntime\u002Fserver\u002Flib\u002Foauth\u002F",{"type":3159,"value":3392},{"type":3154,"tag":5544,"props":5807,"children":5809},{"id":5808},"example",[5810],{"type":3159,"value":5811},"Example",{"type":3154,"tag":3161,"props":5813,"children":5814},{},[5815,5817],{"type":3159,"value":5816},"Example: ",{"type":3154,"tag":3299,"props":5818,"children":5820},{"className":5819},[],[5821],{"type":3159,"value":5822},"~\u002Fserver\u002Froutes\u002Fauth\u002Fgithub.get.ts",{"type":3154,"tag":3427,"props":5824,"children":5826},{"className":4116,"code":5825,"language":4118,"meta":3028,"style":3028},"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",[5827],{"type":3154,"tag":3299,"props":5828,"children":5829},{"__ignoreMap":3028},[5830,5854,5870,5888,5895,5946,5974,5990,6015,6022,6034,6076,6083,6091,6125,6171,6210,6217],{"type":3154,"tag":3437,"props":5831,"children":5832},{"class":3439,"line":3114},[5833,5837,5841,5846,5850],{"type":3154,"tag":3437,"props":5834,"children":5835},{"style":4700},[5836],{"type":3159,"value":5234},{"type":3154,"tag":3437,"props":5838,"children":5839},{"style":4700},[5840],{"type":3159,"value":5349},{"type":3154,"tag":3437,"props":5842,"children":5843},{"style":3673},[5844],{"type":3159,"value":5845}," defineOAuthGitHubEventHandler",{"type":3154,"tag":3437,"props":5847,"children":5848},{"style":3511},[5849],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":5851,"children":5852},{"style":3516},[5853],{"type":3159,"value":5364},{"type":3154,"tag":3437,"props":5855,"children":5856},{"class":3439,"line":3080},[5857,5862,5866],{"type":3154,"tag":3437,"props":5858,"children":5859},{"style":3582},[5860],{"type":3159,"value":5861},"  config",{"type":3154,"tag":3437,"props":5863,"children":5864},{"style":3516},[5865],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":5867,"children":5868},{"style":3516},[5869],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":5871,"children":5872},{"class":3439,"line":3064},[5873,5878,5882],{"type":3154,"tag":3437,"props":5874,"children":5875},{"style":3582},[5876],{"type":3159,"value":5877},"    emailRequired",{"type":3154,"tag":3437,"props":5879,"children":5880},{"style":3516},[5881],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":5883,"children":5885},{"style":5884},"--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC",[5886],{"type":3159,"value":5887}," true\n",{"type":3154,"tag":3437,"props":5889,"children":5890},{"class":3439,"line":3700},[5891],{"type":3154,"tag":3437,"props":5892,"children":5893},{"style":3516},[5894],{"type":3159,"value":4778},{"type":3154,"tag":3437,"props":5896,"children":5897},{"class":3439,"line":3709},[5898,5903,5908,5912,5917,5921,5925,5929,5933,5938,5942],{"type":3154,"tag":3437,"props":5899,"children":5900},{"style":3588},[5901],{"type":3159,"value":5902},"  async",{"type":3154,"tag":3437,"props":5904,"children":5905},{"style":3582},[5906],{"type":3159,"value":5907}," onSuccess",{"type":3154,"tag":3437,"props":5909,"children":5910},{"style":3516},[5911],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":5913,"children":5914},{"style":4532},[5915],{"type":3159,"value":5916},"event",{"type":3154,"tag":3437,"props":5918,"children":5919},{"style":3516},[5920],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":5922,"children":5923},{"style":3516},[5924],{"type":3159,"value":3609},{"type":3154,"tag":3437,"props":5926,"children":5927},{"style":4532},[5928],{"type":3159,"value":3624},{"type":3154,"tag":3437,"props":5930,"children":5931},{"style":3516},[5932],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":5934,"children":5935},{"style":4532},[5936],{"type":3159,"value":5937}," tokens",{"type":3154,"tag":3437,"props":5939,"children":5940},{"style":3516},[5941],{"type":3159,"value":4598},{"type":3154,"tag":3437,"props":5943,"children":5944},{"style":3516},[5945],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":5947,"children":5948},{"class":3439,"line":3726},[5949,5954,5958,5962,5966,5970],{"type":3154,"tag":3437,"props":5950,"children":5951},{"style":4700},[5952],{"type":3159,"value":5953},"    await",{"type":3154,"tag":3437,"props":5955,"children":5956},{"style":3673},[5957],{"type":3159,"value":4708},{"type":3154,"tag":3437,"props":5959,"children":5960},{"style":3582},[5961],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":5963,"children":5964},{"style":3511},[5965],{"type":3159,"value":5916},{"type":3154,"tag":3437,"props":5967,"children":5968},{"style":3516},[5969],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":5971,"children":5972},{"style":3516},[5973],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":5975,"children":5976},{"class":3439,"line":3060},[5977,5982,5986],{"type":3154,"tag":3437,"props":5978,"children":5979},{"style":3582},[5980],{"type":3159,"value":5981},"      user",{"type":3154,"tag":3437,"props":5983,"children":5984},{"style":3516},[5985],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":5987,"children":5988},{"style":3516},[5989],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":5991,"children":5992},{"class":3439,"line":3056},[5993,5998,6002,6006,6010],{"type":3154,"tag":3437,"props":5994,"children":5995},{"style":3582},[5996],{"type":3159,"value":5997},"        githubId",{"type":3154,"tag":3437,"props":5999,"children":6000},{"style":3516},[6001],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":6003,"children":6004},{"style":3511},[6005],{"type":3159,"value":3624},{"type":3154,"tag":3437,"props":6007,"children":6008},{"style":3516},[6009],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":6011,"children":6012},{"style":3511},[6013],{"type":3159,"value":6014},"id\n",{"type":3154,"tag":3437,"props":6016,"children":6017},{"class":3439,"line":3052},[6018],{"type":3154,"tag":3437,"props":6019,"children":6020},{"style":3516},[6021],{"type":3159,"value":5482},{"type":3154,"tag":3437,"props":6023,"children":6024},{"class":3439,"line":3888},[6025,6030],{"type":3154,"tag":3437,"props":6026,"children":6027},{"style":3516},[6028],{"type":3159,"value":6029},"    }",{"type":3154,"tag":3437,"props":6031,"children":6032},{"style":3582},[6033],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":6035,"children":6036},{"class":3439,"line":3905},[6037,6042,6047,6051,6055,6059,6063,6068,6072],{"type":3154,"tag":3437,"props":6038,"children":6039},{"style":4700},[6040],{"type":3159,"value":6041},"    return",{"type":3154,"tag":3437,"props":6043,"children":6044},{"style":3673},[6045],{"type":3159,"value":6046}," sendRedirect",{"type":3154,"tag":3437,"props":6048,"children":6049},{"style":3582},[6050],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":6052,"children":6053},{"style":3511},[6054],{"type":3159,"value":5916},{"type":3154,"tag":3437,"props":6056,"children":6057},{"style":3516},[6058],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":6060,"children":6061},{"style":3516},[6062],{"type":3159,"value":4761},{"type":3154,"tag":3437,"props":6064,"children":6065},{"style":3449},[6066],{"type":3159,"value":6067},"\u002F",{"type":3154,"tag":3437,"props":6069,"children":6070},{"style":3516},[6071],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":6073,"children":6074},{"style":3582},[6075],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":6077,"children":6078},{"class":3439,"line":3926},[6079],{"type":3154,"tag":3437,"props":6080,"children":6081},{"style":3516},[6082],{"type":3159,"value":4778},{"type":3154,"tag":3437,"props":6084,"children":6085},{"class":3439,"line":3959},[6086],{"type":3154,"tag":3437,"props":6087,"children":6088},{"style":3502},[6089],{"type":3159,"value":6090},"  \u002F\u002F Optional, will return a json error and 401 status code by default\n",{"type":3154,"tag":3437,"props":6092,"children":6093},{"class":3439,"line":4014},[6094,6099,6103,6107,6111,6116,6121],{"type":3154,"tag":3437,"props":6095,"children":6096},{"style":3582},[6097],{"type":3159,"value":6098},"  onError",{"type":3154,"tag":3437,"props":6100,"children":6101},{"style":3516},[6102],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":6104,"children":6105},{"style":4532},[6106],{"type":3159,"value":5916},{"type":3154,"tag":3437,"props":6108,"children":6109},{"style":3516},[6110],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":6112,"children":6113},{"style":4532},[6114],{"type":3159,"value":6115}," error",{"type":3154,"tag":3437,"props":6117,"children":6118},{"style":3516},[6119],{"type":3159,"value":6120},")",{"type":3154,"tag":3437,"props":6122,"children":6123},{"style":3516},[6124],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":6126,"children":6127},{"class":3439,"line":4023},[6128,6133,6137,6142,6146,6150,6155,6159,6163,6167],{"type":3154,"tag":3437,"props":6129,"children":6130},{"style":3511},[6131],{"type":3159,"value":6132},"    console",{"type":3154,"tag":3437,"props":6134,"children":6135},{"style":3516},[6136],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":6138,"children":6139},{"style":3673},[6140],{"type":3159,"value":6141},"error",{"type":3154,"tag":3437,"props":6143,"children":6144},{"style":3582},[6145],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":6147,"children":6148},{"style":3516},[6149],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":6151,"children":6152},{"style":3449},[6153],{"type":3159,"value":6154},"GitHub OAuth error:",{"type":3154,"tag":3437,"props":6156,"children":6157},{"style":3516},[6158],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":6160,"children":6161},{"style":3516},[6162],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":6164,"children":6165},{"style":3511},[6166],{"type":3159,"value":6115},{"type":3154,"tag":3437,"props":6168,"children":6169},{"style":3582},[6170],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":6172,"children":6173},{"class":3439,"line":3048},[6174,6178,6182,6186,6190,6194,6198,6202,6206],{"type":3154,"tag":3437,"props":6175,"children":6176},{"style":4700},[6177],{"type":3159,"value":6041},{"type":3154,"tag":3437,"props":6179,"children":6180},{"style":3673},[6181],{"type":3159,"value":6046},{"type":3154,"tag":3437,"props":6183,"children":6184},{"style":3582},[6185],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":6187,"children":6188},{"style":3511},[6189],{"type":3159,"value":5916},{"type":3154,"tag":3437,"props":6191,"children":6192},{"style":3516},[6193],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":6195,"children":6196},{"style":3516},[6197],{"type":3159,"value":4761},{"type":3154,"tag":3437,"props":6199,"children":6200},{"style":3449},[6201],{"type":3159,"value":6067},{"type":3154,"tag":3437,"props":6203,"children":6204},{"style":3516},[6205],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":6207,"children":6208},{"style":3582},[6209],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":6211,"children":6212},{"class":3439,"line":4091},[6213],{"type":3154,"tag":3437,"props":6214,"children":6215},{"style":3516},[6216],{"type":3159,"value":4778},{"type":3154,"tag":3437,"props":6218,"children":6219},{"class":3439,"line":4361},[6220,6224],{"type":3154,"tag":3437,"props":6221,"children":6222},{"style":3516},[6223],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":6225,"children":6226},{"style":3511},[6227],{"type":3159,"value":4880},{"type":3154,"tag":3161,"props":6229,"children":6230},{},[6231,6233,6239],{"type":3159,"value":6232},"Make sure to set the callback URL in your OAuth app settings as ",{"type":3154,"tag":3299,"props":6234,"children":6236},{"className":6235},[],[6237],{"type":3159,"value":6238},"\u003Cyour-domain>\u002Fauth\u002Fgithub",{"type":3159,"value":3392},{"type":3154,"tag":3161,"props":6241,"children":6242},{},[6243,6245,6251],{"type":3159,"value":6244},"If the redirect URL mismatch in production, this means that the module cannot guess the right redirect URL. You can set the ",{"type":3154,"tag":3299,"props":6246,"children":6248},{"className":6247},[],[6249],{"type":3159,"value":6250},"NUXT_OAUTH_\u003CPROVIDER>_REDIRECT_URL",{"type":3159,"value":6252}," env variable to overwrite the default one.",{"type":3154,"tag":3557,"props":6254,"children":6256},{"id":6255},"password-hashing",[6257],{"type":3159,"value":3281},{"type":3154,"tag":3161,"props":6259,"children":6260},{},[6261,6263,6269,6271,6277,6279,6286],{"type":3159,"value":6262},"Nuxt Auth Utils provides password hashing utilities like ",{"type":3154,"tag":3299,"props":6264,"children":6266},{"className":6265},[],[6267],{"type":3159,"value":6268},"hashPassword",{"type":3159,"value":6270}," and ",{"type":3154,"tag":3299,"props":6272,"children":6274},{"className":6273},[],[6275],{"type":3159,"value":6276},"verifyPassword",{"type":3159,"value":6278}," to hash and verify passwords by using ",{"type":3154,"tag":3165,"props":6280,"children":6283},{"href":6281,"rel":6282},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FScrypt",[3169],[6284],{"type":3159,"value":6285},"scrypt",{"type":3159,"value":6287}," as it is supported in many JS runtime.",{"type":3154,"tag":3427,"props":6289,"children":6291},{"className":4116,"code":6290,"language":4118,"meta":3028,"style":3028},"const hashedPassword = await hashPassword('user_password')\n\nif (await verifyPassword(hashedPassword, 'user_password')) {\n  \u002F\u002F Password is valid\n}\n",[6292],{"type":3154,"tag":3299,"props":6293,"children":6294},{"__ignoreMap":3028},[6295,6341,6348,6399,6407],{"type":3154,"tag":3437,"props":6296,"children":6297},{"class":3439,"line":3114},[6298,6302,6307,6311,6315,6320,6324,6328,6333,6337],{"type":3154,"tag":3437,"props":6299,"children":6300},{"style":3588},[6301],{"type":3159,"value":3604},{"type":3154,"tag":3437,"props":6303,"children":6304},{"style":3511},[6305],{"type":3159,"value":6306}," hashedPassword ",{"type":3154,"tag":3437,"props":6308,"children":6309},{"style":3516},[6310],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":6312,"children":6313},{"style":4700},[6314],{"type":3159,"value":4956},{"type":3154,"tag":3437,"props":6316,"children":6317},{"style":3673},[6318],{"type":3159,"value":6319}," hashPassword",{"type":3154,"tag":3437,"props":6321,"children":6322},{"style":3511},[6323],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":6325,"children":6326},{"style":3516},[6327],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":6329,"children":6330},{"style":3449},[6331],{"type":3159,"value":6332},"user_password",{"type":3154,"tag":3437,"props":6334,"children":6335},{"style":3516},[6336],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":6338,"children":6339},{"style":3511},[6340],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":6342,"children":6343},{"class":3439,"line":3080},[6344],{"type":3154,"tag":3437,"props":6345,"children":6346},{"emptyLinePlaceholder":1200},[6347],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":6349,"children":6350},{"class":3439,"line":3064},[6351,6356,6360,6364,6369,6374,6378,6382,6386,6390,6395],{"type":3154,"tag":3437,"props":6352,"children":6353},{"style":4700},[6354],{"type":3159,"value":6355},"if",{"type":3154,"tag":3437,"props":6357,"children":6358},{"style":3511},[6359],{"type":3159,"value":4529},{"type":3154,"tag":3437,"props":6361,"children":6362},{"style":4700},[6363],{"type":3159,"value":4703},{"type":3154,"tag":3437,"props":6365,"children":6366},{"style":3673},[6367],{"type":3159,"value":6368}," verifyPassword",{"type":3154,"tag":3437,"props":6370,"children":6371},{"style":3511},[6372],{"type":3159,"value":6373},"(hashedPassword",{"type":3154,"tag":3437,"props":6375,"children":6376},{"style":3516},[6377],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":6379,"children":6380},{"style":3516},[6381],{"type":3159,"value":4761},{"type":3154,"tag":3437,"props":6383,"children":6384},{"style":3449},[6385],{"type":3159,"value":6332},{"type":3154,"tag":3437,"props":6387,"children":6388},{"style":3516},[6389],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":6391,"children":6392},{"style":3511},[6393],{"type":3159,"value":6394},")) ",{"type":3154,"tag":3437,"props":6396,"children":6397},{"style":3516},[6398],{"type":3159,"value":5364},{"type":3154,"tag":3437,"props":6400,"children":6401},{"class":3439,"line":3700},[6402],{"type":3154,"tag":3437,"props":6403,"children":6404},{"style":3502},[6405],{"type":3159,"value":6406},"  \u002F\u002F Password is valid\n",{"type":3154,"tag":3437,"props":6408,"children":6409},{"class":3439,"line":3709},[6410],{"type":3154,"tag":3437,"props":6411,"children":6412},{"style":3516},[6413],{"type":3159,"value":4616},{"type":3154,"tag":3161,"props":6415,"children":6416},{},[6417,6419,6425],{"type":3159,"value":6418},"It also provides a ",{"type":3154,"tag":3299,"props":6420,"children":6422},{"className":6421},[],[6423],{"type":3159,"value":6424},"passwordNeedsRehash",{"type":3159,"value":6426}," 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":3154,"tag":3427,"props":6428,"children":6430},{"className":4116,"code":6429,"language":4118,"meta":3028,"style":3028},"const needsRehash = passwordNeedsRehash(hashedPassword)\n\nif (needsRehash) {\n  \u002F\u002F Password needs to be rehashed\n  hashedPassword = await hashPassword('user_password')\n}\n",[6431],{"type":3154,"tag":3299,"props":6432,"children":6433},{"__ignoreMap":3028},[6434,6460,6467,6483,6491,6531],{"type":3154,"tag":3437,"props":6435,"children":6436},{"class":3439,"line":3114},[6437,6441,6446,6450,6455],{"type":3154,"tag":3437,"props":6438,"children":6439},{"style":3588},[6440],{"type":3159,"value":3604},{"type":3154,"tag":3437,"props":6442,"children":6443},{"style":3511},[6444],{"type":3159,"value":6445}," needsRehash ",{"type":3154,"tag":3437,"props":6447,"children":6448},{"style":3516},[6449],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":6451,"children":6452},{"style":3673},[6453],{"type":3159,"value":6454}," passwordNeedsRehash",{"type":3154,"tag":3437,"props":6456,"children":6457},{"style":3511},[6458],{"type":3159,"value":6459},"(hashedPassword)\n",{"type":3154,"tag":3437,"props":6461,"children":6462},{"class":3439,"line":3080},[6463],{"type":3154,"tag":3437,"props":6464,"children":6465},{"emptyLinePlaceholder":1200},[6466],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":6468,"children":6469},{"class":3439,"line":3064},[6470,6474,6479],{"type":3154,"tag":3437,"props":6471,"children":6472},{"style":4700},[6473],{"type":3159,"value":6355},{"type":3154,"tag":3437,"props":6475,"children":6476},{"style":3511},[6477],{"type":3159,"value":6478}," (needsRehash) ",{"type":3154,"tag":3437,"props":6480,"children":6481},{"style":3516},[6482],{"type":3159,"value":5364},{"type":3154,"tag":3437,"props":6484,"children":6485},{"class":3439,"line":3700},[6486],{"type":3154,"tag":3437,"props":6487,"children":6488},{"style":3502},[6489],{"type":3159,"value":6490},"  \u002F\u002F Password needs to be rehashed\n",{"type":3154,"tag":3437,"props":6492,"children":6493},{"class":3439,"line":3709},[6494,6499,6503,6507,6511,6515,6519,6523,6527],{"type":3154,"tag":3437,"props":6495,"children":6496},{"style":3511},[6497],{"type":3159,"value":6498},"  hashedPassword",{"type":3154,"tag":3437,"props":6500,"children":6501},{"style":3516},[6502],{"type":3159,"value":3670},{"type":3154,"tag":3437,"props":6504,"children":6505},{"style":4700},[6506],{"type":3159,"value":4956},{"type":3154,"tag":3437,"props":6508,"children":6509},{"style":3673},[6510],{"type":3159,"value":6319},{"type":3154,"tag":3437,"props":6512,"children":6513},{"style":3582},[6514],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":6516,"children":6517},{"style":3516},[6518],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":6520,"children":6521},{"style":3449},[6522],{"type":3159,"value":6332},{"type":3154,"tag":3437,"props":6524,"children":6525},{"style":3516},[6526],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":6528,"children":6529},{"style":3582},[6530],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":6532,"children":6533},{"class":3439,"line":3726},[6534],{"type":3154,"tag":3437,"props":6535,"children":6536},{"style":3516},[6537],{"type":3159,"value":4616},{"type":3154,"tag":3161,"props":6539,"children":6540},{},[6541,6543,6548],{"type":3159,"value":6542},"You can configure the scrypt options in your ",{"type":3154,"tag":3299,"props":6544,"children":6546},{"className":6545},[],[6547],{"type":3159,"value":233},{"type":3159,"value":4177},{"type":3154,"tag":3427,"props":6550,"children":6552},{"className":4116,"code":6551,"language":4118,"meta":3028,"style":3028},"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",[6553],{"type":3154,"tag":3299,"props":6554,"children":6555},{"__ignoreMap":3028},[6556,6579,6617,6633,6649,6665,6673,6680,6687,6694],{"type":3154,"tag":3437,"props":6557,"children":6558},{"class":3439,"line":3114},[6559,6563,6567,6571,6575],{"type":3154,"tag":3437,"props":6560,"children":6561},{"style":4700},[6562],{"type":3159,"value":5234},{"type":3154,"tag":3437,"props":6564,"children":6565},{"style":4700},[6566],{"type":3159,"value":5349},{"type":3154,"tag":3437,"props":6568,"children":6569},{"style":3673},[6570],{"type":3159,"value":5354},{"type":3154,"tag":3437,"props":6572,"children":6573},{"style":3511},[6574],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":6576,"children":6577},{"style":3516},[6578],{"type":3159,"value":5364},{"type":3154,"tag":3437,"props":6580,"children":6581},{"class":3439,"line":3080},[6582,6587,6591,6596,6600,6604,6608,6613],{"type":3154,"tag":3437,"props":6583,"children":6584},{"style":3582},[6585],{"type":3159,"value":6586},"  modules",{"type":3154,"tag":3437,"props":6588,"children":6589},{"style":3516},[6590],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":6592,"children":6593},{"style":3511},[6594],{"type":3159,"value":6595}," [",{"type":3154,"tag":3437,"props":6597,"children":6598},{"style":3516},[6599],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":6601,"children":6602},{"style":3449},[6603],{"type":3159,"value":3027},{"type":3154,"tag":3437,"props":6605,"children":6606},{"style":3516},[6607],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":6609,"children":6610},{"style":3511},[6611],{"type":3159,"value":6612},"]",{"type":3154,"tag":3437,"props":6614,"children":6615},{"style":3516},[6616],{"type":3159,"value":5450},{"type":3154,"tag":3437,"props":6618,"children":6619},{"class":3439,"line":3064},[6620,6625,6629],{"type":3154,"tag":3437,"props":6621,"children":6622},{"style":3582},[6623],{"type":3159,"value":6624},"  auth",{"type":3154,"tag":3437,"props":6626,"children":6627},{"style":3516},[6628],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":6630,"children":6631},{"style":3516},[6632],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":6634,"children":6635},{"class":3439,"line":3700},[6636,6641,6645],{"type":3154,"tag":3437,"props":6637,"children":6638},{"style":3582},[6639],{"type":3159,"value":6640},"    hash",{"type":3154,"tag":3437,"props":6642,"children":6643},{"style":3516},[6644],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":6646,"children":6647},{"style":3516},[6648],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":6650,"children":6651},{"class":3439,"line":3709},[6652,6657,6661],{"type":3154,"tag":3437,"props":6653,"children":6654},{"style":3582},[6655],{"type":3159,"value":6656},"      scrypt",{"type":3154,"tag":3437,"props":6658,"children":6659},{"style":3516},[6660],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":6662,"children":6663},{"style":3516},[6664],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":6666,"children":6667},{"class":3439,"line":3726},[6668],{"type":3154,"tag":3437,"props":6669,"children":6670},{"style":3502},[6671],{"type":3159,"value":6672},"        \u002F\u002F See https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fhash\u002Fblob\u002F94637029cd526783ac0a763ec581306d98db2036\u002Fsrc\u002Ftypes.ts#L144\n",{"type":3154,"tag":3437,"props":6674,"children":6675},{"class":3439,"line":3060},[6676],{"type":3154,"tag":3437,"props":6677,"children":6678},{"style":3516},[6679],{"type":3159,"value":5482},{"type":3154,"tag":3437,"props":6681,"children":6682},{"class":3439,"line":3056},[6683],{"type":3154,"tag":3437,"props":6684,"children":6685},{"style":3516},[6686],{"type":3159,"value":5490},{"type":3154,"tag":3437,"props":6688,"children":6689},{"class":3439,"line":3052},[6690],{"type":3154,"tag":3437,"props":6691,"children":6692},{"style":3516},[6693],{"type":3159,"value":5138},{"type":3154,"tag":3437,"props":6695,"children":6696},{"class":3439,"line":3888},[6697,6701],{"type":3154,"tag":3437,"props":6698,"children":6699},{"style":3516},[6700],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":6702,"children":6703},{"style":3511},[6704],{"type":3159,"value":4880},{"type":3154,"tag":3557,"props":6706,"children":6708},{"id":6707},"at-protocol",[6709],{"type":3159,"value":6710},"AT Protocol",{"type":3154,"tag":3161,"props":6712,"children":6713},{},[6714],{"type":3159,"value":6715},"Social networks that rely on AT Protocol (e.g., Bluesky) slightly differ from a regular OAuth flow.",{"type":3154,"tag":3161,"props":6717,"children":6718},{},[6719],{"type":3159,"value":6720},"To enable OAuth with AT Protocol, you need to:",{"type":3154,"tag":3411,"props":6722,"children":6723},{},[6724],{"type":3154,"tag":3215,"props":6725,"children":6726},{},[6727],{"type":3159,"value":6728},"Install the peer dependencies:",{"type":3154,"tag":3427,"props":6730,"children":6732},{"className":3429,"code":6731,"language":3431,"meta":3028,"style":3028},"npx nypm i @atproto\u002Foauth-client-node @atproto\u002Fapi\n",[6733],{"type":3154,"tag":3299,"props":6734,"children":6735},{"__ignoreMap":3028},[6736],{"type":3154,"tag":3437,"props":6737,"children":6738},{"class":3439,"line":3114},[6739,6743,6748,6753,6758],{"type":3154,"tag":3437,"props":6740,"children":6741},{"style":3443},[6742],{"type":3159,"value":3446},{"type":3154,"tag":3437,"props":6744,"children":6745},{"style":3449},[6746],{"type":3159,"value":6747}," nypm",{"type":3154,"tag":3437,"props":6749,"children":6750},{"style":3449},[6751],{"type":3159,"value":6752}," i",{"type":3154,"tag":3437,"props":6754,"children":6755},{"style":3449},[6756],{"type":3159,"value":6757}," @atproto\u002Foauth-client-node",{"type":3154,"tag":3437,"props":6759,"children":6760},{"style":3449},[6761],{"type":3159,"value":6762}," @atproto\u002Fapi\n",{"type":3154,"tag":3411,"props":6764,"children":6765},{"start":3080},[6766],{"type":3154,"tag":3215,"props":6767,"children":6768},{},[6769,6771],{"type":3159,"value":6770},"Enable it in your ",{"type":3154,"tag":3299,"props":6772,"children":6774},{"className":6773},[],[6775],{"type":3159,"value":233},{"type":3154,"tag":3427,"props":6777,"children":6779},{"className":4116,"code":6778,"language":4118,"meta":3028,"style":3028},"export default defineNuxtConfig({\n  auth: {\n    atproto: true\n  }\n})\n",[6780],{"type":3154,"tag":3299,"props":6781,"children":6782},{"__ignoreMap":3028},[6783,6806,6821,6837,6844],{"type":3154,"tag":3437,"props":6784,"children":6785},{"class":3439,"line":3114},[6786,6790,6794,6798,6802],{"type":3154,"tag":3437,"props":6787,"children":6788},{"style":4700},[6789],{"type":3159,"value":5234},{"type":3154,"tag":3437,"props":6791,"children":6792},{"style":4700},[6793],{"type":3159,"value":5349},{"type":3154,"tag":3437,"props":6795,"children":6796},{"style":3673},[6797],{"type":3159,"value":5354},{"type":3154,"tag":3437,"props":6799,"children":6800},{"style":3511},[6801],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":6803,"children":6804},{"style":3516},[6805],{"type":3159,"value":5364},{"type":3154,"tag":3437,"props":6807,"children":6808},{"class":3439,"line":3080},[6809,6813,6817],{"type":3154,"tag":3437,"props":6810,"children":6811},{"style":3582},[6812],{"type":3159,"value":6624},{"type":3154,"tag":3437,"props":6814,"children":6815},{"style":3516},[6816],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":6818,"children":6819},{"style":3516},[6820],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":6822,"children":6823},{"class":3439,"line":3064},[6824,6829,6833],{"type":3154,"tag":3437,"props":6825,"children":6826},{"style":3582},[6827],{"type":3159,"value":6828},"    atproto",{"type":3154,"tag":3437,"props":6830,"children":6831},{"style":3516},[6832],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":6834,"children":6835},{"style":5884},[6836],{"type":3159,"value":5887},{"type":3154,"tag":3437,"props":6838,"children":6839},{"class":3439,"line":3700},[6840],{"type":3154,"tag":3437,"props":6841,"children":6842},{"style":3516},[6843],{"type":3159,"value":5138},{"type":3154,"tag":3437,"props":6845,"children":6846},{"class":3439,"line":3709},[6847,6851],{"type":3154,"tag":3437,"props":6848,"children":6849},{"style":3516},[6850],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":6852,"children":6853},{"style":3511},[6854],{"type":3159,"value":4880},{"type":3154,"tag":3557,"props":6856,"children":6858},{"id":6857},"webauthn-passkey",[6859],{"type":3159,"value":3290},{"type":3154,"tag":3161,"props":6861,"children":6862},{},[6863],{"type":3159,"value":6864},"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":3154,"tag":3161,"props":6866,"children":6867},{},[6868],{"type":3159,"value":6869},"To enable WebAuthn you need to:",{"type":3154,"tag":3411,"props":6871,"children":6872},{},[6873],{"type":3154,"tag":3215,"props":6874,"children":6875},{},[6876],{"type":3159,"value":6728},{"type":3154,"tag":3427,"props":6878,"children":6880},{"className":3429,"code":6879,"language":3431,"meta":3028,"style":3028},"npx nypm i @simplewebauthn\u002Fserver@11 @simplewebauthn\u002Fbrowser@11\n",[6881],{"type":3154,"tag":3299,"props":6882,"children":6883},{"__ignoreMap":3028},[6884],{"type":3154,"tag":3437,"props":6885,"children":6886},{"class":3439,"line":3114},[6887,6891,6895,6899,6904],{"type":3154,"tag":3437,"props":6888,"children":6889},{"style":3443},[6890],{"type":3159,"value":3446},{"type":3154,"tag":3437,"props":6892,"children":6893},{"style":3449},[6894],{"type":3159,"value":6747},{"type":3154,"tag":3437,"props":6896,"children":6897},{"style":3449},[6898],{"type":3159,"value":6752},{"type":3154,"tag":3437,"props":6900,"children":6901},{"style":3449},[6902],{"type":3159,"value":6903}," @simplewebauthn\u002Fserver@11",{"type":3154,"tag":3437,"props":6905,"children":6906},{"style":3449},[6907],{"type":3159,"value":6908}," @simplewebauthn\u002Fbrowser@11\n",{"type":3154,"tag":3411,"props":6910,"children":6911},{"start":3080},[6912],{"type":3154,"tag":3215,"props":6913,"children":6914},{},[6915,6916],{"type":3159,"value":6770},{"type":3154,"tag":3299,"props":6917,"children":6919},{"className":6918},[],[6920],{"type":3159,"value":233},{"type":3154,"tag":3427,"props":6922,"children":6924},{"className":4116,"code":6923,"language":4118,"meta":3028,"style":3028},"export default defineNuxtConfig({\n  auth: {\n    webAuthn: true\n  }\n})\n",[6925],{"type":3154,"tag":3299,"props":6926,"children":6927},{"__ignoreMap":3028},[6928,6951,6966,6982,6989],{"type":3154,"tag":3437,"props":6929,"children":6930},{"class":3439,"line":3114},[6931,6935,6939,6943,6947],{"type":3154,"tag":3437,"props":6932,"children":6933},{"style":4700},[6934],{"type":3159,"value":5234},{"type":3154,"tag":3437,"props":6936,"children":6937},{"style":4700},[6938],{"type":3159,"value":5349},{"type":3154,"tag":3437,"props":6940,"children":6941},{"style":3673},[6942],{"type":3159,"value":5354},{"type":3154,"tag":3437,"props":6944,"children":6945},{"style":3511},[6946],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":6948,"children":6949},{"style":3516},[6950],{"type":3159,"value":5364},{"type":3154,"tag":3437,"props":6952,"children":6953},{"class":3439,"line":3080},[6954,6958,6962],{"type":3154,"tag":3437,"props":6955,"children":6956},{"style":3582},[6957],{"type":3159,"value":6624},{"type":3154,"tag":3437,"props":6959,"children":6960},{"style":3516},[6961],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":6963,"children":6964},{"style":3516},[6965],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":6967,"children":6968},{"class":3439,"line":3064},[6969,6974,6978],{"type":3154,"tag":3437,"props":6970,"children":6971},{"style":3582},[6972],{"type":3159,"value":6973},"    webAuthn",{"type":3154,"tag":3437,"props":6975,"children":6976},{"style":3516},[6977],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":6979,"children":6980},{"style":5884},[6981],{"type":3159,"value":5887},{"type":3154,"tag":3437,"props":6983,"children":6984},{"class":3439,"line":3700},[6985],{"type":3154,"tag":3437,"props":6986,"children":6987},{"style":3516},[6988],{"type":3159,"value":5138},{"type":3154,"tag":3437,"props":6990,"children":6991},{"class":3439,"line":3709},[6992,6996],{"type":3154,"tag":3437,"props":6993,"children":6994},{"style":3516},[6995],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":6997,"children":6998},{"style":3511},[6999],{"type":3159,"value":4880},{"type":3154,"tag":5544,"props":7001,"children":7003},{"id":7002},"example-1",[7004],{"type":3159,"value":5811},{"type":3154,"tag":3161,"props":7006,"children":7007},{},[7008],{"type":3159,"value":7009},"In this example we will implement the very basic steps to register and authenticate a credential.",{"type":3154,"tag":3161,"props":7011,"children":7012},{},[7013,7015,7022],{"type":3159,"value":7014},"The full code can be found in the ",{"type":3154,"tag":3165,"props":7016,"children":7019},{"href":7017,"rel":7018},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn",[3169],[7020],{"type":3159,"value":7021},"playground",{"type":3159,"value":7023},". The example uses a SQLite database with the following minimal tables:",{"type":3154,"tag":3427,"props":7025,"children":7029},{"className":7026,"code":7027,"language":7028,"meta":3028,"style":3028},"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",[7030],{"type":3154,"tag":3299,"props":7031,"children":7032},{"__ignoreMap":3028},[7033,7057,7080,7098,7106,7113,7144,7185,7209,7229,7250,7270,7290,7337],{"type":3154,"tag":3437,"props":7034,"children":7035},{"class":3439,"line":3114},[7036,7042,7047,7052],{"type":3154,"tag":3437,"props":7037,"children":7039},{"style":7038},"--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C",[7040],{"type":3159,"value":7041},"CREATE",{"type":3154,"tag":3437,"props":7043,"children":7044},{"style":7038},[7045],{"type":3159,"value":7046}," TABLE",{"type":3154,"tag":3437,"props":7048,"children":7049},{"style":3673},[7050],{"type":3159,"value":7051}," users",{"type":3154,"tag":3437,"props":7053,"children":7054},{"style":3511},[7055],{"type":3159,"value":7056}," (\n",{"type":3154,"tag":3437,"props":7058,"children":7059},{"class":3439,"line":3080},[7060,7065,7070,7075],{"type":3154,"tag":3437,"props":7061,"children":7062},{"style":3511},[7063],{"type":3159,"value":7064},"  id ",{"type":3154,"tag":3437,"props":7066,"children":7067},{"style":3588},[7068],{"type":3159,"value":7069},"INTEGER",{"type":3154,"tag":3437,"props":7071,"children":7072},{"style":3588},[7073],{"type":3159,"value":7074}," PRIMARY KEY",{"type":3154,"tag":3437,"props":7076,"children":7077},{"style":3511},[7078],{"type":3159,"value":7079}," AUTOINCREMENT,\n",{"type":3154,"tag":3437,"props":7081,"children":7082},{"class":3439,"line":3064},[7083,7088,7093],{"type":3154,"tag":3437,"props":7084,"children":7085},{"style":3511},[7086],{"type":3159,"value":7087},"  email ",{"type":3154,"tag":3437,"props":7089,"children":7090},{"style":3588},[7091],{"type":3159,"value":7092},"TEXT",{"type":3154,"tag":3437,"props":7094,"children":7095},{"style":7038},[7096],{"type":3159,"value":7097}," NOT NULL\n",{"type":3154,"tag":3437,"props":7099,"children":7100},{"class":3439,"line":3700},[7101],{"type":3154,"tag":3437,"props":7102,"children":7103},{"style":3511},[7104],{"type":3159,"value":7105},");\n",{"type":3154,"tag":3437,"props":7107,"children":7108},{"class":3439,"line":3709},[7109],{"type":3154,"tag":3437,"props":7110,"children":7111},{"emptyLinePlaceholder":1200},[7112],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":7114,"children":7115},{"class":3439,"line":3726},[7116,7120,7124,7129,7134,7139],{"type":3154,"tag":3437,"props":7117,"children":7118},{"style":7038},[7119],{"type":3159,"value":7041},{"type":3154,"tag":3437,"props":7121,"children":7122},{"style":7038},[7123],{"type":3159,"value":7046},{"type":3154,"tag":3437,"props":7125,"children":7126},{"style":3673},[7127],{"type":3159,"value":7128}," IF",{"type":3154,"tag":3437,"props":7130,"children":7131},{"style":7038},[7132],{"type":3159,"value":7133}," NOT",{"type":3154,"tag":3437,"props":7135,"children":7136},{"style":7038},[7137],{"type":3159,"value":7138}," EXISTS",{"type":3154,"tag":3437,"props":7140,"children":7141},{"style":3511},[7142],{"type":3159,"value":7143}," credentials (\n",{"type":3154,"tag":3437,"props":7145,"children":7146},{"class":3439,"line":3060},[7147,7152,7156,7161,7166,7171,7176,7181],{"type":3154,"tag":3437,"props":7148,"children":7149},{"style":3511},[7150],{"type":3159,"value":7151},"  userId ",{"type":3154,"tag":3437,"props":7153,"children":7154},{"style":3588},[7155],{"type":3159,"value":7069},{"type":3154,"tag":3437,"props":7157,"children":7158},{"style":7038},[7159],{"type":3159,"value":7160}," NOT NULL",{"type":3154,"tag":3437,"props":7162,"children":7163},{"style":3588},[7164],{"type":3159,"value":7165}," REFERENCES",{"type":3154,"tag":3437,"props":7167,"children":7168},{"style":3511},[7169],{"type":3159,"value":7170}," users(id) ",{"type":3154,"tag":3437,"props":7172,"children":7173},{"style":3588},[7174],{"type":3159,"value":7175},"ON DELETE CASCADE",{"type":3154,"tag":3437,"props":7177,"children":7178},{"style":3588},[7179],{"type":3159,"value":7180}," ON UPDATE CASCADE",{"type":3154,"tag":3437,"props":7182,"children":7183},{"style":3511},[7184],{"type":3159,"value":5450},{"type":3154,"tag":3437,"props":7186,"children":7187},{"class":3439,"line":3056},[7188,7192,7196,7201,7205],{"type":3154,"tag":3437,"props":7189,"children":7190},{"style":3511},[7191],{"type":3159,"value":7064},{"type":3154,"tag":3437,"props":7193,"children":7194},{"style":3588},[7195],{"type":3159,"value":7092},{"type":3154,"tag":3437,"props":7197,"children":7198},{"style":7038},[7199],{"type":3159,"value":7200}," UNIQUE",{"type":3154,"tag":3437,"props":7202,"children":7203},{"style":7038},[7204],{"type":3159,"value":7160},{"type":3154,"tag":3437,"props":7206,"children":7207},{"style":3511},[7208],{"type":3159,"value":5450},{"type":3154,"tag":3437,"props":7210,"children":7211},{"class":3439,"line":3052},[7212,7217,7221,7225],{"type":3154,"tag":3437,"props":7213,"children":7214},{"style":3511},[7215],{"type":3159,"value":7216},"  publicKey ",{"type":3154,"tag":3437,"props":7218,"children":7219},{"style":3588},[7220],{"type":3159,"value":7092},{"type":3154,"tag":3437,"props":7222,"children":7223},{"style":7038},[7224],{"type":3159,"value":7160},{"type":3154,"tag":3437,"props":7226,"children":7227},{"style":3511},[7228],{"type":3159,"value":5450},{"type":3154,"tag":3437,"props":7230,"children":7231},{"class":3439,"line":3888},[7232,7237,7242,7246],{"type":3154,"tag":3437,"props":7233,"children":7234},{"style":7038},[7235],{"type":3159,"value":7236},"  counter",{"type":3154,"tag":3437,"props":7238,"children":7239},{"style":3588},[7240],{"type":3159,"value":7241}," INTEGER",{"type":3154,"tag":3437,"props":7243,"children":7244},{"style":7038},[7245],{"type":3159,"value":7160},{"type":3154,"tag":3437,"props":7247,"children":7248},{"style":3511},[7249],{"type":3159,"value":5450},{"type":3154,"tag":3437,"props":7251,"children":7252},{"class":3439,"line":3905},[7253,7258,7262,7266],{"type":3154,"tag":3437,"props":7254,"children":7255},{"style":3511},[7256],{"type":3159,"value":7257},"  backedUp ",{"type":3154,"tag":3437,"props":7259,"children":7260},{"style":3588},[7261],{"type":3159,"value":7069},{"type":3154,"tag":3437,"props":7263,"children":7264},{"style":7038},[7265],{"type":3159,"value":7160},{"type":3154,"tag":3437,"props":7267,"children":7268},{"style":3511},[7269],{"type":3159,"value":5450},{"type":3154,"tag":3437,"props":7271,"children":7272},{"class":3439,"line":3926},[7273,7278,7282,7286],{"type":3154,"tag":3437,"props":7274,"children":7275},{"style":3511},[7276],{"type":3159,"value":7277},"  transports ",{"type":3154,"tag":3437,"props":7279,"children":7280},{"style":3588},[7281],{"type":3159,"value":7092},{"type":3154,"tag":3437,"props":7283,"children":7284},{"style":7038},[7285],{"type":3159,"value":7160},{"type":3154,"tag":3437,"props":7287,"children":7288},{"style":3511},[7289],{"type":3159,"value":5450},{"type":3154,"tag":3437,"props":7291,"children":7292},{"class":3439,"line":3959},[7293,7298,7302,7306,7311,7315,7320,7324,7329,7333],{"type":3154,"tag":3437,"props":7294,"children":7295},{"style":3588},[7296],{"type":3159,"value":7297},"  PRIMARY KEY",{"type":3154,"tag":3437,"props":7299,"children":7300},{"style":3511},[7301],{"type":3159,"value":4529},{"type":3154,"tag":3437,"props":7303,"children":7304},{"style":3516},[7305],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":7307,"children":7308},{"style":3449},[7309],{"type":3159,"value":7310},"userId",{"type":3154,"tag":3437,"props":7312,"children":7313},{"style":3516},[7314],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":7316,"children":7317},{"style":3511},[7318],{"type":3159,"value":7319},", ",{"type":3154,"tag":3437,"props":7321,"children":7322},{"style":3516},[7323],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":7325,"children":7326},{"style":3449},[7327],{"type":3159,"value":7328},"id",{"type":3154,"tag":3437,"props":7330,"children":7331},{"style":3516},[7332],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":7334,"children":7335},{"style":3511},[7336],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":7338,"children":7339},{"class":3439,"line":4014},[7340],{"type":3154,"tag":3437,"props":7341,"children":7342},{"style":3511},[7343],{"type":3159,"value":7105},{"type":3154,"tag":3211,"props":7345,"children":7346},{},[7347,7360],{"type":3154,"tag":3215,"props":7348,"children":7349},{},[7350,7352,7358],{"type":3159,"value":7351},"For the ",{"type":3154,"tag":3299,"props":7353,"children":7355},{"className":7354},[],[7356],{"type":3159,"value":7357},"users",{"type":3159,"value":7359}," 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":3154,"tag":3215,"props":7361,"children":7362},{},[7363,7364,7370,7372],{"type":3159,"value":5308},{"type":3154,"tag":3299,"props":7365,"children":7367},{"className":7366},[],[7368],{"type":3159,"value":7369},"credentials",{"type":3159,"value":7371}," table stores:\n",{"type":3154,"tag":3211,"props":7373,"children":7374},{},[7375,7393,7405,7415,7444,7465],{"type":3154,"tag":3215,"props":7376,"children":7377},{},[7378,7379,7384,7386,7391],{"type":3159,"value":5308},{"type":3154,"tag":3299,"props":7380,"children":7382},{"className":7381},[],[7383],{"type":3159,"value":7310},{"type":3159,"value":7385}," from the ",{"type":3154,"tag":3299,"props":7387,"children":7389},{"className":7388},[],[7390],{"type":3159,"value":7357},{"type":3159,"value":7392}," table.",{"type":3154,"tag":3215,"props":7394,"children":7395},{},[7396,7398,7403],{"type":3159,"value":7397},"The credential ",{"type":3154,"tag":3299,"props":7399,"children":7401},{"className":7400},[],[7402],{"type":3159,"value":7328},{"type":3159,"value":7404}," (as unique index)",{"type":3154,"tag":3215,"props":7406,"children":7407},{},[7408,7409],{"type":3159,"value":7397},{"type":3154,"tag":3299,"props":7410,"children":7412},{"className":7411},[],[7413],{"type":3159,"value":7414},"publicKey",{"type":3154,"tag":3215,"props":7416,"children":7417},{},[7418,7420,7426,7428,7433,7435,7442],{"type":3159,"value":7419},"A ",{"type":3154,"tag":3299,"props":7421,"children":7423},{"className":7422},[],[7424],{"type":3159,"value":7425},"counter",{"type":3159,"value":7427},". Each time a credential is used, the counter is incremented. We can use this value to perform extra security checks. More about ",{"type":3154,"tag":3299,"props":7429,"children":7431},{"className":7430},[],[7432],{"type":3159,"value":7425},{"type":3159,"value":7434}," can be read ",{"type":3154,"tag":3165,"props":7436,"children":7439},{"href":7437,"rel":7438},"https:\u002F\u002Fsimplewebauthn.dev\u002Fdocs\u002Fpackages\u002Fserver#3-post-registration-responsibilities",[3169],[7440],{"type":3159,"value":7441},"here",{"type":3159,"value":7443},". For this example, we won't be using the counter. But you should update the counter in your database with the new value.",{"type":3154,"tag":3215,"props":7445,"children":7446},{},[7447,7448,7454,7456,7463],{"type":3159,"value":7419},{"type":3154,"tag":3299,"props":7449,"children":7451},{"className":7450},[],[7452],{"type":3159,"value":7453},"backedUp",{"type":3159,"value":7455}," 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":3154,"tag":3165,"props":7457,"children":7460},{"href":7458,"rel":7459},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fugaemxot",[3169],[7461],{"type":3159,"value":7462},"this section",{"type":3159,"value":7464}," for more details.",{"type":3154,"tag":3215,"props":7466,"children":7467},{},[7468,7469,7475,7477,7483],{"type":3159,"value":7397},{"type":3154,"tag":3299,"props":7470,"children":7472},{"className":7471},[],[7473],{"type":3159,"value":7474},"transports",{"type":3159,"value":7476},". 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":3154,"tag":3165,"props":7478,"children":7481},{"href":7479,"rel":7480},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fycxtiorp",[3169],[7482],{"type":3159,"value":7462},{"type":3159,"value":7464},{"type":3154,"tag":3161,"props":7485,"children":7486},{},[7487,7489,7496,7497,7504,7506,7513],{"type":3159,"value":7488},"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":3154,"tag":3165,"props":7490,"children":7493},{"href":7491,"rel":7492},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fregister.post.ts",[3169],[7494],{"type":3159,"value":7495},"registration",{"type":3159,"value":7319},{"type":3154,"tag":3165,"props":7498,"children":7501},{"href":7499,"rel":7500},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts",[3169],[7502],{"type":3159,"value":7503},"authentication",{"type":3159,"value":7505}," and the ",{"type":3154,"tag":3165,"props":7507,"children":7510},{"href":7508,"rel":7509},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fplugins\u002Fdatabase.ts",[3169],[7511],{"type":3159,"value":7512},"database setup",{"type":3159,"value":3392},{"type":3154,"tag":3427,"props":7515,"children":7517},{"className":4116,"code":7516,"language":4118,"meta":3028,"style":3028},"\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",[7518],{"type":3154,"tag":3299,"props":7519,"children":7520},{"__ignoreMap":3028},[7521,7529,7569,7593,7601,7639,7647,7655,7663,7699,7788,7858,7865,7872,7880,7908,7916,7958,7990,7997,8045,8053,8061,8086,8093,8101,8148,8177,8185,8225,8232,8240,8249,8281,8289,8298,8326,8342,8367,8376,8410,8422,8430],{"type":3154,"tag":3437,"props":7522,"children":7523},{"class":3439,"line":3114},[7524],{"type":3154,"tag":3437,"props":7525,"children":7526},{"style":3502},[7527],{"type":3159,"value":7528},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fregister.post.ts\n",{"type":3154,"tag":3437,"props":7530,"children":7531},{"class":3439,"line":3080},[7532,7537,7541,7546,7551,7556,7560,7565],{"type":3154,"tag":3437,"props":7533,"children":7534},{"style":4700},[7535],{"type":3159,"value":7536},"import",{"type":3154,"tag":3437,"props":7538,"children":7539},{"style":3516},[7540],{"type":3159,"value":3609},{"type":3154,"tag":3437,"props":7542,"children":7543},{"style":3511},[7544],{"type":3159,"value":7545}," z",{"type":3154,"tag":3437,"props":7547,"children":7548},{"style":3516},[7549],{"type":3159,"value":7550}," }",{"type":3154,"tag":3437,"props":7552,"children":7553},{"style":4700},[7554],{"type":3159,"value":7555}," from",{"type":3154,"tag":3437,"props":7557,"children":7558},{"style":3516},[7559],{"type":3159,"value":4761},{"type":3154,"tag":3437,"props":7561,"children":7562},{"style":3449},[7563],{"type":3159,"value":7564},"zod",{"type":3154,"tag":3437,"props":7566,"children":7567},{"style":3516},[7568],{"type":3159,"value":4770},{"type":3154,"tag":3437,"props":7570,"children":7571},{"class":3439,"line":3064},[7572,7576,7580,7585,7589],{"type":3154,"tag":3437,"props":7573,"children":7574},{"style":4700},[7575],{"type":3159,"value":5234},{"type":3154,"tag":3437,"props":7577,"children":7578},{"style":4700},[7579],{"type":3159,"value":5349},{"type":3154,"tag":3437,"props":7581,"children":7582},{"style":3673},[7583],{"type":3159,"value":7584}," defineWebAuthnRegisterEventHandler",{"type":3154,"tag":3437,"props":7586,"children":7587},{"style":3511},[7588],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":7590,"children":7591},{"style":3516},[7592],{"type":3159,"value":5364},{"type":3154,"tag":3437,"props":7594,"children":7595},{"class":3439,"line":3700},[7596],{"type":3154,"tag":3437,"props":7597,"children":7598},{"style":3502},[7599],{"type":3159,"value":7600},"  \u002F\u002F optional\n",{"type":3154,"tag":3437,"props":7602,"children":7603},{"class":3439,"line":3709},[7604,7608,7613,7617,7622,7626,7631,7635],{"type":3154,"tag":3437,"props":7605,"children":7606},{"style":3588},[7607],{"type":3159,"value":5902},{"type":3154,"tag":3437,"props":7609,"children":7610},{"style":3582},[7611],{"type":3159,"value":7612}," validateUser",{"type":3154,"tag":3437,"props":7614,"children":7615},{"style":3516},[7616],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":7618,"children":7619},{"style":4532},[7620],{"type":3159,"value":7621},"userBody",{"type":3154,"tag":3437,"props":7623,"children":7624},{"style":3516},[7625],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":7627,"children":7628},{"style":4532},[7629],{"type":3159,"value":7630}," event",{"type":3154,"tag":3437,"props":7632,"children":7633},{"style":3516},[7634],{"type":3159,"value":6120},{"type":3154,"tag":3437,"props":7636,"children":7637},{"style":3516},[7638],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":7640,"children":7641},{"class":3439,"line":3726},[7642],{"type":3154,"tag":3437,"props":7643,"children":7644},{"style":3502},[7645],{"type":3159,"value":7646},"    \u002F\u002F bonus: check if the user is already authenticated to link a credential to his account\n",{"type":3154,"tag":3437,"props":7648,"children":7649},{"class":3439,"line":3060},[7650],{"type":3154,"tag":3437,"props":7651,"children":7652},{"style":3502},[7653],{"type":3159,"value":7654},"    \u002F\u002F We first check if the user is already authenticated by getting the session\n",{"type":3154,"tag":3437,"props":7656,"children":7657},{"class":3439,"line":3056},[7658],{"type":3154,"tag":3437,"props":7659,"children":7660},{"style":3502},[7661],{"type":3159,"value":7662},"    \u002F\u002F And verify that the email is the same as the one in session\n",{"type":3154,"tag":3437,"props":7664,"children":7665},{"class":3439,"line":3052},[7666,7671,7675,7679,7683,7687,7691,7695],{"type":3154,"tag":3437,"props":7667,"children":7668},{"style":3588},[7669],{"type":3159,"value":7670},"    const",{"type":3154,"tag":3437,"props":7672,"children":7673},{"style":3511},[7674],{"type":3159,"value":3633},{"type":3154,"tag":3437,"props":7676,"children":7677},{"style":3516},[7678],{"type":3159,"value":3670},{"type":3154,"tag":3437,"props":7680,"children":7681},{"style":4700},[7682],{"type":3159,"value":4956},{"type":3154,"tag":3437,"props":7684,"children":7685},{"style":3673},[7686],{"type":3159,"value":4961},{"type":3154,"tag":3437,"props":7688,"children":7689},{"style":3582},[7690],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":7692,"children":7693},{"style":3511},[7694],{"type":3159,"value":5916},{"type":3154,"tag":3437,"props":7696,"children":7697},{"style":3582},[7698],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":7700,"children":7701},{"class":3439,"line":3888},[7702,7707,7711,7716,7720,7725,7730,7735,7740,7744,7748,7752,7756,7760,7765,7770,7774,7779,7784],{"type":3154,"tag":3437,"props":7703,"children":7704},{"style":4700},[7705],{"type":3159,"value":7706},"    if",{"type":3154,"tag":3437,"props":7708,"children":7709},{"style":3582},[7710],{"type":3159,"value":4529},{"type":3154,"tag":3437,"props":7712,"children":7713},{"style":3511},[7714],{"type":3159,"value":7715},"session",{"type":3154,"tag":3437,"props":7717,"children":7718},{"style":3516},[7719],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":7721,"children":7722},{"style":3511},[7723],{"type":3159,"value":7724},"user",{"type":3154,"tag":3437,"props":7726,"children":7727},{"style":3516},[7728],{"type":3159,"value":7729},"?.",{"type":3154,"tag":3437,"props":7731,"children":7732},{"style":3511},[7733],{"type":3159,"value":7734},"email",{"type":3154,"tag":3437,"props":7736,"children":7737},{"style":3516},[7738],{"type":3159,"value":7739}," &&",{"type":3154,"tag":3437,"props":7741,"children":7742},{"style":3511},[7743],{"type":3159,"value":3633},{"type":3154,"tag":3437,"props":7745,"children":7746},{"style":3516},[7747],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":7749,"children":7750},{"style":3511},[7751],{"type":3159,"value":7724},{"type":3154,"tag":3437,"props":7753,"children":7754},{"style":3516},[7755],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":7757,"children":7758},{"style":3511},[7759],{"type":3159,"value":7734},{"type":3154,"tag":3437,"props":7761,"children":7762},{"style":3516},[7763],{"type":3159,"value":7764}," !==",{"type":3154,"tag":3437,"props":7766,"children":7767},{"style":3511},[7768],{"type":3159,"value":7769}," userBody",{"type":3154,"tag":3437,"props":7771,"children":7772},{"style":3516},[7773],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":7775,"children":7776},{"style":3511},[7777],{"type":3159,"value":7778},"userName",{"type":3154,"tag":3437,"props":7780,"children":7781},{"style":3582},[7782],{"type":3159,"value":7783},") ",{"type":3154,"tag":3437,"props":7785,"children":7786},{"style":3516},[7787],{"type":3159,"value":5364},{"type":3154,"tag":3437,"props":7789,"children":7790},{"class":3439,"line":3905},[7791,7796,7801,7805,7810,7815,7819,7824,7828,7833,7837,7841,7846,7850,7854],{"type":3154,"tag":3437,"props":7792,"children":7793},{"style":4700},[7794],{"type":3159,"value":7795},"      throw",{"type":3154,"tag":3437,"props":7797,"children":7798},{"style":3673},[7799],{"type":3159,"value":7800}," createError",{"type":3154,"tag":3437,"props":7802,"children":7803},{"style":3582},[7804],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":7806,"children":7807},{"style":3516},[7808],{"type":3159,"value":7809},"{",{"type":3154,"tag":3437,"props":7811,"children":7812},{"style":3582},[7813],{"type":3159,"value":7814}," statusCode",{"type":3154,"tag":3437,"props":7816,"children":7817},{"style":3516},[7818],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":7820,"children":7821},{"style":7038},[7822],{"type":3159,"value":7823}," 400",{"type":3154,"tag":3437,"props":7825,"children":7826},{"style":3516},[7827],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":7829,"children":7830},{"style":3582},[7831],{"type":3159,"value":7832}," message",{"type":3154,"tag":3437,"props":7834,"children":7835},{"style":3516},[7836],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":7838,"children":7839},{"style":3516},[7840],{"type":3159,"value":4761},{"type":3154,"tag":3437,"props":7842,"children":7843},{"style":3449},[7844],{"type":3159,"value":7845},"Email not matching current session",{"type":3154,"tag":3437,"props":7847,"children":7848},{"style":3516},[7849],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":7851,"children":7852},{"style":3516},[7853],{"type":3159,"value":7550},{"type":3154,"tag":3437,"props":7855,"children":7856},{"style":3582},[7857],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":7859,"children":7860},{"class":3439,"line":3926},[7861],{"type":3154,"tag":3437,"props":7862,"children":7863},{"style":3516},[7864],{"type":3159,"value":5490},{"type":3154,"tag":3437,"props":7866,"children":7867},{"class":3439,"line":3959},[7868],{"type":3154,"tag":3437,"props":7869,"children":7870},{"emptyLinePlaceholder":1200},[7871],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":7873,"children":7874},{"class":3439,"line":4014},[7875],{"type":3154,"tag":3437,"props":7876,"children":7877},{"style":3502},[7878],{"type":3159,"value":7879},"    \u002F\u002F If he registers a new account with credentials\n",{"type":3154,"tag":3437,"props":7881,"children":7882},{"class":3439,"line":4023},[7883,7887,7891,7895,7900,7904],{"type":3154,"tag":3437,"props":7884,"children":7885},{"style":4700},[7886],{"type":3159,"value":6041},{"type":3154,"tag":3437,"props":7888,"children":7889},{"style":3511},[7890],{"type":3159,"value":7545},{"type":3154,"tag":3437,"props":7892,"children":7893},{"style":3516},[7894],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":7896,"children":7897},{"style":3673},[7898],{"type":3159,"value":7899},"object",{"type":3154,"tag":3437,"props":7901,"children":7902},{"style":3582},[7903],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":7905,"children":7906},{"style":3516},[7907],{"type":3159,"value":5364},{"type":3154,"tag":3437,"props":7909,"children":7910},{"class":3439,"line":3048},[7911],{"type":3154,"tag":3437,"props":7912,"children":7913},{"style":3502},[7914],{"type":3159,"value":7915},"      \u002F\u002F we want the userName to be a valid email\n",{"type":3154,"tag":3437,"props":7917,"children":7918},{"class":3439,"line":4091},[7919,7924,7928,7932,7936,7941,7946,7950,7954],{"type":3154,"tag":3437,"props":7920,"children":7921},{"style":3582},[7922],{"type":3159,"value":7923},"      userName",{"type":3154,"tag":3437,"props":7925,"children":7926},{"style":3516},[7927],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":7929,"children":7930},{"style":3511},[7931],{"type":3159,"value":7545},{"type":3154,"tag":3437,"props":7933,"children":7934},{"style":3516},[7935],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":7937,"children":7938},{"style":3673},[7939],{"type":3159,"value":7940},"string",{"type":3154,"tag":3437,"props":7942,"children":7943},{"style":3582},[7944],{"type":3159,"value":7945},"()",{"type":3154,"tag":3437,"props":7947,"children":7948},{"style":3516},[7949],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":7951,"children":7952},{"style":3673},[7953],{"type":3159,"value":7734},{"type":3154,"tag":3437,"props":7955,"children":7956},{"style":3582},[7957],{"type":3159,"value":3681},{"type":3154,"tag":3437,"props":7959,"children":7960},{"class":3439,"line":4361},[7961,7965,7969,7973,7978,7982,7986],{"type":3154,"tag":3437,"props":7962,"children":7963},{"style":3516},[7964],{"type":3159,"value":6029},{"type":3154,"tag":3437,"props":7966,"children":7967},{"style":3582},[7968],{"type":3159,"value":6120},{"type":3154,"tag":3437,"props":7970,"children":7971},{"style":3516},[7972],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":7974,"children":7975},{"style":3673},[7976],{"type":3159,"value":7977},"parse",{"type":3154,"tag":3437,"props":7979,"children":7980},{"style":3582},[7981],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":7983,"children":7984},{"style":3511},[7985],{"type":3159,"value":7621},{"type":3154,"tag":3437,"props":7987,"children":7988},{"style":3582},[7989],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":7991,"children":7992},{"class":3439,"line":4369},[7993],{"type":3154,"tag":3437,"props":7994,"children":7995},{"style":3516},[7996],{"type":3159,"value":4778},{"type":3154,"tag":3437,"props":7998,"children":7999},{"class":3439,"line":4378},[8000,8004,8008,8012,8016,8020,8024,8029,8033,8037,8041],{"type":3154,"tag":3437,"props":8001,"children":8002},{"style":3588},[8003],{"type":3159,"value":5902},{"type":3154,"tag":3437,"props":8005,"children":8006},{"style":3582},[8007],{"type":3159,"value":5907},{"type":3154,"tag":3437,"props":8009,"children":8010},{"style":3516},[8011],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":8013,"children":8014},{"style":4532},[8015],{"type":3159,"value":5916},{"type":3154,"tag":3437,"props":8017,"children":8018},{"style":3516},[8019],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":8021,"children":8022},{"style":3516},[8023],{"type":3159,"value":3609},{"type":3154,"tag":3437,"props":8025,"children":8026},{"style":4532},[8027],{"type":3159,"value":8028}," credential",{"type":3154,"tag":3437,"props":8030,"children":8031},{"style":3516},[8032],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":8034,"children":8035},{"style":4532},[8036],{"type":3159,"value":3624},{"type":3154,"tag":3437,"props":8038,"children":8039},{"style":3516},[8040],{"type":3159,"value":4598},{"type":3154,"tag":3437,"props":8042,"children":8043},{"style":3516},[8044],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":8046,"children":8047},{"class":3439,"line":4386},[8048],{"type":3154,"tag":3437,"props":8049,"children":8050},{"style":3502},[8051],{"type":3159,"value":8052},"    \u002F\u002F The credential creation has been successful\n",{"type":3154,"tag":3437,"props":8054,"children":8055},{"class":3439,"line":4427},[8056],{"type":3154,"tag":3437,"props":8057,"children":8058},{"style":3502},[8059],{"type":3159,"value":8060},"    \u002F\u002F We need to create a user if it does not exist\n",{"type":3154,"tag":3437,"props":8062,"children":8063},{"class":3439,"line":4435},[8064,8068,8073,8077,8082],{"type":3154,"tag":3437,"props":8065,"children":8066},{"style":3588},[8067],{"type":3159,"value":7670},{"type":3154,"tag":3437,"props":8069,"children":8070},{"style":3511},[8071],{"type":3159,"value":8072}," db",{"type":3154,"tag":3437,"props":8074,"children":8075},{"style":3516},[8076],{"type":3159,"value":3670},{"type":3154,"tag":3437,"props":8078,"children":8079},{"style":3673},[8080],{"type":3159,"value":8081}," useDatabase",{"type":3154,"tag":3437,"props":8083,"children":8084},{"style":3582},[8085],{"type":3159,"value":3681},{"type":3154,"tag":3437,"props":8087,"children":8088},{"class":3439,"line":4444},[8089],{"type":3154,"tag":3437,"props":8090,"children":8091},{"emptyLinePlaceholder":1200},[8092],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":8094,"children":8095},{"class":3439,"line":4452},[8096],{"type":3154,"tag":3437,"props":8097,"children":8098},{"style":3502},[8099],{"type":3159,"value":8100},"    \u002F\u002F Get the user from the database\n",{"type":3154,"tag":3437,"props":8102,"children":8103},{"class":3439,"line":4489},[8104,8109,8114,8118,8122,8126,8130,8134,8139,8143],{"type":3154,"tag":3437,"props":8105,"children":8106},{"style":3588},[8107],{"type":3159,"value":8108},"    let",{"type":3154,"tag":3437,"props":8110,"children":8111},{"style":3511},[8112],{"type":3159,"value":8113}," dbUser",{"type":3154,"tag":3437,"props":8115,"children":8116},{"style":3516},[8117],{"type":3159,"value":3670},{"type":3154,"tag":3437,"props":8119,"children":8120},{"style":4700},[8121],{"type":3159,"value":4956},{"type":3154,"tag":3437,"props":8123,"children":8124},{"style":3511},[8125],{"type":3159,"value":8072},{"type":3154,"tag":3437,"props":8127,"children":8128},{"style":3516},[8129],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":8131,"children":8132},{"style":3673},[8133],{"type":3159,"value":7028},{"type":3154,"tag":3437,"props":8135,"children":8136},{"style":3516},[8137],{"type":3159,"value":8138},"`",{"type":3154,"tag":3437,"props":8140,"children":8141},{"style":3449},[8142],{"type":3159,"value":5441},{"type":3154,"tag":3437,"props":8144,"children":8145},{"style":3516},[8146],{"type":3159,"value":8147},"`\n",{"type":3154,"tag":3437,"props":8149,"children":8150},{"class":3439,"line":4497},[8151,8155,8159,8164,8169,8173],{"type":3154,"tag":3437,"props":8152,"children":8153},{"style":4700},[8154],{"type":3159,"value":7706},{"type":3154,"tag":3437,"props":8156,"children":8157},{"style":3582},[8158],{"type":3159,"value":4529},{"type":3154,"tag":3437,"props":8160,"children":8161},{"style":3516},[8162],{"type":3159,"value":8163},"!",{"type":3154,"tag":3437,"props":8165,"children":8166},{"style":3511},[8167],{"type":3159,"value":8168},"dbUser",{"type":3154,"tag":3437,"props":8170,"children":8171},{"style":3582},[8172],{"type":3159,"value":7783},{"type":3154,"tag":3437,"props":8174,"children":8175},{"style":3516},[8176],{"type":3159,"value":5364},{"type":3154,"tag":3437,"props":8178,"children":8179},{"class":3439,"line":4506},[8180],{"type":3154,"tag":3437,"props":8181,"children":8182},{"style":3502},[8183],{"type":3159,"value":8184},"      \u002F\u002F Store new user in database & its credentials\n",{"type":3154,"tag":3437,"props":8186,"children":8187},{"class":3439,"line":4514},[8188,8193,8197,8201,8205,8209,8213,8217,8221],{"type":3154,"tag":3437,"props":8189,"children":8190},{"style":3511},[8191],{"type":3159,"value":8192},"      dbUser",{"type":3154,"tag":3437,"props":8194,"children":8195},{"style":3516},[8196],{"type":3159,"value":3670},{"type":3154,"tag":3437,"props":8198,"children":8199},{"style":4700},[8200],{"type":3159,"value":4956},{"type":3154,"tag":3437,"props":8202,"children":8203},{"style":3511},[8204],{"type":3159,"value":8072},{"type":3154,"tag":3437,"props":8206,"children":8207},{"style":3516},[8208],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":8210,"children":8211},{"style":3673},[8212],{"type":3159,"value":7028},{"type":3154,"tag":3437,"props":8214,"children":8215},{"style":3516},[8216],{"type":3159,"value":8138},{"type":3154,"tag":3437,"props":8218,"children":8219},{"style":3449},[8220],{"type":3159,"value":5441},{"type":3154,"tag":3437,"props":8222,"children":8223},{"style":3516},[8224],{"type":3159,"value":8147},{"type":3154,"tag":3437,"props":8226,"children":8227},{"class":3439,"line":4610},[8228],{"type":3154,"tag":3437,"props":8229,"children":8230},{"style":3516},[8231],{"type":3159,"value":5490},{"type":3154,"tag":3437,"props":8233,"children":8235},{"class":3439,"line":8234},31,[8236],{"type":3154,"tag":3437,"props":8237,"children":8238},{"emptyLinePlaceholder":1200},[8239],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":8241,"children":8243},{"class":3439,"line":8242},32,[8244],{"type":3154,"tag":3437,"props":8245,"children":8246},{"style":3502},[8247],{"type":3159,"value":8248},"    \u002F\u002F we now need to store the credential in our database and link it to the user\n",{"type":3154,"tag":3437,"props":8250,"children":8252},{"class":3439,"line":8251},33,[8253,8257,8261,8265,8269,8273,8277],{"type":3154,"tag":3437,"props":8254,"children":8255},{"style":4700},[8256],{"type":3159,"value":5953},{"type":3154,"tag":3437,"props":8258,"children":8259},{"style":3511},[8260],{"type":3159,"value":8072},{"type":3154,"tag":3437,"props":8262,"children":8263},{"style":3516},[8264],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":8266,"children":8267},{"style":3673},[8268],{"type":3159,"value":7028},{"type":3154,"tag":3437,"props":8270,"children":8271},{"style":3516},[8272],{"type":3159,"value":8138},{"type":3154,"tag":3437,"props":8274,"children":8275},{"style":3449},[8276],{"type":3159,"value":5441},{"type":3154,"tag":3437,"props":8278,"children":8279},{"style":3516},[8280],{"type":3159,"value":8147},{"type":3154,"tag":3437,"props":8282,"children":8284},{"class":3439,"line":8283},34,[8285],{"type":3154,"tag":3437,"props":8286,"children":8287},{"emptyLinePlaceholder":1200},[8288],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":8290,"children":8292},{"class":3439,"line":8291},35,[8293],{"type":3154,"tag":3437,"props":8294,"children":8295},{"style":3502},[8296],{"type":3159,"value":8297},"    \u002F\u002F Set the user session\n",{"type":3154,"tag":3437,"props":8299,"children":8301},{"class":3439,"line":8300},36,[8302,8306,8310,8314,8318,8322],{"type":3154,"tag":3437,"props":8303,"children":8304},{"style":4700},[8305],{"type":3159,"value":5953},{"type":3154,"tag":3437,"props":8307,"children":8308},{"style":3673},[8309],{"type":3159,"value":4708},{"type":3154,"tag":3437,"props":8311,"children":8312},{"style":3582},[8313],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":8315,"children":8316},{"style":3511},[8317],{"type":3159,"value":5916},{"type":3154,"tag":3437,"props":8319,"children":8320},{"style":3516},[8321],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":8323,"children":8324},{"style":3516},[8325],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":8327,"children":8329},{"class":3439,"line":8328},37,[8330,8334,8338],{"type":3154,"tag":3437,"props":8331,"children":8332},{"style":3582},[8333],{"type":3159,"value":5981},{"type":3154,"tag":3437,"props":8335,"children":8336},{"style":3516},[8337],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":8339,"children":8340},{"style":3516},[8341],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":8343,"children":8345},{"class":3439,"line":8344},38,[8346,8351,8355,8359,8363],{"type":3154,"tag":3437,"props":8347,"children":8348},{"style":3582},[8349],{"type":3159,"value":8350},"        id",{"type":3154,"tag":3437,"props":8352,"children":8353},{"style":3516},[8354],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":8356,"children":8357},{"style":3511},[8358],{"type":3159,"value":8113},{"type":3154,"tag":3437,"props":8360,"children":8361},{"style":3516},[8362],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":8364,"children":8365},{"style":3511},[8366],{"type":3159,"value":6014},{"type":3154,"tag":3437,"props":8368,"children":8370},{"class":3439,"line":8369},39,[8371],{"type":3154,"tag":3437,"props":8372,"children":8373},{"style":3516},[8374],{"type":3159,"value":8375},"      },\n",{"type":3154,"tag":3437,"props":8377,"children":8379},{"class":3439,"line":8378},40,[8380,8385,8389,8393,8397,8402,8406],{"type":3154,"tag":3437,"props":8381,"children":8382},{"style":3582},[8383],{"type":3159,"value":8384},"      loggedInAt",{"type":3154,"tag":3437,"props":8386,"children":8387},{"style":3516},[8388],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":8390,"children":8391},{"style":3511},[8392],{"type":3159,"value":4864},{"type":3154,"tag":3437,"props":8394,"children":8395},{"style":3516},[8396],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":8398,"children":8399},{"style":3673},[8400],{"type":3159,"value":8401},"now",{"type":3154,"tag":3437,"props":8403,"children":8404},{"style":3582},[8405],{"type":3159,"value":7945},{"type":3154,"tag":3437,"props":8407,"children":8408},{"style":3516},[8409],{"type":3159,"value":5450},{"type":3154,"tag":3437,"props":8411,"children":8413},{"class":3439,"line":8412},41,[8414,8418],{"type":3154,"tag":3437,"props":8415,"children":8416},{"style":3516},[8417],{"type":3159,"value":6029},{"type":3154,"tag":3437,"props":8419,"children":8420},{"style":3582},[8421],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":8423,"children":8425},{"class":3439,"line":8424},42,[8426],{"type":3154,"tag":3437,"props":8427,"children":8428},{"style":3516},[8429],{"type":3159,"value":4778},{"type":3154,"tag":3437,"props":8431,"children":8433},{"class":3439,"line":8432},43,[8434,8438],{"type":3154,"tag":3437,"props":8435,"children":8436},{"style":3516},[8437],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":8439,"children":8440},{"style":3511},[8441],{"type":3159,"value":4880},{"type":3154,"tag":4618,"props":8443,"children":8444},{},[8445],{"type":3154,"tag":3161,"props":8446,"children":8447},{},[8448,8453,8455,8462,8464,8470,8472],{"type":3154,"tag":3437,"props":8449,"children":8450},{},[8451],{"type":3159,"value":8452},"!TIP",{"type":3159,"value":8454},"\nIf you want to plug in and use the ",{"type":3154,"tag":3165,"props":8456,"children":8459},{"href":8457,"rel":8458},"https:\u002F\u002Fgithub.com\u002Fpasskeydeveloper\u002Fpasskey-authenticator-aaguids",[3169],[8460],{"type":3159,"value":8461},"Community sourced list of AAGUIDS",{"type":3159,"value":8463}," to decorate your display of added passkeys, you can access the the ID via ",{"type":3154,"tag":3299,"props":8465,"children":8467},{"className":8466},[],[8468],{"type":3159,"value":8469},"credential.aaguid",{"type":3159,"value":8471}," inside ",{"type":3154,"tag":3299,"props":8473,"children":8475},{"className":8474},[],[8476],{"type":3159,"value":5293},{"type":3154,"tag":3427,"props":8478,"children":8480},{"className":4116,"code":8479,"language":4118,"meta":3028,"style":3028},"\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",[8481],{"type":3154,"tag":3299,"props":8482,"children":8483},{"__ignoreMap":3028},[8484,8492,8516,8524,8561,8609,8617,8649,8713,8720,8728,8736,8744,8756,8764,8771,8808,8816,8863,8870,8878,8902,8966,8973,8985,8992,9040,9048,9056,9079,9122,9129,9137,9168,9175,9182,9209,9224,9247,9254,9285,9296,9303],{"type":3154,"tag":3437,"props":8485,"children":8486},{"class":3439,"line":3114},[8487],{"type":3154,"tag":3437,"props":8488,"children":8489},{"style":3502},[8490],{"type":3159,"value":8491},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts\n",{"type":3154,"tag":3437,"props":8493,"children":8494},{"class":3439,"line":3080},[8495,8499,8503,8508,8512],{"type":3154,"tag":3437,"props":8496,"children":8497},{"style":4700},[8498],{"type":3159,"value":5234},{"type":3154,"tag":3437,"props":8500,"children":8501},{"style":4700},[8502],{"type":3159,"value":5349},{"type":3154,"tag":3437,"props":8504,"children":8505},{"style":3673},[8506],{"type":3159,"value":8507}," defineWebAuthnAuthenticateEventHandler",{"type":3154,"tag":3437,"props":8509,"children":8510},{"style":3511},[8511],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":8513,"children":8514},{"style":3516},[8515],{"type":3159,"value":5364},{"type":3154,"tag":3437,"props":8517,"children":8518},{"class":3439,"line":3064},[8519],{"type":3154,"tag":3437,"props":8520,"children":8521},{"style":3502},[8522],{"type":3159,"value":8523},"  \u002F\u002F Optionally, we can prefetch the credentials if the user gives their userName during login\n",{"type":3154,"tag":3437,"props":8525,"children":8526},{"class":3439,"line":3700},[8527,8531,8536,8540,8544,8548,8553,8557],{"type":3154,"tag":3437,"props":8528,"children":8529},{"style":3588},[8530],{"type":3159,"value":5902},{"type":3154,"tag":3437,"props":8532,"children":8533},{"style":3582},[8534],{"type":3159,"value":8535}," allowCredentials",{"type":3154,"tag":3437,"props":8537,"children":8538},{"style":3516},[8539],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":8541,"children":8542},{"style":4532},[8543],{"type":3159,"value":5916},{"type":3154,"tag":3437,"props":8545,"children":8546},{"style":3516},[8547],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":8549,"children":8550},{"style":4532},[8551],{"type":3159,"value":8552}," userName",{"type":3154,"tag":3437,"props":8554,"children":8555},{"style":3516},[8556],{"type":3159,"value":6120},{"type":3154,"tag":3437,"props":8558,"children":8559},{"style":3516},[8560],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":8562,"children":8563},{"class":3439,"line":3709},[8564,8568,8573,8577,8581,8585,8589,8593,8597,8601,8605],{"type":3154,"tag":3437,"props":8565,"children":8566},{"style":3588},[8567],{"type":3159,"value":7670},{"type":3154,"tag":3437,"props":8569,"children":8570},{"style":3511},[8571],{"type":3159,"value":8572}," credentials",{"type":3154,"tag":3437,"props":8574,"children":8575},{"style":3516},[8576],{"type":3159,"value":3670},{"type":3154,"tag":3437,"props":8578,"children":8579},{"style":4700},[8580],{"type":3159,"value":4956},{"type":3154,"tag":3437,"props":8582,"children":8583},{"style":3673},[8584],{"type":3159,"value":8081},{"type":3154,"tag":3437,"props":8586,"children":8587},{"style":3582},[8588],{"type":3159,"value":7945},{"type":3154,"tag":3437,"props":8590,"children":8591},{"style":3516},[8592],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":8594,"children":8595},{"style":3673},[8596],{"type":3159,"value":7028},{"type":3154,"tag":3437,"props":8598,"children":8599},{"style":3516},[8600],{"type":3159,"value":8138},{"type":3154,"tag":3437,"props":8602,"children":8603},{"style":3449},[8604],{"type":3159,"value":5441},{"type":3154,"tag":3437,"props":8606,"children":8607},{"style":3516},[8608],{"type":3159,"value":8147},{"type":3154,"tag":3437,"props":8610,"children":8611},{"class":3439,"line":3726},[8612],{"type":3154,"tag":3437,"props":8613,"children":8614},{"style":3502},[8615],{"type":3159,"value":8616},"    \u002F\u002F If no credentials are found, the authentication cannot be completed\n",{"type":3154,"tag":3437,"props":8618,"children":8619},{"class":3439,"line":3060},[8620,8624,8628,8632,8636,8640,8645],{"type":3154,"tag":3437,"props":8621,"children":8622},{"style":4700},[8623],{"type":3159,"value":7706},{"type":3154,"tag":3437,"props":8625,"children":8626},{"style":3582},[8627],{"type":3159,"value":4529},{"type":3154,"tag":3437,"props":8629,"children":8630},{"style":3516},[8631],{"type":3159,"value":8163},{"type":3154,"tag":3437,"props":8633,"children":8634},{"style":3511},[8635],{"type":3159,"value":7369},{"type":3154,"tag":3437,"props":8637,"children":8638},{"style":3516},[8639],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":8641,"children":8642},{"style":3511},[8643],{"type":3159,"value":8644},"length",{"type":3154,"tag":3437,"props":8646,"children":8647},{"style":3582},[8648],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":8650,"children":8651},{"class":3439,"line":3056},[8652,8656,8660,8664,8668,8672,8676,8680,8684,8688,8692,8696,8701,8705,8709],{"type":3154,"tag":3437,"props":8653,"children":8654},{"style":4700},[8655],{"type":3159,"value":7795},{"type":3154,"tag":3437,"props":8657,"children":8658},{"style":3673},[8659],{"type":3159,"value":7800},{"type":3154,"tag":3437,"props":8661,"children":8662},{"style":3582},[8663],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":8665,"children":8666},{"style":3516},[8667],{"type":3159,"value":7809},{"type":3154,"tag":3437,"props":8669,"children":8670},{"style":3582},[8671],{"type":3159,"value":7814},{"type":3154,"tag":3437,"props":8673,"children":8674},{"style":3516},[8675],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":8677,"children":8678},{"style":7038},[8679],{"type":3159,"value":7823},{"type":3154,"tag":3437,"props":8681,"children":8682},{"style":3516},[8683],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":8685,"children":8686},{"style":3582},[8687],{"type":3159,"value":7832},{"type":3154,"tag":3437,"props":8689,"children":8690},{"style":3516},[8691],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":8693,"children":8694},{"style":3516},[8695],{"type":3159,"value":4761},{"type":3154,"tag":3437,"props":8697,"children":8698},{"style":3449},[8699],{"type":3159,"value":8700},"User not found",{"type":3154,"tag":3437,"props":8702,"children":8703},{"style":3516},[8704],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":8706,"children":8707},{"style":3516},[8708],{"type":3159,"value":7550},{"type":3154,"tag":3437,"props":8710,"children":8711},{"style":3582},[8712],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":8714,"children":8715},{"class":3439,"line":3052},[8716],{"type":3154,"tag":3437,"props":8717,"children":8718},{"emptyLinePlaceholder":1200},[8719],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":8721,"children":8722},{"class":3439,"line":3888},[8723],{"type":3154,"tag":3437,"props":8724,"children":8725},{"style":3502},[8726],{"type":3159,"value":8727},"    \u002F\u002F If user is found, only allow credentials that are registered\n",{"type":3154,"tag":3437,"props":8729,"children":8730},{"class":3439,"line":3905},[8731],{"type":3154,"tag":3437,"props":8732,"children":8733},{"style":3502},[8734],{"type":3159,"value":8735},"    \u002F\u002F The browser will automatically try to use the credential that it knows about\n",{"type":3154,"tag":3437,"props":8737,"children":8738},{"class":3439,"line":3926},[8739],{"type":3154,"tag":3437,"props":8740,"children":8741},{"style":3502},[8742],{"type":3159,"value":8743},"    \u002F\u002F Skipping the step for the user to select a credential for a better user experience\n",{"type":3154,"tag":3437,"props":8745,"children":8746},{"class":3439,"line":3959},[8747,8751],{"type":3154,"tag":3437,"props":8748,"children":8749},{"style":4700},[8750],{"type":3159,"value":6041},{"type":3154,"tag":3437,"props":8752,"children":8753},{"style":3511},[8754],{"type":3159,"value":8755}," credentials\n",{"type":3154,"tag":3437,"props":8757,"children":8758},{"class":3439,"line":4014},[8759],{"type":3154,"tag":3437,"props":8760,"children":8761},{"style":3502},[8762],{"type":3159,"value":8763},"    \u002F\u002F example: [{ id: '...' }]\n",{"type":3154,"tag":3437,"props":8765,"children":8766},{"class":3439,"line":4023},[8767],{"type":3154,"tag":3437,"props":8768,"children":8769},{"style":3516},[8770],{"type":3159,"value":4778},{"type":3154,"tag":3437,"props":8772,"children":8773},{"class":3439,"line":3048},[8774,8778,8783,8787,8791,8795,8800,8804],{"type":3154,"tag":3437,"props":8775,"children":8776},{"style":3588},[8777],{"type":3159,"value":5902},{"type":3154,"tag":3437,"props":8779,"children":8780},{"style":3582},[8781],{"type":3159,"value":8782}," getCredential",{"type":3154,"tag":3437,"props":8784,"children":8785},{"style":3516},[8786],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":8788,"children":8789},{"style":4532},[8790],{"type":3159,"value":5916},{"type":3154,"tag":3437,"props":8792,"children":8793},{"style":3516},[8794],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":8796,"children":8797},{"style":4532},[8798],{"type":3159,"value":8799}," credentialId",{"type":3154,"tag":3437,"props":8801,"children":8802},{"style":3516},[8803],{"type":3159,"value":6120},{"type":3154,"tag":3437,"props":8805,"children":8806},{"style":3516},[8807],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":8809,"children":8810},{"class":3439,"line":4091},[8811],{"type":3154,"tag":3437,"props":8812,"children":8813},{"style":3502},[8814],{"type":3159,"value":8815},"    \u002F\u002F Look for the credential in our database\n",{"type":3154,"tag":3437,"props":8817,"children":8818},{"class":3439,"line":4361},[8819,8823,8827,8831,8835,8839,8843,8847,8851,8855,8859],{"type":3154,"tag":3437,"props":8820,"children":8821},{"style":3588},[8822],{"type":3159,"value":7670},{"type":3154,"tag":3437,"props":8824,"children":8825},{"style":3511},[8826],{"type":3159,"value":8028},{"type":3154,"tag":3437,"props":8828,"children":8829},{"style":3516},[8830],{"type":3159,"value":3670},{"type":3154,"tag":3437,"props":8832,"children":8833},{"style":4700},[8834],{"type":3159,"value":4956},{"type":3154,"tag":3437,"props":8836,"children":8837},{"style":3673},[8838],{"type":3159,"value":8081},{"type":3154,"tag":3437,"props":8840,"children":8841},{"style":3582},[8842],{"type":3159,"value":7945},{"type":3154,"tag":3437,"props":8844,"children":8845},{"style":3516},[8846],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":8848,"children":8849},{"style":3673},[8850],{"type":3159,"value":7028},{"type":3154,"tag":3437,"props":8852,"children":8853},{"style":3516},[8854],{"type":3159,"value":8138},{"type":3154,"tag":3437,"props":8856,"children":8857},{"style":3449},[8858],{"type":3159,"value":5441},{"type":3154,"tag":3437,"props":8860,"children":8861},{"style":3516},[8862],{"type":3159,"value":8147},{"type":3154,"tag":3437,"props":8864,"children":8865},{"class":3439,"line":4369},[8866],{"type":3154,"tag":3437,"props":8867,"children":8868},{"emptyLinePlaceholder":1200},[8869],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":8871,"children":8872},{"class":3439,"line":4378},[8873],{"type":3154,"tag":3437,"props":8874,"children":8875},{"style":3502},[8876],{"type":3159,"value":8877},"    \u002F\u002F If the credential is not found, there is no account to log in to\n",{"type":3154,"tag":3437,"props":8879,"children":8880},{"class":3439,"line":4386},[8881,8885,8889,8893,8898],{"type":3154,"tag":3437,"props":8882,"children":8883},{"style":4700},[8884],{"type":3159,"value":7706},{"type":3154,"tag":3437,"props":8886,"children":8887},{"style":3582},[8888],{"type":3159,"value":4529},{"type":3154,"tag":3437,"props":8890,"children":8891},{"style":3516},[8892],{"type":3159,"value":8163},{"type":3154,"tag":3437,"props":8894,"children":8895},{"style":3511},[8896],{"type":3159,"value":8897},"credential",{"type":3154,"tag":3437,"props":8899,"children":8900},{"style":3582},[8901],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":8903,"children":8904},{"class":3439,"line":4427},[8905,8909,8913,8917,8921,8925,8929,8933,8937,8941,8945,8949,8954,8958,8962],{"type":3154,"tag":3437,"props":8906,"children":8907},{"style":4700},[8908],{"type":3159,"value":7795},{"type":3154,"tag":3437,"props":8910,"children":8911},{"style":3673},[8912],{"type":3159,"value":7800},{"type":3154,"tag":3437,"props":8914,"children":8915},{"style":3582},[8916],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":8918,"children":8919},{"style":3516},[8920],{"type":3159,"value":7809},{"type":3154,"tag":3437,"props":8922,"children":8923},{"style":3582},[8924],{"type":3159,"value":7814},{"type":3154,"tag":3437,"props":8926,"children":8927},{"style":3516},[8928],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":8930,"children":8931},{"style":7038},[8932],{"type":3159,"value":7823},{"type":3154,"tag":3437,"props":8934,"children":8935},{"style":3516},[8936],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":8938,"children":8939},{"style":3582},[8940],{"type":3159,"value":7832},{"type":3154,"tag":3437,"props":8942,"children":8943},{"style":3516},[8944],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":8946,"children":8947},{"style":3516},[8948],{"type":3159,"value":4761},{"type":3154,"tag":3437,"props":8950,"children":8951},{"style":3449},[8952],{"type":3159,"value":8953},"Credential not found",{"type":3154,"tag":3437,"props":8955,"children":8956},{"style":3516},[8957],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":8959,"children":8960},{"style":3516},[8961],{"type":3159,"value":7550},{"type":3154,"tag":3437,"props":8963,"children":8964},{"style":3582},[8965],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":8967,"children":8968},{"class":3439,"line":4435},[8969],{"type":3154,"tag":3437,"props":8970,"children":8971},{"emptyLinePlaceholder":1200},[8972],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":8974,"children":8975},{"class":3439,"line":4444},[8976,8980],{"type":3154,"tag":3437,"props":8977,"children":8978},{"style":4700},[8979],{"type":3159,"value":6041},{"type":3154,"tag":3437,"props":8981,"children":8982},{"style":3511},[8983],{"type":3159,"value":8984}," credential\n",{"type":3154,"tag":3437,"props":8986,"children":8987},{"class":3439,"line":4452},[8988],{"type":3154,"tag":3437,"props":8989,"children":8990},{"style":3516},[8991],{"type":3159,"value":4778},{"type":3154,"tag":3437,"props":8993,"children":8994},{"class":3439,"line":4489},[8995,8999,9003,9007,9011,9015,9019,9023,9027,9032,9036],{"type":3154,"tag":3437,"props":8996,"children":8997},{"style":3588},[8998],{"type":3159,"value":5902},{"type":3154,"tag":3437,"props":9000,"children":9001},{"style":3582},[9002],{"type":3159,"value":5907},{"type":3154,"tag":3437,"props":9004,"children":9005},{"style":3516},[9006],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":9008,"children":9009},{"style":4532},[9010],{"type":3159,"value":5916},{"type":3154,"tag":3437,"props":9012,"children":9013},{"style":3516},[9014],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":9016,"children":9017},{"style":3516},[9018],{"type":3159,"value":3609},{"type":3154,"tag":3437,"props":9020,"children":9021},{"style":4532},[9022],{"type":3159,"value":8028},{"type":3154,"tag":3437,"props":9024,"children":9025},{"style":3516},[9026],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":9028,"children":9029},{"style":4532},[9030],{"type":3159,"value":9031}," authenticationInfo",{"type":3154,"tag":3437,"props":9033,"children":9034},{"style":3516},[9035],{"type":3159,"value":4598},{"type":3154,"tag":3437,"props":9037,"children":9038},{"style":3516},[9039],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":9041,"children":9042},{"class":3439,"line":4497},[9043],{"type":3154,"tag":3437,"props":9044,"children":9045},{"style":3502},[9046],{"type":3159,"value":9047},"    \u002F\u002F The credential authentication has been successful\n",{"type":3154,"tag":3437,"props":9049,"children":9050},{"class":3439,"line":4506},[9051],{"type":3154,"tag":3437,"props":9052,"children":9053},{"style":3502},[9054],{"type":3159,"value":9055},"    \u002F\u002F We can look it up in our database and get the corresponding user\n",{"type":3154,"tag":3437,"props":9057,"children":9058},{"class":3439,"line":4514},[9059,9063,9067,9071,9075],{"type":3154,"tag":3437,"props":9060,"children":9061},{"style":3588},[9062],{"type":3159,"value":7670},{"type":3154,"tag":3437,"props":9064,"children":9065},{"style":3511},[9066],{"type":3159,"value":8072},{"type":3154,"tag":3437,"props":9068,"children":9069},{"style":3516},[9070],{"type":3159,"value":3670},{"type":3154,"tag":3437,"props":9072,"children":9073},{"style":3673},[9074],{"type":3159,"value":8081},{"type":3154,"tag":3437,"props":9076,"children":9077},{"style":3582},[9078],{"type":3159,"value":3681},{"type":3154,"tag":3437,"props":9080,"children":9081},{"class":3439,"line":4610},[9082,9086,9090,9094,9098,9102,9106,9110,9114,9118],{"type":3154,"tag":3437,"props":9083,"children":9084},{"style":3588},[9085],{"type":3159,"value":7670},{"type":3154,"tag":3437,"props":9087,"children":9088},{"style":3511},[9089],{"type":3159,"value":3624},{"type":3154,"tag":3437,"props":9091,"children":9092},{"style":3516},[9093],{"type":3159,"value":3670},{"type":3154,"tag":3437,"props":9095,"children":9096},{"style":4700},[9097],{"type":3159,"value":4956},{"type":3154,"tag":3437,"props":9099,"children":9100},{"style":3511},[9101],{"type":3159,"value":8072},{"type":3154,"tag":3437,"props":9103,"children":9104},{"style":3516},[9105],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":9107,"children":9108},{"style":3673},[9109],{"type":3159,"value":7028},{"type":3154,"tag":3437,"props":9111,"children":9112},{"style":3516},[9113],{"type":3159,"value":8138},{"type":3154,"tag":3437,"props":9115,"children":9116},{"style":3449},[9117],{"type":3159,"value":5441},{"type":3154,"tag":3437,"props":9119,"children":9120},{"style":3516},[9121],{"type":3159,"value":8147},{"type":3154,"tag":3437,"props":9123,"children":9124},{"class":3439,"line":8234},[9125],{"type":3154,"tag":3437,"props":9126,"children":9127},{"emptyLinePlaceholder":1200},[9128],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":9130,"children":9131},{"class":3439,"line":8242},[9132],{"type":3154,"tag":3437,"props":9133,"children":9134},{"style":3502},[9135],{"type":3159,"value":9136},"    \u002F\u002F Update the counter in the database (authenticationInfo.newCounter)\n",{"type":3154,"tag":3437,"props":9138,"children":9139},{"class":3439,"line":8251},[9140,9144,9148,9152,9156,9160,9164],{"type":3154,"tag":3437,"props":9141,"children":9142},{"style":4700},[9143],{"type":3159,"value":5953},{"type":3154,"tag":3437,"props":9145,"children":9146},{"style":3511},[9147],{"type":3159,"value":8072},{"type":3154,"tag":3437,"props":9149,"children":9150},{"style":3516},[9151],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":9153,"children":9154},{"style":3673},[9155],{"type":3159,"value":7028},{"type":3154,"tag":3437,"props":9157,"children":9158},{"style":3516},[9159],{"type":3159,"value":8138},{"type":3154,"tag":3437,"props":9161,"children":9162},{"style":3449},[9163],{"type":3159,"value":5441},{"type":3154,"tag":3437,"props":9165,"children":9166},{"style":3516},[9167],{"type":3159,"value":8147},{"type":3154,"tag":3437,"props":9169,"children":9170},{"class":3439,"line":8283},[9171],{"type":3154,"tag":3437,"props":9172,"children":9173},{"emptyLinePlaceholder":1200},[9174],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":9176,"children":9177},{"class":3439,"line":8291},[9178],{"type":3154,"tag":3437,"props":9179,"children":9180},{"style":3502},[9181],{"type":3159,"value":8297},{"type":3154,"tag":3437,"props":9183,"children":9184},{"class":3439,"line":8300},[9185,9189,9193,9197,9201,9205],{"type":3154,"tag":3437,"props":9186,"children":9187},{"style":4700},[9188],{"type":3159,"value":5953},{"type":3154,"tag":3437,"props":9190,"children":9191},{"style":3673},[9192],{"type":3159,"value":4708},{"type":3154,"tag":3437,"props":9194,"children":9195},{"style":3582},[9196],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":9198,"children":9199},{"style":3511},[9200],{"type":3159,"value":5916},{"type":3154,"tag":3437,"props":9202,"children":9203},{"style":3516},[9204],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":9206,"children":9207},{"style":3516},[9208],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":9210,"children":9211},{"class":3439,"line":8328},[9212,9216,9220],{"type":3154,"tag":3437,"props":9213,"children":9214},{"style":3582},[9215],{"type":3159,"value":5981},{"type":3154,"tag":3437,"props":9217,"children":9218},{"style":3516},[9219],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":9221,"children":9222},{"style":3516},[9223],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":9225,"children":9226},{"class":3439,"line":8344},[9227,9231,9235,9239,9243],{"type":3154,"tag":3437,"props":9228,"children":9229},{"style":3582},[9230],{"type":3159,"value":8350},{"type":3154,"tag":3437,"props":9232,"children":9233},{"style":3516},[9234],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":9236,"children":9237},{"style":3511},[9238],{"type":3159,"value":3624},{"type":3154,"tag":3437,"props":9240,"children":9241},{"style":3516},[9242],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":9244,"children":9245},{"style":3511},[9246],{"type":3159,"value":6014},{"type":3154,"tag":3437,"props":9248,"children":9249},{"class":3439,"line":8369},[9250],{"type":3154,"tag":3437,"props":9251,"children":9252},{"style":3516},[9253],{"type":3159,"value":8375},{"type":3154,"tag":3437,"props":9255,"children":9256},{"class":3439,"line":8378},[9257,9261,9265,9269,9273,9277,9281],{"type":3154,"tag":3437,"props":9258,"children":9259},{"style":3582},[9260],{"type":3159,"value":8384},{"type":3154,"tag":3437,"props":9262,"children":9263},{"style":3516},[9264],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":9266,"children":9267},{"style":3511},[9268],{"type":3159,"value":4864},{"type":3154,"tag":3437,"props":9270,"children":9271},{"style":3516},[9272],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":9274,"children":9275},{"style":3673},[9276],{"type":3159,"value":8401},{"type":3154,"tag":3437,"props":9278,"children":9279},{"style":3582},[9280],{"type":3159,"value":7945},{"type":3154,"tag":3437,"props":9282,"children":9283},{"style":3516},[9284],{"type":3159,"value":5450},{"type":3154,"tag":3437,"props":9286,"children":9287},{"class":3439,"line":8412},[9288,9292],{"type":3154,"tag":3437,"props":9289,"children":9290},{"style":3516},[9291],{"type":3159,"value":6029},{"type":3154,"tag":3437,"props":9293,"children":9294},{"style":3582},[9295],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":9297,"children":9298},{"class":3439,"line":8424},[9299],{"type":3154,"tag":3437,"props":9300,"children":9301},{"style":3516},[9302],{"type":3159,"value":4778},{"type":3154,"tag":3437,"props":9304,"children":9305},{"class":3439,"line":8432},[9306,9310],{"type":3154,"tag":3437,"props":9307,"children":9308},{"style":3516},[9309],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":9311,"children":9312},{"style":3511},[9313],{"type":3159,"value":4880},{"type":3154,"tag":4618,"props":9315,"children":9316},{},[9317],{"type":3154,"tag":3161,"props":9318,"children":9319},{},[9320,9324,9326,9331,9333,9339,9340,9346],{"type":3154,"tag":3437,"props":9321,"children":9322},{},[9323],{"type":3159,"value":4628},{"type":3159,"value":9325},"\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":3154,"tag":4109,"props":9327,"children":9328},{},[9329],{"type":3159,"value":9330},"which is highly recommended",{"type":3159,"value":9332},"), the ",{"type":3154,"tag":3299,"props":9334,"children":9336},{"className":9335},[],[9337],{"type":3159,"value":9338},"storeChallenge",{"type":3159,"value":6270},{"type":3154,"tag":3299,"props":9341,"children":9343},{"className":9342},[],[9344],{"type":3159,"value":9345},"getChallenge",{"type":3159,"value":9347}," 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":3154,"tag":4618,"props":9349,"children":9350},{},[9351],{"type":3154,"tag":3427,"props":9352,"children":9354},{"className":4116,"code":9353,"language":4118,"meta":3028,"style":3028},"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",[9355],{"type":3154,"tag":3299,"props":9356,"children":9357},{"__ignoreMap":3028},[9358,9381,9427,9435,9500,9507,9543,9607,9614,9622,9674,9681,9705,9769,9776,9788,9795,9835,9843,9850],{"type":3154,"tag":3437,"props":9359,"children":9360},{"class":3439,"line":3114},[9361,9365,9369,9373,9377],{"type":3154,"tag":3437,"props":9362,"children":9363},{"style":4700},[9364],{"type":3159,"value":5234},{"type":3154,"tag":3437,"props":9366,"children":9367},{"style":4700},[9368],{"type":3159,"value":5349},{"type":3154,"tag":3437,"props":9370,"children":9371},{"style":3673},[9372],{"type":3159,"value":8507},{"type":3154,"tag":3437,"props":9374,"children":9375},{"style":3511},[9376],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":9378,"children":9379},{"style":3516},[9380],{"type":3159,"value":5364},{"type":3154,"tag":3437,"props":9382,"children":9383},{"class":3439,"line":3080},[9384,9388,9393,9397,9401,9405,9410,9414,9419,9423],{"type":3154,"tag":3437,"props":9385,"children":9386},{"style":3588},[9387],{"type":3159,"value":5902},{"type":3154,"tag":3437,"props":9389,"children":9390},{"style":3582},[9391],{"type":3159,"value":9392}," storeChallenge",{"type":3154,"tag":3437,"props":9394,"children":9395},{"style":3516},[9396],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":9398,"children":9399},{"style":4532},[9400],{"type":3159,"value":5916},{"type":3154,"tag":3437,"props":9402,"children":9403},{"style":3516},[9404],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":9406,"children":9407},{"style":4532},[9408],{"type":3159,"value":9409}," challenge",{"type":3154,"tag":3437,"props":9411,"children":9412},{"style":3516},[9413],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":9415,"children":9416},{"style":4532},[9417],{"type":3159,"value":9418}," attemptId",{"type":3154,"tag":3437,"props":9420,"children":9421},{"style":3516},[9422],{"type":3159,"value":6120},{"type":3154,"tag":3437,"props":9424,"children":9425},{"style":3516},[9426],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":9428,"children":9429},{"class":3439,"line":3064},[9430],{"type":3154,"tag":3437,"props":9431,"children":9432},{"style":3502},[9433],{"type":3159,"value":9434},"    \u002F\u002F Store the challenge in a KV store or DB\n",{"type":3154,"tag":3437,"props":9436,"children":9437},{"class":3439,"line":3700},[9438,9442,9447,9451,9455,9460,9464,9468,9473,9478,9483,9488,9492,9496],{"type":3154,"tag":3437,"props":9439,"children":9440},{"style":4700},[9441],{"type":3159,"value":5953},{"type":3154,"tag":3437,"props":9443,"children":9444},{"style":3673},[9445],{"type":3159,"value":9446}," useStorage",{"type":3154,"tag":3437,"props":9448,"children":9449},{"style":3582},[9450],{"type":3159,"value":7945},{"type":3154,"tag":3437,"props":9452,"children":9453},{"style":3516},[9454],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":9456,"children":9457},{"style":3673},[9458],{"type":3159,"value":9459},"setItem",{"type":3154,"tag":3437,"props":9461,"children":9462},{"style":3582},[9463],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":9465,"children":9466},{"style":3516},[9467],{"type":3159,"value":8138},{"type":3154,"tag":3437,"props":9469,"children":9470},{"style":3449},[9471],{"type":3159,"value":9472},"attempt:",{"type":3154,"tag":3437,"props":9474,"children":9475},{"style":3516},[9476],{"type":3159,"value":9477},"${",{"type":3154,"tag":3437,"props":9479,"children":9480},{"style":3511},[9481],{"type":3159,"value":9482},"attemptId",{"type":3154,"tag":3437,"props":9484,"children":9485},{"style":3516},[9486],{"type":3159,"value":9487},"}`",{"type":3154,"tag":3437,"props":9489,"children":9490},{"style":3516},[9491],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":9493,"children":9494},{"style":3511},[9495],{"type":3159,"value":9409},{"type":3154,"tag":3437,"props":9497,"children":9498},{"style":3582},[9499],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":9501,"children":9502},{"class":3439,"line":3709},[9503],{"type":3154,"tag":3437,"props":9504,"children":9505},{"style":3516},[9506],{"type":3159,"value":4778},{"type":3154,"tag":3437,"props":9508,"children":9509},{"class":3439,"line":3726},[9510,9514,9519,9523,9527,9531,9535,9539],{"type":3154,"tag":3437,"props":9511,"children":9512},{"style":3588},[9513],{"type":3159,"value":5902},{"type":3154,"tag":3437,"props":9515,"children":9516},{"style":3582},[9517],{"type":3159,"value":9518}," getChallenge",{"type":3154,"tag":3437,"props":9520,"children":9521},{"style":3516},[9522],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":9524,"children":9525},{"style":4532},[9526],{"type":3159,"value":5916},{"type":3154,"tag":3437,"props":9528,"children":9529},{"style":3516},[9530],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":9532,"children":9533},{"style":4532},[9534],{"type":3159,"value":9418},{"type":3154,"tag":3437,"props":9536,"children":9537},{"style":3516},[9538],{"type":3159,"value":6120},{"type":3154,"tag":3437,"props":9540,"children":9541},{"style":3516},[9542],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":9544,"children":9545},{"class":3439,"line":3060},[9546,9550,9554,9558,9562,9566,9570,9574,9579,9583,9587,9591,9595,9599,9603],{"type":3154,"tag":3437,"props":9547,"children":9548},{"style":3588},[9549],{"type":3159,"value":7670},{"type":3154,"tag":3437,"props":9551,"children":9552},{"style":3511},[9553],{"type":3159,"value":9409},{"type":3154,"tag":3437,"props":9555,"children":9556},{"style":3516},[9557],{"type":3159,"value":3670},{"type":3154,"tag":3437,"props":9559,"children":9560},{"style":4700},[9561],{"type":3159,"value":4956},{"type":3154,"tag":3437,"props":9563,"children":9564},{"style":3673},[9565],{"type":3159,"value":9446},{"type":3154,"tag":3437,"props":9567,"children":9568},{"style":3582},[9569],{"type":3159,"value":7945},{"type":3154,"tag":3437,"props":9571,"children":9572},{"style":3516},[9573],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":9575,"children":9576},{"style":3673},[9577],{"type":3159,"value":9578},"getItem",{"type":3154,"tag":3437,"props":9580,"children":9581},{"style":3582},[9582],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":9584,"children":9585},{"style":3516},[9586],{"type":3159,"value":8138},{"type":3154,"tag":3437,"props":9588,"children":9589},{"style":3449},[9590],{"type":3159,"value":9472},{"type":3154,"tag":3437,"props":9592,"children":9593},{"style":3516},[9594],{"type":3159,"value":9477},{"type":3154,"tag":3437,"props":9596,"children":9597},{"style":3511},[9598],{"type":3159,"value":9482},{"type":3154,"tag":3437,"props":9600,"children":9601},{"style":3516},[9602],{"type":3159,"value":9487},{"type":3154,"tag":3437,"props":9604,"children":9605},{"style":3582},[9606],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":9608,"children":9609},{"class":3439,"line":3056},[9610],{"type":3154,"tag":3437,"props":9611,"children":9612},{"emptyLinePlaceholder":1200},[9613],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":9615,"children":9616},{"class":3439,"line":3052},[9617],{"type":3154,"tag":3437,"props":9618,"children":9619},{"style":3502},[9620],{"type":3159,"value":9621},"    \u002F\u002F Make sure to always remove the attempt because they are single use only!\n",{"type":3154,"tag":3437,"props":9623,"children":9624},{"class":3439,"line":3888},[9625,9629,9633,9637,9641,9646,9650,9654,9658,9662,9666,9670],{"type":3154,"tag":3437,"props":9626,"children":9627},{"style":4700},[9628],{"type":3159,"value":5953},{"type":3154,"tag":3437,"props":9630,"children":9631},{"style":3673},[9632],{"type":3159,"value":9446},{"type":3154,"tag":3437,"props":9634,"children":9635},{"style":3582},[9636],{"type":3159,"value":7945},{"type":3154,"tag":3437,"props":9638,"children":9639},{"style":3516},[9640],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":9642,"children":9643},{"style":3673},[9644],{"type":3159,"value":9645},"removeItem",{"type":3154,"tag":3437,"props":9647,"children":9648},{"style":3582},[9649],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":9651,"children":9652},{"style":3516},[9653],{"type":3159,"value":8138},{"type":3154,"tag":3437,"props":9655,"children":9656},{"style":3449},[9657],{"type":3159,"value":9472},{"type":3154,"tag":3437,"props":9659,"children":9660},{"style":3516},[9661],{"type":3159,"value":9477},{"type":3154,"tag":3437,"props":9663,"children":9664},{"style":3511},[9665],{"type":3159,"value":9482},{"type":3154,"tag":3437,"props":9667,"children":9668},{"style":3516},[9669],{"type":3159,"value":9487},{"type":3154,"tag":3437,"props":9671,"children":9672},{"style":3582},[9673],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":9675,"children":9676},{"class":3439,"line":3905},[9677],{"type":3154,"tag":3437,"props":9678,"children":9679},{"emptyLinePlaceholder":1200},[9680],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":9682,"children":9683},{"class":3439,"line":3926},[9684,9688,9692,9696,9701],{"type":3154,"tag":3437,"props":9685,"children":9686},{"style":4700},[9687],{"type":3159,"value":7706},{"type":3154,"tag":3437,"props":9689,"children":9690},{"style":3582},[9691],{"type":3159,"value":4529},{"type":3154,"tag":3437,"props":9693,"children":9694},{"style":3516},[9695],{"type":3159,"value":8163},{"type":3154,"tag":3437,"props":9697,"children":9698},{"style":3511},[9699],{"type":3159,"value":9700},"challenge",{"type":3154,"tag":3437,"props":9702,"children":9703},{"style":3582},[9704],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":9706,"children":9707},{"class":3439,"line":3959},[9708,9712,9716,9720,9724,9728,9732,9736,9740,9744,9748,9752,9757,9761,9765],{"type":3154,"tag":3437,"props":9709,"children":9710},{"style":4700},[9711],{"type":3159,"value":7795},{"type":3154,"tag":3437,"props":9713,"children":9714},{"style":3673},[9715],{"type":3159,"value":7800},{"type":3154,"tag":3437,"props":9717,"children":9718},{"style":3582},[9719],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":9721,"children":9722},{"style":3516},[9723],{"type":3159,"value":7809},{"type":3154,"tag":3437,"props":9725,"children":9726},{"style":3582},[9727],{"type":3159,"value":7814},{"type":3154,"tag":3437,"props":9729,"children":9730},{"style":3516},[9731],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":9733,"children":9734},{"style":7038},[9735],{"type":3159,"value":7823},{"type":3154,"tag":3437,"props":9737,"children":9738},{"style":3516},[9739],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":9741,"children":9742},{"style":3582},[9743],{"type":3159,"value":7832},{"type":3154,"tag":3437,"props":9745,"children":9746},{"style":3516},[9747],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":9749,"children":9750},{"style":3516},[9751],{"type":3159,"value":4761},{"type":3154,"tag":3437,"props":9753,"children":9754},{"style":3449},[9755],{"type":3159,"value":9756},"Challenge expired",{"type":3154,"tag":3437,"props":9758,"children":9759},{"style":3516},[9760],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":9762,"children":9763},{"style":3516},[9764],{"type":3159,"value":7550},{"type":3154,"tag":3437,"props":9766,"children":9767},{"style":3582},[9768],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":9770,"children":9771},{"class":3439,"line":4014},[9772],{"type":3154,"tag":3437,"props":9773,"children":9774},{"emptyLinePlaceholder":1200},[9775],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":9777,"children":9778},{"class":3439,"line":4023},[9779,9783],{"type":3154,"tag":3437,"props":9780,"children":9781},{"style":4700},[9782],{"type":3159,"value":6041},{"type":3154,"tag":3437,"props":9784,"children":9785},{"style":3511},[9786],{"type":3159,"value":9787}," challenge\n",{"type":3154,"tag":3437,"props":9789,"children":9790},{"class":3439,"line":3048},[9791],{"type":3154,"tag":3437,"props":9792,"children":9793},{"style":3516},[9794],{"type":3159,"value":4778},{"type":3154,"tag":3437,"props":9796,"children":9797},{"class":3439,"line":4091},[9798,9802,9806,9810,9814,9818,9822,9827,9831],{"type":3154,"tag":3437,"props":9799,"children":9800},{"style":3588},[9801],{"type":3159,"value":5902},{"type":3154,"tag":3437,"props":9803,"children":9804},{"style":3582},[9805],{"type":3159,"value":5907},{"type":3154,"tag":3437,"props":9807,"children":9808},{"style":3516},[9809],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":9811,"children":9812},{"style":4532},[9813],{"type":3159,"value":5916},{"type":3154,"tag":3437,"props":9815,"children":9816},{"style":3516},[9817],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":9819,"children":9820},{"style":3516},[9821],{"type":3159,"value":3609},{"type":3154,"tag":3437,"props":9823,"children":9824},{"style":4532},[9825],{"type":3159,"value":9826}," authenticator",{"type":3154,"tag":3437,"props":9828,"children":9829},{"style":3516},[9830],{"type":3159,"value":4598},{"type":3154,"tag":3437,"props":9832,"children":9833},{"style":3516},[9834],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":9836,"children":9837},{"class":3439,"line":4361},[9838],{"type":3154,"tag":3437,"props":9839,"children":9840},{"style":3502},[9841],{"type":3159,"value":9842},"    \u002F\u002F ...\n",{"type":3154,"tag":3437,"props":9844,"children":9845},{"class":3439,"line":4369},[9846],{"type":3154,"tag":3437,"props":9847,"children":9848},{"style":3516},[9849],{"type":3159,"value":4778},{"type":3154,"tag":3437,"props":9851,"children":9852},{"class":3439,"line":4378},[9853,9857],{"type":3154,"tag":3437,"props":9854,"children":9855},{"style":3516},[9856],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":9858,"children":9859},{"style":3511},[9860],{"type":3159,"value":4880},{"type":3154,"tag":3161,"props":9862,"children":9863},{},[9864],{"type":3159,"value":9865},"On the frontend it is as simple as:",{"type":3154,"tag":3427,"props":9867,"children":9869},{"className":3565,"code":9868,"language":3567,"meta":3028,"style":3028},"\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",[9870],{"type":3154,"tag":3299,"props":9871,"children":9872},{"__ignoreMap":3028},[9873,9913,9959,9993,10026,10037,10077,10084,10118,10144,10193,10224,10231,10238,10262,10294,10321,10328,10343,10350,10365,10403,10463,10517,10532,10568,10623,10675,10690],{"type":3154,"tag":3437,"props":9874,"children":9875},{"class":3439,"line":3114},[9876,9880,9884,9888,9893,9897,9901,9905,9909],{"type":3154,"tag":3437,"props":9877,"children":9878},{"style":3516},[9879],{"type":3159,"value":3579},{"type":3154,"tag":3437,"props":9881,"children":9882},{"style":3582},[9883],{"type":3159,"value":3585},{"type":3154,"tag":3437,"props":9885,"children":9886},{"style":3588},[9887],{"type":3159,"value":3591},{"type":3154,"tag":3437,"props":9889,"children":9890},{"style":3588},[9891],{"type":3159,"value":9892}," lang",{"type":3154,"tag":3437,"props":9894,"children":9895},{"style":3516},[9896],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":9898,"children":9899},{"style":3516},[9900],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":9902,"children":9903},{"style":3449},[9904],{"type":3159,"value":4118},{"type":3154,"tag":3437,"props":9906,"children":9907},{"style":3516},[9908],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":9910,"children":9911},{"style":3516},[9912],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":9914,"children":9915},{"class":3439,"line":3080},[9916,9920,9924,9929,9933,9938,9942,9946,9951,9955],{"type":3154,"tag":3437,"props":9917,"children":9918},{"style":3588},[9919],{"type":3159,"value":3604},{"type":3154,"tag":3437,"props":9921,"children":9922},{"style":3516},[9923],{"type":3159,"value":3609},{"type":3154,"tag":3437,"props":9925,"children":9926},{"style":3511},[9927],{"type":3159,"value":9928}," register",{"type":3154,"tag":3437,"props":9930,"children":9931},{"style":3516},[9932],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":9934,"children":9935},{"style":3511},[9936],{"type":3159,"value":9937}," authenticate ",{"type":3154,"tag":3437,"props":9939,"children":9940},{"style":3516},[9941],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":9943,"children":9944},{"style":3516},[9945],{"type":3159,"value":3670},{"type":3154,"tag":3437,"props":9947,"children":9948},{"style":3673},[9949],{"type":3159,"value":9950}," useWebAuthn",{"type":3154,"tag":3437,"props":9952,"children":9953},{"style":3511},[9954],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":9956,"children":9957},{"style":3516},[9958],{"type":3159,"value":5364},{"type":3154,"tag":3437,"props":9960,"children":9961},{"class":3439,"line":3064},[9962,9967,9971,9975,9980,9984,9988],{"type":3154,"tag":3437,"props":9963,"children":9964},{"style":3582},[9965],{"type":3159,"value":9966},"  registerEndpoint",{"type":3154,"tag":3437,"props":9968,"children":9969},{"style":3516},[9970],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":9972,"children":9973},{"style":3516},[9974],{"type":3159,"value":4761},{"type":3154,"tag":3437,"props":9976,"children":9977},{"style":3449},[9978],{"type":3159,"value":9979},"\u002Fapi\u002Fwebauthn\u002Fregister",{"type":3154,"tag":3437,"props":9981,"children":9982},{"style":3516},[9983],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":9985,"children":9986},{"style":3516},[9987],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":9989,"children":9990},{"style":3502},[9991],{"type":3159,"value":9992}," \u002F\u002F Default\n",{"type":3154,"tag":3437,"props":9994,"children":9995},{"class":3439,"line":3700},[9996,10001,10005,10009,10014,10018,10022],{"type":3154,"tag":3437,"props":9997,"children":9998},{"style":3582},[9999],{"type":3159,"value":10000},"  authenticateEndpoint",{"type":3154,"tag":3437,"props":10002,"children":10003},{"style":3516},[10004],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":10006,"children":10007},{"style":3516},[10008],{"type":3159,"value":4761},{"type":3154,"tag":3437,"props":10010,"children":10011},{"style":3449},[10012],{"type":3159,"value":10013},"\u002Fapi\u002Fwebauthn\u002Fauthenticate",{"type":3154,"tag":3437,"props":10015,"children":10016},{"style":3516},[10017],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":10019,"children":10020},{"style":3516},[10021],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":10023,"children":10024},{"style":3502},[10025],{"type":3159,"value":9992},{"type":3154,"tag":3437,"props":10027,"children":10028},{"class":3439,"line":3709},[10029,10033],{"type":3154,"tag":3437,"props":10030,"children":10031},{"style":3516},[10032],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":10034,"children":10035},{"style":3511},[10036],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":10038,"children":10039},{"class":3439,"line":3726},[10040,10044,10048,10052,10056,10061,10065,10069,10073],{"type":3154,"tag":3437,"props":10041,"children":10042},{"style":3588},[10043],{"type":3159,"value":3604},{"type":3154,"tag":3437,"props":10045,"children":10046},{"style":3516},[10047],{"type":3159,"value":3609},{"type":3154,"tag":3437,"props":10049,"children":10050},{"style":3582},[10051],{"type":3159,"value":3642},{"type":3154,"tag":3437,"props":10053,"children":10054},{"style":3516},[10055],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":10057,"children":10058},{"style":3511},[10059],{"type":3159,"value":10060}," fetchUserSession ",{"type":3154,"tag":3437,"props":10062,"children":10063},{"style":3516},[10064],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":10066,"children":10067},{"style":3516},[10068],{"type":3159,"value":3670},{"type":3154,"tag":3437,"props":10070,"children":10071},{"style":3673},[10072],{"type":3159,"value":3676},{"type":3154,"tag":3437,"props":10074,"children":10075},{"style":3511},[10076],{"type":3159,"value":3681},{"type":3154,"tag":3437,"props":10078,"children":10079},{"class":3439,"line":3060},[10080],{"type":3154,"tag":3437,"props":10081,"children":10082},{"emptyLinePlaceholder":1200},[10083],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":10085,"children":10086},{"class":3439,"line":3056},[10087,10091,10096,10100,10105,10109,10114],{"type":3154,"tag":3437,"props":10088,"children":10089},{"style":3588},[10090],{"type":3159,"value":3604},{"type":3154,"tag":3437,"props":10092,"children":10093},{"style":3511},[10094],{"type":3159,"value":10095}," userName ",{"type":3154,"tag":3437,"props":10097,"children":10098},{"style":3516},[10099],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":10101,"children":10102},{"style":3673},[10103],{"type":3159,"value":10104}," ref",{"type":3154,"tag":3437,"props":10106,"children":10107},{"style":3511},[10108],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":10110,"children":10111},{"style":3516},[10112],{"type":3159,"value":10113},"''",{"type":3154,"tag":3437,"props":10115,"children":10116},{"style":3511},[10117],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":10119,"children":10120},{"class":3439,"line":3052},[10121,10126,10131,10136,10140],{"type":3154,"tag":3437,"props":10122,"children":10123},{"style":3588},[10124],{"type":3159,"value":10125},"async",{"type":3154,"tag":3437,"props":10127,"children":10128},{"style":3588},[10129],{"type":3159,"value":10130}," function",{"type":3154,"tag":3437,"props":10132,"children":10133},{"style":3673},[10134],{"type":3159,"value":10135}," signUp",{"type":3154,"tag":3437,"props":10137,"children":10138},{"style":3516},[10139],{"type":3159,"value":7945},{"type":3154,"tag":3437,"props":10141,"children":10142},{"style":3516},[10143],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":10145,"children":10146},{"class":3439,"line":3888},[10147,10152,10156,10160,10164,10168,10172,10176,10180,10185,10189],{"type":3154,"tag":3437,"props":10148,"children":10149},{"style":4700},[10150],{"type":3159,"value":10151},"  await",{"type":3154,"tag":3437,"props":10153,"children":10154},{"style":3673},[10155],{"type":3159,"value":9928},{"type":3154,"tag":3437,"props":10157,"children":10158},{"style":3582},[10159],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":10161,"children":10162},{"style":3516},[10163],{"type":3159,"value":7809},{"type":3154,"tag":3437,"props":10165,"children":10166},{"style":3582},[10167],{"type":3159,"value":8552},{"type":3154,"tag":3437,"props":10169,"children":10170},{"style":3516},[10171],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":10173,"children":10174},{"style":3511},[10175],{"type":3159,"value":8552},{"type":3154,"tag":3437,"props":10177,"children":10178},{"style":3516},[10179],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":10181,"children":10182},{"style":3511},[10183],{"type":3159,"value":10184},"value",{"type":3154,"tag":3437,"props":10186,"children":10187},{"style":3516},[10188],{"type":3159,"value":7550},{"type":3154,"tag":3437,"props":10190,"children":10191},{"style":3582},[10192],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":10194,"children":10195},{"class":3439,"line":3905},[10196,10201,10206,10210,10215,10219],{"type":3154,"tag":3437,"props":10197,"children":10198},{"style":3516},[10199],{"type":3159,"value":10200},"    .",{"type":3154,"tag":3437,"props":10202,"children":10203},{"style":3673},[10204],{"type":3159,"value":10205},"then",{"type":3154,"tag":3437,"props":10207,"children":10208},{"style":3582},[10209],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":10211,"children":10212},{"style":3511},[10213],{"type":3159,"value":10214},"fetchUserSession",{"type":3154,"tag":3437,"props":10216,"children":10217},{"style":3582},[10218],{"type":3159,"value":7783},{"type":3154,"tag":3437,"props":10220,"children":10221},{"style":3502},[10222],{"type":3159,"value":10223},"\u002F\u002F refetch the user session\n",{"type":3154,"tag":3437,"props":10225,"children":10226},{"class":3439,"line":3926},[10227],{"type":3154,"tag":3437,"props":10228,"children":10229},{"style":3516},[10230],{"type":3159,"value":4616},{"type":3154,"tag":3437,"props":10232,"children":10233},{"class":3439,"line":3959},[10234],{"type":3154,"tag":3437,"props":10235,"children":10236},{"emptyLinePlaceholder":1200},[10237],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":10239,"children":10240},{"class":3439,"line":4014},[10241,10245,10249,10254,10258],{"type":3154,"tag":3437,"props":10242,"children":10243},{"style":3588},[10244],{"type":3159,"value":10125},{"type":3154,"tag":3437,"props":10246,"children":10247},{"style":3588},[10248],{"type":3159,"value":10130},{"type":3154,"tag":3437,"props":10250,"children":10251},{"style":3673},[10252],{"type":3159,"value":10253}," signIn",{"type":3154,"tag":3437,"props":10255,"children":10256},{"style":3516},[10257],{"type":3159,"value":7945},{"type":3154,"tag":3437,"props":10259,"children":10260},{"style":3516},[10261],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":10263,"children":10264},{"class":3439,"line":4023},[10265,10269,10274,10278,10282,10286,10290],{"type":3154,"tag":3437,"props":10266,"children":10267},{"style":4700},[10268],{"type":3159,"value":10151},{"type":3154,"tag":3437,"props":10270,"children":10271},{"style":3673},[10272],{"type":3159,"value":10273}," authenticate",{"type":3154,"tag":3437,"props":10275,"children":10276},{"style":3582},[10277],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":10279,"children":10280},{"style":3511},[10281],{"type":3159,"value":7778},{"type":3154,"tag":3437,"props":10283,"children":10284},{"style":3516},[10285],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":10287,"children":10288},{"style":3511},[10289],{"type":3159,"value":10184},{"type":3154,"tag":3437,"props":10291,"children":10292},{"style":3582},[10293],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":10295,"children":10296},{"class":3439,"line":3048},[10297,10301,10305,10309,10313,10317],{"type":3154,"tag":3437,"props":10298,"children":10299},{"style":3516},[10300],{"type":3159,"value":10200},{"type":3154,"tag":3437,"props":10302,"children":10303},{"style":3673},[10304],{"type":3159,"value":10205},{"type":3154,"tag":3437,"props":10306,"children":10307},{"style":3582},[10308],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":10310,"children":10311},{"style":3511},[10312],{"type":3159,"value":10214},{"type":3154,"tag":3437,"props":10314,"children":10315},{"style":3582},[10316],{"type":3159,"value":7783},{"type":3154,"tag":3437,"props":10318,"children":10319},{"style":3502},[10320],{"type":3159,"value":10223},{"type":3154,"tag":3437,"props":10322,"children":10323},{"class":3439,"line":4091},[10324],{"type":3154,"tag":3437,"props":10325,"children":10326},{"style":3516},[10327],{"type":3159,"value":4616},{"type":3154,"tag":3437,"props":10329,"children":10330},{"class":3439,"line":4361},[10331,10335,10339],{"type":3154,"tag":3437,"props":10332,"children":10333},{"style":3516},[10334],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":10336,"children":10337},{"style":3582},[10338],{"type":3159,"value":3585},{"type":3154,"tag":3437,"props":10340,"children":10341},{"style":3516},[10342],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":10344,"children":10345},{"class":3439,"line":4369},[10346],{"type":3154,"tag":3437,"props":10347,"children":10348},{"emptyLinePlaceholder":1200},[10349],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":10351,"children":10352},{"class":3439,"line":4378},[10353,10357,10361],{"type":3154,"tag":3437,"props":10354,"children":10355},{"style":3516},[10356],{"type":3159,"value":3579},{"type":3154,"tag":3437,"props":10358,"children":10359},{"style":3582},[10360],{"type":3159,"value":3719},{"type":3154,"tag":3437,"props":10362,"children":10363},{"style":3516},[10364],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":10366,"children":10367},{"class":3439,"line":4386},[10368,10372,10377,10382,10386,10390,10395,10399],{"type":3154,"tag":3437,"props":10369,"children":10370},{"style":3516},[10371],{"type":3159,"value":3732},{"type":3154,"tag":3437,"props":10373,"children":10374},{"style":3582},[10375],{"type":3159,"value":10376},"form",{"type":3154,"tag":3437,"props":10378,"children":10379},{"style":3588},[10380],{"type":3159,"value":10381}," @submit.prevent",{"type":3154,"tag":3437,"props":10383,"children":10384},{"style":3516},[10385],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":10387,"children":10388},{"style":3516},[10389],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":10391,"children":10392},{"style":3449},[10393],{"type":3159,"value":10394},"signUp",{"type":3154,"tag":3437,"props":10396,"children":10397},{"style":3516},[10398],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":10400,"children":10401},{"style":3516},[10402],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":10404,"children":10405},{"class":3439,"line":4427},[10406,10410,10415,10420,10424,10428,10432,10436,10441,10445,10449,10454,10458],{"type":3154,"tag":3437,"props":10407,"children":10408},{"style":3516},[10409],{"type":3159,"value":3772},{"type":3154,"tag":3437,"props":10411,"children":10412},{"style":3582},[10413],{"type":3159,"value":10414},"input",{"type":3154,"tag":3437,"props":10416,"children":10417},{"style":3588},[10418],{"type":3159,"value":10419}," v-model",{"type":3154,"tag":3437,"props":10421,"children":10422},{"style":3516},[10423],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":10425,"children":10426},{"style":3516},[10427],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":10429,"children":10430},{"style":3449},[10431],{"type":3159,"value":7778},{"type":3154,"tag":3437,"props":10433,"children":10434},{"style":3516},[10435],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":10437,"children":10438},{"style":3588},[10439],{"type":3159,"value":10440}," placeholder",{"type":3154,"tag":3437,"props":10442,"children":10443},{"style":3516},[10444],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":10446,"children":10447},{"style":3516},[10448],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":10450,"children":10451},{"style":3449},[10452],{"type":3159,"value":10453},"Email or username",{"type":3154,"tag":3437,"props":10455,"children":10456},{"style":3516},[10457],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":10459,"children":10460},{"style":3516},[10461],{"type":3159,"value":10462}," \u002F>\n",{"type":3154,"tag":3437,"props":10464,"children":10465},{"class":3439,"line":4435},[10466,10470,10474,10479,10483,10487,10492,10496,10500,10505,10509,10513],{"type":3154,"tag":3437,"props":10467,"children":10468},{"style":3516},[10469],{"type":3159,"value":3772},{"type":3154,"tag":3437,"props":10471,"children":10472},{"style":3582},[10473],{"type":3159,"value":3842},{"type":3154,"tag":3437,"props":10475,"children":10476},{"style":3588},[10477],{"type":3159,"value":10478}," type",{"type":3154,"tag":3437,"props":10480,"children":10481},{"style":3516},[10482],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":10484,"children":10485},{"style":3516},[10486],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":10488,"children":10489},{"style":3449},[10490],{"type":3159,"value":10491},"submit",{"type":3154,"tag":3437,"props":10493,"children":10494},{"style":3516},[10495],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":10497,"children":10498},{"style":3516},[10499],{"type":3159,"value":3781},{"type":3154,"tag":3437,"props":10501,"children":10502},{"style":3511},[10503],{"type":3159,"value":10504},"Sign up",{"type":3154,"tag":3437,"props":10506,"children":10507},{"style":3516},[10508],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":10510,"children":10511},{"style":3582},[10512],{"type":3159,"value":3842},{"type":3154,"tag":3437,"props":10514,"children":10515},{"style":3516},[10516],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":10518,"children":10519},{"class":3439,"line":4444},[10520,10524,10528],{"type":3154,"tag":3437,"props":10521,"children":10522},{"style":3516},[10523],{"type":3159,"value":3894},{"type":3154,"tag":3437,"props":10525,"children":10526},{"style":3582},[10527],{"type":3159,"value":10376},{"type":3154,"tag":3437,"props":10529,"children":10530},{"style":3516},[10531],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":10533,"children":10534},{"class":3439,"line":4452},[10535,10539,10543,10547,10551,10555,10560,10564],{"type":3154,"tag":3437,"props":10536,"children":10537},{"style":3516},[10538],{"type":3159,"value":3732},{"type":3154,"tag":3437,"props":10540,"children":10541},{"style":3582},[10542],{"type":3159,"value":10376},{"type":3154,"tag":3437,"props":10544,"children":10545},{"style":3588},[10546],{"type":3159,"value":10381},{"type":3154,"tag":3437,"props":10548,"children":10549},{"style":3516},[10550],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":10552,"children":10553},{"style":3516},[10554],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":10556,"children":10557},{"style":3449},[10558],{"type":3159,"value":10559},"signIn",{"type":3154,"tag":3437,"props":10561,"children":10562},{"style":3516},[10563],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":10565,"children":10566},{"style":3516},[10567],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":10569,"children":10570},{"class":3439,"line":4489},[10571,10575,10579,10583,10587,10591,10595,10599,10603,10607,10611,10615,10619],{"type":3154,"tag":3437,"props":10572,"children":10573},{"style":3516},[10574],{"type":3159,"value":3772},{"type":3154,"tag":3437,"props":10576,"children":10577},{"style":3582},[10578],{"type":3159,"value":10414},{"type":3154,"tag":3437,"props":10580,"children":10581},{"style":3588},[10582],{"type":3159,"value":10419},{"type":3154,"tag":3437,"props":10584,"children":10585},{"style":3516},[10586],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":10588,"children":10589},{"style":3516},[10590],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":10592,"children":10593},{"style":3449},[10594],{"type":3159,"value":7778},{"type":3154,"tag":3437,"props":10596,"children":10597},{"style":3516},[10598],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":10600,"children":10601},{"style":3588},[10602],{"type":3159,"value":10440},{"type":3154,"tag":3437,"props":10604,"children":10605},{"style":3516},[10606],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":10608,"children":10609},{"style":3516},[10610],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":10612,"children":10613},{"style":3449},[10614],{"type":3159,"value":10453},{"type":3154,"tag":3437,"props":10616,"children":10617},{"style":3516},[10618],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":10620,"children":10621},{"style":3516},[10622],{"type":3159,"value":10462},{"type":3154,"tag":3437,"props":10624,"children":10625},{"class":3439,"line":4497},[10626,10630,10634,10638,10642,10646,10650,10654,10658,10663,10667,10671],{"type":3154,"tag":3437,"props":10627,"children":10628},{"style":3516},[10629],{"type":3159,"value":3772},{"type":3154,"tag":3437,"props":10631,"children":10632},{"style":3582},[10633],{"type":3159,"value":3842},{"type":3154,"tag":3437,"props":10635,"children":10636},{"style":3588},[10637],{"type":3159,"value":10478},{"type":3154,"tag":3437,"props":10639,"children":10640},{"style":3516},[10641],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":10643,"children":10644},{"style":3516},[10645],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":10647,"children":10648},{"style":3449},[10649],{"type":3159,"value":10491},{"type":3154,"tag":3437,"props":10651,"children":10652},{"style":3516},[10653],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":10655,"children":10656},{"style":3516},[10657],{"type":3159,"value":3781},{"type":3154,"tag":3437,"props":10659,"children":10660},{"style":3511},[10661],{"type":3159,"value":10662},"Sign in",{"type":3154,"tag":3437,"props":10664,"children":10665},{"style":3516},[10666],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":10668,"children":10669},{"style":3582},[10670],{"type":3159,"value":3842},{"type":3154,"tag":3437,"props":10672,"children":10673},{"style":3516},[10674],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":10676,"children":10677},{"class":3439,"line":4506},[10678,10682,10686],{"type":3154,"tag":3437,"props":10679,"children":10680},{"style":3516},[10681],{"type":3159,"value":3894},{"type":3154,"tag":3437,"props":10683,"children":10684},{"style":3582},[10685],{"type":3159,"value":10376},{"type":3154,"tag":3437,"props":10687,"children":10688},{"style":3516},[10689],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":10691,"children":10692},{"class":3439,"line":4514},[10693,10697,10701],{"type":3154,"tag":3437,"props":10694,"children":10695},{"style":3516},[10696],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":10698,"children":10699},{"style":3582},[10700],{"type":3159,"value":3719},{"type":3154,"tag":3437,"props":10702,"children":10703},{"style":3516},[10704],{"type":3159,"value":3596},{"type":3154,"tag":3161,"props":10706,"children":10707},{},[10708,10710,10721],{"type":3159,"value":10709},"Take a look at the ",{"type":3154,"tag":3165,"props":10711,"children":10714},{"href":10712,"rel":10713},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fcomponents\u002FWebAuthnModal.vue",[3169],[10715],{"type":3154,"tag":3299,"props":10716,"children":10718},{"className":10717},[],[10719],{"type":3159,"value":10720},"WebAuthnModal.vue",{"type":3159,"value":10722}," for a full example.",{"type":3154,"tag":5544,"props":10724,"children":10726},{"id":10725},"demo",[10727],{"type":3159,"value":10728},"Demo",{"type":3154,"tag":3161,"props":10730,"children":10731},{},[10732,10734,10740,10742,10749,10750,10757],{"type":3159,"value":10733},"A full demo can be found on ",{"type":3154,"tag":3165,"props":10735,"children":10738},{"href":10736,"rel":10737},"https:\u002F\u002Ftodo-passkeys.nuxt.dev",[3169],[10739],{"type":3159,"value":10736},{"type":3159,"value":10741}," using ",{"type":3154,"tag":3165,"props":10743,"children":10746},{"href":10744,"rel":10745},"https:\u002F\u002Form.drizzle.team\u002F",[3169],[10747],{"type":3159,"value":10748},"Drizzle ORM",{"type":3159,"value":6270},{"type":3154,"tag":3165,"props":10751,"children":10754},{"href":10752,"rel":10753},"https:\u002F\u002Fhub.nuxt.com",[3169],[10755],{"type":3159,"value":10756},"NuxtHub",{"type":3159,"value":3392},{"type":3154,"tag":3161,"props":10759,"children":10760},{},[10761,10763,10768],{"type":3159,"value":10762},"The source code of the demo is available on ",{"type":3154,"tag":3165,"props":10764,"children":10766},{"href":3239,"rel":10765},[3169],[10767],{"type":3159,"value":3239},{"type":3159,"value":3392},{"type":3154,"tag":3557,"props":10770,"children":10772},{"id":10771},"extend-session",[10773],{"type":3159,"value":10774},"Extend Session",{"type":3154,"tag":3161,"props":10776,"children":10777},{},[10778],{"type":3159,"value":10779},"We leverage hooks to let you extend the session data with your own data or log when the user clears the session.",{"type":3154,"tag":3427,"props":10781,"children":10783},{"className":4116,"code":10782,"language":4118,"meta":3028,"style":3028},"\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",[10784],{"type":3154,"tag":3299,"props":10785,"children":10786},{"__ignoreMap":3028},[10787,10795,10827,10835,10843,10914,10922,10930,10938,10950,10957,10965,11032,11040,11051],{"type":3154,"tag":3437,"props":10788,"children":10789},{"class":3439,"line":3114},[10790],{"type":3154,"tag":3437,"props":10791,"children":10792},{"style":3502},[10793],{"type":3159,"value":10794},"\u002F\u002F server\u002Fplugins\u002Fsession.ts\n",{"type":3154,"tag":3437,"props":10796,"children":10797},{"class":3439,"line":3080},[10798,10802,10806,10811,10815,10819,10823],{"type":3154,"tag":3437,"props":10799,"children":10800},{"style":4700},[10801],{"type":3159,"value":5234},{"type":3154,"tag":3437,"props":10803,"children":10804},{"style":4700},[10805],{"type":3159,"value":5349},{"type":3154,"tag":3437,"props":10807,"children":10808},{"style":3673},[10809],{"type":3159,"value":10810}," defineNitroPlugin",{"type":3154,"tag":3437,"props":10812,"children":10813},{"style":3511},[10814],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":10816,"children":10817},{"style":3516},[10818],{"type":3159,"value":7945},{"type":3154,"tag":3437,"props":10820,"children":10821},{"style":3588},[10822],{"type":3159,"value":4406},{"type":3154,"tag":3437,"props":10824,"children":10825},{"style":3516},[10826],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":10828,"children":10829},{"class":3439,"line":3064},[10830],{"type":3154,"tag":3437,"props":10831,"children":10832},{"style":3502},[10833],{"type":3159,"value":10834},"  \u002F\u002F Called when the session is fetched during SSR for the Vue composable (\u002Fapi\u002F_auth\u002Fsession)\n",{"type":3154,"tag":3437,"props":10836,"children":10837},{"class":3439,"line":3700},[10838],{"type":3154,"tag":3437,"props":10839,"children":10840},{"style":3502},[10841],{"type":3159,"value":10842},"  \u002F\u002F Or when we call useUserSession().fetch()\n",{"type":3154,"tag":3437,"props":10844,"children":10845},{"class":3439,"line":3709},[10846,10851,10855,10860,10864,10868,10873,10877,10881,10886,10890,10894,10898,10902,10906,10910],{"type":3154,"tag":3437,"props":10847,"children":10848},{"style":3511},[10849],{"type":3159,"value":10850},"  sessionHooks",{"type":3154,"tag":3437,"props":10852,"children":10853},{"style":3516},[10854],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":10856,"children":10857},{"style":3673},[10858],{"type":3159,"value":10859},"hook",{"type":3154,"tag":3437,"props":10861,"children":10862},{"style":3582},[10863],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":10865,"children":10866},{"style":3516},[10867],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":10869,"children":10870},{"style":3449},[10871],{"type":3159,"value":10872},"fetch",{"type":3154,"tag":3437,"props":10874,"children":10875},{"style":3516},[10876],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":10878,"children":10879},{"style":3516},[10880],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":10882,"children":10883},{"style":3588},[10884],{"type":3159,"value":10885}," async",{"type":3154,"tag":3437,"props":10887,"children":10888},{"style":3516},[10889],{"type":3159,"value":4529},{"type":3154,"tag":3437,"props":10891,"children":10892},{"style":4532},[10893],{"type":3159,"value":7715},{"type":3154,"tag":3437,"props":10895,"children":10896},{"style":3516},[10897],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":10899,"children":10900},{"style":4532},[10901],{"type":3159,"value":7630},{"type":3154,"tag":3437,"props":10903,"children":10904},{"style":3516},[10905],{"type":3159,"value":6120},{"type":3154,"tag":3437,"props":10907,"children":10908},{"style":3588},[10909],{"type":3159,"value":4406},{"type":3154,"tag":3437,"props":10911,"children":10912},{"style":3516},[10913],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":10915,"children":10916},{"class":3439,"line":3726},[10917],{"type":3154,"tag":3437,"props":10918,"children":10919},{"style":3502},[10920],{"type":3159,"value":10921},"    \u002F\u002F extend User Session by calling your database\n",{"type":3154,"tag":3437,"props":10923,"children":10924},{"class":3439,"line":3060},[10925],{"type":3154,"tag":3437,"props":10926,"children":10927},{"style":3502},[10928],{"type":3159,"value":10929},"    \u002F\u002F or\n",{"type":3154,"tag":3437,"props":10931,"children":10932},{"class":3439,"line":3056},[10933],{"type":3154,"tag":3437,"props":10934,"children":10935},{"style":3502},[10936],{"type":3159,"value":10937},"    \u002F\u002F throw createError({ ... }) if session is invalid for example\n",{"type":3154,"tag":3437,"props":10939,"children":10940},{"class":3439,"line":3052},[10941,10946],{"type":3154,"tag":3437,"props":10942,"children":10943},{"style":3516},[10944],{"type":3159,"value":10945},"  }",{"type":3154,"tag":3437,"props":10947,"children":10948},{"style":3582},[10949],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":10951,"children":10952},{"class":3439,"line":3888},[10953],{"type":3154,"tag":3437,"props":10954,"children":10955},{"emptyLinePlaceholder":1200},[10956],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":10958,"children":10959},{"class":3439,"line":3905},[10960],{"type":3154,"tag":3437,"props":10961,"children":10962},{"style":3502},[10963],{"type":3159,"value":10964},"  \u002F\u002F Called when we call useUserSession().clear() or clearUserSession(event)\n",{"type":3154,"tag":3437,"props":10966,"children":10967},{"class":3439,"line":3926},[10968,10972,10976,10980,10984,10988,10992,10996,11000,11004,11008,11012,11016,11020,11024,11028],{"type":3154,"tag":3437,"props":10969,"children":10970},{"style":3511},[10971],{"type":3159,"value":10850},{"type":3154,"tag":3437,"props":10973,"children":10974},{"style":3516},[10975],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":10977,"children":10978},{"style":3673},[10979],{"type":3159,"value":10859},{"type":3154,"tag":3437,"props":10981,"children":10982},{"style":3582},[10983],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":10985,"children":10986},{"style":3516},[10987],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":10989,"children":10990},{"style":3449},[10991],{"type":3159,"value":3860},{"type":3154,"tag":3437,"props":10993,"children":10994},{"style":3516},[10995],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":10997,"children":10998},{"style":3516},[10999],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":11001,"children":11002},{"style":3588},[11003],{"type":3159,"value":10885},{"type":3154,"tag":3437,"props":11005,"children":11006},{"style":3516},[11007],{"type":3159,"value":4529},{"type":3154,"tag":3437,"props":11009,"children":11010},{"style":4532},[11011],{"type":3159,"value":7715},{"type":3154,"tag":3437,"props":11013,"children":11014},{"style":3516},[11015],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":11017,"children":11018},{"style":4532},[11019],{"type":3159,"value":7630},{"type":3154,"tag":3437,"props":11021,"children":11022},{"style":3516},[11023],{"type":3159,"value":6120},{"type":3154,"tag":3437,"props":11025,"children":11026},{"style":3588},[11027],{"type":3159,"value":4406},{"type":3154,"tag":3437,"props":11029,"children":11030},{"style":3516},[11031],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":11033,"children":11034},{"class":3439,"line":3959},[11035],{"type":3154,"tag":3437,"props":11036,"children":11037},{"style":3502},[11038],{"type":3159,"value":11039},"    \u002F\u002F Log that user logged out\n",{"type":3154,"tag":3437,"props":11041,"children":11042},{"class":3439,"line":4014},[11043,11047],{"type":3154,"tag":3437,"props":11044,"children":11045},{"style":3516},[11046],{"type":3159,"value":10945},{"type":3154,"tag":3437,"props":11048,"children":11049},{"style":3582},[11050],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":11052,"children":11053},{"class":3439,"line":4023},[11054,11058],{"type":3154,"tag":3437,"props":11055,"children":11056},{"style":3516},[11057],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":11059,"children":11060},{"style":3511},[11061],{"type":3159,"value":4880},{"type":3154,"tag":3245,"props":11063,"children":11065},{"id":11064},"server-side-rendering",[11066],{"type":3159,"value":11067},"Server-Side Rendering",{"type":3154,"tag":3161,"props":11069,"children":11070},{},[11071,11073,11079,11081],{"type":3159,"value":11072},"You can make authenticated requests both from the client and the server. However, you must use ",{"type":3154,"tag":3299,"props":11074,"children":11076},{"className":11075},[],[11077],{"type":3159,"value":11078},"useRequestFetch()",{"type":3159,"value":11080}," to make authenticated requests during SSR if you are not using ",{"type":3154,"tag":3299,"props":11082,"children":11084},{"className":11083},[],[11085],{"type":3159,"value":11086},"useFetch()",{"type":3154,"tag":3427,"props":11088,"children":11090},{"className":3565,"code":11089,"language":3567,"meta":3028,"style":3028},"\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",[11091],{"type":3154,"tag":3299,"props":11092,"children":11093},{"__ignoreMap":3028},[11094,11133,11141,11231,11238,11246,11298],{"type":3154,"tag":3437,"props":11095,"children":11096},{"class":3439,"line":3114},[11097,11101,11105,11109,11113,11117,11121,11125,11129],{"type":3154,"tag":3437,"props":11098,"children":11099},{"style":3516},[11100],{"type":3159,"value":3579},{"type":3154,"tag":3437,"props":11102,"children":11103},{"style":3582},[11104],{"type":3159,"value":3585},{"type":3154,"tag":3437,"props":11106,"children":11107},{"style":3588},[11108],{"type":3159,"value":3591},{"type":3154,"tag":3437,"props":11110,"children":11111},{"style":3588},[11112],{"type":3159,"value":9892},{"type":3154,"tag":3437,"props":11114,"children":11115},{"style":3516},[11116],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":11118,"children":11119},{"style":3516},[11120],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":11122,"children":11123},{"style":3449},[11124],{"type":3159,"value":4118},{"type":3154,"tag":3437,"props":11126,"children":11127},{"style":3516},[11128],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":11130,"children":11131},{"style":3516},[11132],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":11134,"children":11135},{"class":3439,"line":3080},[11136],{"type":3154,"tag":3437,"props":11137,"children":11138},{"style":3502},[11139],{"type":3159,"value":11140},"\u002F\u002F When using useAsyncData\n",{"type":3154,"tag":3437,"props":11142,"children":11143},{"class":3439,"line":3064},[11144,11148,11152,11157,11161,11165,11169,11174,11178,11182,11187,11191,11195,11199,11203,11208,11213,11217,11222,11226],{"type":3154,"tag":3437,"props":11145,"children":11146},{"style":3588},[11147],{"type":3159,"value":3604},{"type":3154,"tag":3437,"props":11149,"children":11150},{"style":3516},[11151],{"type":3159,"value":3609},{"type":3154,"tag":3437,"props":11153,"children":11154},{"style":3511},[11155],{"type":3159,"value":11156}," data ",{"type":3154,"tag":3437,"props":11158,"children":11159},{"style":3516},[11160],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":11162,"children":11163},{"style":3516},[11164],{"type":3159,"value":3670},{"type":3154,"tag":3437,"props":11166,"children":11167},{"style":4700},[11168],{"type":3159,"value":4956},{"type":3154,"tag":3437,"props":11170,"children":11171},{"style":3673},[11172],{"type":3159,"value":11173}," useAsyncData",{"type":3154,"tag":3437,"props":11175,"children":11176},{"style":3511},[11177],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":11179,"children":11180},{"style":3516},[11181],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":11183,"children":11184},{"style":3449},[11185],{"type":3159,"value":11186},"team",{"type":3154,"tag":3437,"props":11188,"children":11189},{"style":3516},[11190],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":11192,"children":11193},{"style":3516},[11194],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":11196,"children":11197},{"style":3516},[11198],{"type":3159,"value":4401},{"type":3154,"tag":3437,"props":11200,"children":11201},{"style":3588},[11202],{"type":3159,"value":4406},{"type":3154,"tag":3437,"props":11204,"children":11205},{"style":3673},[11206],{"type":3159,"value":11207}," useRequestFetch",{"type":3154,"tag":3437,"props":11209,"children":11210},{"style":3511},[11211],{"type":3159,"value":11212},"()(",{"type":3154,"tag":3437,"props":11214,"children":11215},{"style":3516},[11216],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":11218,"children":11219},{"style":3449},[11220],{"type":3159,"value":11221},"\u002Fapi\u002Fprotected-endpoint",{"type":3154,"tag":3437,"props":11223,"children":11224},{"style":3516},[11225],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":11227,"children":11228},{"style":3511},[11229],{"type":3159,"value":11230},"))\n",{"type":3154,"tag":3437,"props":11232,"children":11233},{"class":3439,"line":3700},[11234],{"type":3154,"tag":3437,"props":11235,"children":11236},{"emptyLinePlaceholder":1200},[11237],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":11239,"children":11240},{"class":3439,"line":3709},[11241],{"type":3154,"tag":3437,"props":11242,"children":11243},{"style":3502},[11244],{"type":3159,"value":11245},"\u002F\u002F useFetch will automatically use useRequestFetch during SSR\n",{"type":3154,"tag":3437,"props":11247,"children":11248},{"class":3439,"line":3726},[11249,11253,11257,11261,11265,11269,11273,11278,11282,11286,11290,11294],{"type":3154,"tag":3437,"props":11250,"children":11251},{"style":3588},[11252],{"type":3159,"value":3604},{"type":3154,"tag":3437,"props":11254,"children":11255},{"style":3516},[11256],{"type":3159,"value":3609},{"type":3154,"tag":3437,"props":11258,"children":11259},{"style":3511},[11260],{"type":3159,"value":11156},{"type":3154,"tag":3437,"props":11262,"children":11263},{"style":3516},[11264],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":11266,"children":11267},{"style":3516},[11268],{"type":3159,"value":3670},{"type":3154,"tag":3437,"props":11270,"children":11271},{"style":4700},[11272],{"type":3159,"value":4956},{"type":3154,"tag":3437,"props":11274,"children":11275},{"style":3673},[11276],{"type":3159,"value":11277}," useFetch",{"type":3154,"tag":3437,"props":11279,"children":11280},{"style":3511},[11281],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":11283,"children":11284},{"style":3516},[11285],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":11287,"children":11288},{"style":3449},[11289],{"type":3159,"value":11221},{"type":3154,"tag":3437,"props":11291,"children":11292},{"style":3516},[11293],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":11295,"children":11296},{"style":3511},[11297],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":11299,"children":11300},{"class":3439,"line":3060},[11301,11305,11309],{"type":3154,"tag":3437,"props":11302,"children":11303},{"style":3516},[11304],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":11306,"children":11307},{"style":3582},[11308],{"type":3159,"value":3585},{"type":3154,"tag":3437,"props":11310,"children":11311},{"style":3516},[11312],{"type":3159,"value":3596},{"type":3154,"tag":4618,"props":11314,"children":11315},{},[11316],{"type":3154,"tag":3161,"props":11317,"children":11318},{},[11319,11321,11328,11330,11335],{"type":3159,"value":11320},"There's ",{"type":3154,"tag":3165,"props":11322,"children":11325},{"href":11323,"rel":11324},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F24813",[3169],[11326],{"type":3159,"value":11327},"an open issue",{"type":3159,"value":11329}," to include credentials in ",{"type":3154,"tag":3299,"props":11331,"children":11333},{"className":11332},[],[11334],{"type":3159,"value":634},{"type":3159,"value":11336}," in Nuxt.",{"type":3154,"tag":3245,"props":11338,"children":11340},{"id":11339},"hybrid-rendering",[11341],{"type":3159,"value":3261},{"type":3154,"tag":3161,"props":11343,"children":11344},{},[11345,11347,11360],{"type":3159,"value":11346},"When using ",{"type":3154,"tag":3165,"props":11348,"children":11351},{"href":11349,"rel":11350},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fguide\u002Fconcepts\u002Frendering#hybrid-rendering",[3169],[11352,11354],{"type":3159,"value":11353},"Nuxt ",{"type":3154,"tag":3299,"props":11355,"children":11357},{"className":11356},[],[11358],{"type":3159,"value":11359},"routeRules",{"type":3159,"value":11361}," 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":3154,"tag":3161,"props":11363,"children":11364},{},[11365],{"type":3159,"value":11366},"This is because the user session is stored in a secure cookie and cannot be accessed during prerendering.",{"type":3154,"tag":3161,"props":11368,"children":11369},{},[11370],{"type":3154,"tag":4109,"props":11371,"children":11372},{},[11373],{"type":3159,"value":11374},"This means that you should not rely on the user session during prerendering.",{"type":3154,"tag":3161,"props":11376,"children":11377},{},[11378,11380,11386,11388,11393],{"type":3159,"value":11379},"You may also choose to instruct Nuxt Auth Utils to fetch the user session only on the client side, with the ",{"type":3154,"tag":3299,"props":11381,"children":11383},{"className":11382},[],[11384],{"type":3159,"value":11385},"loadStrategy",{"type":3159,"value":11387}," option in your ",{"type":3154,"tag":3299,"props":11389,"children":11391},{"className":11390},[],[11392],{"type":3159,"value":233},{"type":3159,"value":4177},{"type":3154,"tag":3427,"props":11395,"children":11397},{"className":4116,"code":11396,"language":4118,"meta":3028,"style":3028},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'client-only'\n  }\n})\n",[11398],{"type":3154,"tag":3299,"props":11399,"children":11400},{"__ignoreMap":3028},[11401,11424,11439,11464,11471],{"type":3154,"tag":3437,"props":11402,"children":11403},{"class":3439,"line":3114},[11404,11408,11412,11416,11420],{"type":3154,"tag":3437,"props":11405,"children":11406},{"style":4700},[11407],{"type":3159,"value":5234},{"type":3154,"tag":3437,"props":11409,"children":11410},{"style":4700},[11411],{"type":3159,"value":5349},{"type":3154,"tag":3437,"props":11413,"children":11414},{"style":3673},[11415],{"type":3159,"value":5354},{"type":3154,"tag":3437,"props":11417,"children":11418},{"style":3511},[11419],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":11421,"children":11422},{"style":3516},[11423],{"type":3159,"value":5364},{"type":3154,"tag":3437,"props":11425,"children":11426},{"class":3439,"line":3080},[11427,11431,11435],{"type":3154,"tag":3437,"props":11428,"children":11429},{"style":3582},[11430],{"type":3159,"value":6624},{"type":3154,"tag":3437,"props":11432,"children":11433},{"style":3516},[11434],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":11436,"children":11437},{"style":3516},[11438],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":11440,"children":11441},{"class":3439,"line":3064},[11442,11447,11451,11455,11460],{"type":3154,"tag":3437,"props":11443,"children":11444},{"style":3582},[11445],{"type":3159,"value":11446},"    loadStrategy",{"type":3154,"tag":3437,"props":11448,"children":11449},{"style":3516},[11450],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":11452,"children":11453},{"style":3516},[11454],{"type":3159,"value":4761},{"type":3154,"tag":3437,"props":11456,"children":11457},{"style":3449},[11458],{"type":3159,"value":11459},"client-only",{"type":3154,"tag":3437,"props":11461,"children":11462},{"style":3516},[11463],{"type":3159,"value":4770},{"type":3154,"tag":3437,"props":11465,"children":11466},{"class":3439,"line":3700},[11467],{"type":3154,"tag":3437,"props":11468,"children":11469},{"style":3516},[11470],{"type":3159,"value":5138},{"type":3154,"tag":3437,"props":11472,"children":11473},{"class":3439,"line":3709},[11474,11478],{"type":3154,"tag":3437,"props":11475,"children":11476},{"style":3516},[11477],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":11479,"children":11480},{"style":3511},[11481],{"type":3159,"value":4880},{"type":3154,"tag":3161,"props":11483,"children":11484},{},[11485,11487,11492,11494,11499,11500,11506],{"type":3159,"value":11486},"When using the ",{"type":3154,"tag":3299,"props":11488,"children":11490},{"className":11489},[],[11491],{"type":3159,"value":11459},{"type":3159,"value":11493}," load strategy, the user session can still be manually fetched on the server side by calling ",{"type":3154,"tag":3299,"props":11495,"children":11497},{"className":11496},[],[11498],{"type":3159,"value":10872},{"type":3159,"value":7385},{"type":3154,"tag":3299,"props":11501,"children":11503},{"className":11502},[],[11504],{"type":3159,"value":11505},"useUserSession",{"type":3159,"value":11507}," composable.",{"type":3154,"tag":3557,"props":11509,"children":11511},{"id":11510},"disable-session-loading",[11512],{"type":3159,"value":11513},"Disable session loading",{"type":3154,"tag":3161,"props":11515,"children":11516},{},[11517,11519,11524,11525,11530],{"type":3159,"value":11518},"You may also choose to disable session loading entirely, with the ",{"type":3154,"tag":3299,"props":11520,"children":11522},{"className":11521},[],[11523],{"type":3159,"value":11385},{"type":3159,"value":11387},{"type":3154,"tag":3299,"props":11526,"children":11528},{"className":11527},[],[11529],{"type":3159,"value":233},{"type":3159,"value":4177},{"type":3154,"tag":3427,"props":11532,"children":11534},{"className":4116,"code":11533,"language":4118,"meta":3028,"style":3028},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'none'\n  }\n})\n",[11535],{"type":3154,"tag":3299,"props":11536,"children":11537},{"__ignoreMap":3028},[11538,11561,11576,11600,11607],{"type":3154,"tag":3437,"props":11539,"children":11540},{"class":3439,"line":3114},[11541,11545,11549,11553,11557],{"type":3154,"tag":3437,"props":11542,"children":11543},{"style":4700},[11544],{"type":3159,"value":5234},{"type":3154,"tag":3437,"props":11546,"children":11547},{"style":4700},[11548],{"type":3159,"value":5349},{"type":3154,"tag":3437,"props":11550,"children":11551},{"style":3673},[11552],{"type":3159,"value":5354},{"type":3154,"tag":3437,"props":11554,"children":11555},{"style":3511},[11556],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":11558,"children":11559},{"style":3516},[11560],{"type":3159,"value":5364},{"type":3154,"tag":3437,"props":11562,"children":11563},{"class":3439,"line":3080},[11564,11568,11572],{"type":3154,"tag":3437,"props":11565,"children":11566},{"style":3582},[11567],{"type":3159,"value":6624},{"type":3154,"tag":3437,"props":11569,"children":11570},{"style":3516},[11571],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":11573,"children":11574},{"style":3516},[11575],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":11577,"children":11578},{"class":3439,"line":3064},[11579,11583,11587,11591,11596],{"type":3154,"tag":3437,"props":11580,"children":11581},{"style":3582},[11582],{"type":3159,"value":11446},{"type":3154,"tag":3437,"props":11584,"children":11585},{"style":3516},[11586],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":11588,"children":11589},{"style":3516},[11590],{"type":3159,"value":4761},{"type":3154,"tag":3437,"props":11592,"children":11593},{"style":3449},[11594],{"type":3159,"value":11595},"none",{"type":3154,"tag":3437,"props":11597,"children":11598},{"style":3516},[11599],{"type":3159,"value":4770},{"type":3154,"tag":3437,"props":11601,"children":11602},{"class":3439,"line":3700},[11603],{"type":3154,"tag":3437,"props":11604,"children":11605},{"style":3516},[11606],{"type":3159,"value":5138},{"type":3154,"tag":3437,"props":11608,"children":11609},{"class":3439,"line":3709},[11610,11614],{"type":3154,"tag":3437,"props":11611,"children":11612},{"style":3516},[11613],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":11615,"children":11616},{"style":3511},[11617],{"type":3159,"value":4880},{"type":3154,"tag":3161,"props":11619,"children":11620},{},[11621,11622,11627,11629,11635],{"type":3159,"value":11486},{"type":3154,"tag":3299,"props":11623,"children":11625},{"className":11624},[],[11626],{"type":3159,"value":11595},{"type":3159,"value":11628}," load strategy, the user session can still be manually fetched by calling ",{"type":3154,"tag":3299,"props":11630,"children":11632},{"className":11631},[],[11633],{"type":3159,"value":11634},"useUserSession().fetch()",{"type":3159,"value":3392},{"type":3154,"tag":3557,"props":11637,"children":11639},{"id":11638},"authstate-component",[11640,11645],{"type":3154,"tag":3299,"props":11641,"children":11643},{"className":11642},[],[11644],{"type":3159,"value":3328},{"type":3159,"value":3330},{"type":3154,"tag":3161,"props":11647,"children":11648},{},[11649,11651,11656],{"type":3159,"value":11650},"You can use the ",{"type":3154,"tag":3299,"props":11652,"children":11654},{"className":11653},[],[11655],{"type":3159,"value":3328},{"type":3159,"value":11657}," component to safely display auth-related data in your components without worrying about the rendering mode.",{"type":3154,"tag":3161,"props":11659,"children":11660},{},[11661],{"type":3159,"value":11662},"One common use case if the Login button in the header:",{"type":3154,"tag":3427,"props":11664,"children":11666},{"className":3565,"code":11665,"language":3567,"meta":3028,"style":3028},"\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",[11667],{"type":3154,"tag":3299,"props":11668,"children":11669},{"__ignoreMap":3028},[11670,11685,11701,11755,11827,11886,11902,11917],{"type":3154,"tag":3437,"props":11671,"children":11672},{"class":3439,"line":3114},[11673,11677,11681],{"type":3154,"tag":3437,"props":11674,"children":11675},{"style":3516},[11676],{"type":3159,"value":3579},{"type":3154,"tag":3437,"props":11678,"children":11679},{"style":3582},[11680],{"type":3159,"value":3719},{"type":3154,"tag":3437,"props":11682,"children":11683},{"style":3516},[11684],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":11686,"children":11687},{"class":3439,"line":3080},[11688,11692,11697],{"type":3154,"tag":3437,"props":11689,"children":11690},{"style":3516},[11691],{"type":3159,"value":3732},{"type":3154,"tag":3437,"props":11693,"children":11694},{"style":3582},[11695],{"type":3159,"value":11696},"header",{"type":3154,"tag":3437,"props":11698,"children":11699},{"style":3516},[11700],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":11702,"children":11703},{"class":3439,"line":3064},[11704,11708,11713,11718,11722,11726,11731,11735,11739,11743,11747,11751],{"type":3154,"tag":3437,"props":11705,"children":11706},{"style":3516},[11707],{"type":3159,"value":3772},{"type":3154,"tag":3437,"props":11709,"children":11710},{"style":3582},[11711],{"type":3159,"value":11712},"AuthState",{"type":3154,"tag":3437,"props":11714,"children":11715},{"style":3588},[11716],{"type":3159,"value":11717}," v-slot",{"type":3154,"tag":3437,"props":11719,"children":11720},{"style":3516},[11721],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":11723,"children":11724},{"style":3516},[11725],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":11727,"children":11728},{"style":3516},[11729],{"type":3159,"value":11730},"{ ",{"type":3154,"tag":3437,"props":11732,"children":11733},{"style":3511},[11734],{"type":3159,"value":3756},{"type":3154,"tag":3437,"props":11736,"children":11737},{"style":3516},[11738],{"type":3159,"value":7319},{"type":3154,"tag":3437,"props":11740,"children":11741},{"style":3511},[11742],{"type":3159,"value":3860},{"type":3154,"tag":3437,"props":11744,"children":11745},{"style":3516},[11746],{"type":3159,"value":7550},{"type":3154,"tag":3437,"props":11748,"children":11749},{"style":3516},[11750],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":11752,"children":11753},{"style":3516},[11754],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":11756,"children":11757},{"class":3439,"line":3700},[11758,11763,11767,11771,11775,11779,11783,11787,11791,11795,11799,11803,11807,11811,11815,11819,11823],{"type":3154,"tag":3437,"props":11759,"children":11760},{"style":3516},[11761],{"type":3159,"value":11762},"      \u003C",{"type":3154,"tag":3437,"props":11764,"children":11765},{"style":3582},[11766],{"type":3159,"value":3842},{"type":3154,"tag":3437,"props":11768,"children":11769},{"style":3588},[11770],{"type":3159,"value":3742},{"type":3154,"tag":3437,"props":11772,"children":11773},{"style":3516},[11774],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":11776,"children":11777},{"style":3516},[11778],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":11780,"children":11781},{"style":3449},[11782],{"type":3159,"value":3756},{"type":3154,"tag":3437,"props":11784,"children":11785},{"style":3516},[11786],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":11788,"children":11789},{"style":3588},[11790],{"type":3159,"value":3847},{"type":3154,"tag":3437,"props":11792,"children":11793},{"style":3516},[11794],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":11796,"children":11797},{"style":3516},[11798],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":11800,"children":11801},{"style":3449},[11802],{"type":3159,"value":3860},{"type":3154,"tag":3437,"props":11804,"children":11805},{"style":3516},[11806],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":11808,"children":11809},{"style":3516},[11810],{"type":3159,"value":3781},{"type":3154,"tag":3437,"props":11812,"children":11813},{"style":3511},[11814],{"type":3159,"value":3873},{"type":3154,"tag":3437,"props":11816,"children":11817},{"style":3516},[11818],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":11820,"children":11821},{"style":3582},[11822],{"type":3159,"value":3842},{"type":3154,"tag":3437,"props":11824,"children":11825},{"style":3516},[11826],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":11828,"children":11829},{"class":3439,"line":3709},[11830,11834,11839,11843,11848,11852,11856,11861,11865,11869,11874,11878,11882],{"type":3154,"tag":3437,"props":11831,"children":11832},{"style":3516},[11833],{"type":3159,"value":11762},{"type":3154,"tag":3437,"props":11835,"children":11836},{"style":3582},[11837],{"type":3159,"value":11838},"NuxtLink",{"type":3154,"tag":3437,"props":11840,"children":11841},{"style":4700},[11842],{"type":3159,"value":3919},{"type":3154,"tag":3437,"props":11844,"children":11845},{"style":3588},[11846],{"type":3159,"value":11847}," to",{"type":3154,"tag":3437,"props":11849,"children":11850},{"style":3516},[11851],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":11853,"children":11854},{"style":3516},[11855],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":11857,"children":11858},{"style":3449},[11859],{"type":3159,"value":11860},"\u002Flogin",{"type":3154,"tag":3437,"props":11862,"children":11863},{"style":3516},[11864],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":11866,"children":11867},{"style":3516},[11868],{"type":3159,"value":3781},{"type":3154,"tag":3437,"props":11870,"children":11871},{"style":3511},[11872],{"type":3159,"value":11873},"Login",{"type":3154,"tag":3437,"props":11875,"children":11876},{"style":3516},[11877],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":11879,"children":11880},{"style":3582},[11881],{"type":3159,"value":11838},{"type":3154,"tag":3437,"props":11883,"children":11884},{"style":3516},[11885],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":11887,"children":11888},{"class":3439,"line":3726},[11889,11894,11898],{"type":3154,"tag":3437,"props":11890,"children":11891},{"style":3516},[11892],{"type":3159,"value":11893},"    \u003C\u002F",{"type":3154,"tag":3437,"props":11895,"children":11896},{"style":3582},[11897],{"type":3159,"value":11712},{"type":3154,"tag":3437,"props":11899,"children":11900},{"style":3516},[11901],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":11903,"children":11904},{"class":3439,"line":3060},[11905,11909,11913],{"type":3154,"tag":3437,"props":11906,"children":11907},{"style":3516},[11908],{"type":3159,"value":3894},{"type":3154,"tag":3437,"props":11910,"children":11911},{"style":3582},[11912],{"type":3159,"value":11696},{"type":3154,"tag":3437,"props":11914,"children":11915},{"style":3516},[11916],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":11918,"children":11919},{"class":3439,"line":3056},[11920,11924,11928],{"type":3154,"tag":3437,"props":11921,"children":11922},{"style":3516},[11923],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":11925,"children":11926},{"style":3582},[11927],{"type":3159,"value":3719},{"type":3154,"tag":3437,"props":11929,"children":11930},{"style":3516},[11931],{"type":3159,"value":3596},{"type":3154,"tag":3161,"props":11933,"children":11934},{},[11935,11937,11942],{"type":3159,"value":11936},"If the page is cached or prerendered or the load strategy set as ",{"type":3154,"tag":3299,"props":11938,"children":11940},{"className":11939},[],[11941],{"type":3159,"value":11459},{"type":3159,"value":11943},", nothing will be rendered until the user session is fetched on the client-side.",{"type":3154,"tag":3161,"props":11945,"children":11946},{},[11947,11948,11954],{"type":3159,"value":11650},{"type":3154,"tag":3299,"props":11949,"children":11951},{"className":11950},[],[11952],{"type":3159,"value":11953},"placeholder",{"type":3159,"value":11955}," slot to show a placeholder on server-side and while the user session is being fetched on client-side for the prerendered pages:",{"type":3154,"tag":3427,"props":11957,"children":11959},{"className":3565,"code":11958,"language":3567,"meta":3028,"style":3028},"\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",[11960],{"type":3154,"tag":3299,"props":11961,"children":11962},{"__ignoreMap":3028},[11963,11978,11993,12008,12066,12138,12193,12209,12232,12269,12284,12299,12314],{"type":3154,"tag":3437,"props":11964,"children":11965},{"class":3439,"line":3114},[11966,11970,11974],{"type":3154,"tag":3437,"props":11967,"children":11968},{"style":3516},[11969],{"type":3159,"value":3579},{"type":3154,"tag":3437,"props":11971,"children":11972},{"style":3582},[11973],{"type":3159,"value":3719},{"type":3154,"tag":3437,"props":11975,"children":11976},{"style":3516},[11977],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":11979,"children":11980},{"class":3439,"line":3080},[11981,11985,11989],{"type":3154,"tag":3437,"props":11982,"children":11983},{"style":3516},[11984],{"type":3159,"value":3732},{"type":3154,"tag":3437,"props":11986,"children":11987},{"style":3582},[11988],{"type":3159,"value":11696},{"type":3154,"tag":3437,"props":11990,"children":11991},{"style":3516},[11992],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":11994,"children":11995},{"class":3439,"line":3064},[11996,12000,12004],{"type":3154,"tag":3437,"props":11997,"children":11998},{"style":3516},[11999],{"type":3159,"value":3772},{"type":3154,"tag":3437,"props":12001,"children":12002},{"style":3582},[12003],{"type":3159,"value":11712},{"type":3154,"tag":3437,"props":12005,"children":12006},{"style":3516},[12007],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":12009,"children":12010},{"class":3439,"line":3700},[12011,12015,12019,12024,12029,12033,12037,12041,12045,12049,12054,12058,12062],{"type":3154,"tag":3437,"props":12012,"children":12013},{"style":3516},[12014],{"type":3159,"value":11762},{"type":3154,"tag":3437,"props":12016,"children":12017},{"style":3582},[12018],{"type":3159,"value":3719},{"type":3154,"tag":3437,"props":12020,"children":12021},{"style":3516},[12022],{"type":3159,"value":12023}," #",{"type":3154,"tag":3437,"props":12025,"children":12026},{"style":3588},[12027],{"type":3159,"value":12028},"default",{"type":3154,"tag":3437,"props":12030,"children":12031},{"style":3516},[12032],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":12034,"children":12035},{"style":3516},[12036],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":12038,"children":12039},{"style":3516},[12040],{"type":3159,"value":7809},{"type":3154,"tag":3437,"props":12042,"children":12043},{"style":3511},[12044],{"type":3159,"value":3614},{"type":3154,"tag":3437,"props":12046,"children":12047},{"style":3516},[12048],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":12050,"children":12051},{"style":3511},[12052],{"type":3159,"value":12053}," clear ",{"type":3154,"tag":3437,"props":12055,"children":12056},{"style":3516},[12057],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":12059,"children":12060},{"style":3516},[12061],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":12063,"children":12064},{"style":3516},[12065],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":12067,"children":12068},{"class":3439,"line":3709},[12069,12074,12078,12082,12086,12090,12094,12098,12102,12106,12110,12114,12118,12122,12126,12130,12134],{"type":3154,"tag":3437,"props":12070,"children":12071},{"style":3516},[12072],{"type":3159,"value":12073},"        \u003C",{"type":3154,"tag":3437,"props":12075,"children":12076},{"style":3582},[12077],{"type":3159,"value":3842},{"type":3154,"tag":3437,"props":12079,"children":12080},{"style":3588},[12081],{"type":3159,"value":3742},{"type":3154,"tag":3437,"props":12083,"children":12084},{"style":3516},[12085],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":12087,"children":12088},{"style":3516},[12089],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":12091,"children":12092},{"style":3449},[12093],{"type":3159,"value":3756},{"type":3154,"tag":3437,"props":12095,"children":12096},{"style":3516},[12097],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":12099,"children":12100},{"style":3588},[12101],{"type":3159,"value":3847},{"type":3154,"tag":3437,"props":12103,"children":12104},{"style":3516},[12105],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":12107,"children":12108},{"style":3516},[12109],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":12111,"children":12112},{"style":3449},[12113],{"type":3159,"value":3860},{"type":3154,"tag":3437,"props":12115,"children":12116},{"style":3516},[12117],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":12119,"children":12120},{"style":3516},[12121],{"type":3159,"value":3781},{"type":3154,"tag":3437,"props":12123,"children":12124},{"style":3511},[12125],{"type":3159,"value":3873},{"type":3154,"tag":3437,"props":12127,"children":12128},{"style":3516},[12129],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":12131,"children":12132},{"style":3582},[12133],{"type":3159,"value":3842},{"type":3154,"tag":3437,"props":12135,"children":12136},{"style":3516},[12137],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":12139,"children":12140},{"class":3439,"line":3726},[12141,12145,12149,12153,12157,12161,12165,12169,12173,12177,12181,12185,12189],{"type":3154,"tag":3437,"props":12142,"children":12143},{"style":3516},[12144],{"type":3159,"value":12073},{"type":3154,"tag":3437,"props":12146,"children":12147},{"style":3582},[12148],{"type":3159,"value":11838},{"type":3154,"tag":3437,"props":12150,"children":12151},{"style":4700},[12152],{"type":3159,"value":3919},{"type":3154,"tag":3437,"props":12154,"children":12155},{"style":3588},[12156],{"type":3159,"value":11847},{"type":3154,"tag":3437,"props":12158,"children":12159},{"style":3516},[12160],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":12162,"children":12163},{"style":3516},[12164],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":12166,"children":12167},{"style":3449},[12168],{"type":3159,"value":11860},{"type":3154,"tag":3437,"props":12170,"children":12171},{"style":3516},[12172],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":12174,"children":12175},{"style":3516},[12176],{"type":3159,"value":3781},{"type":3154,"tag":3437,"props":12178,"children":12179},{"style":3511},[12180],{"type":3159,"value":11873},{"type":3154,"tag":3437,"props":12182,"children":12183},{"style":3516},[12184],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":12186,"children":12187},{"style":3582},[12188],{"type":3159,"value":11838},{"type":3154,"tag":3437,"props":12190,"children":12191},{"style":3516},[12192],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":12194,"children":12195},{"class":3439,"line":3060},[12196,12201,12205],{"type":3154,"tag":3437,"props":12197,"children":12198},{"style":3516},[12199],{"type":3159,"value":12200},"      \u003C\u002F",{"type":3154,"tag":3437,"props":12202,"children":12203},{"style":3582},[12204],{"type":3159,"value":3719},{"type":3154,"tag":3437,"props":12206,"children":12207},{"style":3516},[12208],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":12210,"children":12211},{"class":3439,"line":3056},[12212,12216,12220,12224,12228],{"type":3154,"tag":3437,"props":12213,"children":12214},{"style":3516},[12215],{"type":3159,"value":11762},{"type":3154,"tag":3437,"props":12217,"children":12218},{"style":3582},[12219],{"type":3159,"value":3719},{"type":3154,"tag":3437,"props":12221,"children":12222},{"style":3516},[12223],{"type":3159,"value":12023},{"type":3154,"tag":3437,"props":12225,"children":12226},{"style":3588},[12227],{"type":3159,"value":11953},{"type":3154,"tag":3437,"props":12229,"children":12230},{"style":3516},[12231],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":12233,"children":12234},{"class":3439,"line":3052},[12235,12239,12243,12248,12252,12257,12261,12265],{"type":3154,"tag":3437,"props":12236,"children":12237},{"style":3516},[12238],{"type":3159,"value":12073},{"type":3154,"tag":3437,"props":12240,"children":12241},{"style":3582},[12242],{"type":3159,"value":3842},{"type":3154,"tag":3437,"props":12244,"children":12245},{"style":3588},[12246],{"type":3159,"value":12247}," disabled",{"type":3154,"tag":3437,"props":12249,"children":12250},{"style":3516},[12251],{"type":3159,"value":3781},{"type":3154,"tag":3437,"props":12253,"children":12254},{"style":3511},[12255],{"type":3159,"value":12256},"Loading...",{"type":3154,"tag":3437,"props":12258,"children":12259},{"style":3516},[12260],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":12262,"children":12263},{"style":3582},[12264],{"type":3159,"value":3842},{"type":3154,"tag":3437,"props":12266,"children":12267},{"style":3516},[12268],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":12270,"children":12271},{"class":3439,"line":3888},[12272,12276,12280],{"type":3154,"tag":3437,"props":12273,"children":12274},{"style":3516},[12275],{"type":3159,"value":12200},{"type":3154,"tag":3437,"props":12277,"children":12278},{"style":3582},[12279],{"type":3159,"value":3719},{"type":3154,"tag":3437,"props":12281,"children":12282},{"style":3516},[12283],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":12285,"children":12286},{"class":3439,"line":3905},[12287,12291,12295],{"type":3154,"tag":3437,"props":12288,"children":12289},{"style":3516},[12290],{"type":3159,"value":11893},{"type":3154,"tag":3437,"props":12292,"children":12293},{"style":3582},[12294],{"type":3159,"value":11712},{"type":3154,"tag":3437,"props":12296,"children":12297},{"style":3516},[12298],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":12300,"children":12301},{"class":3439,"line":3926},[12302,12306,12310],{"type":3154,"tag":3437,"props":12303,"children":12304},{"style":3516},[12305],{"type":3159,"value":3894},{"type":3154,"tag":3437,"props":12307,"children":12308},{"style":3582},[12309],{"type":3159,"value":11696},{"type":3154,"tag":3437,"props":12311,"children":12312},{"style":3516},[12313],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":12315,"children":12316},{"class":3439,"line":3959},[12317,12321,12325],{"type":3154,"tag":3437,"props":12318,"children":12319},{"style":3516},[12320],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":12322,"children":12323},{"style":3582},[12324],{"type":3159,"value":3719},{"type":3154,"tag":3437,"props":12326,"children":12327},{"style":3516},[12328],{"type":3159,"value":3596},{"type":3154,"tag":3161,"props":12330,"children":12331},{},[12332,12334,12339,12341,12347,12349,12355],{"type":3159,"value":12333},"If you are caching your routes with ",{"type":3154,"tag":3299,"props":12335,"children":12337},{"className":12336},[],[12338],{"type":3159,"value":11359},{"type":3159,"value":12340},", please make sure to use ",{"type":3154,"tag":3165,"props":12342,"children":12345},{"href":12343,"rel":12344},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fnitro",[3169],[12346],{"type":3159,"value":837},{"type":3159,"value":12348}," >= ",{"type":3154,"tag":3299,"props":12350,"children":12352},{"className":12351},[],[12353],{"type":3159,"value":12354},"2.9.7",{"type":3159,"value":12356}," to support the client-side fetching of the user session.",{"type":3154,"tag":3245,"props":12358,"children":12360},{"id":12359},"websocket-support",[12361],{"type":3159,"value":12362},"WebSocket Support",{"type":3154,"tag":3161,"props":12364,"children":12365},{},[12366,12368,12375],{"type":3159,"value":12367},"Nuxt Auth Utils is compatible with ",{"type":3154,"tag":3165,"props":12369,"children":12372},{"href":12370,"rel":12371},"https:\u002F\u002Fnitro.build\u002Fguide\u002Fwebsocket",[3169],[12373],{"type":3159,"value":12374},"Nitro WebSockets",{"type":3159,"value":3392},{"type":3154,"tag":3161,"props":12377,"children":12378},{},[12379,12381,12387,12388,12393],{"type":3159,"value":12380},"Make sure to enable the ",{"type":3154,"tag":3299,"props":12382,"children":12384},{"className":12383},[],[12385],{"type":3159,"value":12386},"experimental.websocket",{"type":3159,"value":11387},{"type":3154,"tag":3299,"props":12389,"children":12391},{"className":12390},[],[12392],{"type":3159,"value":233},{"type":3159,"value":4177},{"type":3154,"tag":3427,"props":12395,"children":12397},{"className":4116,"code":12396,"language":4118,"meta":3028,"style":3028},"export default defineNuxtConfig({\n  nitro: {\n    experimental: {\n      websocket: true\n    }\n  }\n})\n",[12398],{"type":3154,"tag":3299,"props":12399,"children":12400},{"__ignoreMap":3028},[12401,12424,12440,12456,12472,12479,12486],{"type":3154,"tag":3437,"props":12402,"children":12403},{"class":3439,"line":3114},[12404,12408,12412,12416,12420],{"type":3154,"tag":3437,"props":12405,"children":12406},{"style":4700},[12407],{"type":3159,"value":5234},{"type":3154,"tag":3437,"props":12409,"children":12410},{"style":4700},[12411],{"type":3159,"value":5349},{"type":3154,"tag":3437,"props":12413,"children":12414},{"style":3673},[12415],{"type":3159,"value":5354},{"type":3154,"tag":3437,"props":12417,"children":12418},{"style":3511},[12419],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":12421,"children":12422},{"style":3516},[12423],{"type":3159,"value":5364},{"type":3154,"tag":3437,"props":12425,"children":12426},{"class":3439,"line":3080},[12427,12432,12436],{"type":3154,"tag":3437,"props":12428,"children":12429},{"style":3582},[12430],{"type":3159,"value":12431},"  nitro",{"type":3154,"tag":3437,"props":12433,"children":12434},{"style":3516},[12435],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":12437,"children":12438},{"style":3516},[12439],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":12441,"children":12442},{"class":3439,"line":3064},[12443,12448,12452],{"type":3154,"tag":3437,"props":12444,"children":12445},{"style":3582},[12446],{"type":3159,"value":12447},"    experimental",{"type":3154,"tag":3437,"props":12449,"children":12450},{"style":3516},[12451],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":12453,"children":12454},{"style":3516},[12455],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":12457,"children":12458},{"class":3439,"line":3700},[12459,12464,12468],{"type":3154,"tag":3437,"props":12460,"children":12461},{"style":3582},[12462],{"type":3159,"value":12463},"      websocket",{"type":3154,"tag":3437,"props":12465,"children":12466},{"style":3516},[12467],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":12469,"children":12470},{"style":5884},[12471],{"type":3159,"value":5887},{"type":3154,"tag":3437,"props":12473,"children":12474},{"class":3439,"line":3709},[12475],{"type":3154,"tag":3437,"props":12476,"children":12477},{"style":3516},[12478],{"type":3159,"value":5490},{"type":3154,"tag":3437,"props":12480,"children":12481},{"class":3439,"line":3726},[12482],{"type":3154,"tag":3437,"props":12483,"children":12484},{"style":3516},[12485],{"type":3159,"value":5138},{"type":3154,"tag":3437,"props":12487,"children":12488},{"class":3439,"line":3060},[12489,12493],{"type":3154,"tag":3437,"props":12490,"children":12491},{"style":3516},[12492],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":12494,"children":12495},{"style":3511},[12496],{"type":3159,"value":4880},{"type":3154,"tag":3161,"props":12498,"children":12499},{},[12500,12501,12507,12509,12515],{"type":3159,"value":11650},{"type":3154,"tag":3299,"props":12502,"children":12504},{"className":12503},[],[12505],{"type":3159,"value":12506},"requireUserSession",{"type":3159,"value":12508}," function in the ",{"type":3154,"tag":3299,"props":12510,"children":12512},{"className":12511},[],[12513],{"type":3159,"value":12514},"upgrade",{"type":3159,"value":12516}," function to check if the user is authenticated before upgrading the WebSocket connection.",{"type":3154,"tag":3427,"props":12518,"children":12520},{"className":4116,"code":12519,"language":4118,"meta":3028,"style":3028},"\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",[12521],{"type":3154,"tag":3299,"props":12522,"children":12523},{"__ignoreMap":3028},[12524,12532,12556,12585,12593,12616,12623,12652,12695,12702,12765,12772,12804,12849,12856],{"type":3154,"tag":3437,"props":12525,"children":12526},{"class":3439,"line":3114},[12527],{"type":3154,"tag":3437,"props":12528,"children":12529},{"style":3502},[12530],{"type":3159,"value":12531},"\u002F\u002F server\u002Froutes\u002Fws.ts\n",{"type":3154,"tag":3437,"props":12533,"children":12534},{"class":3439,"line":3080},[12535,12539,12543,12548,12552],{"type":3154,"tag":3437,"props":12536,"children":12537},{"style":4700},[12538],{"type":3159,"value":5234},{"type":3154,"tag":3437,"props":12540,"children":12541},{"style":4700},[12542],{"type":3159,"value":5349},{"type":3154,"tag":3437,"props":12544,"children":12545},{"style":3673},[12546],{"type":3159,"value":12547}," defineWebSocketHandler",{"type":3154,"tag":3437,"props":12549,"children":12550},{"style":3511},[12551],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":12553,"children":12554},{"style":3516},[12555],{"type":3159,"value":5364},{"type":3154,"tag":3437,"props":12557,"children":12558},{"class":3439,"line":3064},[12559,12563,12568,12572,12577,12581],{"type":3154,"tag":3437,"props":12560,"children":12561},{"style":3588},[12562],{"type":3159,"value":5902},{"type":3154,"tag":3437,"props":12564,"children":12565},{"style":3582},[12566],{"type":3159,"value":12567}," upgrade",{"type":3154,"tag":3437,"props":12569,"children":12570},{"style":3516},[12571],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":12573,"children":12574},{"style":4532},[12575],{"type":3159,"value":12576},"request",{"type":3154,"tag":3437,"props":12578,"children":12579},{"style":3516},[12580],{"type":3159,"value":6120},{"type":3154,"tag":3437,"props":12582,"children":12583},{"style":3516},[12584],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":12586,"children":12587},{"class":3439,"line":3700},[12588],{"type":3154,"tag":3437,"props":12589,"children":12590},{"style":3502},[12591],{"type":3159,"value":12592},"    \u002F\u002F Make sure the user is authenticated before upgrading the WebSocket connection\n",{"type":3154,"tag":3437,"props":12594,"children":12595},{"class":3439,"line":3709},[12596,12600,12604,12608,12612],{"type":3154,"tag":3437,"props":12597,"children":12598},{"style":4700},[12599],{"type":3159,"value":5953},{"type":3154,"tag":3437,"props":12601,"children":12602},{"style":3673},[12603],{"type":3159,"value":5036},{"type":3154,"tag":3437,"props":12605,"children":12606},{"style":3582},[12607],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":12609,"children":12610},{"style":3511},[12611],{"type":3159,"value":12576},{"type":3154,"tag":3437,"props":12613,"children":12614},{"style":3582},[12615],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":12617,"children":12618},{"class":3439,"line":3726},[12619],{"type":3154,"tag":3437,"props":12620,"children":12621},{"style":3516},[12622],{"type":3159,"value":4778},{"type":3154,"tag":3437,"props":12624,"children":12625},{"class":3439,"line":3060},[12626,12630,12635,12639,12644,12648],{"type":3154,"tag":3437,"props":12627,"children":12628},{"style":3588},[12629],{"type":3159,"value":5902},{"type":3154,"tag":3437,"props":12631,"children":12632},{"style":3582},[12633],{"type":3159,"value":12634}," open",{"type":3154,"tag":3437,"props":12636,"children":12637},{"style":3516},[12638],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":12640,"children":12641},{"style":4532},[12642],{"type":3159,"value":12643},"peer",{"type":3154,"tag":3437,"props":12645,"children":12646},{"style":3516},[12647],{"type":3159,"value":6120},{"type":3154,"tag":3437,"props":12649,"children":12650},{"style":3516},[12651],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":12653,"children":12654},{"class":3439,"line":3056},[12655,12659,12663,12667,12671,12675,12679,12683,12687,12691],{"type":3154,"tag":3437,"props":12656,"children":12657},{"style":3588},[12658],{"type":3159,"value":7670},{"type":3154,"tag":3437,"props":12660,"children":12661},{"style":3516},[12662],{"type":3159,"value":3609},{"type":3154,"tag":3437,"props":12664,"children":12665},{"style":3511},[12666],{"type":3159,"value":3624},{"type":3154,"tag":3437,"props":12668,"children":12669},{"style":3516},[12670],{"type":3159,"value":7550},{"type":3154,"tag":3437,"props":12672,"children":12673},{"style":3516},[12674],{"type":3159,"value":3670},{"type":3154,"tag":3437,"props":12676,"children":12677},{"style":4700},[12678],{"type":3159,"value":4956},{"type":3154,"tag":3437,"props":12680,"children":12681},{"style":3673},[12682],{"type":3159,"value":5036},{"type":3154,"tag":3437,"props":12684,"children":12685},{"style":3582},[12686],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":12688,"children":12689},{"style":3511},[12690],{"type":3159,"value":12643},{"type":3154,"tag":3437,"props":12692,"children":12693},{"style":3582},[12694],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":12696,"children":12697},{"class":3439,"line":3052},[12698],{"type":3154,"tag":3437,"props":12699,"children":12700},{"emptyLinePlaceholder":1200},[12701],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":12703,"children":12704},{"class":3439,"line":3888},[12705,12710,12714,12719,12723,12727,12732,12736,12740,12744,12749,12753,12757,12761],{"type":3154,"tag":3437,"props":12706,"children":12707},{"style":3511},[12708],{"type":3159,"value":12709},"    peer",{"type":3154,"tag":3437,"props":12711,"children":12712},{"style":3516},[12713],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":12715,"children":12716},{"style":3673},[12717],{"type":3159,"value":12718},"send",{"type":3154,"tag":3437,"props":12720,"children":12721},{"style":3582},[12722],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":12724,"children":12725},{"style":3516},[12726],{"type":3159,"value":8138},{"type":3154,"tag":3437,"props":12728,"children":12729},{"style":3449},[12730],{"type":3159,"value":12731},"Hello, ",{"type":3154,"tag":3437,"props":12733,"children":12734},{"style":3516},[12735],{"type":3159,"value":9477},{"type":3154,"tag":3437,"props":12737,"children":12738},{"style":3511},[12739],{"type":3159,"value":7724},{"type":3154,"tag":3437,"props":12741,"children":12742},{"style":3516},[12743],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":12745,"children":12746},{"style":3511},[12747],{"type":3159,"value":12748},"name",{"type":3154,"tag":3437,"props":12750,"children":12751},{"style":3516},[12752],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":12754,"children":12755},{"style":3449},[12756],{"type":3159,"value":8163},{"type":3154,"tag":3437,"props":12758,"children":12759},{"style":3516},[12760],{"type":3159,"value":8138},{"type":3154,"tag":3437,"props":12762,"children":12763},{"style":3582},[12764],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":12766,"children":12767},{"class":3439,"line":3905},[12768],{"type":3154,"tag":3437,"props":12769,"children":12770},{"style":3516},[12771],{"type":3159,"value":4778},{"type":3154,"tag":3437,"props":12773,"children":12774},{"class":3439,"line":3926},[12775,12780,12784,12788,12792,12796,12800],{"type":3154,"tag":3437,"props":12776,"children":12777},{"style":3582},[12778],{"type":3159,"value":12779},"  message",{"type":3154,"tag":3437,"props":12781,"children":12782},{"style":3516},[12783],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":12785,"children":12786},{"style":4532},[12787],{"type":3159,"value":12643},{"type":3154,"tag":3437,"props":12789,"children":12790},{"style":3516},[12791],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":12793,"children":12794},{"style":4532},[12795],{"type":3159,"value":7832},{"type":3154,"tag":3437,"props":12797,"children":12798},{"style":3516},[12799],{"type":3159,"value":6120},{"type":3154,"tag":3437,"props":12801,"children":12802},{"style":3516},[12803],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":12805,"children":12806},{"class":3439,"line":3959},[12807,12811,12815,12819,12823,12827,12832,12836,12841,12845],{"type":3154,"tag":3437,"props":12808,"children":12809},{"style":3511},[12810],{"type":3159,"value":12709},{"type":3154,"tag":3437,"props":12812,"children":12813},{"style":3516},[12814],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":12816,"children":12817},{"style":3673},[12818],{"type":3159,"value":12718},{"type":3154,"tag":3437,"props":12820,"children":12821},{"style":3582},[12822],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":12824,"children":12825},{"style":3516},[12826],{"type":3159,"value":8138},{"type":3154,"tag":3437,"props":12828,"children":12829},{"style":3449},[12830],{"type":3159,"value":12831},"Echo: ",{"type":3154,"tag":3437,"props":12833,"children":12834},{"style":3516},[12835],{"type":3159,"value":9477},{"type":3154,"tag":3437,"props":12837,"children":12838},{"style":3511},[12839],{"type":3159,"value":12840},"message",{"type":3154,"tag":3437,"props":12842,"children":12843},{"style":3516},[12844],{"type":3159,"value":9487},{"type":3154,"tag":3437,"props":12846,"children":12847},{"style":3582},[12848],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":12850,"children":12851},{"class":3439,"line":4014},[12852],{"type":3154,"tag":3437,"props":12853,"children":12854},{"style":3516},[12855],{"type":3159,"value":4778},{"type":3154,"tag":3437,"props":12857,"children":12858},{"class":3439,"line":4023},[12859,12863],{"type":3154,"tag":3437,"props":12860,"children":12861},{"style":3516},[12862],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":12864,"children":12865},{"style":3511},[12866],{"type":3159,"value":4880},{"type":3154,"tag":3161,"props":12868,"children":12869},{},[12870,12872,12879],{"type":3159,"value":12871},"Then, in your application, you can use the ",{"type":3154,"tag":3165,"props":12873,"children":12876},{"href":12874,"rel":12875},"https:\u002F\u002Fvueuse.org\u002Fcore\u002FuseWebSocket\u002F",[3169],[12877],{"type":3159,"value":12878},"useWebSocket",{"type":3159,"value":12880}," composable to connect to the WebSocket:",{"type":3154,"tag":3427,"props":12882,"children":12884},{"className":3565,"code":12883,"language":3567,"meta":3028,"style":3028},"\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",[12885],{"type":3154,"tag":3299,"props":12886,"children":12887},{"__ignoreMap":3028},[12888,12907,13018,13025,13033,13046,13061,13068,13083,13098,13130,13162,13177,13230,13283,13336,13351,13366],{"type":3154,"tag":3437,"props":12889,"children":12890},{"class":3439,"line":3114},[12891,12895,12899,12903],{"type":3154,"tag":3437,"props":12892,"children":12893},{"style":3516},[12894],{"type":3159,"value":3579},{"type":3154,"tag":3437,"props":12896,"children":12897},{"style":3582},[12898],{"type":3159,"value":3585},{"type":3154,"tag":3437,"props":12900,"children":12901},{"style":3588},[12902],{"type":3159,"value":3591},{"type":3154,"tag":3437,"props":12904,"children":12905},{"style":3516},[12906],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":12908,"children":12909},{"class":3439,"line":3080},[12910,12914,12918,12923,12927,12932,12936,12941,12945,12949,12953,12958,12962,12966,12971,12975,12979,12984,12988,12992,12996,13001,13005,13010,13014],{"type":3154,"tag":3437,"props":12911,"children":12912},{"style":3588},[12913],{"type":3159,"value":3604},{"type":3154,"tag":3437,"props":12915,"children":12916},{"style":3516},[12917],{"type":3159,"value":3609},{"type":3154,"tag":3437,"props":12919,"children":12920},{"style":3511},[12921],{"type":3159,"value":12922}," status",{"type":3154,"tag":3437,"props":12924,"children":12925},{"style":3516},[12926],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":12928,"children":12929},{"style":3511},[12930],{"type":3159,"value":12931}," data",{"type":3154,"tag":3437,"props":12933,"children":12934},{"style":3516},[12935],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":12937,"children":12938},{"style":3511},[12939],{"type":3159,"value":12940}," send",{"type":3154,"tag":3437,"props":12942,"children":12943},{"style":3516},[12944],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":12946,"children":12947},{"style":3511},[12948],{"type":3159,"value":12634},{"type":3154,"tag":3437,"props":12950,"children":12951},{"style":3516},[12952],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":12954,"children":12955},{"style":3511},[12956],{"type":3159,"value":12957}," close ",{"type":3154,"tag":3437,"props":12959,"children":12960},{"style":3516},[12961],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":12963,"children":12964},{"style":3516},[12965],{"type":3159,"value":3670},{"type":3154,"tag":3437,"props":12967,"children":12968},{"style":3673},[12969],{"type":3159,"value":12970}," useWebSocket",{"type":3154,"tag":3437,"props":12972,"children":12973},{"style":3511},[12974],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":12976,"children":12977},{"style":3516},[12978],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":12980,"children":12981},{"style":3449},[12982],{"type":3159,"value":12983},"\u002Fws",{"type":3154,"tag":3437,"props":12985,"children":12986},{"style":3516},[12987],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":12989,"children":12990},{"style":3516},[12991],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":12993,"children":12994},{"style":3516},[12995],{"type":3159,"value":3609},{"type":3154,"tag":3437,"props":12997,"children":12998},{"style":3582},[12999],{"type":3159,"value":13000}," immediate",{"type":3154,"tag":3437,"props":13002,"children":13003},{"style":3516},[13004],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":13006,"children":13007},{"style":5884},[13008],{"type":3159,"value":13009}," false",{"type":3154,"tag":3437,"props":13011,"children":13012},{"style":3516},[13013],{"type":3159,"value":7550},{"type":3154,"tag":3437,"props":13015,"children":13016},{"style":3511},[13017],{"type":3159,"value":4880},{"type":3154,"tag":3437,"props":13019,"children":13020},{"class":3439,"line":3064},[13021],{"type":3154,"tag":3437,"props":13022,"children":13023},{"emptyLinePlaceholder":1200},[13024],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":13026,"children":13027},{"class":3439,"line":3700},[13028],{"type":3154,"tag":3437,"props":13029,"children":13030},{"style":3502},[13031],{"type":3159,"value":13032},"\u002F\u002F Only open the websocket after the page is hydrated (client-only)\n",{"type":3154,"tag":3437,"props":13034,"children":13035},{"class":3439,"line":3709},[13036,13041],{"type":3154,"tag":3437,"props":13037,"children":13038},{"style":3673},[13039],{"type":3159,"value":13040},"onMounted",{"type":3154,"tag":3437,"props":13042,"children":13043},{"style":3511},[13044],{"type":3159,"value":13045},"(open)\n",{"type":3154,"tag":3437,"props":13047,"children":13048},{"class":3439,"line":3726},[13049,13053,13057],{"type":3154,"tag":3437,"props":13050,"children":13051},{"style":3516},[13052],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":13054,"children":13055},{"style":3582},[13056],{"type":3159,"value":3585},{"type":3154,"tag":3437,"props":13058,"children":13059},{"style":3516},[13060],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":13062,"children":13063},{"class":3439,"line":3060},[13064],{"type":3154,"tag":3437,"props":13065,"children":13066},{"emptyLinePlaceholder":1200},[13067],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":13069,"children":13070},{"class":3439,"line":3056},[13071,13075,13079],{"type":3154,"tag":3437,"props":13072,"children":13073},{"style":3516},[13074],{"type":3159,"value":3579},{"type":3154,"tag":3437,"props":13076,"children":13077},{"style":3582},[13078],{"type":3159,"value":3719},{"type":3154,"tag":3437,"props":13080,"children":13081},{"style":3516},[13082],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":13084,"children":13085},{"class":3439,"line":3052},[13086,13090,13094],{"type":3154,"tag":3437,"props":13087,"children":13088},{"style":3516},[13089],{"type":3159,"value":3732},{"type":3154,"tag":3437,"props":13091,"children":13092},{"style":3582},[13093],{"type":3159,"value":3737},{"type":3154,"tag":3437,"props":13095,"children":13096},{"style":3516},[13097],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":13099,"children":13100},{"class":3439,"line":3888},[13101,13105,13109,13113,13118,13122,13126],{"type":3154,"tag":3437,"props":13102,"children":13103},{"style":3516},[13104],{"type":3159,"value":3772},{"type":3154,"tag":3437,"props":13106,"children":13107},{"style":3582},[13108],{"type":3159,"value":3161},{"type":3154,"tag":3437,"props":13110,"children":13111},{"style":3516},[13112],{"type":3159,"value":3781},{"type":3154,"tag":3437,"props":13114,"children":13115},{"style":3511},[13116],{"type":3159,"value":13117},"Status: {{ status }}",{"type":3154,"tag":3437,"props":13119,"children":13120},{"style":3516},[13121],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":13123,"children":13124},{"style":3582},[13125],{"type":3159,"value":3161},{"type":3154,"tag":3437,"props":13127,"children":13128},{"style":3516},[13129],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":13131,"children":13132},{"class":3439,"line":3905},[13133,13137,13141,13145,13150,13154,13158],{"type":3154,"tag":3437,"props":13134,"children":13135},{"style":3516},[13136],{"type":3159,"value":3772},{"type":3154,"tag":3437,"props":13138,"children":13139},{"style":3582},[13140],{"type":3159,"value":3161},{"type":3154,"tag":3437,"props":13142,"children":13143},{"style":3516},[13144],{"type":3159,"value":3781},{"type":3154,"tag":3437,"props":13146,"children":13147},{"style":3511},[13148],{"type":3159,"value":13149},"Data: {{ data }}",{"type":3154,"tag":3437,"props":13151,"children":13152},{"style":3516},[13153],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":13155,"children":13156},{"style":3582},[13157],{"type":3159,"value":3161},{"type":3154,"tag":3437,"props":13159,"children":13160},{"style":3516},[13161],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":13163,"children":13164},{"class":3439,"line":3926},[13165,13169,13173],{"type":3154,"tag":3437,"props":13166,"children":13167},{"style":3516},[13168],{"type":3159,"value":3772},{"type":3154,"tag":3437,"props":13170,"children":13171},{"style":3582},[13172],{"type":3159,"value":3161},{"type":3154,"tag":3437,"props":13174,"children":13175},{"style":3516},[13176],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":13178,"children":13179},{"class":3439,"line":3959},[13180,13184,13188,13192,13196,13200,13205,13209,13213,13218,13222,13226],{"type":3154,"tag":3437,"props":13181,"children":13182},{"style":3516},[13183],{"type":3159,"value":11762},{"type":3154,"tag":3437,"props":13185,"children":13186},{"style":3582},[13187],{"type":3159,"value":3842},{"type":3154,"tag":3437,"props":13189,"children":13190},{"style":3588},[13191],{"type":3159,"value":3847},{"type":3154,"tag":3437,"props":13193,"children":13194},{"style":3516},[13195],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":13197,"children":13198},{"style":3516},[13199],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":13201,"children":13202},{"style":3449},[13203],{"type":3159,"value":13204},"open",{"type":3154,"tag":3437,"props":13206,"children":13207},{"style":3516},[13208],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":13210,"children":13211},{"style":3516},[13212],{"type":3159,"value":3781},{"type":3154,"tag":3437,"props":13214,"children":13215},{"style":3511},[13216],{"type":3159,"value":13217},"Open",{"type":3154,"tag":3437,"props":13219,"children":13220},{"style":3516},[13221],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":13223,"children":13224},{"style":3582},[13225],{"type":3159,"value":3842},{"type":3154,"tag":3437,"props":13227,"children":13228},{"style":3516},[13229],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":13231,"children":13232},{"class":3439,"line":4014},[13233,13237,13241,13245,13249,13253,13258,13262,13266,13271,13275,13279],{"type":3154,"tag":3437,"props":13234,"children":13235},{"style":3516},[13236],{"type":3159,"value":11762},{"type":3154,"tag":3437,"props":13238,"children":13239},{"style":3582},[13240],{"type":3159,"value":3842},{"type":3154,"tag":3437,"props":13242,"children":13243},{"style":3588},[13244],{"type":3159,"value":3847},{"type":3154,"tag":3437,"props":13246,"children":13247},{"style":3516},[13248],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":13250,"children":13251},{"style":3516},[13252],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":13254,"children":13255},{"style":3449},[13256],{"type":3159,"value":13257},"close(1000, 'Closing')",{"type":3154,"tag":3437,"props":13259,"children":13260},{"style":3516},[13261],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":13263,"children":13264},{"style":3516},[13265],{"type":3159,"value":3781},{"type":3154,"tag":3437,"props":13267,"children":13268},{"style":3511},[13269],{"type":3159,"value":13270},"Close",{"type":3154,"tag":3437,"props":13272,"children":13273},{"style":3516},[13274],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":13276,"children":13277},{"style":3582},[13278],{"type":3159,"value":3842},{"type":3154,"tag":3437,"props":13280,"children":13281},{"style":3516},[13282],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":13284,"children":13285},{"class":3439,"line":4023},[13286,13290,13294,13298,13302,13306,13311,13315,13319,13324,13328,13332],{"type":3154,"tag":3437,"props":13287,"children":13288},{"style":3516},[13289],{"type":3159,"value":11762},{"type":3154,"tag":3437,"props":13291,"children":13292},{"style":3582},[13293],{"type":3159,"value":3842},{"type":3154,"tag":3437,"props":13295,"children":13296},{"style":3588},[13297],{"type":3159,"value":3847},{"type":3154,"tag":3437,"props":13299,"children":13300},{"style":3516},[13301],{"type":3159,"value":3519},{"type":3154,"tag":3437,"props":13303,"children":13304},{"style":3516},[13305],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":13307,"children":13308},{"style":3449},[13309],{"type":3159,"value":13310},"send('hello')",{"type":3154,"tag":3437,"props":13312,"children":13313},{"style":3516},[13314],{"type":3159,"value":3751},{"type":3154,"tag":3437,"props":13316,"children":13317},{"style":3516},[13318],{"type":3159,"value":3781},{"type":3154,"tag":3437,"props":13320,"children":13321},{"style":3511},[13322],{"type":3159,"value":13323},"Send hello",{"type":3154,"tag":3437,"props":13325,"children":13326},{"style":3516},[13327],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":13329,"children":13330},{"style":3582},[13331],{"type":3159,"value":3842},{"type":3154,"tag":3437,"props":13333,"children":13334},{"style":3516},[13335],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":13337,"children":13338},{"class":3439,"line":3048},[13339,13343,13347],{"type":3154,"tag":3437,"props":13340,"children":13341},{"style":3516},[13342],{"type":3159,"value":11893},{"type":3154,"tag":3437,"props":13344,"children":13345},{"style":3582},[13346],{"type":3159,"value":3161},{"type":3154,"tag":3437,"props":13348,"children":13349},{"style":3516},[13350],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":13352,"children":13353},{"class":3439,"line":4091},[13354,13358,13362],{"type":3154,"tag":3437,"props":13355,"children":13356},{"style":3516},[13357],{"type":3159,"value":3894},{"type":3154,"tag":3437,"props":13359,"children":13360},{"style":3582},[13361],{"type":3159,"value":3737},{"type":3154,"tag":3437,"props":13363,"children":13364},{"style":3516},[13365],{"type":3159,"value":3596},{"type":3154,"tag":3437,"props":13367,"children":13368},{"class":3439,"line":4361},[13369,13373,13377],{"type":3154,"tag":3437,"props":13370,"children":13371},{"style":3516},[13372],{"type":3159,"value":3689},{"type":3154,"tag":3437,"props":13374,"children":13375},{"style":3582},[13376],{"type":3159,"value":3719},{"type":3154,"tag":3437,"props":13378,"children":13379},{"style":3516},[13380],{"type":3159,"value":3596},{"type":3154,"tag":3245,"props":13382,"children":13384},{"id":13383},"configuration",[13385],{"type":3159,"value":29},{"type":3154,"tag":3161,"props":13387,"children":13388},{},[13389,13391,13397,13399,13412],{"type":3159,"value":13390},"We leverage ",{"type":3154,"tag":3299,"props":13392,"children":13394},{"className":13393},[],[13395],{"type":3159,"value":13396},"runtimeConfig.session",{"type":3159,"value":13398}," to give the defaults option to ",{"type":3154,"tag":3165,"props":13400,"children":13403},{"href":13401,"rel":13402},"https:\u002F\u002Fh3.unjs.io\u002Fexamples\u002Fhandle-session",[3169],[13404,13406],{"type":3159,"value":13405},"h3 ",{"type":3154,"tag":3299,"props":13407,"children":13409},{"className":13408},[],[13410],{"type":3159,"value":13411},"useSession",{"type":3159,"value":3392},{"type":3154,"tag":3161,"props":13414,"children":13415},{},[13416,13418,13423],{"type":3159,"value":13417},"You can overwrite the options in your ",{"type":3154,"tag":3299,"props":13419,"children":13421},{"className":13420},[],[13422],{"type":3159,"value":233},{"type":3159,"value":4177},{"type":3154,"tag":3427,"props":13425,"children":13427},{"className":4116,"code":13426,"language":4118,"meta":3028,"style":3028},"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",[13428],{"type":3154,"tag":3299,"props":13429,"children":13430},{"__ignoreMap":3028},[13431,13454,13489,13504,13520,13569,13576,13583],{"type":3154,"tag":3437,"props":13432,"children":13433},{"class":3439,"line":3114},[13434,13438,13442,13446,13450],{"type":3154,"tag":3437,"props":13435,"children":13436},{"style":4700},[13437],{"type":3159,"value":5234},{"type":3154,"tag":3437,"props":13439,"children":13440},{"style":4700},[13441],{"type":3159,"value":5349},{"type":3154,"tag":3437,"props":13443,"children":13444},{"style":3673},[13445],{"type":3159,"value":5354},{"type":3154,"tag":3437,"props":13447,"children":13448},{"style":3511},[13449],{"type":3159,"value":5359},{"type":3154,"tag":3437,"props":13451,"children":13452},{"style":3516},[13453],{"type":3159,"value":5364},{"type":3154,"tag":3437,"props":13455,"children":13456},{"class":3439,"line":3080},[13457,13461,13465,13469,13473,13477,13481,13485],{"type":3154,"tag":3437,"props":13458,"children":13459},{"style":3582},[13460],{"type":3159,"value":6586},{"type":3154,"tag":3437,"props":13462,"children":13463},{"style":3516},[13464],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":13466,"children":13467},{"style":3511},[13468],{"type":3159,"value":6595},{"type":3154,"tag":3437,"props":13470,"children":13471},{"style":3516},[13472],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":13474,"children":13475},{"style":3449},[13476],{"type":3159,"value":3027},{"type":3154,"tag":3437,"props":13478,"children":13479},{"style":3516},[13480],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":13482,"children":13483},{"style":3511},[13484],{"type":3159,"value":6612},{"type":3154,"tag":3437,"props":13486,"children":13487},{"style":3516},[13488],{"type":3159,"value":5450},{"type":3154,"tag":3437,"props":13490,"children":13491},{"class":3439,"line":3064},[13492,13496,13500],{"type":3154,"tag":3437,"props":13493,"children":13494},{"style":3582},[13495],{"type":3159,"value":5372},{"type":3154,"tag":3437,"props":13497,"children":13498},{"style":3516},[13499],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":13501,"children":13502},{"style":3516},[13503],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":13505,"children":13506},{"class":3439,"line":3700},[13507,13512,13516],{"type":3154,"tag":3437,"props":13508,"children":13509},{"style":3582},[13510],{"type":3159,"value":13511},"    session",{"type":3154,"tag":3437,"props":13513,"children":13514},{"style":3516},[13515],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":13517,"children":13518},{"style":3516},[13519],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":13521,"children":13522},{"class":3439,"line":3709},[13523,13528,13532,13537,13542,13546,13550,13555,13559,13564],{"type":3154,"tag":3437,"props":13524,"children":13525},{"style":3582},[13526],{"type":3159,"value":13527},"      maxAge",{"type":3154,"tag":3437,"props":13529,"children":13530},{"style":3516},[13531],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":13533,"children":13534},{"style":7038},[13535],{"type":3159,"value":13536}," 60",{"type":3154,"tag":3437,"props":13538,"children":13539},{"style":3516},[13540],{"type":3159,"value":13541}," *",{"type":3154,"tag":3437,"props":13543,"children":13544},{"style":7038},[13545],{"type":3159,"value":13536},{"type":3154,"tag":3437,"props":13547,"children":13548},{"style":3516},[13549],{"type":3159,"value":13541},{"type":3154,"tag":3437,"props":13551,"children":13552},{"style":7038},[13553],{"type":3159,"value":13554}," 24",{"type":3154,"tag":3437,"props":13556,"children":13557},{"style":3516},[13558],{"type":3159,"value":13541},{"type":3154,"tag":3437,"props":13560,"children":13561},{"style":7038},[13562],{"type":3159,"value":13563}," 7",{"type":3154,"tag":3437,"props":13565,"children":13566},{"style":3502},[13567],{"type":3159,"value":13568}," \u002F\u002F 1 week\n",{"type":3154,"tag":3437,"props":13570,"children":13571},{"class":3439,"line":3726},[13572],{"type":3154,"tag":3437,"props":13573,"children":13574},{"style":3516},[13575],{"type":3159,"value":5490},{"type":3154,"tag":3437,"props":13577,"children":13578},{"class":3439,"line":3060},[13579],{"type":3154,"tag":3437,"props":13580,"children":13581},{"style":3516},[13582],{"type":3159,"value":5138},{"type":3154,"tag":3437,"props":13584,"children":13585},{"class":3439,"line":3056},[13586,13590],{"type":3154,"tag":3437,"props":13587,"children":13588},{"style":3516},[13589],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":13591,"children":13592},{"style":3511},[13593],{"type":3159,"value":4880},{"type":3154,"tag":3161,"props":13595,"children":13596},{},[13597],{"type":3159,"value":13598},"Our defaults are:",{"type":3154,"tag":3427,"props":13600,"children":13602},{"className":4116,"code":13601,"language":4118,"meta":3028,"style":3028},"{\n  name: 'nuxt-session',\n  password: process.env.NUXT_SESSION_PASSWORD || '',\n  cookie: {\n    sameSite: 'lax'\n  }\n}\n",[13603],{"type":3154,"tag":3299,"props":13604,"children":13605},{"__ignoreMap":3028},[13606,13613,13642,13690,13706,13731,13738],{"type":3154,"tag":3437,"props":13607,"children":13608},{"class":3439,"line":3114},[13609],{"type":3154,"tag":3437,"props":13610,"children":13611},{"style":3516},[13612],{"type":3159,"value":5364},{"type":3154,"tag":3437,"props":13614,"children":13615},{"class":3439,"line":3080},[13616,13621,13625,13629,13634,13638],{"type":3154,"tag":3437,"props":13617,"children":13618},{"style":3443},[13619],{"type":3159,"value":13620},"  name",{"type":3154,"tag":3437,"props":13622,"children":13623},{"style":3516},[13624],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":13626,"children":13627},{"style":3516},[13628],{"type":3159,"value":4761},{"type":3154,"tag":3437,"props":13630,"children":13631},{"style":3449},[13632],{"type":3159,"value":13633},"nuxt-session",{"type":3154,"tag":3437,"props":13635,"children":13636},{"style":3516},[13637],{"type":3159,"value":5101},{"type":3154,"tag":3437,"props":13639,"children":13640},{"style":3516},[13641],{"type":3159,"value":5450},{"type":3154,"tag":3437,"props":13643,"children":13644},{"class":3439,"line":3064},[13645,13650,13654,13659,13663,13668,13672,13676,13681,13686],{"type":3154,"tag":3437,"props":13646,"children":13647},{"style":3443},[13648],{"type":3159,"value":13649},"  password",{"type":3154,"tag":3437,"props":13651,"children":13652},{"style":3516},[13653],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":13655,"children":13656},{"style":3511},[13657],{"type":3159,"value":13658}," process",{"type":3154,"tag":3437,"props":13660,"children":13661},{"style":3516},[13662],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":13664,"children":13665},{"style":3511},[13666],{"type":3159,"value":13667},"env",{"type":3154,"tag":3437,"props":13669,"children":13670},{"style":3516},[13671],{"type":3159,"value":3392},{"type":3154,"tag":3437,"props":13673,"children":13674},{"style":3511},[13675],{"type":3159,"value":3481},{"type":3154,"tag":3437,"props":13677,"children":13678},{"style":3516},[13679],{"type":3159,"value":13680}," ||",{"type":3154,"tag":3437,"props":13682,"children":13683},{"style":3516},[13684],{"type":3159,"value":13685}," ''",{"type":3154,"tag":3437,"props":13687,"children":13688},{"style":3516},[13689],{"type":3159,"value":5450},{"type":3154,"tag":3437,"props":13691,"children":13692},{"class":3439,"line":3700},[13693,13698,13702],{"type":3154,"tag":3437,"props":13694,"children":13695},{"style":3443},[13696],{"type":3159,"value":13697},"  cookie",{"type":3154,"tag":3437,"props":13699,"children":13700},{"style":3516},[13701],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":13703,"children":13704},{"style":3516},[13705],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":13707,"children":13708},{"class":3439,"line":3709},[13709,13714,13718,13722,13727],{"type":3154,"tag":3437,"props":13710,"children":13711},{"style":3443},[13712],{"type":3159,"value":13713},"    sameSite",{"type":3154,"tag":3437,"props":13715,"children":13716},{"style":3516},[13717],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":13719,"children":13720},{"style":3516},[13721],{"type":3159,"value":4761},{"type":3154,"tag":3437,"props":13723,"children":13724},{"style":3449},[13725],{"type":3159,"value":13726},"lax",{"type":3154,"tag":3437,"props":13728,"children":13729},{"style":3516},[13730],{"type":3159,"value":4770},{"type":3154,"tag":3437,"props":13732,"children":13733},{"class":3439,"line":3726},[13734],{"type":3154,"tag":3437,"props":13735,"children":13736},{"style":3516},[13737],{"type":3159,"value":5138},{"type":3154,"tag":3437,"props":13739,"children":13740},{"class":3439,"line":3060},[13741],{"type":3154,"tag":3437,"props":13742,"children":13743},{"style":3516},[13744],{"type":3159,"value":4616},{"type":3154,"tag":3161,"props":13746,"children":13747},{},[13748,13750,13756,13757,13763],{"type":3159,"value":13749},"You can also overwrite the session config by passing it as 3rd argument of the ",{"type":3154,"tag":3299,"props":13751,"children":13753},{"className":13752},[],[13754],{"type":3159,"value":13755},"setUserSession",{"type":3159,"value":6270},{"type":3154,"tag":3299,"props":13758,"children":13760},{"className":13759},[],[13761],{"type":3159,"value":13762},"replaceUserSession",{"type":3159,"value":13764}," functions:",{"type":3154,"tag":3427,"props":13766,"children":13768},{"className":4116,"code":13767,"language":4118,"meta":3028,"style":3028},"await setUserSession(event, { ... } , {\n  maxAge: 60 * 60 * 24 * 7 \u002F\u002F 1 week\n})\n",[13769],{"type":3154,"tag":3299,"props":13770,"children":13771},{"__ignoreMap":3028},[13772,13813,13857],{"type":3154,"tag":3437,"props":13773,"children":13774},{"class":3439,"line":3114},[13775,13779,13783,13787,13791,13795,13800,13804,13809],{"type":3154,"tag":3437,"props":13776,"children":13777},{"style":4700},[13778],{"type":3159,"value":4703},{"type":3154,"tag":3437,"props":13780,"children":13781},{"style":3673},[13782],{"type":3159,"value":4708},{"type":3154,"tag":3437,"props":13784,"children":13785},{"style":3511},[13786],{"type":3159,"value":4713},{"type":3154,"tag":3437,"props":13788,"children":13789},{"style":3516},[13790],{"type":3159,"value":3619},{"type":3154,"tag":3437,"props":13792,"children":13793},{"style":3516},[13794],{"type":3159,"value":3609},{"type":3154,"tag":3437,"props":13796,"children":13797},{"style":3516},[13798],{"type":3159,"value":13799}," ...",{"type":3154,"tag":3437,"props":13801,"children":13802},{"style":3516},[13803],{"type":3159,"value":7550},{"type":3154,"tag":3437,"props":13805,"children":13806},{"style":3516},[13807],{"type":3159,"value":13808}," ,",{"type":3154,"tag":3437,"props":13810,"children":13811},{"style":3516},[13812],{"type":3159,"value":4140},{"type":3154,"tag":3437,"props":13814,"children":13815},{"class":3439,"line":3080},[13816,13821,13825,13829,13833,13837,13841,13845,13849,13853],{"type":3154,"tag":3437,"props":13817,"children":13818},{"style":3582},[13819],{"type":3159,"value":13820},"  maxAge",{"type":3154,"tag":3437,"props":13822,"children":13823},{"style":3516},[13824],{"type":3159,"value":4177},{"type":3154,"tag":3437,"props":13826,"children":13827},{"style":7038},[13828],{"type":3159,"value":13536},{"type":3154,"tag":3437,"props":13830,"children":13831},{"style":3516},[13832],{"type":3159,"value":13541},{"type":3154,"tag":3437,"props":13834,"children":13835},{"style":7038},[13836],{"type":3159,"value":13536},{"type":3154,"tag":3437,"props":13838,"children":13839},{"style":3516},[13840],{"type":3159,"value":13541},{"type":3154,"tag":3437,"props":13842,"children":13843},{"style":7038},[13844],{"type":3159,"value":13554},{"type":3154,"tag":3437,"props":13846,"children":13847},{"style":3516},[13848],{"type":3159,"value":13541},{"type":3154,"tag":3437,"props":13850,"children":13851},{"style":7038},[13852],{"type":3159,"value":13563},{"type":3154,"tag":3437,"props":13854,"children":13855},{"style":3502},[13856],{"type":3159,"value":13568},{"type":3154,"tag":3437,"props":13858,"children":13859},{"class":3439,"line":3064},[13860,13864],{"type":3154,"tag":3437,"props":13861,"children":13862},{"style":3516},[13863],{"type":3159,"value":3665},{"type":3154,"tag":3437,"props":13865,"children":13866},{"style":3511},[13867],{"type":3159,"value":4880},{"type":3154,"tag":3161,"props":13869,"children":13870},{},[13871,13873,13884],{"type":3159,"value":13872},"Checkout the ",{"type":3154,"tag":3165,"props":13874,"children":13877},{"href":13875,"rel":13876},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fh3\u002Fblob\u002Fc04c458810e34eb15c1647e1369e7d7ef19f567d\u002Fsrc\u002Futils\u002Fsession.ts#L20",[3169],[13878],{"type":3154,"tag":3299,"props":13879,"children":13881},{"className":13880},[],[13882],{"type":3159,"value":13883},"SessionConfig",{"type":3159,"value":13885}," for all options.",{"type":3154,"tag":3245,"props":13887,"children":13889},{"id":13888},"more",[13890],{"type":3159,"value":13891},"More",{"type":3154,"tag":3211,"props":13893,"children":13894},{},[13895],{"type":3154,"tag":3215,"props":13896,"children":13897},{},[13898,13905,13907],{"type":3154,"tag":3165,"props":13899,"children":13902},{"href":13900,"rel":13901},"https:\u002F\u002Fgithub.com\u002Fbarbapapazes\u002Fnuxt-authorization",[3169],[13903],{"type":3159,"value":13904},"nuxt-authorization",{"type":3159,"value":13906},": Authorization module for managing permissions inside a Nuxt app, compatible with ",{"type":3154,"tag":3299,"props":13908,"children":13910},{"className":13909},[],[13911],{"type":3159,"value":3027},{"type":3154,"tag":3245,"props":13913,"children":13915},{"id":13914},"development",[13916],{"type":3159,"value":13917},"Development",{"type":3154,"tag":3427,"props":13919,"children":13921},{"className":3429,"code":13920,"language":3431,"meta":3028,"style":3028},"# 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",[13922],{"type":3154,"tag":3299,"props":13923,"children":13924},{"__ignoreMap":3028},[13925,13933,13946,13953,13961,13978,13985,13993,14009,14016,14024,14040,14047,14055,14071,14078,14086,14102,14118,14125,14133],{"type":3154,"tag":3437,"props":13926,"children":13927},{"class":3439,"line":3114},[13928],{"type":3154,"tag":3437,"props":13929,"children":13930},{"style":3502},[13931],{"type":3159,"value":13932},"# Install dependencies\n",{"type":3154,"tag":3437,"props":13934,"children":13935},{"class":3439,"line":3080},[13936,13941],{"type":3154,"tag":3437,"props":13937,"children":13938},{"style":3443},[13939],{"type":3159,"value":13940},"pnpm",{"type":3154,"tag":3437,"props":13942,"children":13943},{"style":3449},[13944],{"type":3159,"value":13945}," install\n",{"type":3154,"tag":3437,"props":13947,"children":13948},{"class":3439,"line":3064},[13949],{"type":3154,"tag":3437,"props":13950,"children":13951},{"emptyLinePlaceholder":1200},[13952],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":13954,"children":13955},{"class":3439,"line":3700},[13956],{"type":3154,"tag":3437,"props":13957,"children":13958},{"style":3502},[13959],{"type":3159,"value":13960},"# Generate type stubs\n",{"type":3154,"tag":3437,"props":13962,"children":13963},{"class":3439,"line":3709},[13964,13968,13973],{"type":3154,"tag":3437,"props":13965,"children":13966},{"style":3443},[13967],{"type":3159,"value":13940},{"type":3154,"tag":3437,"props":13969,"children":13970},{"style":3449},[13971],{"type":3159,"value":13972}," run",{"type":3154,"tag":3437,"props":13974,"children":13975},{"style":3449},[13976],{"type":3159,"value":13977}," dev:prepare\n",{"type":3154,"tag":3437,"props":13979,"children":13980},{"class":3439,"line":3726},[13981],{"type":3154,"tag":3437,"props":13982,"children":13983},{"emptyLinePlaceholder":1200},[13984],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":13986,"children":13987},{"class":3439,"line":3060},[13988],{"type":3154,"tag":3437,"props":13989,"children":13990},{"style":3502},[13991],{"type":3159,"value":13992},"# Develop with the playground\n",{"type":3154,"tag":3437,"props":13994,"children":13995},{"class":3439,"line":3056},[13996,14000,14004],{"type":3154,"tag":3437,"props":13997,"children":13998},{"style":3443},[13999],{"type":3159,"value":13940},{"type":3154,"tag":3437,"props":14001,"children":14002},{"style":3449},[14003],{"type":3159,"value":13972},{"type":3154,"tag":3437,"props":14005,"children":14006},{"style":3449},[14007],{"type":3159,"value":14008}," dev\n",{"type":3154,"tag":3437,"props":14010,"children":14011},{"class":3439,"line":3052},[14012],{"type":3154,"tag":3437,"props":14013,"children":14014},{"emptyLinePlaceholder":1200},[14015],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":14017,"children":14018},{"class":3439,"line":3888},[14019],{"type":3154,"tag":3437,"props":14020,"children":14021},{"style":3502},[14022],{"type":3159,"value":14023},"# Build the playground\n",{"type":3154,"tag":3437,"props":14025,"children":14026},{"class":3439,"line":3905},[14027,14031,14035],{"type":3154,"tag":3437,"props":14028,"children":14029},{"style":3443},[14030],{"type":3159,"value":13940},{"type":3154,"tag":3437,"props":14032,"children":14033},{"style":3449},[14034],{"type":3159,"value":13972},{"type":3154,"tag":3437,"props":14036,"children":14037},{"style":3449},[14038],{"type":3159,"value":14039}," dev:build\n",{"type":3154,"tag":3437,"props":14041,"children":14042},{"class":3439,"line":3926},[14043],{"type":3154,"tag":3437,"props":14044,"children":14045},{"emptyLinePlaceholder":1200},[14046],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":14048,"children":14049},{"class":3439,"line":3959},[14050],{"type":3154,"tag":3437,"props":14051,"children":14052},{"style":3502},[14053],{"type":3159,"value":14054},"# Run ESLint\n",{"type":3154,"tag":3437,"props":14056,"children":14057},{"class":3439,"line":4014},[14058,14062,14066],{"type":3154,"tag":3437,"props":14059,"children":14060},{"style":3443},[14061],{"type":3159,"value":13940},{"type":3154,"tag":3437,"props":14063,"children":14064},{"style":3449},[14065],{"type":3159,"value":13972},{"type":3154,"tag":3437,"props":14067,"children":14068},{"style":3449},[14069],{"type":3159,"value":14070}," lint\n",{"type":3154,"tag":3437,"props":14072,"children":14073},{"class":3439,"line":4023},[14074],{"type":3154,"tag":3437,"props":14075,"children":14076},{"emptyLinePlaceholder":1200},[14077],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":14079,"children":14080},{"class":3439,"line":3048},[14081],{"type":3154,"tag":3437,"props":14082,"children":14083},{"style":3502},[14084],{"type":3159,"value":14085},"# Run Vitest\n",{"type":3154,"tag":3437,"props":14087,"children":14088},{"class":3439,"line":4091},[14089,14093,14097],{"type":3154,"tag":3437,"props":14090,"children":14091},{"style":3443},[14092],{"type":3159,"value":13940},{"type":3154,"tag":3437,"props":14094,"children":14095},{"style":3449},[14096],{"type":3159,"value":13972},{"type":3154,"tag":3437,"props":14098,"children":14099},{"style":3449},[14100],{"type":3159,"value":14101}," test\n",{"type":3154,"tag":3437,"props":14103,"children":14104},{"class":3439,"line":4361},[14105,14109,14113],{"type":3154,"tag":3437,"props":14106,"children":14107},{"style":3443},[14108],{"type":3159,"value":13940},{"type":3154,"tag":3437,"props":14110,"children":14111},{"style":3449},[14112],{"type":3159,"value":13972},{"type":3154,"tag":3437,"props":14114,"children":14115},{"style":3449},[14116],{"type":3159,"value":14117}," test:watch\n",{"type":3154,"tag":3437,"props":14119,"children":14120},{"class":3439,"line":4369},[14121],{"type":3154,"tag":3437,"props":14122,"children":14123},{"emptyLinePlaceholder":1200},[14124],{"type":3159,"value":3706},{"type":3154,"tag":3437,"props":14126,"children":14127},{"class":3439,"line":4378},[14128],{"type":3154,"tag":3437,"props":14129,"children":14130},{"style":3502},[14131],{"type":3159,"value":14132},"# Release new version\n",{"type":3154,"tag":3437,"props":14134,"children":14135},{"class":3439,"line":4386},[14136,14140,14144],{"type":3154,"tag":3437,"props":14137,"children":14138},{"style":3443},[14139],{"type":3159,"value":13940},{"type":3154,"tag":3437,"props":14141,"children":14142},{"style":3449},[14143],{"type":3159,"value":13972},{"type":3154,"tag":3437,"props":14145,"children":14146},{"style":3449},[14147],{"type":3159,"value":14148}," release\n",{"type":3154,"tag":14150,"props":14151,"children":14152},"style",{},[14153],{"type":3159,"value":14154},"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":3028,"searchDepth":3080,"depth":3080,"links":14156},[14157,14158,14159,14160,14163,14171,14172,14177,14178,14179,14180],{"id":3247,"depth":3080,"text":399},{"id":3365,"depth":3080,"text":3368},{"id":3406,"depth":3080,"text":3409},{"id":3547,"depth":3080,"text":3550,"children":14161},[14162],{"id":3559,"depth":3064,"text":3562},{"id":4641,"depth":3080,"text":4644,"children":14164},[14165,14166,14167,14168,14169,14170],{"id":4660,"depth":3064,"text":4663},{"id":5254,"depth":3064,"text":5257},{"id":6255,"depth":3064,"text":3281},{"id":6707,"depth":3064,"text":6710},{"id":6857,"depth":3064,"text":3290},{"id":10771,"depth":3064,"text":10774},{"id":11064,"depth":3080,"text":11067},{"id":11339,"depth":3080,"text":3261,"children":14173},[14174,14175],{"id":11510,"depth":3064,"text":11513},{"id":11638,"depth":3064,"text":14176},"\u003CAuthState> component",{"id":12359,"depth":3080,"text":12362},{"id":13383,"depth":3080,"text":29},{"id":13888,"depth":3080,"text":13891},{"id":13914,"depth":3080,"text":13917},{"v5":14182,"v4":14183,"v3":14184,"v2":14185},"5 (nightly)","4.5.2","3.21.11","2.18.1"]