[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f30r277ag21rfj":3,"module-auth-utils":3032,"versions":14190},[4,1124,1983,2826],{"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,1431,1813,1890,1912,1946],{"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,1313,1335,1345,1373,1393],{"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,1307,1310],{"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":1304,"path":1305,"stem":1306,"titleTemplate":6},"Server Components","\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fserver-components","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F6.server-components",{"title":280,"path":1308,"stem":1309,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":1311,"stem":1312,"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":1314,"stem":1315,"children":1316,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F2.best-practices",[1317,1321,1325,1329,1332],{"title":1318,"path":1319,"stem":1320,"titleTemplate":6},"Accessibility","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Faccessibility","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Faccessibility",{"title":1322,"path":1323,"stem":1324,"titleTemplate":6},"Dev Containers","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fdevcontainers","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fdevcontainers",{"title":1326,"path":1327,"stem":1328,"titleTemplate":6},"Nuxt and Hydration","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":1330,"stem":1331,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":1333,"stem":1334,"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":1336,"stem":1337,"children":1338,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai","docs\u002F4.x\u002F3.guide\u002F3.ai",[1339,1342],{"title":314,"path":1340,"stem":1341,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F4.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":1343,"stem":1344,"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":1346,"stem":1347,"children":1348,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F4.modules",[1349,1352,1355,1358,1361,1364,1367,1370],{"title":329,"path":1350,"stem":1351,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":1353,"stem":1354,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":1356,"stem":1357,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":1359,"stem":1360,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F4.module-dependencies",{"title":345,"path":1362,"stem":1363,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F5.recipes-advanced",{"title":349,"path":1365,"stem":1366,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F6.testing",{"title":353,"path":1368,"stem":1369,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F7.best-practices",{"title":357,"path":1371,"stem":1372,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F8.ecosystem",{"title":361,"titleTemplate":362,"icon":363,"path":1374,"stem":1375,"children":1376,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes","docs\u002F4.x\u002F3.guide\u002F5.recipes",[1377,1380,1383,1386,1389],{"title":368,"path":1378,"stem":1379,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":372,"path":1381,"stem":1382,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":376,"path":1384,"stem":1385,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":380,"path":1387,"stem":1388,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":1390,"path":1391,"stem":1392,"titleTemplate":6},"Mostly-Static Sites","\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fmostly-static-sites","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F5.mostly-static-sites",{"title":384,"titleTemplate":385,"icon":386,"path":1394,"stem":1395,"children":1396,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further","docs\u002F4.x\u002F3.guide\u002F6.going-further",[1397,1400,1403,1406,1409,1412,1415,1418,1421,1424,1428],{"title":391,"path":1398,"stem":1399,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":395,"path":1401,"stem":1402,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":399,"path":1404,"stem":1405,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":403,"path":1407,"stem":1408,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":407,"path":1410,"stem":1411,"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":1413,"stem":1414,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":415,"path":1416,"stem":1417,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":419,"path":1419,"stem":1420,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":423,"path":1422,"stem":1423,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":1425,"path":1426,"stem":1427,"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":1429,"stem":1430,"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":1432,"stem":1433,"children":1434,"page":108},"\u002Fdocs\u002F4.x\u002Fapi","docs\u002F4.x\u002F4.api",[1435,1488,1595,1686,1738,1800,1810],{"title":438,"titleTemplate":439,"icon":324,"path":1436,"stem":1437,"children":1438,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F1.components",[1439,1442,1445,1448,1451,1454,1457,1460,1464,1467,1470,1473,1476,1479,1482,1485],{"title":444,"path":1440,"stem":1441,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":448,"path":1443,"stem":1444,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":452,"path":1446,"stem":1447,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":456,"path":1449,"stem":1450,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F4.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":460,"path":1452,"stem":1453,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F4.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":464,"path":1455,"stem":1456,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":468,"path":1458,"stem":1459,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F4.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1461,"path":1462,"stem":1463,"titleTemplate":6},"\u003CNuxtAnnouncer>","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":472,"path":1465,"stem":1466,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F4.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":476,"path":1468,"stem":1469,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F4.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":480,"path":1471,"stem":1472,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F4.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":484,"path":1474,"stem":1475,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F4.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":488,"path":1477,"stem":1478,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F4.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":492,"path":1480,"stem":1481,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F4.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":496,"path":1483,"stem":1484,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F4.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":500,"path":1486,"stem":1487,"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":1489,"stem":1490,"children":1491,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables","docs\u002F4.x\u002F4.api\u002F2.composables",[1492,1496,1500,1503,1507,1510,1513,1516,1519,1522,1525,1528,1531,1535,1538,1541,1544,1547,1550,1553,1556,1559,1562,1565,1568,1571,1574,1577,1580,1583,1586,1589,1592],{"title":1493,"path":1494,"stem":1495,"titleTemplate":6},"createUseAsyncData","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1497,"path":1498,"stem":1499,"titleTemplate":6},"createUseFetch","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":511,"path":1501,"stem":1502,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1504,"path":1505,"stem":1506,"titleTemplate":6},"useAnnouncer","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":515,"path":1508,"stem":1509,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":519,"path":1511,"stem":1512,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":523,"path":1514,"stem":1515,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":527,"path":1517,"stem":1518,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":531,"path":1520,"stem":1521,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":535,"path":1523,"stem":1524,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":539,"path":1526,"stem":1527,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":543,"path":1529,"stem":1530,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":1532,"path":1533,"stem":1534,"titleTemplate":6},"useLayout","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-layout","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-layout",{"title":547,"path":1536,"stem":1537,"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":1539,"stem":1540,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":555,"path":1542,"stem":1543,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":559,"path":1545,"stem":1546,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":563,"path":1548,"stem":1549,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":567,"path":1551,"stem":1552,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":571,"path":1554,"stem":1555,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":575,"path":1557,"stem":1558,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":579,"path":1560,"stem":1561,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":583,"path":1563,"stem":1564,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":587,"path":1566,"stem":1567,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":591,"path":1569,"stem":1570,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":595,"path":1572,"stem":1573,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":599,"path":1575,"stem":1576,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":603,"path":1578,"stem":1579,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":607,"path":1581,"stem":1582,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":611,"path":1584,"stem":1585,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":615,"path":1587,"stem":1588,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":619,"path":1590,"stem":1591,"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":1593,"stem":1594,"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":1596,"stem":1597,"children":1598,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils","docs\u002F4.x\u002F4.api\u002F3.utils",[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,1674,1677,1680,1683],{"title":634,"path":1600,"stem":1601,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F4.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":638,"path":1603,"stem":1604,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":642,"path":1606,"stem":1607,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":646,"path":1609,"stem":1610,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":650,"path":1612,"stem":1613,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":654,"path":1615,"stem":1616,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":658,"path":1618,"stem":1619,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":662,"path":1621,"stem":1622,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":666,"path":1624,"stem":1625,"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":1627,"stem":1628,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":674,"path":1630,"stem":1631,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":678,"path":1633,"stem":1634,"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":1636,"stem":1637,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":686,"path":1639,"stem":1640,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":690,"path":1642,"stem":1643,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":694,"path":1645,"stem":1646,"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":1648,"stem":1649,"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":1651,"stem":1652,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":706,"path":1654,"stem":1655,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":710,"path":1657,"stem":1658,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":714,"path":1660,"stem":1661,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":718,"path":1663,"stem":1664,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":722,"path":1666,"stem":1667,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":726,"path":1669,"stem":1670,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":730,"path":1672,"stem":1673,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F4.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":734,"path":1675,"stem":1676,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":738,"path":1678,"stem":1679,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":742,"path":1681,"stem":1682,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":746,"path":1684,"stem":1685,"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":1687,"stem":1688,"children":1689,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands","docs\u002F4.x\u002F4.api\u002F4.commands",[1690,1693,1696,1699,1702,1705,1708,1711,1714,1717,1720,1723,1726,1729,1732,1735],{"title":757,"path":1691,"stem":1692,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fadd",{"title":761,"path":1694,"stem":1695,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":765,"path":1697,"stem":1698,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":769,"path":1700,"stem":1701,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":773,"path":1703,"stem":1704,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":777,"path":1706,"stem":1707,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdev",{"title":781,"path":1709,"stem":1710,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":785,"path":1712,"stem":1713,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":789,"path":1715,"stem":1716,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finfo",{"title":793,"path":1718,"stem":1719,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finit",{"title":797,"path":1721,"stem":1722,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":801,"path":1724,"stem":1725,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":805,"path":1727,"stem":1728,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":809,"path":1730,"stem":1731,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftest",{"title":813,"path":1733,"stem":1734,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":817,"path":1736,"stem":1737,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":415,"titleTemplate":821,"icon":822,"path":1739,"stem":1740,"children":1741,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit","docs\u002F4.x\u002F4.api\u002F5.kit",[1742,1745,1748,1751,1755,1758,1761,1764,1767,1770,1773,1776,1779,1782,1785,1788,1791,1794,1797],{"title":276,"path":1743,"stem":1744,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F4.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":403,"path":1746,"stem":1747,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":833,"path":1749,"stem":1750,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":1752,"path":1753,"stem":1754,"titleTemplate":6},"App Config","\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fapp-config","docs\u002F4.x\u002F4.api\u002F5.kit\u002F11.app-config",{"title":837,"path":1756,"stem":1757,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F4.x\u002F4.api\u002F5.kit\u002F12.nitro",{"title":841,"path":1759,"stem":1760,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F4.x\u002F4.api\u002F5.kit\u002F13.resolving",{"title":845,"path":1762,"stem":1763,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F4.x\u002F4.api\u002F5.kit\u002F14.logging",{"title":849,"path":1765,"stem":1766,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F4.x\u002F4.api\u002F5.kit\u002F15.builder",{"title":853,"path":1768,"stem":1769,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F4.x\u002F4.api\u002F5.kit\u002F16.examples",{"title":84,"path":1771,"stem":1772,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F4.x\u002F4.api\u002F5.kit\u002F17.layers",{"title":860,"path":1774,"stem":1775,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F4.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":864,"path":1777,"stem":1778,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F4.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":1780,"stem":1781,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F4.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":438,"path":1783,"stem":1784,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F5.kit\u002F5.components",{"title":874,"path":1786,"stem":1787,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F4.x\u002F4.api\u002F5.kit\u002F6.context",{"title":878,"path":1789,"stem":1790,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F4.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":882,"path":1792,"stem":1793,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F4.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":886,"path":1795,"stem":1796,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.head",{"title":890,"path":1798,"stem":1799,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":894,"titleTemplate":6,"icon":895,"path":1801,"stem":1802,"children":1803,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced","docs\u002F4.x\u002F4.api\u002F6.advanced",[1804,1807],{"title":411,"path":1805,"stem":1806,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":903,"path":1808,"stem":1809,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":907,"path":1811,"stem":1812,"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":1814,"stem":1815,"children":1816,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples","docs\u002F4.x\u002F4.examples",[1817,1820,1839,1852,1883],{"title":918,"path":1818,"stem":1819,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fhello-world","docs\u002F4.x\u002F4.examples\u002F0.hello-world",{"title":399,"path":1821,"stem":1822,"children":1823,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures","docs\u002F4.x\u002F4.examples\u002F1.features",[1824,1827,1830,1833,1836],{"title":926,"path":1825,"stem":1826,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F4.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":1828,"stem":1829,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F4.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":1831,"stem":1832,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F4.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":936,"path":1834,"stem":1835,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F4.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":940,"path":1837,"stem":1838,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F4.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":1840,"stem":1841,"children":1842,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting","docs\u002F4.x\u002F4.examples\u002F2.routing",[1843,1846,1849],{"title":948,"path":1844,"stem":1845,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":878,"path":1847,"stem":1848,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":955,"path":1850,"stem":1851,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":894,"path":1853,"stem":1854,"children":1855,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced","docs\u002F4.x\u002F4.examples\u002F4.advanced",[1856,1859,1862,1865,1868,1871,1874,1877,1880],{"title":84,"path":1857,"stem":1858,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":1860,"stem":1861,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":969,"path":1863,"stem":1864,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":973,"path":1866,"stem":1867,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":977,"path":1869,"stem":1870,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":981,"path":1872,"stem":1873,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":1875,"stem":1876,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":523,"path":1878,"stem":1879,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":991,"path":1881,"stem":1882,"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":1884,"stem":1885,"children":1886,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental","docs\u002F4.x\u002F4.examples\u002F7.experimental",[1887],{"title":1000,"path":1888,"stem":1889,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F4.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1004,"titleTemplate":1005,"icon":1006,"path":1891,"stem":1892,"children":1893,"page":108},"\u002Fdocs\u002F4.x\u002Fcommunity","docs\u002F4.x\u002F5.community",[1894,1897,1900,1903,1906,1909],{"title":1011,"path":1895,"stem":1896,"titleTemplate":6,"icon":1014},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fgetting-help","docs\u002F4.x\u002F5.community\u002F2.getting-help",{"title":1016,"path":1898,"stem":1899,"titleTemplate":6,"icon":1019},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Freporting-bugs","docs\u002F4.x\u002F5.community\u002F3.reporting-bugs",{"title":1021,"path":1901,"stem":1902,"titleTemplate":6,"icon":1024},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fcontribution","docs\u002F4.x\u002F5.community\u002F4.contribution",{"title":1026,"path":1904,"stem":1905,"titleTemplate":6,"icon":1029},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fframework-contribution","docs\u002F4.x\u002F5.community\u002F5.framework-contribution",{"title":1031,"path":1907,"stem":1908,"titleTemplate":6,"icon":1034},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Froadmap","docs\u002F4.x\u002F5.community\u002F6.roadmap",{"title":1036,"path":1910,"stem":1911,"titleTemplate":6,"icon":1039},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fchangelog","docs\u002F4.x\u002F5.community\u002F7.changelog",{"title":1041,"titleTemplate":1042,"icon":1043,"path":1913,"stem":1914,"children":1915,"page":108},"\u002Fdocs\u002F4.x\u002Fbridge","docs\u002F4.x\u002F6.bridge",[1916,1919,1922,1925,1928,1931,1934,1937,1940,1943],{"title":1048,"path":1917,"stem":1918,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Foverview","docs\u002F4.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1920,"stem":1921,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fconfiguration","docs\u002F4.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1923,"stem":1924,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Ftypescript","docs\u002F4.x\u002F6.bridge\u002F2.typescript",{"title":1058,"path":1926,"stem":1927,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F4.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1062,"path":1929,"stem":1930,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F4.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1066,"path":1932,"stem":1933,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F4.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":936,"path":1935,"stem":1936,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fmeta","docs\u002F4.x\u002F6.bridge\u002F6.meta",{"title":403,"path":1938,"stem":1939,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fruntime-config","docs\u002F4.x\u002F6.bridge\u002F7.runtime-config",{"title":837,"path":1941,"stem":1942,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnitro","docs\u002F4.x\u002F6.bridge\u002F8.nitro",{"title":1079,"path":1944,"stem":1945,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fvite","docs\u002F4.x\u002F6.bridge\u002F9.vite",{"title":1083,"titleTemplate":1084,"icon":107,"path":1947,"stem":1948,"children":1949,"page":108},"\u002Fdocs\u002F4.x\u002Fmigration","docs\u002F4.x\u002F7.migration",[1950,1953,1956,1959,1962,1965,1968,1971,1974,1977,1980],{"title":1048,"path":1951,"stem":1952,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Foverview","docs\u002F4.x\u002F7.migration\u002F1.overview",{"title":1092,"path":1954,"stem":1955,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fbundling","docs\u002F4.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1957,"stem":1958,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fserver","docs\u002F4.x\u002F7.migration\u002F11.server",{"title":29,"path":1960,"stem":1961,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fconfiguration","docs\u002F4.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1963,"stem":1964,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmodule-authors","docs\u002F4.x\u002F7.migration\u002F20.module-authors",{"title":926,"path":1966,"stem":1967,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fauto-imports","docs\u002F4.x\u002F7.migration\u002F3.auto-imports",{"title":936,"path":1969,"stem":1970,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmeta","docs\u002F4.x\u002F7.migration\u002F4.meta",{"title":1062,"path":1972,"stem":1973,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F4.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1114,"path":1975,"stem":1976,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F4.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1118,"path":1978,"stem":1979,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fcomponent-options","docs\u002F4.x\u002F7.migration\u002F7.component-options",{"title":403,"path":1981,"stem":1982,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fruntime-config","docs\u002F4.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1984,"stem":1985,"children":1986,"page":108},"\u002Fdocs\u002F5.x","docs\u002F5.x",[1987,2045,2135,2280,2656,2733,2755,2789],{"title":12,"titleTemplate":13,"icon":14,"path":1988,"stem":1989,"children":1990,"page":108},"\u002Fdocs\u002F5.x\u002Fgetting-started","docs\u002F5.x\u002F1.getting-started",[1991,1994,1997,2000,2003,2006,2009,2012,2015,2018,2021,2024,2027,2030,2033,2036,2039,2042],{"title":19,"path":1992,"stem":1993,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fintroduction","docs\u002F5.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1995,"stem":1996,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Finstallation","docs\u002F5.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1998,"stem":1999,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fconfiguration","docs\u002F5.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":2001,"stem":2002,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fviews","docs\u002F5.x\u002F1.getting-started\u002F04.views",{"title":39,"path":2004,"stem":2005,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fassets","docs\u002F5.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":2007,"stem":2008,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstyling","docs\u002F5.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":2010,"stem":2011,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Frouting","docs\u002F5.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":2013,"stem":2014,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fseo-meta","docs\u002F5.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":2016,"stem":2017,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftransitions","docs\u002F5.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":2019,"stem":2020,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F5.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":2022,"stem":2023,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstate-management","docs\u002F5.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":2025,"stem":2026,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ferror-handling","docs\u002F5.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":2028,"stem":2029,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fserver","docs\u002F5.x\u002F1.getting-started\u002F13.server",{"title":84,"path":2031,"stem":2032,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Flayers","docs\u002F5.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":2034,"stem":2035,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fprerendering","docs\u002F5.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":2037,"stem":2038,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdeployment","docs\u002F5.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":2040,"stem":2041,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftesting","docs\u002F5.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":2043,"stem":2044,"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":2046,"stem":2047,"children":2048,"page":108},"\u002Fdocs\u002F5.x\u002Fdirectory-structure","docs\u002F5.x\u002F2.directory-structure",[2049,2052,2055,2093,2096,2099,2102,2105,2108,2111,2114,2117,2120,2123,2126,2129,2132],{"title":117,"path":2050,"stem":2051,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F5.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":2053,"stem":2054,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Foutput","docs\u002F5.x\u002F2.directory-structure\u002F0.output",{"title":1197,"titleTemplate":111,"head":2056,"defaultOpen":1200,"icon":1201,"path":2057,"stem":2058,"children":2059,"page":108},{"title":1199},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app",[2060,2063,2066,2069,2072,2075,2078,2081,2084,2087,2090],{"title":127,"path":2061,"stem":2062,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":2064,"stem":2065,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":2067,"stem":2068,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":2070,"stem":2071,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":2073,"stem":2074,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":2076,"stem":2077,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":2079,"stem":2080,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":2082,"stem":2083,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":2085,"stem":2086,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":2088,"stem":2089,"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":2091,"stem":2092,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":2094,"stem":2095,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fcontent","docs\u002F5.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":2097,"stem":2098,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Flayers","docs\u002F5.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":2100,"stem":2101,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fmodules","docs\u002F5.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":2103,"stem":2104,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F5.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":2106,"stem":2107,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpublic","docs\u002F5.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":2109,"stem":2110,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fserver","docs\u002F5.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":2112,"stem":2113,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fshared","docs\u002F5.x\u002F2.directory-structure\u002F1.shared",{"title":200,"path":2115,"stem":2116,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fenv","docs\u002F5.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":2118,"stem":2119,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F5.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":2121,"stem":2122,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":2124,"stem":2125,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":2127,"stem":2128,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F5.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":2130,"stem":2131,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpackage","docs\u002F5.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":2133,"stem":2134,"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":2136,"stem":2137,"children":2138,"page":108},"\u002Fdocs\u002F5.x\u002Fguide","docs\u002F5.x\u002F3.guide",[2139,2167,2186,2196,2224,2243],{"title":253,"titleTemplate":254,"icon":255,"path":2140,"stem":2141,"children":2142,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts","docs\u002F5.x\u002F3.guide\u002F1.concepts",[2143,2146,2149,2152,2155,2158,2161,2164],{"title":260,"path":2144,"stem":2145,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":2147,"stem":2148,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":2150,"stem":2151,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":2153,"stem":2154,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":2156,"stem":2157,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":1304,"path":2159,"stem":2160,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-components","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F6.server-components",{"title":280,"path":2162,"stem":2163,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":2165,"stem":2166,"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":2168,"stem":2169,"children":2170,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F2.best-practices",[2171,2174,2177,2180,2183],{"title":1318,"path":2172,"stem":2173,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Faccessibility","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Faccessibility",{"title":1322,"path":2175,"stem":2176,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fdevcontainers","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fdevcontainers",{"title":1326,"path":2178,"stem":2179,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":2181,"stem":2182,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":2184,"stem":2185,"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":2187,"stem":2188,"children":2189,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai","docs\u002F5.x\u002F3.guide\u002F3.ai",[2190,2193],{"title":314,"path":2191,"stem":2192,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F5.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":2194,"stem":2195,"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":2197,"stem":2198,"children":2199,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F4.modules",[2200,2203,2206,2209,2212,2215,2218,2221],{"title":329,"path":2201,"stem":2202,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":2204,"stem":2205,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":2207,"stem":2208,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":2210,"stem":2211,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F4.module-dependencies",{"title":345,"path":2213,"stem":2214,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F5.recipes-advanced",{"title":349,"path":2216,"stem":2217,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F6.testing",{"title":353,"path":2219,"stem":2220,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F7.best-practices",{"title":357,"path":2222,"stem":2223,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F8.ecosystem",{"title":361,"titleTemplate":362,"icon":363,"path":2225,"stem":2226,"children":2227,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes","docs\u002F5.x\u002F3.guide\u002F5.recipes",[2228,2231,2234,2237,2240],{"title":368,"path":2229,"stem":2230,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":372,"path":2232,"stem":2233,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":376,"path":2235,"stem":2236,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":380,"path":2238,"stem":2239,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":1390,"path":2241,"stem":2242,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fmostly-static-sites","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F5.mostly-static-sites",{"title":384,"titleTemplate":385,"icon":386,"path":2244,"stem":2245,"children":2246,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further","docs\u002F5.x\u002F3.guide\u002F6.going-further",[2247,2250,2253,2256,2259,2262,2265,2268,2271,2274,2277],{"title":391,"path":2248,"stem":2249,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":395,"path":2251,"stem":2252,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":399,"path":2254,"stem":2255,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":403,"path":2257,"stem":2258,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":407,"path":2260,"stem":2261,"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":2263,"stem":2264,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":415,"path":2266,"stem":2267,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":419,"path":2269,"stem":2270,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":423,"path":2272,"stem":2273,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":1425,"path":2275,"stem":2276,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fbuilders","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F8.builders",{"title":427,"path":2278,"stem":2279,"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":2281,"stem":2282,"children":2283,"page":108},"\u002Fdocs\u002F5.x\u002Fapi","docs\u002F5.x\u002F4.api",[2284,2336,2439,2530,2582,2643,2653],{"title":438,"titleTemplate":439,"icon":324,"path":2285,"stem":2286,"children":2287,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F1.components",[2288,2291,2294,2297,2300,2303,2306,2309,2312,2315,2318,2321,2324,2327,2330,2333],{"title":444,"path":2289,"stem":2290,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":448,"path":2292,"stem":2293,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":452,"path":2295,"stem":2296,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":456,"path":2298,"stem":2299,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F5.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":460,"path":2301,"stem":2302,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F5.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":464,"path":2304,"stem":2305,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":468,"path":2307,"stem":2308,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F5.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1461,"path":2310,"stem":2311,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":472,"path":2313,"stem":2314,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F5.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":476,"path":2316,"stem":2317,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F5.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":480,"path":2319,"stem":2320,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F5.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":484,"path":2322,"stem":2323,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F5.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":488,"path":2325,"stem":2326,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F5.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":492,"path":2328,"stem":2329,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F5.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":496,"path":2331,"stem":2332,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F5.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":500,"path":2334,"stem":2335,"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":2337,"stem":2338,"children":2339,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables","docs\u002F5.x\u002F4.api\u002F2.composables",[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,2430,2433,2436],{"title":1493,"path":2341,"stem":2342,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1497,"path":2344,"stem":2345,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":511,"path":2347,"stem":2348,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1504,"path":2350,"stem":2351,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":515,"path":2353,"stem":2354,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":519,"path":2356,"stem":2357,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":523,"path":2359,"stem":2360,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":527,"path":2362,"stem":2363,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":531,"path":2365,"stem":2366,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":535,"path":2368,"stem":2369,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":539,"path":2371,"stem":2372,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":543,"path":2374,"stem":2375,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":1532,"path":2377,"stem":2378,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-layout","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-layout",{"title":547,"path":2380,"stem":2381,"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":2383,"stem":2384,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":555,"path":2386,"stem":2387,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":559,"path":2389,"stem":2390,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":563,"path":2392,"stem":2393,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":567,"path":2395,"stem":2396,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":571,"path":2398,"stem":2399,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":575,"path":2401,"stem":2402,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":579,"path":2404,"stem":2405,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":583,"path":2407,"stem":2408,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":587,"path":2410,"stem":2411,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":591,"path":2413,"stem":2414,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":595,"path":2416,"stem":2417,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":599,"path":2419,"stem":2420,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":603,"path":2422,"stem":2423,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":607,"path":2425,"stem":2426,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":611,"path":2428,"stem":2429,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":615,"path":2431,"stem":2432,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":619,"path":2434,"stem":2435,"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":2437,"stem":2438,"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":2440,"stem":2441,"children":2442,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils","docs\u002F5.x\u002F4.api\u002F3.utils",[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,2521,2524,2527],{"title":634,"path":2444,"stem":2445,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F5.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":638,"path":2447,"stem":2448,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":642,"path":2450,"stem":2451,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":646,"path":2453,"stem":2454,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":650,"path":2456,"stem":2457,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":654,"path":2459,"stem":2460,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":658,"path":2462,"stem":2463,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":662,"path":2465,"stem":2466,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":666,"path":2468,"stem":2469,"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":2471,"stem":2472,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":674,"path":2474,"stem":2475,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":678,"path":2477,"stem":2478,"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":2480,"stem":2481,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":686,"path":2483,"stem":2484,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":690,"path":2486,"stem":2487,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":694,"path":2489,"stem":2490,"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":2492,"stem":2493,"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":2495,"stem":2496,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":706,"path":2498,"stem":2499,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":710,"path":2501,"stem":2502,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":714,"path":2504,"stem":2505,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":718,"path":2507,"stem":2508,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":722,"path":2510,"stem":2511,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":726,"path":2513,"stem":2514,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":730,"path":2516,"stem":2517,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F5.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":734,"path":2519,"stem":2520,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":738,"path":2522,"stem":2523,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":742,"path":2525,"stem":2526,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":746,"path":2528,"stem":2529,"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":2531,"stem":2532,"children":2533,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands","docs\u002F5.x\u002F4.api\u002F4.commands",[2534,2537,2540,2543,2546,2549,2552,2555,2558,2561,2564,2567,2570,2573,2576,2579],{"title":757,"path":2535,"stem":2536,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fadd",{"title":761,"path":2538,"stem":2539,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":765,"path":2541,"stem":2542,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":769,"path":2544,"stem":2545,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":773,"path":2547,"stem":2548,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":777,"path":2550,"stem":2551,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdev",{"title":781,"path":2553,"stem":2554,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":785,"path":2556,"stem":2557,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":789,"path":2559,"stem":2560,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finfo",{"title":793,"path":2562,"stem":2563,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finit",{"title":797,"path":2565,"stem":2566,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":801,"path":2568,"stem":2569,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":805,"path":2571,"stem":2572,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":809,"path":2574,"stem":2575,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftest",{"title":813,"path":2577,"stem":2578,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":817,"path":2580,"stem":2581,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":415,"titleTemplate":821,"icon":822,"path":2583,"stem":2584,"children":2585,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit","docs\u002F5.x\u002F4.api\u002F5.kit",[2586,2589,2592,2595,2598,2601,2604,2607,2610,2613,2616,2619,2622,2625,2628,2631,2634,2637,2640],{"title":276,"path":2587,"stem":2588,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F5.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":403,"path":2590,"stem":2591,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":833,"path":2593,"stem":2594,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":1752,"path":2596,"stem":2597,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fapp-config","docs\u002F5.x\u002F4.api\u002F5.kit\u002F11.app-config",{"title":837,"path":2599,"stem":2600,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F5.x\u002F4.api\u002F5.kit\u002F12.nitro",{"title":841,"path":2602,"stem":2603,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F5.x\u002F4.api\u002F5.kit\u002F13.resolving",{"title":845,"path":2605,"stem":2606,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F5.x\u002F4.api\u002F5.kit\u002F14.logging",{"title":849,"path":2608,"stem":2609,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F5.x\u002F4.api\u002F5.kit\u002F15.builder",{"title":853,"path":2611,"stem":2612,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F5.x\u002F4.api\u002F5.kit\u002F16.examples",{"title":84,"path":2614,"stem":2615,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F5.x\u002F4.api\u002F5.kit\u002F17.layers",{"title":860,"path":2617,"stem":2618,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F5.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":864,"path":2620,"stem":2621,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F5.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":2623,"stem":2624,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F5.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":438,"path":2626,"stem":2627,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F5.kit\u002F5.components",{"title":874,"path":2629,"stem":2630,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F5.x\u002F4.api\u002F5.kit\u002F6.context",{"title":878,"path":2632,"stem":2633,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F5.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":882,"path":2635,"stem":2636,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F5.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":886,"path":2638,"stem":2639,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.head",{"title":890,"path":2641,"stem":2642,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":894,"titleTemplate":6,"icon":895,"path":2644,"stem":2645,"children":2646,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced","docs\u002F5.x\u002F4.api\u002F6.advanced",[2647,2650],{"title":411,"path":2648,"stem":2649,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":903,"path":2651,"stem":2652,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":907,"path":2654,"stem":2655,"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":2657,"stem":2658,"children":2659,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples","docs\u002F5.x\u002F4.examples",[2660,2663,2682,2695,2726],{"title":918,"path":2661,"stem":2662,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fhello-world","docs\u002F5.x\u002F4.examples\u002F0.hello-world",{"title":399,"path":2664,"stem":2665,"children":2666,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures","docs\u002F5.x\u002F4.examples\u002F1.features",[2667,2670,2673,2676,2679],{"title":926,"path":2668,"stem":2669,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F5.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":2671,"stem":2672,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F5.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":2674,"stem":2675,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F5.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":936,"path":2677,"stem":2678,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F5.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":940,"path":2680,"stem":2681,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F5.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":2683,"stem":2684,"children":2685,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting","docs\u002F5.x\u002F4.examples\u002F2.routing",[2686,2689,2692],{"title":948,"path":2687,"stem":2688,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":878,"path":2690,"stem":2691,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":955,"path":2693,"stem":2694,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":894,"path":2696,"stem":2697,"children":2698,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced","docs\u002F5.x\u002F4.examples\u002F4.advanced",[2699,2702,2705,2708,2711,2714,2717,2720,2723],{"title":84,"path":2700,"stem":2701,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":2703,"stem":2704,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":969,"path":2706,"stem":2707,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":973,"path":2709,"stem":2710,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":977,"path":2712,"stem":2713,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":981,"path":2715,"stem":2716,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":2718,"stem":2719,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":523,"path":2721,"stem":2722,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":991,"path":2724,"stem":2725,"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":2727,"stem":2728,"children":2729,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental","docs\u002F5.x\u002F4.examples\u002F7.experimental",[2730],{"title":1000,"path":2731,"stem":2732,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F5.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1004,"titleTemplate":1005,"icon":1006,"path":2734,"stem":2735,"children":2736,"page":108},"\u002Fdocs\u002F5.x\u002Fcommunity","docs\u002F5.x\u002F5.community",[2737,2740,2743,2746,2749,2752],{"title":1011,"path":2738,"stem":2739,"titleTemplate":6,"icon":1014},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fgetting-help","docs\u002F5.x\u002F5.community\u002F2.getting-help",{"title":1016,"path":2741,"stem":2742,"titleTemplate":6,"icon":1019},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Freporting-bugs","docs\u002F5.x\u002F5.community\u002F3.reporting-bugs",{"title":1021,"path":2744,"stem":2745,"titleTemplate":6,"icon":1024},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fcontribution","docs\u002F5.x\u002F5.community\u002F4.contribution",{"title":1026,"path":2747,"stem":2748,"titleTemplate":6,"icon":1029},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fframework-contribution","docs\u002F5.x\u002F5.community\u002F5.framework-contribution",{"title":1031,"path":2750,"stem":2751,"titleTemplate":6,"icon":1034},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Froadmap","docs\u002F5.x\u002F5.community\u002F6.roadmap",{"title":1036,"path":2753,"stem":2754,"titleTemplate":6,"icon":1039},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fchangelog","docs\u002F5.x\u002F5.community\u002F7.changelog",{"title":1041,"titleTemplate":1042,"icon":1043,"path":2756,"stem":2757,"children":2758,"page":108},"\u002Fdocs\u002F5.x\u002Fbridge","docs\u002F5.x\u002F6.bridge",[2759,2762,2765,2768,2771,2774,2777,2780,2783,2786],{"title":1048,"path":2760,"stem":2761,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Foverview","docs\u002F5.x\u002F6.bridge\u002F1.overview",{"title":29,"path":2763,"stem":2764,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fconfiguration","docs\u002F5.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":2766,"stem":2767,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Ftypescript","docs\u002F5.x\u002F6.bridge\u002F2.typescript",{"title":1058,"path":2769,"stem":2770,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F5.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1062,"path":2772,"stem":2773,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F5.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1066,"path":2775,"stem":2776,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F5.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":936,"path":2778,"stem":2779,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fmeta","docs\u002F5.x\u002F6.bridge\u002F6.meta",{"title":403,"path":2781,"stem":2782,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fruntime-config","docs\u002F5.x\u002F6.bridge\u002F7.runtime-config",{"title":837,"path":2784,"stem":2785,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnitro","docs\u002F5.x\u002F6.bridge\u002F8.nitro",{"title":1079,"path":2787,"stem":2788,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fvite","docs\u002F5.x\u002F6.bridge\u002F9.vite",{"title":1083,"titleTemplate":1084,"icon":107,"path":2790,"stem":2791,"children":2792,"page":108},"\u002Fdocs\u002F5.x\u002Fmigration","docs\u002F5.x\u002F7.migration",[2793,2796,2799,2802,2805,2808,2811,2814,2817,2820,2823],{"title":1048,"path":2794,"stem":2795,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Foverview","docs\u002F5.x\u002F7.migration\u002F1.overview",{"title":1092,"path":2797,"stem":2798,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fbundling","docs\u002F5.x\u002F7.migration\u002F10.bundling",{"title":79,"path":2800,"stem":2801,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fserver","docs\u002F5.x\u002F7.migration\u002F11.server",{"title":29,"path":2803,"stem":2804,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fconfiguration","docs\u002F5.x\u002F7.migration\u002F2.configuration",{"title":276,"path":2806,"stem":2807,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmodule-authors","docs\u002F5.x\u002F7.migration\u002F20.module-authors",{"title":926,"path":2809,"stem":2810,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fauto-imports","docs\u002F5.x\u002F7.migration\u002F3.auto-imports",{"title":936,"path":2812,"stem":2813,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmeta","docs\u002F5.x\u002F7.migration\u002F4.meta",{"title":1062,"path":2815,"stem":2816,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F5.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1114,"path":2818,"stem":2819,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F5.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1118,"path":2821,"stem":2822,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fcomponent-options","docs\u002F5.x\u002F7.migration\u002F7.component-options",{"title":403,"path":2824,"stem":2825,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fruntime-config","docs\u002F5.x\u002F7.migration\u002F8.runtime-config",{"title":2827,"icon":2828,"path":2829,"stem":2830,"children":2831,"page":108},"Blog","i-lucide-newspaper","\u002Fblog","blog",[2832,2836,2840,2844,2848,2852,2856,2860,2864,2868,2872,2876,2880,2884,2888,2892,2896,2900,2904,2908,2912,2916,2920,2924,2928,2932,2936,2940,2944,2948,2952,2956,2960,2964,2968,2972,2976,2980,2984,2988,2992,2996,3000,3004,3008,3012,3016,3020,3024,3028],{"title":2833,"path":2834,"stem":2835},"Announcing 3.0","\u002Fblog\u002Fv3","blog\u002F1.v3",{"title":2837,"path":2838,"stem":2839},"Nuxt 3.3","\u002Fblog\u002Fv3-3","blog\u002F10.v3-3",{"title":2841,"path":2842,"stem":2843},"Nuxt 3.4","\u002Fblog\u002Fv3-4","blog\u002F11.v3-4",{"title":2845,"path":2846,"stem":2847},"Nuxt 3.5","\u002Fblog\u002Fv3-5","blog\u002F12.v3-5",{"title":2849,"path":2850,"stem":2851},"Nuxt 3.6","\u002Fblog\u002Fv3-6","blog\u002F13.v3-6",{"title":2853,"path":2854,"stem":2855},"Nuxt on the Edge","\u002Fblog\u002Fnuxt-on-the-edge","blog\u002F14.nuxt-on-the-edge",{"title":2857,"path":2858,"stem":2859},"Nuxt 3.7","\u002Fblog\u002Fv3-7","blog\u002F15.v3-7",{"title":2861,"path":2862,"stem":2863},"A New Website","\u002Fblog\u002Fnew-website","blog\u002F16.new-website",{"title":2865,"path":2866,"stem":2867},"Nuxt 3.8","\u002Fblog\u002Fv3-8","blog\u002F17.v3-8",{"title":2869,"path":2870,"stem":2871},"Nuxt DevTools v1.0","\u002Fblog\u002Fnuxt-devtools-v1-0","blog\u002F18.nuxt-devtools-v1-0",{"title":2873,"path":2874,"stem":2875},"Nuxt 3.9","\u002Fblog\u002Fv3-9","blog\u002F19.v3-9",{"title":2877,"path":2878,"stem":2879},"Nuxt: A vision for 2023","\u002Fblog\u002Fvision-2023","blog\u002F2.vision-2023",{"title":2881,"path":2882,"stem":2883},"Nuxt 3.10","\u002Fblog\u002Fv3-10","blog\u002F20.v3-10",{"title":2885,"path":2886,"stem":2887},"The Evolution of Shiki v1.0","\u002Fblog\u002Fshiki-v1","blog\u002F21.shiki-v1",{"title":2889,"path":2890,"stem":2891},"Nuxt 3.11","\u002Fblog\u002Fv3-11","blog\u002F22.v3-11",{"title":2893,"path":2894,"stem":2895},"Nuxt: Looking forward","\u002Fblog\u002Flooking-forward-2024","blog\u002F23.looking-forward-2024",{"title":2897,"path":2898,"stem":2899},"Refreshed Nuxt ESLint Integrations","\u002Fblog\u002Feslint-module","blog\u002F24.eslint-module",{"title":2901,"path":2902,"stem":2903},"Nuxt 3.12","\u002Fblog\u002Fv3-12","blog\u002F25.v3-12",{"title":2905,"path":2906,"stem":2907},"Introducing Nuxt Scripts","\u002Fblog\u002Fnuxt-scripts","blog\u002F26.nuxt-scripts",{"title":2909,"path":2910,"stem":2911},"Nuxt 3.13","\u002Fblog\u002Fv3-13","blog\u002F27.v3-13",{"title":2913,"path":2914,"stem":2915},"Nuxt 3.14","\u002Fblog\u002Fv3-14","blog\u002F27.v3-14",{"title":2917,"path":2918,"stem":2919},"Introducing Nuxt Icon v1","\u002Fblog\u002Fnuxt-icon-v1-0","blog\u002F29.nuxt-icon-v1-0",{"title":2921,"path":2922,"stem":2923},"Introducing Nuxt DevTools","\u002Fblog\u002Fintroducing-nuxt-devtools","blog\u002F3.introducing-nuxt-devtools",{"title":2925,"path":2926,"stem":2927},"Announcing Nuxt 3 Release Candidate","\u002Fblog\u002Fnuxt3-rc","blog\u002F3.nuxt3-rc",{"title":2929,"path":2930,"stem":2931},"Nuxt 3.15","\u002Fblog\u002Fv3-15","blog\u002F30.v3-15",{"title":2933,"path":2934,"stem":2935},"Nuxt 3.16","\u002Fblog\u002Fv3-16","blog\u002F31.v3-16",{"title":2937,"path":2938,"stem":2939},"Nuxt UI v3","\u002Fblog\u002Fnuxt-ui-v3","blog\u002F32.nuxt-ui-v3",{"title":2941,"path":2942,"stem":2943},"Nuxt 3.17","\u002Fblog\u002Fv3-17","blog\u002F33.v3-17",{"title":2945,"path":2946,"stem":2947},"Roadmap to v4","\u002Fblog\u002Froadmap-v4","blog\u002F34.roadmap-v4",{"title":2949,"path":2950,"stem":2951},"Building a Privacy-First Feedback Widget","\u002Fblog\u002Fbuilding-a-feedback-widget","blog\u002F35.building-a-feedback-widget",{"title":2953,"path":2954,"stem":2955},"Announcing Nuxt 4.0","\u002Fblog\u002Fv4","blog\u002F36.v4",{"title":2957,"path":2958,"stem":2959},"Nuxt 3.18","\u002Fblog\u002Fv3-18","blog\u002F37.v3-18",{"title":2961,"path":2962,"stem":2963},"Nuxt 4.1","\u002Fblog\u002Fv4-1","blog\u002F38.v4-1",{"title":2965,"path":2966,"stem":2967},"Nuxt UI v4","\u002Fblog\u002Fnuxt-ui-v4","blog\u002F39.nuxt-ui-v4",{"title":2969,"path":2970,"stem":2971},"Nuxt 2 End-of-Life (EOL)","\u002Fblog\u002Fnuxt2-eol","blog\u002F4.nuxt2-eol",{"title":2973,"path":2974,"stem":2975},"Introducing Nuxt 3 Beta","\u002Fblog\u002Fnuxt3-beta","blog\u002F4.nuxt3-beta",{"title":2977,"path":2978,"stem":2979},"Building an MCP Server for Nuxt","\u002Fblog\u002Fbuilding-nuxt-mcp","blog\u002F40.building-nuxt-mcp",{"title":2981,"path":2982,"stem":2983},"Nuxt 4.2","\u002Fblog\u002Fv4-2","blog\u002F40.v4-2",{"title":2985,"path":2986,"stem":2987},"Nuxt Image v2","\u002Fblog\u002Fnuxt-image-v2","blog\u002F41.nuxt-image-v2",{"title":2989,"path":2990,"stem":2991},"Nuxt 4.3","\u002Fblog\u002Fv4-3","blog\u002F42.v4-3",{"title":2993,"path":2994,"stem":2995},"Nuxt 4.4","\u002Fblog\u002Fv4-4","blog\u002F43.v4-4",{"title":2997,"path":2998,"stem":2999},"Introducing the Nuxt Agent","\u002Fblog\u002Fintroducing-nuxt-agent","blog\u002F44.introducing-nuxt-agent",{"title":3001,"path":3002,"stem":3003},"Meet Nuxi","\u002Fblog\u002Fmeet-nuxi","blog\u002F45.meet-nuxi",{"title":3005,"path":3006,"stem":3007},"Nuxt 4.5","\u002Fblog\u002Fv4-5","blog\u002F46.v4-5",{"title":3009,"path":3010,"stem":3011},"Nuxt Security Patch Releases","\u002Fblog\u002Fv4-5-security","blog\u002F47.v4-5-security",{"title":3013,"path":3014,"stem":3015},"Going Full Static","\u002Fblog\u002Fgoing-full-static","blog\u002F5.going-full-static",{"title":3017,"path":3018,"stem":3019},"Introducing Smart Prefetching","\u002Fblog\u002Fintroducing-smart-prefetching","blog\u002F6.introducing-smart-prefetching",{"title":3021,"path":3022,"stem":3023},"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":3025,"path":3026,"stem":3027},"Nuxt 2 Static Improvements","\u002Fblog\u002Fnuxt-static-improvements","blog\u002F8.nuxt-static-improvements",{"title":3029,"path":3030,"stem":3031},"Nuxt 2: From Terminal to Browser","\u002Fblog\u002Fnuxtjs-from-terminal-to-browser","blog\u002F9.nuxtjs-from-terminal-to-browser",{"name":3033,"description":3034,"repo":3035,"npm":3036,"icon":3037,"github":3038,"website":3038,"learn_more":3037,"category":3039,"type":3040,"maintainers":3041,"compatibility":3046,"generatedAt":3049,"contributors":3050,"stats":3148,"readme":3156},"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",[3042],{"name":3043,"github":3044,"twitter":3044,"bluesky":3045},"Sébastien Chopin","atinux","atinux.com",{"nuxt":3047,"requires":3048},">=3.0.0",{},"2026-08-07T08:48:25.309Z",[3051,3054,3058,3062,3066,3070,3074,3077,3080,3083,3086,3090,3093,3096,3099,3102,3105,3108,3111,3114,3117,3120,3124,3127,3130,3133,3136,3139,3142,3145],{"id":3052,"username":3044,"contributions":3053},904724,199,{"id":3055,"username":3056,"contributions":3057},28706372,"danielroe",16,{"id":3059,"username":3060,"contributions":3061},50090595,"ahmedrangel",9,{"id":3063,"username":3064,"contributions":3065},12988935,"Gerbuuun",8,{"id":3067,"username":3068,"contributions":3069},45267552,"Barbapapazes",7,{"id":3071,"username":3072,"contributions":3073},13056429,"sandros94",3,{"id":3075,"username":3076,"contributions":3073},16264115,"Yizack",{"id":3078,"username":3079,"contributions":3073},967369,"acidjazz",{"id":3081,"username":3082,"contributions":3073},15887916,"blumgart",{"id":3084,"username":3085,"contributions":3073},67746033,"justserdar",{"id":3087,"username":3088,"contributions":3089},10636392,"brianacdev",2,{"id":3091,"username":3092,"contributions":3089},67898185,"larsrickert",{"id":3094,"username":3095,"contributions":3089},40021217,"kingyue737",{"id":3097,"username":3098,"contributions":3089},59120414,"cth-latest",{"id":3100,"username":3101,"contributions":3089},19751938,"noook",{"id":3103,"username":3104,"contributions":3089},1409645,"mariosant",{"id":3106,"username":3107,"contributions":3089},24661232,"Jorgagu",{"id":3109,"username":3110,"contributions":3089},5326365,"harlan-zw",{"id":3112,"username":3113,"contributions":3089},61092270,"stranavad",{"id":3115,"username":3116,"contributions":3089},1592441,"mendrinos",{"id":3118,"username":3119,"contributions":3089},376963,"bisand",{"id":3121,"username":3122,"contributions":3123},68467996,"tejas161",1,{"id":3125,"username":3126,"contributions":3123},18315316,"Syrex-o",{"id":3128,"username":3129,"contributions":3123},3109921,"silvio-e",{"id":3131,"username":3132,"contributions":3123},18753964,"sifferhans",{"id":3134,"username":3135,"contributions":3123},17186421,"samulefevre",{"id":3137,"username":3138,"contributions":3123},15785987,"samydoesit",{"id":3140,"username":3141,"contributions":3123},31662219,"rudokemper",{"id":3143,"username":3144,"contributions":3123},29805551,"RobertHaba",{"id":3146,"username":3147,"contributions":3123},1231105,"SteinRobert",{"version":3149,"downloads":3150,"stars":3151,"watchers":3151,"forks":3152,"defaultBranch":3153,"publishedAt":3154,"createdAt":3155},"0.5.30",378011,1589,187,"main",1785851859387,1699356484873,{"data":3157,"body":3159,"toc":14164},{"title":3158,"description":3037},"Nuxt Auth Utils",{"type":3160,"children":3161},"root",[3162,3169,3215,3219,3253,3259,3358,3372,3378,3390,3402,3413,3419,3435,3477,3499,3534,3546,3554,3560,3565,3572,4114,4123,4626,4648,4654,4667,4673,5050,5070,5249,5261,5267,5272,5292,5313,5340,5518,5523,5544,5552,5559,5802,5815,5821,5832,6237,6249,6262,6267,6297,6423,6436,6547,6558,6714,6720,6725,6730,6738,6772,6785,6864,6869,6874,6879,6886,6918,6930,7009,7014,7019,7033,7353,7493,7523,8451,8486,9323,9357,9870,9875,10714,10732,10738,10767,10778,10784,10789,11071,11077,11096,11322,11346,11351,11371,11376,11384,11403,11491,11517,11523,11540,11627,11645,11655,11667,11672,11941,11953,11965,12338,12366,12372,12385,12403,12506,12526,12876,12890,13390,13395,13422,13433,13603,13608,13754,13774,13877,13895,13901,13921,13927,14158],{"type":3163,"tag":3164,"props":3165,"children":3166},"element","h1",{"id":3036},[3167],{"type":3168,"value":3158},"text",{"type":3163,"tag":3170,"props":3171,"children":3172},"p",{},[3173,3186,3196,3205],{"type":3163,"tag":3174,"props":3175,"children":3179},"a",{"href":3176,"rel":3177},"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fnuxt-auth-utils",[3178],"nofollow",[3180],{"type":3163,"tag":3181,"props":3182,"children":3185},"img",{"alt":3183,"src":3184},"npm version","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fnuxt-auth-utils\u002Flatest.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3163,"tag":3174,"props":3187,"children":3190},{"href":3188,"rel":3189},"https:\u002F\u002Fnpm.chart.dev\u002Fnuxt-auth-utils",[3178],[3191],{"type":3163,"tag":3181,"props":3192,"children":3195},{"alt":3193,"src":3194},"npm downloads","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3163,"tag":3174,"props":3197,"children":3199},{"href":3176,"rel":3198},[3178],[3200],{"type":3163,"tag":3181,"props":3201,"children":3204},{"alt":3202,"src":3203},"License","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3163,"tag":3174,"props":3206,"children":3209},{"href":3207,"rel":3208},"https:\u002F\u002Fnuxt.com",[3178],[3210],{"type":3163,"tag":3181,"props":3211,"children":3214},{"alt":3212,"src":3213},"Nuxt","https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNuxt-020420?logo=nuxt.js",[],{"type":3163,"tag":3170,"props":3216,"children":3217},{},[3218],{"type":3168,"value":3034},{"type":3163,"tag":3220,"props":3221,"children":3222},"ul",{},[3223,3233,3243],{"type":3163,"tag":3224,"props":3225,"children":3226},"li",{},[3227],{"type":3163,"tag":3174,"props":3228,"children":3230},{"href":3229},"\u002FCHANGELOG.md",[3231],{"type":3168,"value":3232},"Release Notes",{"type":3163,"tag":3224,"props":3234,"children":3235},{},[3236],{"type":3163,"tag":3174,"props":3237,"children":3240},{"href":3238,"rel":3239},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fatidone",[3178],[3241],{"type":3168,"value":3242},"Demo with OAuth",{"type":3163,"tag":3224,"props":3244,"children":3245},{},[3246],{"type":3163,"tag":3174,"props":3247,"children":3250},{"href":3248,"rel":3249},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Ftodo-passkeys",[3178],[3251],{"type":3168,"value":3252},"Demo with Passkeys",{"type":3163,"tag":3254,"props":3255,"children":3257},"h2",{"id":3256},"features",[3258],{"type":3168,"value":399},{"type":3163,"tag":3220,"props":3260,"children":3261},{},[3262,3273,3282,3291,3300,3316,3325,3340,3349],{"type":3163,"tag":3224,"props":3263,"children":3264},{},[3265,3271],{"type":3163,"tag":3174,"props":3266,"children":3268},{"href":3267},"#hybrid-rendering",[3269],{"type":3168,"value":3270},"Hybrid Rendering",{"type":3168,"value":3272}," support (SSR \u002F CSR \u002F SWR \u002F Prerendering)",{"type":3163,"tag":3224,"props":3274,"children":3275},{},[3276],{"type":3163,"tag":3174,"props":3277,"children":3279},{"href":3278},"#supported-oauth-providers",[3280],{"type":3168,"value":3281},"40+ OAuth Providers",{"type":3163,"tag":3224,"props":3283,"children":3284},{},[3285],{"type":3163,"tag":3174,"props":3286,"children":3288},{"href":3287},"#password-hashing",[3289],{"type":3168,"value":3290},"Password Hashing",{"type":3163,"tag":3224,"props":3292,"children":3293},{},[3294],{"type":3163,"tag":3174,"props":3295,"children":3297},{"href":3296},"#webauthn-passkey",[3298],{"type":3168,"value":3299},"WebAuthn (passkey)",{"type":3163,"tag":3224,"props":3301,"children":3302},{},[3303],{"type":3163,"tag":3174,"props":3304,"children":3306},{"href":3305},"#vue-composable",[3307,3314],{"type":3163,"tag":3308,"props":3309,"children":3311},"code",{"className":3310},[],[3312],{"type":3168,"value":3313},"useUserSession()",{"type":3168,"value":3315}," Vue composable",{"type":3163,"tag":3224,"props":3317,"children":3318},{},[3319],{"type":3163,"tag":3174,"props":3320,"children":3322},{"href":3321},"#server-utils",[3323],{"type":3168,"value":3324},"Tree-shakable server utils",{"type":3163,"tag":3224,"props":3326,"children":3327},{},[3328],{"type":3163,"tag":3174,"props":3329,"children":3331},{"href":3330},"#authstate-component",[3332,3338],{"type":3163,"tag":3308,"props":3333,"children":3335},{"className":3334},[],[3336],{"type":3168,"value":3337},"\u003CAuthState>",{"type":3168,"value":3339}," component",{"type":3163,"tag":3224,"props":3341,"children":3342},{},[3343],{"type":3163,"tag":3174,"props":3344,"children":3346},{"href":3345},"#extend-session",[3347],{"type":3168,"value":3348},"Extendable with hooks",{"type":3163,"tag":3224,"props":3350,"children":3351},{},[3352],{"type":3163,"tag":3174,"props":3353,"children":3355},{"href":3354},"#websocket-support",[3356],{"type":3168,"value":3357},"WebSocket support",{"type":3163,"tag":3170,"props":3359,"children":3360},{},[3361,3363,3370],{"type":3168,"value":3362},"It has few dependencies (only from ",{"type":3163,"tag":3174,"props":3364,"children":3367},{"href":3365,"rel":3366},"https:\u002F\u002Fgithub.com\u002Funjs",[3178],[3368],{"type":3168,"value":3369},"UnJS",{"type":3168,"value":3371},"), run on multiple JS environments (Node, Deno, Workers) and is fully typed with TypeScript.",{"type":3163,"tag":3254,"props":3373,"children":3375},{"id":3374},"requirements",[3376],{"type":3168,"value":3377},"Requirements",{"type":3163,"tag":3170,"props":3379,"children":3380},{},[3381,3383,3388],{"type":3168,"value":3382},"This module only works with a Nuxt server running as it uses server API routes (",{"type":3163,"tag":3308,"props":3384,"children":3386},{"className":3385},[],[3387],{"type":3168,"value":765},{"type":3168,"value":3389},").",{"type":3163,"tag":3170,"props":3391,"children":3392},{},[3393,3395,3400],{"type":3168,"value":3394},"This means that you cannot use this module with ",{"type":3163,"tag":3308,"props":3396,"children":3398},{"className":3397},[],[3399],{"type":3168,"value":785},{"type":3168,"value":3401},".",{"type":3163,"tag":3170,"props":3403,"children":3404},{},[3405,3407,3411],{"type":3168,"value":3406},"You can anyway use ",{"type":3163,"tag":3174,"props":3408,"children":3409},{"href":3267},[3410],{"type":3168,"value":3270},{"type":3168,"value":3412}," to pre-render pages of your application or disable server-side rendering completely.",{"type":3163,"tag":3254,"props":3414,"children":3416},{"id":3415},"quick-setup",[3417],{"type":3168,"value":3418},"Quick Setup",{"type":3163,"tag":3420,"props":3421,"children":3422},"ol",{},[3423],{"type":3163,"tag":3224,"props":3424,"children":3425},{},[3426,3428,3433],{"type":3168,"value":3427},"Add ",{"type":3163,"tag":3308,"props":3429,"children":3431},{"className":3430},[],[3432],{"type":3168,"value":3036},{"type":3168,"value":3434}," in your Nuxt project",{"type":3163,"tag":3436,"props":3437,"children":3441},"pre",{"className":3438,"code":3439,"language":3440,"meta":3037,"style":3037},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","npx nuxi@latest module add auth-utils\n","bash",[3442],{"type":3163,"tag":3308,"props":3443,"children":3444},{"__ignoreMap":3037},[3445],{"type":3163,"tag":3446,"props":3447,"children":3449},"span",{"class":3448,"line":3123},"line",[3450,3456,3462,3467,3472],{"type":3163,"tag":3446,"props":3451,"children":3453},{"style":3452},"--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B",[3454],{"type":3168,"value":3455},"npx",{"type":3163,"tag":3446,"props":3457,"children":3459},{"style":3458},"--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D",[3460],{"type":3168,"value":3461}," nuxi@latest",{"type":3163,"tag":3446,"props":3463,"children":3464},{"style":3458},[3465],{"type":3168,"value":3466}," module",{"type":3163,"tag":3446,"props":3468,"children":3469},{"style":3458},[3470],{"type":3168,"value":3471}," add",{"type":3163,"tag":3446,"props":3473,"children":3474},{"style":3458},[3475],{"type":3168,"value":3476}," auth-utils\n",{"type":3163,"tag":3420,"props":3478,"children":3479},{"start":3089},[3480],{"type":3163,"tag":3224,"props":3481,"children":3482},{},[3483,3485,3491,3493,3498],{"type":3168,"value":3484},"Add a ",{"type":3163,"tag":3308,"props":3486,"children":3488},{"className":3487},[],[3489],{"type":3168,"value":3490},"NUXT_SESSION_PASSWORD",{"type":3168,"value":3492}," env variable with at least 32 characters in the ",{"type":3163,"tag":3308,"props":3494,"children":3496},{"className":3495},[],[3497],{"type":3168,"value":200},{"type":3168,"value":3401},{"type":3163,"tag":3436,"props":3500,"children":3502},{"className":3438,"code":3501,"language":3440,"meta":3037,"style":3037},"# .env\nNUXT_SESSION_PASSWORD=password-with-at-least-32-characters\n",[3503],{"type":3163,"tag":3308,"props":3504,"children":3505},{"__ignoreMap":3037},[3506,3515],{"type":3163,"tag":3446,"props":3507,"children":3508},{"class":3448,"line":3123},[3509],{"type":3163,"tag":3446,"props":3510,"children":3512},{"style":3511},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[3513],{"type":3168,"value":3514},"# .env\n",{"type":3163,"tag":3446,"props":3516,"children":3517},{"class":3448,"line":3089},[3518,3523,3529],{"type":3163,"tag":3446,"props":3519,"children":3521},{"style":3520},"--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8",[3522],{"type":3168,"value":3490},{"type":3163,"tag":3446,"props":3524,"children":3526},{"style":3525},"--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF",[3527],{"type":3168,"value":3528},"=",{"type":3163,"tag":3446,"props":3530,"children":3531},{"style":3458},[3532],{"type":3168,"value":3533},"password-with-at-least-32-characters\n",{"type":3163,"tag":3170,"props":3535,"children":3536},{},[3537,3539,3544],{"type":3168,"value":3538},"Nuxt Auth Utils generates one for you when running Nuxt in development the first time if no ",{"type":3163,"tag":3308,"props":3540,"children":3542},{"className":3541},[],[3543],{"type":3168,"value":3490},{"type":3168,"value":3545}," is set.",{"type":3163,"tag":3420,"props":3547,"children":3548},{"start":3073},[3549],{"type":3163,"tag":3224,"props":3550,"children":3551},{},[3552],{"type":3168,"value":3553},"That's it! You can now add authentication to your Nuxt app ✨",{"type":3163,"tag":3254,"props":3555,"children":3557},{"id":3556},"vue-composable",[3558],{"type":3168,"value":3559},"Vue Composable",{"type":3163,"tag":3170,"props":3561,"children":3562},{},[3563],{"type":3168,"value":3564},"Nuxt Auth Utils automatically adds some plugins to fetch the current user session to let you access it from your Vue components.",{"type":3163,"tag":3566,"props":3567,"children":3569},"h3",{"id":3568},"user-session",[3570],{"type":3168,"value":3571},"User Session",{"type":3163,"tag":3436,"props":3573,"children":3577},{"className":3574,"code":3575,"language":3576,"meta":3037,"style":3037},"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",[3578],{"type":3163,"tag":3308,"props":3579,"children":3580},{"__ignoreMap":3037},[3581,3606,3691,3707,3716,3733,3774,3808,3840,3895,3912,3933,3966,4021,4030,4083,4098],{"type":3163,"tag":3446,"props":3582,"children":3583},{"class":3448,"line":3123},[3584,3589,3595,3601],{"type":3163,"tag":3446,"props":3585,"children":3586},{"style":3525},[3587],{"type":3168,"value":3588},"\u003C",{"type":3163,"tag":3446,"props":3590,"children":3592},{"style":3591},"--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178",[3593],{"type":3168,"value":3594},"script",{"type":3163,"tag":3446,"props":3596,"children":3598},{"style":3597},"--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA",[3599],{"type":3168,"value":3600}," setup",{"type":3163,"tag":3446,"props":3602,"children":3603},{"style":3525},[3604],{"type":3168,"value":3605},">\n",{"type":3163,"tag":3446,"props":3607,"children":3608},{"class":3448,"line":3089},[3609,3614,3619,3624,3629,3634,3638,3643,3647,3652,3656,3661,3665,3670,3675,3680,3686],{"type":3163,"tag":3446,"props":3610,"children":3611},{"style":3597},[3612],{"type":3168,"value":3613},"const",{"type":3163,"tag":3446,"props":3615,"children":3616},{"style":3525},[3617],{"type":3168,"value":3618}," {",{"type":3163,"tag":3446,"props":3620,"children":3621},{"style":3520},[3622],{"type":3168,"value":3623}," loggedIn",{"type":3163,"tag":3446,"props":3625,"children":3626},{"style":3525},[3627],{"type":3168,"value":3628},",",{"type":3163,"tag":3446,"props":3630,"children":3631},{"style":3520},[3632],{"type":3168,"value":3633}," user",{"type":3163,"tag":3446,"props":3635,"children":3636},{"style":3525},[3637],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":3639,"children":3640},{"style":3520},[3641],{"type":3168,"value":3642}," session",{"type":3163,"tag":3446,"props":3644,"children":3645},{"style":3525},[3646],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":3648,"children":3649},{"style":3520},[3650],{"type":3168,"value":3651}," fetch",{"type":3163,"tag":3446,"props":3653,"children":3654},{"style":3525},[3655],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":3657,"children":3658},{"style":3520},[3659],{"type":3168,"value":3660}," clear",{"type":3163,"tag":3446,"props":3662,"children":3663},{"style":3525},[3664],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":3666,"children":3667},{"style":3520},[3668],{"type":3168,"value":3669}," openInPopup ",{"type":3163,"tag":3446,"props":3671,"children":3672},{"style":3525},[3673],{"type":3168,"value":3674},"}",{"type":3163,"tag":3446,"props":3676,"children":3677},{"style":3525},[3678],{"type":3168,"value":3679}," =",{"type":3163,"tag":3446,"props":3681,"children":3683},{"style":3682},"--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF",[3684],{"type":3168,"value":3685}," useUserSession",{"type":3163,"tag":3446,"props":3687,"children":3688},{"style":3520},[3689],{"type":3168,"value":3690},"()\n",{"type":3163,"tag":3446,"props":3692,"children":3693},{"class":3448,"line":3073},[3694,3699,3703],{"type":3163,"tag":3446,"props":3695,"children":3696},{"style":3525},[3697],{"type":3168,"value":3698},"\u003C\u002F",{"type":3163,"tag":3446,"props":3700,"children":3701},{"style":3591},[3702],{"type":3168,"value":3594},{"type":3163,"tag":3446,"props":3704,"children":3705},{"style":3525},[3706],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":3708,"children":3710},{"class":3448,"line":3709},4,[3711],{"type":3163,"tag":3446,"props":3712,"children":3713},{"emptyLinePlaceholder":1200},[3714],{"type":3168,"value":3715},"\n",{"type":3163,"tag":3446,"props":3717,"children":3719},{"class":3448,"line":3718},5,[3720,3724,3729],{"type":3163,"tag":3446,"props":3721,"children":3722},{"style":3525},[3723],{"type":3168,"value":3588},{"type":3163,"tag":3446,"props":3725,"children":3726},{"style":3591},[3727],{"type":3168,"value":3728},"template",{"type":3163,"tag":3446,"props":3730,"children":3731},{"style":3525},[3732],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":3734,"children":3736},{"class":3448,"line":3735},6,[3737,3742,3747,3752,3756,3761,3766,3770],{"type":3163,"tag":3446,"props":3738,"children":3739},{"style":3525},[3740],{"type":3168,"value":3741},"  \u003C",{"type":3163,"tag":3446,"props":3743,"children":3744},{"style":3591},[3745],{"type":3168,"value":3746},"div",{"type":3163,"tag":3446,"props":3748,"children":3749},{"style":3597},[3750],{"type":3168,"value":3751}," v-if",{"type":3163,"tag":3446,"props":3753,"children":3754},{"style":3525},[3755],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":3757,"children":3758},{"style":3525},[3759],{"type":3168,"value":3760},"\"",{"type":3163,"tag":3446,"props":3762,"children":3763},{"style":3458},[3764],{"type":3168,"value":3765},"loggedIn",{"type":3163,"tag":3446,"props":3767,"children":3768},{"style":3525},[3769],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":3771,"children":3772},{"style":3525},[3773],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":3775,"children":3776},{"class":3448,"line":3069},[3777,3782,3786,3791,3796,3800,3804],{"type":3163,"tag":3446,"props":3778,"children":3779},{"style":3525},[3780],{"type":3168,"value":3781},"    \u003C",{"type":3163,"tag":3446,"props":3783,"children":3784},{"style":3591},[3785],{"type":3168,"value":3164},{"type":3163,"tag":3446,"props":3787,"children":3788},{"style":3525},[3789],{"type":3168,"value":3790},">",{"type":3163,"tag":3446,"props":3792,"children":3793},{"style":3520},[3794],{"type":3168,"value":3795},"Welcome {{ user.login }}!",{"type":3163,"tag":3446,"props":3797,"children":3798},{"style":3525},[3799],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":3801,"children":3802},{"style":3591},[3803],{"type":3168,"value":3164},{"type":3163,"tag":3446,"props":3805,"children":3806},{"style":3525},[3807],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":3809,"children":3810},{"class":3448,"line":3065},[3811,3815,3819,3823,3828,3832,3836],{"type":3163,"tag":3446,"props":3812,"children":3813},{"style":3525},[3814],{"type":3168,"value":3781},{"type":3163,"tag":3446,"props":3816,"children":3817},{"style":3591},[3818],{"type":3168,"value":3170},{"type":3163,"tag":3446,"props":3820,"children":3821},{"style":3525},[3822],{"type":3168,"value":3790},{"type":3163,"tag":3446,"props":3824,"children":3825},{"style":3520},[3826],{"type":3168,"value":3827},"Logged in since {{ session.loggedInAt }}",{"type":3163,"tag":3446,"props":3829,"children":3830},{"style":3525},[3831],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":3833,"children":3834},{"style":3591},[3835],{"type":3168,"value":3170},{"type":3163,"tag":3446,"props":3837,"children":3838},{"style":3525},[3839],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":3841,"children":3842},{"class":3448,"line":3061},[3843,3847,3852,3857,3861,3865,3870,3874,3878,3883,3887,3891],{"type":3163,"tag":3446,"props":3844,"children":3845},{"style":3525},[3846],{"type":3168,"value":3781},{"type":3163,"tag":3446,"props":3848,"children":3849},{"style":3591},[3850],{"type":3168,"value":3851},"button",{"type":3163,"tag":3446,"props":3853,"children":3854},{"style":3597},[3855],{"type":3168,"value":3856}," @click",{"type":3163,"tag":3446,"props":3858,"children":3859},{"style":3525},[3860],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":3862,"children":3863},{"style":3525},[3864],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":3866,"children":3867},{"style":3458},[3868],{"type":3168,"value":3869},"clear",{"type":3163,"tag":3446,"props":3871,"children":3872},{"style":3525},[3873],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":3875,"children":3876},{"style":3525},[3877],{"type":3168,"value":3790},{"type":3163,"tag":3446,"props":3879,"children":3880},{"style":3520},[3881],{"type":3168,"value":3882},"Logout",{"type":3163,"tag":3446,"props":3884,"children":3885},{"style":3525},[3886],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":3888,"children":3889},{"style":3591},[3890],{"type":3168,"value":3851},{"type":3163,"tag":3446,"props":3892,"children":3893},{"style":3525},[3894],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":3896,"children":3898},{"class":3448,"line":3897},10,[3899,3904,3908],{"type":3163,"tag":3446,"props":3900,"children":3901},{"style":3525},[3902],{"type":3168,"value":3903},"  \u003C\u002F",{"type":3163,"tag":3446,"props":3905,"children":3906},{"style":3591},[3907],{"type":3168,"value":3746},{"type":3163,"tag":3446,"props":3909,"children":3910},{"style":3525},[3911],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":3913,"children":3915},{"class":3448,"line":3914},11,[3916,3920,3924,3929],{"type":3163,"tag":3446,"props":3917,"children":3918},{"style":3525},[3919],{"type":3168,"value":3741},{"type":3163,"tag":3446,"props":3921,"children":3922},{"style":3591},[3923],{"type":3168,"value":3746},{"type":3163,"tag":3446,"props":3925,"children":3926},{"style":3597},[3927],{"type":3168,"value":3928}," v-else",{"type":3163,"tag":3446,"props":3930,"children":3931},{"style":3525},[3932],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":3934,"children":3936},{"class":3448,"line":3935},12,[3937,3941,3945,3949,3954,3958,3962],{"type":3163,"tag":3446,"props":3938,"children":3939},{"style":3525},[3940],{"type":3168,"value":3781},{"type":3163,"tag":3446,"props":3942,"children":3943},{"style":3591},[3944],{"type":3168,"value":3164},{"type":3163,"tag":3446,"props":3946,"children":3947},{"style":3525},[3948],{"type":3168,"value":3790},{"type":3163,"tag":3446,"props":3950,"children":3951},{"style":3520},[3952],{"type":3168,"value":3953},"Not logged in",{"type":3163,"tag":3446,"props":3955,"children":3956},{"style":3525},[3957],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":3959,"children":3960},{"style":3591},[3961],{"type":3168,"value":3164},{"type":3163,"tag":3446,"props":3963,"children":3964},{"style":3525},[3965],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":3967,"children":3969},{"class":3448,"line":3968},13,[3970,3974,3978,3983,3987,3991,3996,4000,4004,4009,4013,4017],{"type":3163,"tag":3446,"props":3971,"children":3972},{"style":3525},[3973],{"type":3168,"value":3781},{"type":3163,"tag":3446,"props":3975,"children":3976},{"style":3591},[3977],{"type":3168,"value":3174},{"type":3163,"tag":3446,"props":3979,"children":3980},{"style":3597},[3981],{"type":3168,"value":3982}," href",{"type":3163,"tag":3446,"props":3984,"children":3985},{"style":3525},[3986],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":3988,"children":3989},{"style":3525},[3990],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":3992,"children":3993},{"style":3458},[3994],{"type":3168,"value":3995},"\u002Fauth\u002Fgithub",{"type":3163,"tag":3446,"props":3997,"children":3998},{"style":3525},[3999],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":4001,"children":4002},{"style":3525},[4003],{"type":3168,"value":3790},{"type":3163,"tag":3446,"props":4005,"children":4006},{"style":3520},[4007],{"type":3168,"value":4008},"Login with GitHub",{"type":3163,"tag":3446,"props":4010,"children":4011},{"style":3525},[4012],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":4014,"children":4015},{"style":3591},[4016],{"type":3168,"value":3174},{"type":3163,"tag":3446,"props":4018,"children":4019},{"style":3525},[4020],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":4022,"children":4024},{"class":3448,"line":4023},14,[4025],{"type":3163,"tag":3446,"props":4026,"children":4027},{"style":3511},[4028],{"type":3168,"value":4029},"    \u003C!-- or open the OAuth route in a popup -->\n",{"type":3163,"tag":3446,"props":4031,"children":4033},{"class":3448,"line":4032},15,[4034,4038,4042,4046,4050,4054,4059,4063,4067,4071,4075,4079],{"type":3163,"tag":3446,"props":4035,"children":4036},{"style":3525},[4037],{"type":3168,"value":3781},{"type":3163,"tag":3446,"props":4039,"children":4040},{"style":3591},[4041],{"type":3168,"value":3851},{"type":3163,"tag":3446,"props":4043,"children":4044},{"style":3597},[4045],{"type":3168,"value":3856},{"type":3163,"tag":3446,"props":4047,"children":4048},{"style":3525},[4049],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":4051,"children":4052},{"style":3525},[4053],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":4055,"children":4056},{"style":3458},[4057],{"type":3168,"value":4058},"openInPopup('\u002Fauth\u002Fgithub')",{"type":3163,"tag":3446,"props":4060,"children":4061},{"style":3525},[4062],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":4064,"children":4065},{"style":3525},[4066],{"type":3168,"value":3790},{"type":3163,"tag":3446,"props":4068,"children":4069},{"style":3520},[4070],{"type":3168,"value":4008},{"type":3163,"tag":3446,"props":4072,"children":4073},{"style":3525},[4074],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":4076,"children":4077},{"style":3591},[4078],{"type":3168,"value":3851},{"type":3163,"tag":3446,"props":4080,"children":4081},{"style":3525},[4082],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":4084,"children":4085},{"class":3448,"line":3057},[4086,4090,4094],{"type":3163,"tag":3446,"props":4087,"children":4088},{"style":3525},[4089],{"type":3168,"value":3903},{"type":3163,"tag":3446,"props":4091,"children":4092},{"style":3591},[4093],{"type":3168,"value":3746},{"type":3163,"tag":3446,"props":4095,"children":4096},{"style":3525},[4097],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":4099,"children":4101},{"class":3448,"line":4100},17,[4102,4106,4110],{"type":3163,"tag":3446,"props":4103,"children":4104},{"style":3525},[4105],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":4107,"children":4108},{"style":3591},[4109],{"type":3168,"value":3728},{"type":3163,"tag":3446,"props":4111,"children":4112},{"style":3525},[4113],{"type":3168,"value":3605},{"type":3163,"tag":3170,"props":4115,"children":4116},{},[4117],{"type":3163,"tag":4118,"props":4119,"children":4120},"strong",{},[4121],{"type":3168,"value":4122},"TypeScript Signature:",{"type":3163,"tag":3436,"props":4124,"children":4128},{"className":4125,"code":4126,"language":4127,"meta":3037,"style":3037},"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",[4129],{"type":3163,"tag":3308,"props":4130,"children":4131},{"__ignoreMap":3037},[4132,4150,4158,4166,4174,4205,4212,4220,4227,4255,4262,4270,4277,4316,4323,4331,4338,4368,4376,4385,4393,4434,4442,4451,4459,4496,4504,4513,4521,4617],{"type":3163,"tag":3446,"props":4133,"children":4134},{"class":3448,"line":3123},[4135,4140,4145],{"type":3163,"tag":3446,"props":4136,"children":4137},{"style":3597},[4138],{"type":3168,"value":4139},"interface",{"type":3163,"tag":3446,"props":4141,"children":4142},{"style":3452},[4143],{"type":3168,"value":4144}," UserSessionComposable",{"type":3163,"tag":3446,"props":4146,"children":4147},{"style":3525},[4148],{"type":3168,"value":4149}," {\n",{"type":3163,"tag":3446,"props":4151,"children":4152},{"class":3448,"line":3089},[4153],{"type":3163,"tag":3446,"props":4154,"children":4155},{"style":3511},[4156],{"type":3168,"value":4157},"  \u002F**\n",{"type":3163,"tag":3446,"props":4159,"children":4160},{"class":3448,"line":3073},[4161],{"type":3163,"tag":3446,"props":4162,"children":4163},{"style":3511},[4164],{"type":3168,"value":4165},"   * Computed indicating if the auth session is ready\n",{"type":3163,"tag":3446,"props":4167,"children":4168},{"class":3448,"line":3709},[4169],{"type":3163,"tag":3446,"props":4170,"children":4171},{"style":3511},[4172],{"type":3168,"value":4173},"   *\u002F\n",{"type":3163,"tag":3446,"props":4175,"children":4176},{"class":3448,"line":3718},[4177,4182,4187,4192,4196,4201],{"type":3163,"tag":3446,"props":4178,"children":4179},{"style":3591},[4180],{"type":3168,"value":4181},"  ready",{"type":3163,"tag":3446,"props":4183,"children":4184},{"style":3525},[4185],{"type":3168,"value":4186},":",{"type":3163,"tag":3446,"props":4188,"children":4189},{"style":3452},[4190],{"type":3168,"value":4191}," ComputedRef",{"type":3163,"tag":3446,"props":4193,"children":4194},{"style":3525},[4195],{"type":3168,"value":3588},{"type":3163,"tag":3446,"props":4197,"children":4198},{"style":3452},[4199],{"type":3168,"value":4200},"boolean",{"type":3163,"tag":3446,"props":4202,"children":4203},{"style":3525},[4204],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":4206,"children":4207},{"class":3448,"line":3735},[4208],{"type":3163,"tag":3446,"props":4209,"children":4210},{"style":3511},[4211],{"type":3168,"value":4157},{"type":3163,"tag":3446,"props":4213,"children":4214},{"class":3448,"line":3069},[4215],{"type":3163,"tag":3446,"props":4216,"children":4217},{"style":3511},[4218],{"type":3168,"value":4219},"   * Computed indicating if the user is logged in.\n",{"type":3163,"tag":3446,"props":4221,"children":4222},{"class":3448,"line":3065},[4223],{"type":3163,"tag":3446,"props":4224,"children":4225},{"style":3511},[4226],{"type":3168,"value":4173},{"type":3163,"tag":3446,"props":4228,"children":4229},{"class":3448,"line":3061},[4230,4235,4239,4243,4247,4251],{"type":3163,"tag":3446,"props":4231,"children":4232},{"style":3591},[4233],{"type":3168,"value":4234},"  loggedIn",{"type":3163,"tag":3446,"props":4236,"children":4237},{"style":3525},[4238],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":4240,"children":4241},{"style":3452},[4242],{"type":3168,"value":4191},{"type":3163,"tag":3446,"props":4244,"children":4245},{"style":3525},[4246],{"type":3168,"value":3588},{"type":3163,"tag":3446,"props":4248,"children":4249},{"style":3452},[4250],{"type":3168,"value":4200},{"type":3163,"tag":3446,"props":4252,"children":4253},{"style":3525},[4254],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":4256,"children":4257},{"class":3448,"line":3897},[4258],{"type":3163,"tag":3446,"props":4259,"children":4260},{"style":3511},[4261],{"type":3168,"value":4157},{"type":3163,"tag":3446,"props":4263,"children":4264},{"class":3448,"line":3914},[4265],{"type":3163,"tag":3446,"props":4266,"children":4267},{"style":3511},[4268],{"type":3168,"value":4269},"   * The user object if logged in, null otherwise.\n",{"type":3163,"tag":3446,"props":4271,"children":4272},{"class":3448,"line":3935},[4273],{"type":3163,"tag":3446,"props":4274,"children":4275},{"style":3511},[4276],{"type":3168,"value":4173},{"type":3163,"tag":3446,"props":4278,"children":4279},{"class":3448,"line":3968},[4280,4285,4289,4293,4297,4302,4307,4312],{"type":3163,"tag":3446,"props":4281,"children":4282},{"style":3591},[4283],{"type":3168,"value":4284},"  user",{"type":3163,"tag":3446,"props":4286,"children":4287},{"style":3525},[4288],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":4290,"children":4291},{"style":3452},[4292],{"type":3168,"value":4191},{"type":3163,"tag":3446,"props":4294,"children":4295},{"style":3525},[4296],{"type":3168,"value":3588},{"type":3163,"tag":3446,"props":4298,"children":4299},{"style":3452},[4300],{"type":3168,"value":4301},"User",{"type":3163,"tag":3446,"props":4303,"children":4304},{"style":3525},[4305],{"type":3168,"value":4306}," |",{"type":3163,"tag":3446,"props":4308,"children":4309},{"style":3452},[4310],{"type":3168,"value":4311}," null",{"type":3163,"tag":3446,"props":4313,"children":4314},{"style":3525},[4315],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":4317,"children":4318},{"class":3448,"line":4023},[4319],{"type":3163,"tag":3446,"props":4320,"children":4321},{"style":3511},[4322],{"type":3168,"value":4157},{"type":3163,"tag":3446,"props":4324,"children":4325},{"class":3448,"line":4032},[4326],{"type":3163,"tag":3446,"props":4327,"children":4328},{"style":3511},[4329],{"type":3168,"value":4330},"   * The session object.\n",{"type":3163,"tag":3446,"props":4332,"children":4333},{"class":3448,"line":3057},[4334],{"type":3163,"tag":3446,"props":4335,"children":4336},{"style":3511},[4337],{"type":3168,"value":4173},{"type":3163,"tag":3446,"props":4339,"children":4340},{"class":3448,"line":4100},[4341,4346,4350,4355,4359,4364],{"type":3163,"tag":3446,"props":4342,"children":4343},{"style":3591},[4344],{"type":3168,"value":4345},"  session",{"type":3163,"tag":3446,"props":4347,"children":4348},{"style":3525},[4349],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":4351,"children":4352},{"style":3452},[4353],{"type":3168,"value":4354}," Ref",{"type":3163,"tag":3446,"props":4356,"children":4357},{"style":3525},[4358],{"type":3168,"value":3588},{"type":3163,"tag":3446,"props":4360,"children":4361},{"style":3452},[4362],{"type":3168,"value":4363},"UserSession",{"type":3163,"tag":3446,"props":4365,"children":4366},{"style":3525},[4367],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":4369,"children":4371},{"class":3448,"line":4370},18,[4372],{"type":3163,"tag":3446,"props":4373,"children":4374},{"style":3511},[4375],{"type":3168,"value":4157},{"type":3163,"tag":3446,"props":4377,"children":4379},{"class":3448,"line":4378},19,[4380],{"type":3163,"tag":3446,"props":4381,"children":4382},{"style":3511},[4383],{"type":3168,"value":4384},"   * Fetch the user session from the server.\n",{"type":3163,"tag":3446,"props":4386,"children":4388},{"class":3448,"line":4387},20,[4389],{"type":3163,"tag":3446,"props":4390,"children":4391},{"style":3511},[4392],{"type":3168,"value":4173},{"type":3163,"tag":3446,"props":4394,"children":4396},{"class":3448,"line":4395},21,[4397,4402,4406,4411,4416,4421,4425,4430],{"type":3163,"tag":3446,"props":4398,"children":4399},{"style":3591},[4400],{"type":3168,"value":4401},"  fetch",{"type":3163,"tag":3446,"props":4403,"children":4404},{"style":3525},[4405],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":4407,"children":4408},{"style":3525},[4409],{"type":3168,"value":4410}," ()",{"type":3163,"tag":3446,"props":4412,"children":4413},{"style":3597},[4414],{"type":3168,"value":4415}," =>",{"type":3163,"tag":3446,"props":4417,"children":4418},{"style":3452},[4419],{"type":3168,"value":4420}," Promise",{"type":3163,"tag":3446,"props":4422,"children":4423},{"style":3525},[4424],{"type":3168,"value":3588},{"type":3163,"tag":3446,"props":4426,"children":4427},{"style":3452},[4428],{"type":3168,"value":4429},"void",{"type":3163,"tag":3446,"props":4431,"children":4432},{"style":3525},[4433],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":4435,"children":4437},{"class":3448,"line":4436},22,[4438],{"type":3163,"tag":3446,"props":4439,"children":4440},{"style":3511},[4441],{"type":3168,"value":4157},{"type":3163,"tag":3446,"props":4443,"children":4445},{"class":3448,"line":4444},23,[4446],{"type":3163,"tag":3446,"props":4447,"children":4448},{"style":3511},[4449],{"type":3168,"value":4450},"   * Clear the user session and remove the session cookie.\n",{"type":3163,"tag":3446,"props":4452,"children":4454},{"class":3448,"line":4453},24,[4455],{"type":3163,"tag":3446,"props":4456,"children":4457},{"style":3511},[4458],{"type":3168,"value":4173},{"type":3163,"tag":3446,"props":4460,"children":4462},{"class":3448,"line":4461},25,[4463,4468,4472,4476,4480,4484,4488,4492],{"type":3163,"tag":3446,"props":4464,"children":4465},{"style":3591},[4466],{"type":3168,"value":4467},"  clear",{"type":3163,"tag":3446,"props":4469,"children":4470},{"style":3525},[4471],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":4473,"children":4474},{"style":3525},[4475],{"type":3168,"value":4410},{"type":3163,"tag":3446,"props":4477,"children":4478},{"style":3597},[4479],{"type":3168,"value":4415},{"type":3163,"tag":3446,"props":4481,"children":4482},{"style":3452},[4483],{"type":3168,"value":4420},{"type":3163,"tag":3446,"props":4485,"children":4486},{"style":3525},[4487],{"type":3168,"value":3588},{"type":3163,"tag":3446,"props":4489,"children":4490},{"style":3452},[4491],{"type":3168,"value":4429},{"type":3163,"tag":3446,"props":4493,"children":4494},{"style":3525},[4495],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":4497,"children":4499},{"class":3448,"line":4498},26,[4500],{"type":3163,"tag":3446,"props":4501,"children":4502},{"style":3511},[4503],{"type":3168,"value":4157},{"type":3163,"tag":3446,"props":4505,"children":4507},{"class":3448,"line":4506},27,[4508],{"type":3163,"tag":3446,"props":4509,"children":4510},{"style":3511},[4511],{"type":3168,"value":4512},"   * Open the OAuth route in a popup that auto-closes when successful.\n",{"type":3163,"tag":3446,"props":4514,"children":4516},{"class":3448,"line":4515},28,[4517],{"type":3163,"tag":3446,"props":4518,"children":4519},{"style":3511},[4520],{"type":3168,"value":4173},{"type":3163,"tag":3446,"props":4522,"children":4524},{"class":3448,"line":4523},29,[4525,4530,4534,4539,4545,4549,4554,4558,4563,4568,4572,4577,4581,4586,4590,4595,4599,4603,4608,4612],{"type":3163,"tag":3446,"props":4526,"children":4527},{"style":3591},[4528],{"type":3168,"value":4529},"  openInPopup",{"type":3163,"tag":3446,"props":4531,"children":4532},{"style":3525},[4533],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":4535,"children":4536},{"style":3525},[4537],{"type":3168,"value":4538}," (",{"type":3163,"tag":3446,"props":4540,"children":4542},{"style":4541},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[4543],{"type":3168,"value":4544},"route",{"type":3163,"tag":3446,"props":4546,"children":4547},{"style":3525},[4548],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":4550,"children":4551},{"style":3452},[4552],{"type":3168,"value":4553}," string",{"type":3163,"tag":3446,"props":4555,"children":4556},{"style":3525},[4557],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":4559,"children":4560},{"style":4541},[4561],{"type":3168,"value":4562}," size",{"type":3163,"tag":3446,"props":4564,"children":4565},{"style":3525},[4566],{"type":3168,"value":4567},"?:",{"type":3163,"tag":3446,"props":4569,"children":4570},{"style":3525},[4571],{"type":3168,"value":3618},{"type":3163,"tag":3446,"props":4573,"children":4574},{"style":3591},[4575],{"type":3168,"value":4576}," width",{"type":3163,"tag":3446,"props":4578,"children":4579},{"style":3525},[4580],{"type":3168,"value":4567},{"type":3163,"tag":3446,"props":4582,"children":4583},{"style":3452},[4584],{"type":3168,"value":4585}," number",{"type":3163,"tag":3446,"props":4587,"children":4588},{"style":3525},[4589],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":4591,"children":4592},{"style":3591},[4593],{"type":3168,"value":4594}," height",{"type":3163,"tag":3446,"props":4596,"children":4597},{"style":3525},[4598],{"type":3168,"value":4567},{"type":3163,"tag":3446,"props":4600,"children":4601},{"style":3452},[4602],{"type":3168,"value":4585},{"type":3163,"tag":3446,"props":4604,"children":4605},{"style":3525},[4606],{"type":3168,"value":4607}," })",{"type":3163,"tag":3446,"props":4609,"children":4610},{"style":3597},[4611],{"type":3168,"value":4415},{"type":3163,"tag":3446,"props":4613,"children":4614},{"style":3452},[4615],{"type":3168,"value":4616}," void\n",{"type":3163,"tag":3446,"props":4618,"children":4620},{"class":3448,"line":4619},30,[4621],{"type":3163,"tag":3446,"props":4622,"children":4623},{"style":3525},[4624],{"type":3168,"value":4625},"}\n",{"type":3163,"tag":4627,"props":4628,"children":4629},"blockquote",{},[4630],{"type":3163,"tag":3170,"props":4631,"children":4632},{},[4633,4638,4640,4646],{"type":3163,"tag":3446,"props":4634,"children":4635},{},[4636],{"type":3168,"value":4637},"!IMPORTANT",{"type":3168,"value":4639},"\nNuxt Auth Utils uses the ",{"type":3163,"tag":3308,"props":4641,"children":4643},{"className":4642},[],[4644],{"type":3168,"value":4645},"\u002Fapi\u002F_auth\u002Fsession",{"type":3168,"value":4647}," route for session management. Ensure your API route middleware doesn't interfere with this path.",{"type":3163,"tag":3254,"props":4649,"children":4651},{"id":4650},"server-utils",[4652],{"type":3168,"value":4653},"Server Utils",{"type":3163,"tag":3170,"props":4655,"children":4656},{},[4657,4659,4665],{"type":3168,"value":4658},"The following helpers are auto-imported in your ",{"type":3163,"tag":3308,"props":4660,"children":4662},{"className":4661},[],[4663],{"type":3168,"value":4664},"server\u002F",{"type":3168,"value":4666}," directory.",{"type":3163,"tag":3566,"props":4668,"children":4670},{"id":4669},"session-management",[4671],{"type":3168,"value":4672},"Session Management",{"type":3163,"tag":3436,"props":4674,"children":4676},{"className":4125,"code":4675,"language":4127,"meta":3037,"style":3037},"\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",[4677],{"type":3163,"tag":3308,"props":4678,"children":4679},{"__ignoreMap":3037},[4680,4688,4696,4704,4731,4739,4754,4780,4788,4796,4812,4837,4844,4852,4878,4890,4897,4905,4930,4937,4945,4976,4983,4991,5007,5014,5022],{"type":3163,"tag":3446,"props":4681,"children":4682},{"class":3448,"line":3123},[4683],{"type":3163,"tag":3446,"props":4684,"children":4685},{"style":3511},[4686],{"type":3168,"value":4687},"\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":3163,"tag":3446,"props":4689,"children":4690},{"class":3448,"line":3089},[4691],{"type":3163,"tag":3446,"props":4692,"children":4693},{"style":3511},[4694],{"type":3168,"value":4695},"\u002F\u002F Only store the data that allow you to recognize a user, but do not store sensitive data\n",{"type":3163,"tag":3446,"props":4697,"children":4698},{"class":3448,"line":3073},[4699],{"type":3163,"tag":3446,"props":4700,"children":4701},{"style":3511},[4702],{"type":3168,"value":4703},"\u002F\u002F Merges new data with existing data using unjs\u002Fdefu library\n",{"type":3163,"tag":3446,"props":4705,"children":4706},{"class":3448,"line":3709},[4707,4713,4718,4723,4727],{"type":3163,"tag":3446,"props":4708,"children":4710},{"style":4709},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[4711],{"type":3168,"value":4712},"await",{"type":3163,"tag":3446,"props":4714,"children":4715},{"style":3682},[4716],{"type":3168,"value":4717}," setUserSession",{"type":3163,"tag":3446,"props":4719,"children":4720},{"style":3520},[4721],{"type":3168,"value":4722},"(event",{"type":3163,"tag":3446,"props":4724,"children":4725},{"style":3525},[4726],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":4728,"children":4729},{"style":3525},[4730],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":4732,"children":4733},{"class":3448,"line":3718},[4734],{"type":3163,"tag":3446,"props":4735,"children":4736},{"style":3511},[4737],{"type":3168,"value":4738},"  \u002F\u002F User data\n",{"type":3163,"tag":3446,"props":4740,"children":4741},{"class":3448,"line":3735},[4742,4746,4750],{"type":3163,"tag":3446,"props":4743,"children":4744},{"style":3591},[4745],{"type":3168,"value":4284},{"type":3163,"tag":3446,"props":4747,"children":4748},{"style":3525},[4749],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":4751,"children":4752},{"style":3525},[4753],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":4755,"children":4756},{"class":3448,"line":3069},[4757,4762,4766,4771,4775],{"type":3163,"tag":3446,"props":4758,"children":4759},{"style":3591},[4760],{"type":3168,"value":4761},"    login",{"type":3163,"tag":3446,"props":4763,"children":4764},{"style":3525},[4765],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":4767,"children":4768},{"style":3525},[4769],{"type":3168,"value":4770}," '",{"type":3163,"tag":3446,"props":4772,"children":4773},{"style":3458},[4774],{"type":3168,"value":3044},{"type":3163,"tag":3446,"props":4776,"children":4777},{"style":3525},[4778],{"type":3168,"value":4779},"'\n",{"type":3163,"tag":3446,"props":4781,"children":4782},{"class":3448,"line":3065},[4783],{"type":3163,"tag":3446,"props":4784,"children":4785},{"style":3525},[4786],{"type":3168,"value":4787},"  },\n",{"type":3163,"tag":3446,"props":4789,"children":4790},{"class":3448,"line":3061},[4791],{"type":3163,"tag":3446,"props":4792,"children":4793},{"style":3511},[4794],{"type":3168,"value":4795},"  \u002F\u002F Private data accessible only on server\u002F routes\n",{"type":3163,"tag":3446,"props":4797,"children":4798},{"class":3448,"line":3897},[4799,4804,4808],{"type":3163,"tag":3446,"props":4800,"children":4801},{"style":3591},[4802],{"type":3168,"value":4803},"  secure",{"type":3163,"tag":3446,"props":4805,"children":4806},{"style":3525},[4807],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":4809,"children":4810},{"style":3525},[4811],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":4813,"children":4814},{"class":3448,"line":3914},[4815,4820,4824,4828,4833],{"type":3163,"tag":3446,"props":4816,"children":4817},{"style":3591},[4818],{"type":3168,"value":4819},"    apiToken",{"type":3163,"tag":3446,"props":4821,"children":4822},{"style":3525},[4823],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":4825,"children":4826},{"style":3525},[4827],{"type":3168,"value":4770},{"type":3163,"tag":3446,"props":4829,"children":4830},{"style":3458},[4831],{"type":3168,"value":4832},"1234567890",{"type":3163,"tag":3446,"props":4834,"children":4835},{"style":3525},[4836],{"type":3168,"value":4779},{"type":3163,"tag":3446,"props":4838,"children":4839},{"class":3448,"line":3935},[4840],{"type":3163,"tag":3446,"props":4841,"children":4842},{"style":3525},[4843],{"type":3168,"value":4787},{"type":3163,"tag":3446,"props":4845,"children":4846},{"class":3448,"line":3968},[4847],{"type":3163,"tag":3446,"props":4848,"children":4849},{"style":3511},[4850],{"type":3168,"value":4851},"  \u002F\u002F Any extra fields for the session data\n",{"type":3163,"tag":3446,"props":4853,"children":4854},{"class":3448,"line":4023},[4855,4860,4864,4869,4874],{"type":3163,"tag":3446,"props":4856,"children":4857},{"style":3591},[4858],{"type":3168,"value":4859},"  loggedInAt",{"type":3163,"tag":3446,"props":4861,"children":4862},{"style":3525},[4863],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":4865,"children":4866},{"style":3525},[4867],{"type":3168,"value":4868}," new",{"type":3163,"tag":3446,"props":4870,"children":4871},{"style":3682},[4872],{"type":3168,"value":4873}," Date",{"type":3163,"tag":3446,"props":4875,"children":4876},{"style":3520},[4877],{"type":3168,"value":3690},{"type":3163,"tag":3446,"props":4879,"children":4880},{"class":3448,"line":4032},[4881,4885],{"type":3163,"tag":3446,"props":4882,"children":4883},{"style":3525},[4884],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":4886,"children":4887},{"style":3520},[4888],{"type":3168,"value":4889},")\n",{"type":3163,"tag":3446,"props":4891,"children":4892},{"class":3448,"line":3057},[4893],{"type":3163,"tag":3446,"props":4894,"children":4895},{"emptyLinePlaceholder":1200},[4896],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":4898,"children":4899},{"class":3448,"line":4100},[4900],{"type":3163,"tag":3446,"props":4901,"children":4902},{"style":3511},[4903],{"type":3168,"value":4904},"\u002F\u002F Replace a user session. Same behaviour as setUserSession, except it does not merge data with existing data\n",{"type":3163,"tag":3446,"props":4906,"children":4907},{"class":3448,"line":4370},[4908,4912,4917,4921,4925],{"type":3163,"tag":3446,"props":4909,"children":4910},{"style":4709},[4911],{"type":3168,"value":4712},{"type":3163,"tag":3446,"props":4913,"children":4914},{"style":3682},[4915],{"type":3168,"value":4916}," replaceUserSession",{"type":3163,"tag":3446,"props":4918,"children":4919},{"style":3520},[4920],{"type":3168,"value":4722},{"type":3163,"tag":3446,"props":4922,"children":4923},{"style":3525},[4924],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":4926,"children":4927},{"style":3520},[4928],{"type":3168,"value":4929}," data)\n",{"type":3163,"tag":3446,"props":4931,"children":4932},{"class":3448,"line":4378},[4933],{"type":3163,"tag":3446,"props":4934,"children":4935},{"emptyLinePlaceholder":1200},[4936],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":4938,"children":4939},{"class":3448,"line":4387},[4940],{"type":3163,"tag":3446,"props":4941,"children":4942},{"style":3511},[4943],{"type":3168,"value":4944},"\u002F\u002F Get the current user session\n",{"type":3163,"tag":3446,"props":4946,"children":4947},{"class":3448,"line":4395},[4948,4952,4957,4961,4966,4971],{"type":3163,"tag":3446,"props":4949,"children":4950},{"style":3597},[4951],{"type":3168,"value":3613},{"type":3163,"tag":3446,"props":4953,"children":4954},{"style":3520},[4955],{"type":3168,"value":4956}," session ",{"type":3163,"tag":3446,"props":4958,"children":4959},{"style":3525},[4960],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":4962,"children":4963},{"style":4709},[4964],{"type":3168,"value":4965}," await",{"type":3163,"tag":3446,"props":4967,"children":4968},{"style":3682},[4969],{"type":3168,"value":4970}," getUserSession",{"type":3163,"tag":3446,"props":4972,"children":4973},{"style":3520},[4974],{"type":3168,"value":4975},"(event)\n",{"type":3163,"tag":3446,"props":4977,"children":4978},{"class":3448,"line":4436},[4979],{"type":3163,"tag":3446,"props":4980,"children":4981},{"emptyLinePlaceholder":1200},[4982],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":4984,"children":4985},{"class":3448,"line":4444},[4986],{"type":3163,"tag":3446,"props":4987,"children":4988},{"style":3511},[4989],{"type":3168,"value":4990},"\u002F\u002F Clear the current user session\n",{"type":3163,"tag":3446,"props":4992,"children":4993},{"class":3448,"line":4453},[4994,4998,5003],{"type":3163,"tag":3446,"props":4995,"children":4996},{"style":4709},[4997],{"type":3168,"value":4712},{"type":3163,"tag":3446,"props":4999,"children":5000},{"style":3682},[5001],{"type":3168,"value":5002}," clearUserSession",{"type":3163,"tag":3446,"props":5004,"children":5005},{"style":3520},[5006],{"type":3168,"value":4975},{"type":3163,"tag":3446,"props":5008,"children":5009},{"class":3448,"line":4461},[5010],{"type":3163,"tag":3446,"props":5011,"children":5012},{"emptyLinePlaceholder":1200},[5013],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":5015,"children":5016},{"class":3448,"line":4498},[5017],{"type":3163,"tag":3446,"props":5018,"children":5019},{"style":3511},[5020],{"type":3168,"value":5021},"\u002F\u002F Require a user session (send back 401 if no `user` key in session)\n",{"type":3163,"tag":3446,"props":5023,"children":5024},{"class":3448,"line":4506},[5025,5029,5033,5037,5041,5046],{"type":3163,"tag":3446,"props":5026,"children":5027},{"style":3597},[5028],{"type":3168,"value":3613},{"type":3163,"tag":3446,"props":5030,"children":5031},{"style":3520},[5032],{"type":3168,"value":4956},{"type":3163,"tag":3446,"props":5034,"children":5035},{"style":3525},[5036],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":5038,"children":5039},{"style":4709},[5040],{"type":3168,"value":4965},{"type":3163,"tag":3446,"props":5042,"children":5043},{"style":3682},[5044],{"type":3168,"value":5045}," requireUserSession",{"type":3163,"tag":3446,"props":5047,"children":5048},{"style":3520},[5049],{"type":3168,"value":4975},{"type":3163,"tag":3170,"props":5051,"children":5052},{},[5053,5055,5061,5063,5068],{"type":3168,"value":5054},"You can define the type for your user session by creating a type declaration file (for example, ",{"type":3163,"tag":3308,"props":5056,"children":5058},{"className":5057},[],[5059],{"type":3168,"value":5060},"auth.d.ts",{"type":3168,"value":5062},") in your project to augment the ",{"type":3163,"tag":3308,"props":5064,"children":5066},{"className":5065},[],[5067],{"type":3168,"value":4363},{"type":3168,"value":5069}," type:",{"type":3163,"tag":3436,"props":5071,"children":5073},{"className":4125,"code":5072,"language":4127,"meta":3037,"style":3037},"\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",[5074],{"type":3163,"tag":3308,"props":5075,"children":5076},{"__ignoreMap":3037},[5077,5085,5115,5132,5140,5148,5155,5171,5178,5185,5192,5208,5215,5222,5229,5236],{"type":3163,"tag":3446,"props":5078,"children":5079},{"class":3448,"line":3123},[5080],{"type":3163,"tag":3446,"props":5081,"children":5082},{"style":3511},[5083],{"type":3168,"value":5084},"\u002F\u002F shared\u002Ftypes\u002Fauth.d.ts\n",{"type":3163,"tag":3446,"props":5086,"children":5087},{"class":3448,"line":3089},[5088,5093,5097,5101,5106,5111],{"type":3163,"tag":3446,"props":5089,"children":5090},{"style":3597},[5091],{"type":3168,"value":5092},"declare",{"type":3163,"tag":3446,"props":5094,"children":5095},{"style":3597},[5096],{"type":3168,"value":3466},{"type":3163,"tag":3446,"props":5098,"children":5099},{"style":3525},[5100],{"type":3168,"value":4770},{"type":3163,"tag":3446,"props":5102,"children":5103},{"style":3458},[5104],{"type":3168,"value":5105},"#auth-utils",{"type":3163,"tag":3446,"props":5107,"children":5108},{"style":3525},[5109],{"type":3168,"value":5110},"'",{"type":3163,"tag":3446,"props":5112,"children":5113},{"style":3525},[5114],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":5116,"children":5117},{"class":3448,"line":3073},[5118,5123,5128],{"type":3163,"tag":3446,"props":5119,"children":5120},{"style":3597},[5121],{"type":3168,"value":5122},"  interface",{"type":3163,"tag":3446,"props":5124,"children":5125},{"style":3452},[5126],{"type":3168,"value":5127}," User",{"type":3163,"tag":3446,"props":5129,"children":5130},{"style":3525},[5131],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":5133,"children":5134},{"class":3448,"line":3709},[5135],{"type":3163,"tag":3446,"props":5136,"children":5137},{"style":3511},[5138],{"type":3168,"value":5139},"    \u002F\u002F Add your own fields\n",{"type":3163,"tag":3446,"props":5141,"children":5142},{"class":3448,"line":3718},[5143],{"type":3163,"tag":3446,"props":5144,"children":5145},{"style":3525},[5146],{"type":3168,"value":5147},"  }\n",{"type":3163,"tag":3446,"props":5149,"children":5150},{"class":3448,"line":3735},[5151],{"type":3163,"tag":3446,"props":5152,"children":5153},{"emptyLinePlaceholder":1200},[5154],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":5156,"children":5157},{"class":3448,"line":3069},[5158,5162,5167],{"type":3163,"tag":3446,"props":5159,"children":5160},{"style":3597},[5161],{"type":3168,"value":5122},{"type":3163,"tag":3446,"props":5163,"children":5164},{"style":3452},[5165],{"type":3168,"value":5166}," UserSession",{"type":3163,"tag":3446,"props":5168,"children":5169},{"style":3525},[5170],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":5172,"children":5173},{"class":3448,"line":3065},[5174],{"type":3163,"tag":3446,"props":5175,"children":5176},{"style":3511},[5177],{"type":3168,"value":5139},{"type":3163,"tag":3446,"props":5179,"children":5180},{"class":3448,"line":3061},[5181],{"type":3163,"tag":3446,"props":5182,"children":5183},{"style":3525},[5184],{"type":3168,"value":5147},{"type":3163,"tag":3446,"props":5186,"children":5187},{"class":3448,"line":3897},[5188],{"type":3163,"tag":3446,"props":5189,"children":5190},{"emptyLinePlaceholder":1200},[5191],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":5193,"children":5194},{"class":3448,"line":3914},[5195,5199,5204],{"type":3163,"tag":3446,"props":5196,"children":5197},{"style":3597},[5198],{"type":3168,"value":5122},{"type":3163,"tag":3446,"props":5200,"children":5201},{"style":3452},[5202],{"type":3168,"value":5203}," SecureSessionData",{"type":3163,"tag":3446,"props":5205,"children":5206},{"style":3525},[5207],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":5209,"children":5210},{"class":3448,"line":3935},[5211],{"type":3163,"tag":3446,"props":5212,"children":5213},{"style":3511},[5214],{"type":3168,"value":5139},{"type":3163,"tag":3446,"props":5216,"children":5217},{"class":3448,"line":3968},[5218],{"type":3163,"tag":3446,"props":5219,"children":5220},{"style":3525},[5221],{"type":3168,"value":5147},{"type":3163,"tag":3446,"props":5223,"children":5224},{"class":3448,"line":4023},[5225],{"type":3163,"tag":3446,"props":5226,"children":5227},{"style":3525},[5228],{"type":3168,"value":4625},{"type":3163,"tag":3446,"props":5230,"children":5231},{"class":3448,"line":4032},[5232],{"type":3163,"tag":3446,"props":5233,"children":5234},{"emptyLinePlaceholder":1200},[5235],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":5237,"children":5238},{"class":3448,"line":3057},[5239,5244],{"type":3163,"tag":3446,"props":5240,"children":5241},{"style":4709},[5242],{"type":3168,"value":5243},"export",{"type":3163,"tag":3446,"props":5245,"children":5246},{"style":3525},[5247],{"type":3168,"value":5248}," {}\n",{"type":3163,"tag":4627,"props":5250,"children":5251},{},[5252],{"type":3163,"tag":3170,"props":5253,"children":5254},{},[5255,5259],{"type":3163,"tag":3446,"props":5256,"children":5257},{},[5258],{"type":3168,"value":4637},{"type":3168,"value":5260},"\nSince we encrypt and store session data in cookies, we're constrained by the 4096-byte cookie size limit. Store only essential information.",{"type":3163,"tag":3566,"props":5262,"children":5264},{"id":5263},"oauth-event-handlers",[5265],{"type":3168,"value":5266},"OAuth Event Handlers",{"type":3163,"tag":3170,"props":5268,"children":5269},{},[5270],{"type":3168,"value":5271},"All handlers can be auto-imported and used in your server routes or API routes.",{"type":3163,"tag":3170,"props":5273,"children":5274},{},[5275,5277,5283,5285,5291],{"type":3168,"value":5276},"The pattern is ",{"type":3163,"tag":3308,"props":5278,"children":5280},{"className":5279},[],[5281],{"type":3168,"value":5282},"defineOAuth\u003CProvider>EventHandler({ onSuccess, config?, onError? })",{"type":3168,"value":5284},", example: ",{"type":3163,"tag":3308,"props":5286,"children":5288},{"className":5287},[],[5289],{"type":3168,"value":5290},"defineOAuthGitHubEventHandler",{"type":3168,"value":3401},{"type":3163,"tag":3170,"props":5293,"children":5294},{},[5295,5297,5303,5305,5311],{"type":3168,"value":5296},"The helper returns an event handler that automatically redirects to the provider authorization page and then calls ",{"type":3163,"tag":3308,"props":5298,"children":5300},{"className":5299},[],[5301],{"type":3168,"value":5302},"onSuccess",{"type":3168,"value":5304}," or ",{"type":3163,"tag":3308,"props":5306,"children":5308},{"className":5307},[],[5309],{"type":3168,"value":5310},"onError",{"type":3168,"value":5312}," depending on the result.",{"type":3163,"tag":3170,"props":5314,"children":5315},{},[5316,5318,5324,5326,5332,5334,5339],{"type":3168,"value":5317},"The ",{"type":3163,"tag":3308,"props":5319,"children":5321},{"className":5320},[],[5322],{"type":3168,"value":5323},"config",{"type":3168,"value":5325}," can be defined directly from the ",{"type":3163,"tag":3308,"props":5327,"children":5329},{"className":5328},[],[5330],{"type":3168,"value":5331},"runtimeConfig",{"type":3168,"value":5333}," in your ",{"type":3163,"tag":3308,"props":5335,"children":5337},{"className":5336},[],[5338],{"type":3168,"value":233},{"type":3168,"value":4186},{"type":3163,"tag":3436,"props":5341,"children":5343},{"className":4125,"code":5342,"language":4127,"meta":3037,"style":3037},"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",[5344],{"type":3163,"tag":3308,"props":5345,"children":5346},{"__ignoreMap":3037},[5347,5374,5390,5406,5414,5430,5460,5484,5492,5500,5507],{"type":3163,"tag":3446,"props":5348,"children":5349},{"class":3448,"line":3123},[5350,5354,5359,5364,5369],{"type":3163,"tag":3446,"props":5351,"children":5352},{"style":4709},[5353],{"type":3168,"value":5243},{"type":3163,"tag":3446,"props":5355,"children":5356},{"style":4709},[5357],{"type":3168,"value":5358}," default",{"type":3163,"tag":3446,"props":5360,"children":5361},{"style":3682},[5362],{"type":3168,"value":5363}," defineNuxtConfig",{"type":3163,"tag":3446,"props":5365,"children":5366},{"style":3520},[5367],{"type":3168,"value":5368},"(",{"type":3163,"tag":3446,"props":5370,"children":5371},{"style":3525},[5372],{"type":3168,"value":5373},"{\n",{"type":3163,"tag":3446,"props":5375,"children":5376},{"class":3448,"line":3089},[5377,5382,5386],{"type":3163,"tag":3446,"props":5378,"children":5379},{"style":3591},[5380],{"type":3168,"value":5381},"  runtimeConfig",{"type":3163,"tag":3446,"props":5383,"children":5384},{"style":3525},[5385],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":5387,"children":5388},{"style":3525},[5389],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":5391,"children":5392},{"class":3448,"line":3073},[5393,5398,5402],{"type":3163,"tag":3446,"props":5394,"children":5395},{"style":3591},[5396],{"type":3168,"value":5397},"    oauth",{"type":3163,"tag":3446,"props":5399,"children":5400},{"style":3525},[5401],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":5403,"children":5404},{"style":3525},[5405],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":5407,"children":5408},{"class":3448,"line":3709},[5409],{"type":3163,"tag":3446,"props":5410,"children":5411},{"style":3511},[5412],{"type":3168,"value":5413},"      \u002F\u002F provider in lowercase (github, google, etc.)\n",{"type":3163,"tag":3446,"props":5415,"children":5416},{"class":3448,"line":3718},[5417,5422,5426],{"type":3163,"tag":3446,"props":5418,"children":5419},{"style":3520},[5420],{"type":3168,"value":5421},"      \u003Cprovider>",{"type":3163,"tag":3446,"props":5423,"children":5424},{"style":3525},[5425],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":5427,"children":5428},{"style":3525},[5429],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":5431,"children":5432},{"class":3448,"line":3735},[5433,5438,5442,5446,5451,5455],{"type":3163,"tag":3446,"props":5434,"children":5435},{"style":3591},[5436],{"type":3168,"value":5437},"        clientId",{"type":3163,"tag":3446,"props":5439,"children":5440},{"style":3525},[5441],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":5443,"children":5444},{"style":3525},[5445],{"type":3168,"value":4770},{"type":3163,"tag":3446,"props":5447,"children":5448},{"style":3458},[5449],{"type":3168,"value":5450},"...",{"type":3163,"tag":3446,"props":5452,"children":5453},{"style":3525},[5454],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":5456,"children":5457},{"style":3525},[5458],{"type":3168,"value":5459},",\n",{"type":3163,"tag":3446,"props":5461,"children":5462},{"class":3448,"line":3069},[5463,5468,5472,5476,5480],{"type":3163,"tag":3446,"props":5464,"children":5465},{"style":3591},[5466],{"type":3168,"value":5467},"        clientSecret",{"type":3163,"tag":3446,"props":5469,"children":5470},{"style":3525},[5471],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":5473,"children":5474},{"style":3525},[5475],{"type":3168,"value":4770},{"type":3163,"tag":3446,"props":5477,"children":5478},{"style":3458},[5479],{"type":3168,"value":5450},{"type":3163,"tag":3446,"props":5481,"children":5482},{"style":3525},[5483],{"type":3168,"value":4779},{"type":3163,"tag":3446,"props":5485,"children":5486},{"class":3448,"line":3065},[5487],{"type":3163,"tag":3446,"props":5488,"children":5489},{"style":3525},[5490],{"type":3168,"value":5491},"      }\n",{"type":3163,"tag":3446,"props":5493,"children":5494},{"class":3448,"line":3061},[5495],{"type":3163,"tag":3446,"props":5496,"children":5497},{"style":3525},[5498],{"type":3168,"value":5499},"    }\n",{"type":3163,"tag":3446,"props":5501,"children":5502},{"class":3448,"line":3897},[5503],{"type":3163,"tag":3446,"props":5504,"children":5505},{"style":3525},[5506],{"type":3168,"value":5147},{"type":3163,"tag":3446,"props":5508,"children":5509},{"class":3448,"line":3914},[5510,5514],{"type":3163,"tag":3446,"props":5511,"children":5512},{"style":3525},[5513],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":5515,"children":5516},{"style":3520},[5517],{"type":3168,"value":4889},{"type":3163,"tag":3170,"props":5519,"children":5520},{},[5521],{"type":3168,"value":5522},"It can also be set using environment variables:",{"type":3163,"tag":3220,"props":5524,"children":5525},{},[5526,5535],{"type":3163,"tag":3224,"props":5527,"children":5528},{},[5529],{"type":3163,"tag":3308,"props":5530,"children":5532},{"className":5531},[],[5533],{"type":3168,"value":5534},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_ID",{"type":3163,"tag":3224,"props":5536,"children":5537},{},[5538],{"type":3163,"tag":3308,"props":5539,"children":5541},{"className":5540},[],[5542],{"type":3168,"value":5543},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_SECRET",{"type":3163,"tag":4627,"props":5545,"children":5546},{},[5547],{"type":3163,"tag":3170,"props":5548,"children":5549},{},[5550],{"type":3168,"value":5551},"Provider is in uppercase (GITHUB, GOOGLE, etc.)",{"type":3163,"tag":5553,"props":5554,"children":5556},"h4",{"id":5555},"supported-oauth-providers",[5557],{"type":3168,"value":5558},"Supported OAuth Providers",{"type":3163,"tag":3220,"props":5560,"children":5561},{},[5562,5567,5572,5577,5582,5587,5592,5597,5602,5607,5612,5617,5622,5627,5632,5637,5642,5647,5652,5657,5662,5667,5672,5677,5682,5687,5692,5697,5702,5707,5712,5717,5722,5727,5732,5737,5742,5747,5752,5757,5762,5767,5772,5777,5782,5787,5792,5797],{"type":3163,"tag":3224,"props":5563,"children":5564},{},[5565],{"type":3168,"value":5566},"Apple",{"type":3163,"tag":3224,"props":5568,"children":5569},{},[5570],{"type":3168,"value":5571},"Atlassian",{"type":3163,"tag":3224,"props":5573,"children":5574},{},[5575],{"type":3168,"value":5576},"Auth0",{"type":3163,"tag":3224,"props":5578,"children":5579},{},[5580],{"type":3168,"value":5581},"Authentik",{"type":3163,"tag":3224,"props":5583,"children":5584},{},[5585],{"type":3168,"value":5586},"AWS Cognito",{"type":3163,"tag":3224,"props":5588,"children":5589},{},[5590],{"type":3168,"value":5591},"Azure B2C",{"type":3163,"tag":3224,"props":5593,"children":5594},{},[5595],{"type":3168,"value":5596},"Battle.net",{"type":3163,"tag":3224,"props":5598,"children":5599},{},[5600],{"type":3168,"value":5601},"Bluesky (AT Protocol)",{"type":3163,"tag":3224,"props":5603,"children":5604},{},[5605],{"type":3168,"value":5606},"Box.com",{"type":3163,"tag":3224,"props":5608,"children":5609},{},[5610],{"type":3168,"value":5611},"Discord",{"type":3163,"tag":3224,"props":5613,"children":5614},{},[5615],{"type":3168,"value":5616},"Dropbox",{"type":3163,"tag":3224,"props":5618,"children":5619},{},[5620],{"type":3168,"value":5621},"Facebook",{"type":3163,"tag":3224,"props":5623,"children":5624},{},[5625],{"type":3168,"value":5626},"GitHub",{"type":3163,"tag":3224,"props":5628,"children":5629},{},[5630],{"type":3168,"value":5631},"GitLab",{"type":3163,"tag":3224,"props":5633,"children":5634},{},[5635],{"type":3168,"value":5636},"Gitea",{"type":3163,"tag":3224,"props":5638,"children":5639},{},[5640],{"type":3168,"value":5641},"Google",{"type":3163,"tag":3224,"props":5643,"children":5644},{},[5645],{"type":3168,"value":5646},"Heroku",{"type":3163,"tag":3224,"props":5648,"children":5649},{},[5650],{"type":3168,"value":5651},"Hubspot",{"type":3163,"tag":3224,"props":5653,"children":5654},{},[5655],{"type":3168,"value":5656},"Instagram",{"type":3163,"tag":3224,"props":5658,"children":5659},{},[5660],{"type":3168,"value":5661},"Kick",{"type":3163,"tag":3224,"props":5663,"children":5664},{},[5665],{"type":3168,"value":5666},"Keycloak",{"type":3163,"tag":3224,"props":5668,"children":5669},{},[5670],{"type":3168,"value":5671},"Line",{"type":3163,"tag":3224,"props":5673,"children":5674},{},[5675],{"type":3168,"value":5676},"Linear",{"type":3163,"tag":3224,"props":5678,"children":5679},{},[5680],{"type":3168,"value":5681},"LinkedIn",{"type":3163,"tag":3224,"props":5683,"children":5684},{},[5685],{"type":3168,"value":5686},"LiveChat",{"type":3163,"tag":3224,"props":5688,"children":5689},{},[5690],{"type":3168,"value":5691},"Microsoft",{"type":3163,"tag":3224,"props":5693,"children":5694},{},[5695],{"type":3168,"value":5696},"OIDC \u002F OpenID Connect (Generic)",{"type":3163,"tag":3224,"props":5698,"children":5699},{},[5700],{"type":3168,"value":5701},"Okta",{"type":3163,"tag":3224,"props":5703,"children":5704},{},[5705],{"type":3168,"value":5706},"Ory",{"type":3163,"tag":3224,"props":5708,"children":5709},{},[5710],{"type":3168,"value":5711},"osu!",{"type":3163,"tag":3224,"props":5713,"children":5714},{},[5715],{"type":3168,"value":5716},"PayPal",{"type":3163,"tag":3224,"props":5718,"children":5719},{},[5720],{"type":3168,"value":5721},"Polar",{"type":3163,"tag":3224,"props":5723,"children":5724},{},[5725],{"type":3168,"value":5726},"Riot Games",{"type":3163,"tag":3224,"props":5728,"children":5729},{},[5730],{"type":3168,"value":5731},"Salesforce",{"type":3163,"tag":3224,"props":5733,"children":5734},{},[5735],{"type":3168,"value":5736},"Seznam",{"type":3163,"tag":3224,"props":5738,"children":5739},{},[5740],{"type":3168,"value":5741},"Shopify Customer",{"type":3163,"tag":3224,"props":5743,"children":5744},{},[5745],{"type":3168,"value":5746},"Slack",{"type":3163,"tag":3224,"props":5748,"children":5749},{},[5750],{"type":3168,"value":5751},"Spotify",{"type":3163,"tag":3224,"props":5753,"children":5754},{},[5755],{"type":3168,"value":5756},"Steam",{"type":3163,"tag":3224,"props":5758,"children":5759},{},[5760],{"type":3168,"value":5761},"Strava",{"type":3163,"tag":3224,"props":5763,"children":5764},{},[5765],{"type":3168,"value":5766},"TikTok",{"type":3163,"tag":3224,"props":5768,"children":5769},{},[5770],{"type":3168,"value":5771},"Twitch",{"type":3163,"tag":3224,"props":5773,"children":5774},{},[5775],{"type":3168,"value":5776},"VK",{"type":3163,"tag":3224,"props":5778,"children":5779},{},[5780],{"type":3168,"value":5781},"WorkOS",{"type":3163,"tag":3224,"props":5783,"children":5784},{},[5785],{"type":3168,"value":5786},"X (Twitter)",{"type":3163,"tag":3224,"props":5788,"children":5789},{},[5790],{"type":3168,"value":5791},"XSUAA",{"type":3163,"tag":3224,"props":5793,"children":5794},{},[5795],{"type":3168,"value":5796},"Yandex",{"type":3163,"tag":3224,"props":5798,"children":5799},{},[5800],{"type":3168,"value":5801},"Zitadel",{"type":3163,"tag":3170,"props":5803,"children":5804},{},[5805,5807,5814],{"type":3168,"value":5806},"You can add your favorite provider by creating a new file in ",{"type":3163,"tag":3174,"props":5808,"children":5811},{"href":5809,"rel":5810},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Ftree\u002Fmain\u002Fsrc\u002Fruntime\u002Fserver\u002Flib\u002Foauth",[3178],[5812],{"type":3168,"value":5813},"src\u002Fruntime\u002Fserver\u002Flib\u002Foauth\u002F",{"type":3168,"value":3401},{"type":3163,"tag":5553,"props":5816,"children":5818},{"id":5817},"example",[5819],{"type":3168,"value":5820},"Example",{"type":3163,"tag":3170,"props":5822,"children":5823},{},[5824,5826],{"type":3168,"value":5825},"Example: ",{"type":3163,"tag":3308,"props":5827,"children":5829},{"className":5828},[],[5830],{"type":3168,"value":5831},"~\u002Fserver\u002Froutes\u002Fauth\u002Fgithub.get.ts",{"type":3163,"tag":3436,"props":5833,"children":5835},{"className":4125,"code":5834,"language":4127,"meta":3037,"style":3037},"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",[5836],{"type":3163,"tag":3308,"props":5837,"children":5838},{"__ignoreMap":3037},[5839,5863,5879,5897,5904,5955,5983,5999,6024,6031,6043,6085,6092,6100,6134,6180,6219,6226],{"type":3163,"tag":3446,"props":5840,"children":5841},{"class":3448,"line":3123},[5842,5846,5850,5855,5859],{"type":3163,"tag":3446,"props":5843,"children":5844},{"style":4709},[5845],{"type":3168,"value":5243},{"type":3163,"tag":3446,"props":5847,"children":5848},{"style":4709},[5849],{"type":3168,"value":5358},{"type":3163,"tag":3446,"props":5851,"children":5852},{"style":3682},[5853],{"type":3168,"value":5854}," defineOAuthGitHubEventHandler",{"type":3163,"tag":3446,"props":5856,"children":5857},{"style":3520},[5858],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":5860,"children":5861},{"style":3525},[5862],{"type":3168,"value":5373},{"type":3163,"tag":3446,"props":5864,"children":5865},{"class":3448,"line":3089},[5866,5871,5875],{"type":3163,"tag":3446,"props":5867,"children":5868},{"style":3591},[5869],{"type":3168,"value":5870},"  config",{"type":3163,"tag":3446,"props":5872,"children":5873},{"style":3525},[5874],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":5876,"children":5877},{"style":3525},[5878],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":5880,"children":5881},{"class":3448,"line":3073},[5882,5887,5891],{"type":3163,"tag":3446,"props":5883,"children":5884},{"style":3591},[5885],{"type":3168,"value":5886},"    emailRequired",{"type":3163,"tag":3446,"props":5888,"children":5889},{"style":3525},[5890],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":5892,"children":5894},{"style":5893},"--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC",[5895],{"type":3168,"value":5896}," true\n",{"type":3163,"tag":3446,"props":5898,"children":5899},{"class":3448,"line":3709},[5900],{"type":3163,"tag":3446,"props":5901,"children":5902},{"style":3525},[5903],{"type":3168,"value":4787},{"type":3163,"tag":3446,"props":5905,"children":5906},{"class":3448,"line":3718},[5907,5912,5917,5921,5926,5930,5934,5938,5942,5947,5951],{"type":3163,"tag":3446,"props":5908,"children":5909},{"style":3597},[5910],{"type":3168,"value":5911},"  async",{"type":3163,"tag":3446,"props":5913,"children":5914},{"style":3591},[5915],{"type":3168,"value":5916}," onSuccess",{"type":3163,"tag":3446,"props":5918,"children":5919},{"style":3525},[5920],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":5922,"children":5923},{"style":4541},[5924],{"type":3168,"value":5925},"event",{"type":3163,"tag":3446,"props":5927,"children":5928},{"style":3525},[5929],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":5931,"children":5932},{"style":3525},[5933],{"type":3168,"value":3618},{"type":3163,"tag":3446,"props":5935,"children":5936},{"style":4541},[5937],{"type":3168,"value":3633},{"type":3163,"tag":3446,"props":5939,"children":5940},{"style":3525},[5941],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":5943,"children":5944},{"style":4541},[5945],{"type":3168,"value":5946}," tokens",{"type":3163,"tag":3446,"props":5948,"children":5949},{"style":3525},[5950],{"type":3168,"value":4607},{"type":3163,"tag":3446,"props":5952,"children":5953},{"style":3525},[5954],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":5956,"children":5957},{"class":3448,"line":3735},[5958,5963,5967,5971,5975,5979],{"type":3163,"tag":3446,"props":5959,"children":5960},{"style":4709},[5961],{"type":3168,"value":5962},"    await",{"type":3163,"tag":3446,"props":5964,"children":5965},{"style":3682},[5966],{"type":3168,"value":4717},{"type":3163,"tag":3446,"props":5968,"children":5969},{"style":3591},[5970],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":5972,"children":5973},{"style":3520},[5974],{"type":3168,"value":5925},{"type":3163,"tag":3446,"props":5976,"children":5977},{"style":3525},[5978],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":5980,"children":5981},{"style":3525},[5982],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":5984,"children":5985},{"class":3448,"line":3069},[5986,5991,5995],{"type":3163,"tag":3446,"props":5987,"children":5988},{"style":3591},[5989],{"type":3168,"value":5990},"      user",{"type":3163,"tag":3446,"props":5992,"children":5993},{"style":3525},[5994],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":5996,"children":5997},{"style":3525},[5998],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":6000,"children":6001},{"class":3448,"line":3065},[6002,6007,6011,6015,6019],{"type":3163,"tag":3446,"props":6003,"children":6004},{"style":3591},[6005],{"type":3168,"value":6006},"        githubId",{"type":3163,"tag":3446,"props":6008,"children":6009},{"style":3525},[6010],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":6012,"children":6013},{"style":3520},[6014],{"type":3168,"value":3633},{"type":3163,"tag":3446,"props":6016,"children":6017},{"style":3525},[6018],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":6020,"children":6021},{"style":3520},[6022],{"type":3168,"value":6023},"id\n",{"type":3163,"tag":3446,"props":6025,"children":6026},{"class":3448,"line":3061},[6027],{"type":3163,"tag":3446,"props":6028,"children":6029},{"style":3525},[6030],{"type":3168,"value":5491},{"type":3163,"tag":3446,"props":6032,"children":6033},{"class":3448,"line":3897},[6034,6039],{"type":3163,"tag":3446,"props":6035,"children":6036},{"style":3525},[6037],{"type":3168,"value":6038},"    }",{"type":3163,"tag":3446,"props":6040,"children":6041},{"style":3591},[6042],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":6044,"children":6045},{"class":3448,"line":3914},[6046,6051,6056,6060,6064,6068,6072,6077,6081],{"type":3163,"tag":3446,"props":6047,"children":6048},{"style":4709},[6049],{"type":3168,"value":6050},"    return",{"type":3163,"tag":3446,"props":6052,"children":6053},{"style":3682},[6054],{"type":3168,"value":6055}," sendRedirect",{"type":3163,"tag":3446,"props":6057,"children":6058},{"style":3591},[6059],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":6061,"children":6062},{"style":3520},[6063],{"type":3168,"value":5925},{"type":3163,"tag":3446,"props":6065,"children":6066},{"style":3525},[6067],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":6069,"children":6070},{"style":3525},[6071],{"type":3168,"value":4770},{"type":3163,"tag":3446,"props":6073,"children":6074},{"style":3458},[6075],{"type":3168,"value":6076},"\u002F",{"type":3163,"tag":3446,"props":6078,"children":6079},{"style":3525},[6080],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":6082,"children":6083},{"style":3591},[6084],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":6086,"children":6087},{"class":3448,"line":3935},[6088],{"type":3163,"tag":3446,"props":6089,"children":6090},{"style":3525},[6091],{"type":3168,"value":4787},{"type":3163,"tag":3446,"props":6093,"children":6094},{"class":3448,"line":3968},[6095],{"type":3163,"tag":3446,"props":6096,"children":6097},{"style":3511},[6098],{"type":3168,"value":6099},"  \u002F\u002F Optional, will return a json error and 401 status code by default\n",{"type":3163,"tag":3446,"props":6101,"children":6102},{"class":3448,"line":4023},[6103,6108,6112,6116,6120,6125,6130],{"type":3163,"tag":3446,"props":6104,"children":6105},{"style":3591},[6106],{"type":3168,"value":6107},"  onError",{"type":3163,"tag":3446,"props":6109,"children":6110},{"style":3525},[6111],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":6113,"children":6114},{"style":4541},[6115],{"type":3168,"value":5925},{"type":3163,"tag":3446,"props":6117,"children":6118},{"style":3525},[6119],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":6121,"children":6122},{"style":4541},[6123],{"type":3168,"value":6124}," error",{"type":3163,"tag":3446,"props":6126,"children":6127},{"style":3525},[6128],{"type":3168,"value":6129},")",{"type":3163,"tag":3446,"props":6131,"children":6132},{"style":3525},[6133],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":6135,"children":6136},{"class":3448,"line":4032},[6137,6142,6146,6151,6155,6159,6164,6168,6172,6176],{"type":3163,"tag":3446,"props":6138,"children":6139},{"style":3520},[6140],{"type":3168,"value":6141},"    console",{"type":3163,"tag":3446,"props":6143,"children":6144},{"style":3525},[6145],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":6147,"children":6148},{"style":3682},[6149],{"type":3168,"value":6150},"error",{"type":3163,"tag":3446,"props":6152,"children":6153},{"style":3591},[6154],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":6156,"children":6157},{"style":3525},[6158],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":6160,"children":6161},{"style":3458},[6162],{"type":3168,"value":6163},"GitHub OAuth error:",{"type":3163,"tag":3446,"props":6165,"children":6166},{"style":3525},[6167],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":6169,"children":6170},{"style":3525},[6171],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":6173,"children":6174},{"style":3520},[6175],{"type":3168,"value":6124},{"type":3163,"tag":3446,"props":6177,"children":6178},{"style":3591},[6179],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":6181,"children":6182},{"class":3448,"line":3057},[6183,6187,6191,6195,6199,6203,6207,6211,6215],{"type":3163,"tag":3446,"props":6184,"children":6185},{"style":4709},[6186],{"type":3168,"value":6050},{"type":3163,"tag":3446,"props":6188,"children":6189},{"style":3682},[6190],{"type":3168,"value":6055},{"type":3163,"tag":3446,"props":6192,"children":6193},{"style":3591},[6194],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":6196,"children":6197},{"style":3520},[6198],{"type":3168,"value":5925},{"type":3163,"tag":3446,"props":6200,"children":6201},{"style":3525},[6202],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":6204,"children":6205},{"style":3525},[6206],{"type":3168,"value":4770},{"type":3163,"tag":3446,"props":6208,"children":6209},{"style":3458},[6210],{"type":3168,"value":6076},{"type":3163,"tag":3446,"props":6212,"children":6213},{"style":3525},[6214],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":6216,"children":6217},{"style":3591},[6218],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":6220,"children":6221},{"class":3448,"line":4100},[6222],{"type":3163,"tag":3446,"props":6223,"children":6224},{"style":3525},[6225],{"type":3168,"value":4787},{"type":3163,"tag":3446,"props":6227,"children":6228},{"class":3448,"line":4370},[6229,6233],{"type":3163,"tag":3446,"props":6230,"children":6231},{"style":3525},[6232],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":6234,"children":6235},{"style":3520},[6236],{"type":3168,"value":4889},{"type":3163,"tag":3170,"props":6238,"children":6239},{},[6240,6242,6248],{"type":3168,"value":6241},"Make sure to set the callback URL in your OAuth app settings as ",{"type":3163,"tag":3308,"props":6243,"children":6245},{"className":6244},[],[6246],{"type":3168,"value":6247},"\u003Cyour-domain>\u002Fauth\u002Fgithub",{"type":3168,"value":3401},{"type":3163,"tag":3170,"props":6250,"children":6251},{},[6252,6254,6260],{"type":3168,"value":6253},"If the redirect URL mismatch in production, this means that the module cannot guess the right redirect URL. You can set the ",{"type":3163,"tag":3308,"props":6255,"children":6257},{"className":6256},[],[6258],{"type":3168,"value":6259},"NUXT_OAUTH_\u003CPROVIDER>_REDIRECT_URL",{"type":3168,"value":6261}," env variable to overwrite the default one.",{"type":3163,"tag":3566,"props":6263,"children":6265},{"id":6264},"password-hashing",[6266],{"type":3168,"value":3290},{"type":3163,"tag":3170,"props":6268,"children":6269},{},[6270,6272,6278,6280,6286,6288,6295],{"type":3168,"value":6271},"Nuxt Auth Utils provides password hashing utilities like ",{"type":3163,"tag":3308,"props":6273,"children":6275},{"className":6274},[],[6276],{"type":3168,"value":6277},"hashPassword",{"type":3168,"value":6279}," and ",{"type":3163,"tag":3308,"props":6281,"children":6283},{"className":6282},[],[6284],{"type":3168,"value":6285},"verifyPassword",{"type":3168,"value":6287}," to hash and verify passwords by using ",{"type":3163,"tag":3174,"props":6289,"children":6292},{"href":6290,"rel":6291},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FScrypt",[3178],[6293],{"type":3168,"value":6294},"scrypt",{"type":3168,"value":6296}," as it is supported in many JS runtime.",{"type":3163,"tag":3436,"props":6298,"children":6300},{"className":4125,"code":6299,"language":4127,"meta":3037,"style":3037},"const hashedPassword = await hashPassword('user_password')\n\nif (await verifyPassword(hashedPassword, 'user_password')) {\n  \u002F\u002F Password is valid\n}\n",[6301],{"type":3163,"tag":3308,"props":6302,"children":6303},{"__ignoreMap":3037},[6304,6350,6357,6408,6416],{"type":3163,"tag":3446,"props":6305,"children":6306},{"class":3448,"line":3123},[6307,6311,6316,6320,6324,6329,6333,6337,6342,6346],{"type":3163,"tag":3446,"props":6308,"children":6309},{"style":3597},[6310],{"type":3168,"value":3613},{"type":3163,"tag":3446,"props":6312,"children":6313},{"style":3520},[6314],{"type":3168,"value":6315}," hashedPassword ",{"type":3163,"tag":3446,"props":6317,"children":6318},{"style":3525},[6319],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":6321,"children":6322},{"style":4709},[6323],{"type":3168,"value":4965},{"type":3163,"tag":3446,"props":6325,"children":6326},{"style":3682},[6327],{"type":3168,"value":6328}," hashPassword",{"type":3163,"tag":3446,"props":6330,"children":6331},{"style":3520},[6332],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":6334,"children":6335},{"style":3525},[6336],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":6338,"children":6339},{"style":3458},[6340],{"type":3168,"value":6341},"user_password",{"type":3163,"tag":3446,"props":6343,"children":6344},{"style":3525},[6345],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":6347,"children":6348},{"style":3520},[6349],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":6351,"children":6352},{"class":3448,"line":3089},[6353],{"type":3163,"tag":3446,"props":6354,"children":6355},{"emptyLinePlaceholder":1200},[6356],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":6358,"children":6359},{"class":3448,"line":3073},[6360,6365,6369,6373,6378,6383,6387,6391,6395,6399,6404],{"type":3163,"tag":3446,"props":6361,"children":6362},{"style":4709},[6363],{"type":3168,"value":6364},"if",{"type":3163,"tag":3446,"props":6366,"children":6367},{"style":3520},[6368],{"type":3168,"value":4538},{"type":3163,"tag":3446,"props":6370,"children":6371},{"style":4709},[6372],{"type":3168,"value":4712},{"type":3163,"tag":3446,"props":6374,"children":6375},{"style":3682},[6376],{"type":3168,"value":6377}," verifyPassword",{"type":3163,"tag":3446,"props":6379,"children":6380},{"style":3520},[6381],{"type":3168,"value":6382},"(hashedPassword",{"type":3163,"tag":3446,"props":6384,"children":6385},{"style":3525},[6386],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":6388,"children":6389},{"style":3525},[6390],{"type":3168,"value":4770},{"type":3163,"tag":3446,"props":6392,"children":6393},{"style":3458},[6394],{"type":3168,"value":6341},{"type":3163,"tag":3446,"props":6396,"children":6397},{"style":3525},[6398],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":6400,"children":6401},{"style":3520},[6402],{"type":3168,"value":6403},")) ",{"type":3163,"tag":3446,"props":6405,"children":6406},{"style":3525},[6407],{"type":3168,"value":5373},{"type":3163,"tag":3446,"props":6409,"children":6410},{"class":3448,"line":3709},[6411],{"type":3163,"tag":3446,"props":6412,"children":6413},{"style":3511},[6414],{"type":3168,"value":6415},"  \u002F\u002F Password is valid\n",{"type":3163,"tag":3446,"props":6417,"children":6418},{"class":3448,"line":3718},[6419],{"type":3163,"tag":3446,"props":6420,"children":6421},{"style":3525},[6422],{"type":3168,"value":4625},{"type":3163,"tag":3170,"props":6424,"children":6425},{},[6426,6428,6434],{"type":3168,"value":6427},"It also provides a ",{"type":3163,"tag":3308,"props":6429,"children":6431},{"className":6430},[],[6432],{"type":3168,"value":6433},"passwordNeedsRehash",{"type":3168,"value":6435}," 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":3163,"tag":3436,"props":6437,"children":6439},{"className":4125,"code":6438,"language":4127,"meta":3037,"style":3037},"const needsRehash = passwordNeedsRehash(hashedPassword)\n\nif (needsRehash) {\n  \u002F\u002F Password needs to be rehashed\n  hashedPassword = await hashPassword('user_password')\n}\n",[6440],{"type":3163,"tag":3308,"props":6441,"children":6442},{"__ignoreMap":3037},[6443,6469,6476,6492,6500,6540],{"type":3163,"tag":3446,"props":6444,"children":6445},{"class":3448,"line":3123},[6446,6450,6455,6459,6464],{"type":3163,"tag":3446,"props":6447,"children":6448},{"style":3597},[6449],{"type":3168,"value":3613},{"type":3163,"tag":3446,"props":6451,"children":6452},{"style":3520},[6453],{"type":3168,"value":6454}," needsRehash ",{"type":3163,"tag":3446,"props":6456,"children":6457},{"style":3525},[6458],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":6460,"children":6461},{"style":3682},[6462],{"type":3168,"value":6463}," passwordNeedsRehash",{"type":3163,"tag":3446,"props":6465,"children":6466},{"style":3520},[6467],{"type":3168,"value":6468},"(hashedPassword)\n",{"type":3163,"tag":3446,"props":6470,"children":6471},{"class":3448,"line":3089},[6472],{"type":3163,"tag":3446,"props":6473,"children":6474},{"emptyLinePlaceholder":1200},[6475],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":6477,"children":6478},{"class":3448,"line":3073},[6479,6483,6488],{"type":3163,"tag":3446,"props":6480,"children":6481},{"style":4709},[6482],{"type":3168,"value":6364},{"type":3163,"tag":3446,"props":6484,"children":6485},{"style":3520},[6486],{"type":3168,"value":6487}," (needsRehash) ",{"type":3163,"tag":3446,"props":6489,"children":6490},{"style":3525},[6491],{"type":3168,"value":5373},{"type":3163,"tag":3446,"props":6493,"children":6494},{"class":3448,"line":3709},[6495],{"type":3163,"tag":3446,"props":6496,"children":6497},{"style":3511},[6498],{"type":3168,"value":6499},"  \u002F\u002F Password needs to be rehashed\n",{"type":3163,"tag":3446,"props":6501,"children":6502},{"class":3448,"line":3718},[6503,6508,6512,6516,6520,6524,6528,6532,6536],{"type":3163,"tag":3446,"props":6504,"children":6505},{"style":3520},[6506],{"type":3168,"value":6507},"  hashedPassword",{"type":3163,"tag":3446,"props":6509,"children":6510},{"style":3525},[6511],{"type":3168,"value":3679},{"type":3163,"tag":3446,"props":6513,"children":6514},{"style":4709},[6515],{"type":3168,"value":4965},{"type":3163,"tag":3446,"props":6517,"children":6518},{"style":3682},[6519],{"type":3168,"value":6328},{"type":3163,"tag":3446,"props":6521,"children":6522},{"style":3591},[6523],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":6525,"children":6526},{"style":3525},[6527],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":6529,"children":6530},{"style":3458},[6531],{"type":3168,"value":6341},{"type":3163,"tag":3446,"props":6533,"children":6534},{"style":3525},[6535],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":6537,"children":6538},{"style":3591},[6539],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":6541,"children":6542},{"class":3448,"line":3735},[6543],{"type":3163,"tag":3446,"props":6544,"children":6545},{"style":3525},[6546],{"type":3168,"value":4625},{"type":3163,"tag":3170,"props":6548,"children":6549},{},[6550,6552,6557],{"type":3168,"value":6551},"You can configure the scrypt options in your ",{"type":3163,"tag":3308,"props":6553,"children":6555},{"className":6554},[],[6556],{"type":3168,"value":233},{"type":3168,"value":4186},{"type":3163,"tag":3436,"props":6559,"children":6561},{"className":4125,"code":6560,"language":4127,"meta":3037,"style":3037},"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",[6562],{"type":3163,"tag":3308,"props":6563,"children":6564},{"__ignoreMap":3037},[6565,6588,6626,6642,6658,6674,6682,6689,6696,6703],{"type":3163,"tag":3446,"props":6566,"children":6567},{"class":3448,"line":3123},[6568,6572,6576,6580,6584],{"type":3163,"tag":3446,"props":6569,"children":6570},{"style":4709},[6571],{"type":3168,"value":5243},{"type":3163,"tag":3446,"props":6573,"children":6574},{"style":4709},[6575],{"type":3168,"value":5358},{"type":3163,"tag":3446,"props":6577,"children":6578},{"style":3682},[6579],{"type":3168,"value":5363},{"type":3163,"tag":3446,"props":6581,"children":6582},{"style":3520},[6583],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":6585,"children":6586},{"style":3525},[6587],{"type":3168,"value":5373},{"type":3163,"tag":3446,"props":6589,"children":6590},{"class":3448,"line":3089},[6591,6596,6600,6605,6609,6613,6617,6622],{"type":3163,"tag":3446,"props":6592,"children":6593},{"style":3591},[6594],{"type":3168,"value":6595},"  modules",{"type":3163,"tag":3446,"props":6597,"children":6598},{"style":3525},[6599],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":6601,"children":6602},{"style":3520},[6603],{"type":3168,"value":6604}," [",{"type":3163,"tag":3446,"props":6606,"children":6607},{"style":3525},[6608],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":6610,"children":6611},{"style":3458},[6612],{"type":3168,"value":3036},{"type":3163,"tag":3446,"props":6614,"children":6615},{"style":3525},[6616],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":6618,"children":6619},{"style":3520},[6620],{"type":3168,"value":6621},"]",{"type":3163,"tag":3446,"props":6623,"children":6624},{"style":3525},[6625],{"type":3168,"value":5459},{"type":3163,"tag":3446,"props":6627,"children":6628},{"class":3448,"line":3073},[6629,6634,6638],{"type":3163,"tag":3446,"props":6630,"children":6631},{"style":3591},[6632],{"type":3168,"value":6633},"  auth",{"type":3163,"tag":3446,"props":6635,"children":6636},{"style":3525},[6637],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":6639,"children":6640},{"style":3525},[6641],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":6643,"children":6644},{"class":3448,"line":3709},[6645,6650,6654],{"type":3163,"tag":3446,"props":6646,"children":6647},{"style":3591},[6648],{"type":3168,"value":6649},"    hash",{"type":3163,"tag":3446,"props":6651,"children":6652},{"style":3525},[6653],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":6655,"children":6656},{"style":3525},[6657],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":6659,"children":6660},{"class":3448,"line":3718},[6661,6666,6670],{"type":3163,"tag":3446,"props":6662,"children":6663},{"style":3591},[6664],{"type":3168,"value":6665},"      scrypt",{"type":3163,"tag":3446,"props":6667,"children":6668},{"style":3525},[6669],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":6671,"children":6672},{"style":3525},[6673],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":6675,"children":6676},{"class":3448,"line":3735},[6677],{"type":3163,"tag":3446,"props":6678,"children":6679},{"style":3511},[6680],{"type":3168,"value":6681},"        \u002F\u002F See https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fhash\u002Fblob\u002F94637029cd526783ac0a763ec581306d98db2036\u002Fsrc\u002Ftypes.ts#L144\n",{"type":3163,"tag":3446,"props":6683,"children":6684},{"class":3448,"line":3069},[6685],{"type":3163,"tag":3446,"props":6686,"children":6687},{"style":3525},[6688],{"type":3168,"value":5491},{"type":3163,"tag":3446,"props":6690,"children":6691},{"class":3448,"line":3065},[6692],{"type":3163,"tag":3446,"props":6693,"children":6694},{"style":3525},[6695],{"type":3168,"value":5499},{"type":3163,"tag":3446,"props":6697,"children":6698},{"class":3448,"line":3061},[6699],{"type":3163,"tag":3446,"props":6700,"children":6701},{"style":3525},[6702],{"type":3168,"value":5147},{"type":3163,"tag":3446,"props":6704,"children":6705},{"class":3448,"line":3897},[6706,6710],{"type":3163,"tag":3446,"props":6707,"children":6708},{"style":3525},[6709],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":6711,"children":6712},{"style":3520},[6713],{"type":3168,"value":4889},{"type":3163,"tag":3566,"props":6715,"children":6717},{"id":6716},"at-protocol",[6718],{"type":3168,"value":6719},"AT Protocol",{"type":3163,"tag":3170,"props":6721,"children":6722},{},[6723],{"type":3168,"value":6724},"Social networks that rely on AT Protocol (e.g., Bluesky) slightly differ from a regular OAuth flow.",{"type":3163,"tag":3170,"props":6726,"children":6727},{},[6728],{"type":3168,"value":6729},"To enable OAuth with AT Protocol, you need to:",{"type":3163,"tag":3420,"props":6731,"children":6732},{},[6733],{"type":3163,"tag":3224,"props":6734,"children":6735},{},[6736],{"type":3168,"value":6737},"Install the peer dependencies:",{"type":3163,"tag":3436,"props":6739,"children":6741},{"className":3438,"code":6740,"language":3440,"meta":3037,"style":3037},"npx nypm i @atproto\u002Foauth-client-node @atproto\u002Fapi\n",[6742],{"type":3163,"tag":3308,"props":6743,"children":6744},{"__ignoreMap":3037},[6745],{"type":3163,"tag":3446,"props":6746,"children":6747},{"class":3448,"line":3123},[6748,6752,6757,6762,6767],{"type":3163,"tag":3446,"props":6749,"children":6750},{"style":3452},[6751],{"type":3168,"value":3455},{"type":3163,"tag":3446,"props":6753,"children":6754},{"style":3458},[6755],{"type":3168,"value":6756}," nypm",{"type":3163,"tag":3446,"props":6758,"children":6759},{"style":3458},[6760],{"type":3168,"value":6761}," i",{"type":3163,"tag":3446,"props":6763,"children":6764},{"style":3458},[6765],{"type":3168,"value":6766}," @atproto\u002Foauth-client-node",{"type":3163,"tag":3446,"props":6768,"children":6769},{"style":3458},[6770],{"type":3168,"value":6771}," @atproto\u002Fapi\n",{"type":3163,"tag":3420,"props":6773,"children":6774},{"start":3089},[6775],{"type":3163,"tag":3224,"props":6776,"children":6777},{},[6778,6780],{"type":3168,"value":6779},"Enable it in your ",{"type":3163,"tag":3308,"props":6781,"children":6783},{"className":6782},[],[6784],{"type":3168,"value":233},{"type":3163,"tag":3436,"props":6786,"children":6788},{"className":4125,"code":6787,"language":4127,"meta":3037,"style":3037},"export default defineNuxtConfig({\n  auth: {\n    atproto: true\n  }\n})\n",[6789],{"type":3163,"tag":3308,"props":6790,"children":6791},{"__ignoreMap":3037},[6792,6815,6830,6846,6853],{"type":3163,"tag":3446,"props":6793,"children":6794},{"class":3448,"line":3123},[6795,6799,6803,6807,6811],{"type":3163,"tag":3446,"props":6796,"children":6797},{"style":4709},[6798],{"type":3168,"value":5243},{"type":3163,"tag":3446,"props":6800,"children":6801},{"style":4709},[6802],{"type":3168,"value":5358},{"type":3163,"tag":3446,"props":6804,"children":6805},{"style":3682},[6806],{"type":3168,"value":5363},{"type":3163,"tag":3446,"props":6808,"children":6809},{"style":3520},[6810],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":6812,"children":6813},{"style":3525},[6814],{"type":3168,"value":5373},{"type":3163,"tag":3446,"props":6816,"children":6817},{"class":3448,"line":3089},[6818,6822,6826],{"type":3163,"tag":3446,"props":6819,"children":6820},{"style":3591},[6821],{"type":3168,"value":6633},{"type":3163,"tag":3446,"props":6823,"children":6824},{"style":3525},[6825],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":6827,"children":6828},{"style":3525},[6829],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":6831,"children":6832},{"class":3448,"line":3073},[6833,6838,6842],{"type":3163,"tag":3446,"props":6834,"children":6835},{"style":3591},[6836],{"type":3168,"value":6837},"    atproto",{"type":3163,"tag":3446,"props":6839,"children":6840},{"style":3525},[6841],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":6843,"children":6844},{"style":5893},[6845],{"type":3168,"value":5896},{"type":3163,"tag":3446,"props":6847,"children":6848},{"class":3448,"line":3709},[6849],{"type":3163,"tag":3446,"props":6850,"children":6851},{"style":3525},[6852],{"type":3168,"value":5147},{"type":3163,"tag":3446,"props":6854,"children":6855},{"class":3448,"line":3718},[6856,6860],{"type":3163,"tag":3446,"props":6857,"children":6858},{"style":3525},[6859],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":6861,"children":6862},{"style":3520},[6863],{"type":3168,"value":4889},{"type":3163,"tag":3566,"props":6865,"children":6867},{"id":6866},"webauthn-passkey",[6868],{"type":3168,"value":3299},{"type":3163,"tag":3170,"props":6870,"children":6871},{},[6872],{"type":3168,"value":6873},"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":3163,"tag":3170,"props":6875,"children":6876},{},[6877],{"type":3168,"value":6878},"To enable WebAuthn you need to:",{"type":3163,"tag":3420,"props":6880,"children":6881},{},[6882],{"type":3163,"tag":3224,"props":6883,"children":6884},{},[6885],{"type":3168,"value":6737},{"type":3163,"tag":3436,"props":6887,"children":6889},{"className":3438,"code":6888,"language":3440,"meta":3037,"style":3037},"npx nypm i @simplewebauthn\u002Fserver@11 @simplewebauthn\u002Fbrowser@11\n",[6890],{"type":3163,"tag":3308,"props":6891,"children":6892},{"__ignoreMap":3037},[6893],{"type":3163,"tag":3446,"props":6894,"children":6895},{"class":3448,"line":3123},[6896,6900,6904,6908,6913],{"type":3163,"tag":3446,"props":6897,"children":6898},{"style":3452},[6899],{"type":3168,"value":3455},{"type":3163,"tag":3446,"props":6901,"children":6902},{"style":3458},[6903],{"type":3168,"value":6756},{"type":3163,"tag":3446,"props":6905,"children":6906},{"style":3458},[6907],{"type":3168,"value":6761},{"type":3163,"tag":3446,"props":6909,"children":6910},{"style":3458},[6911],{"type":3168,"value":6912}," @simplewebauthn\u002Fserver@11",{"type":3163,"tag":3446,"props":6914,"children":6915},{"style":3458},[6916],{"type":3168,"value":6917}," @simplewebauthn\u002Fbrowser@11\n",{"type":3163,"tag":3420,"props":6919,"children":6920},{"start":3089},[6921],{"type":3163,"tag":3224,"props":6922,"children":6923},{},[6924,6925],{"type":3168,"value":6779},{"type":3163,"tag":3308,"props":6926,"children":6928},{"className":6927},[],[6929],{"type":3168,"value":233},{"type":3163,"tag":3436,"props":6931,"children":6933},{"className":4125,"code":6932,"language":4127,"meta":3037,"style":3037},"export default defineNuxtConfig({\n  auth: {\n    webAuthn: true\n  }\n})\n",[6934],{"type":3163,"tag":3308,"props":6935,"children":6936},{"__ignoreMap":3037},[6937,6960,6975,6991,6998],{"type":3163,"tag":3446,"props":6938,"children":6939},{"class":3448,"line":3123},[6940,6944,6948,6952,6956],{"type":3163,"tag":3446,"props":6941,"children":6942},{"style":4709},[6943],{"type":3168,"value":5243},{"type":3163,"tag":3446,"props":6945,"children":6946},{"style":4709},[6947],{"type":3168,"value":5358},{"type":3163,"tag":3446,"props":6949,"children":6950},{"style":3682},[6951],{"type":3168,"value":5363},{"type":3163,"tag":3446,"props":6953,"children":6954},{"style":3520},[6955],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":6957,"children":6958},{"style":3525},[6959],{"type":3168,"value":5373},{"type":3163,"tag":3446,"props":6961,"children":6962},{"class":3448,"line":3089},[6963,6967,6971],{"type":3163,"tag":3446,"props":6964,"children":6965},{"style":3591},[6966],{"type":3168,"value":6633},{"type":3163,"tag":3446,"props":6968,"children":6969},{"style":3525},[6970],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":6972,"children":6973},{"style":3525},[6974],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":6976,"children":6977},{"class":3448,"line":3073},[6978,6983,6987],{"type":3163,"tag":3446,"props":6979,"children":6980},{"style":3591},[6981],{"type":3168,"value":6982},"    webAuthn",{"type":3163,"tag":3446,"props":6984,"children":6985},{"style":3525},[6986],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":6988,"children":6989},{"style":5893},[6990],{"type":3168,"value":5896},{"type":3163,"tag":3446,"props":6992,"children":6993},{"class":3448,"line":3709},[6994],{"type":3163,"tag":3446,"props":6995,"children":6996},{"style":3525},[6997],{"type":3168,"value":5147},{"type":3163,"tag":3446,"props":6999,"children":7000},{"class":3448,"line":3718},[7001,7005],{"type":3163,"tag":3446,"props":7002,"children":7003},{"style":3525},[7004],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":7006,"children":7007},{"style":3520},[7008],{"type":3168,"value":4889},{"type":3163,"tag":5553,"props":7010,"children":7012},{"id":7011},"example-1",[7013],{"type":3168,"value":5820},{"type":3163,"tag":3170,"props":7015,"children":7016},{},[7017],{"type":3168,"value":7018},"In this example we will implement the very basic steps to register and authenticate a credential.",{"type":3163,"tag":3170,"props":7020,"children":7021},{},[7022,7024,7031],{"type":3168,"value":7023},"The full code can be found in the ",{"type":3163,"tag":3174,"props":7025,"children":7028},{"href":7026,"rel":7027},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn",[3178],[7029],{"type":3168,"value":7030},"playground",{"type":3168,"value":7032},". The example uses a SQLite database with the following minimal tables:",{"type":3163,"tag":3436,"props":7034,"children":7038},{"className":7035,"code":7036,"language":7037,"meta":3037,"style":3037},"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",[7039],{"type":3163,"tag":3308,"props":7040,"children":7041},{"__ignoreMap":3037},[7042,7066,7089,7107,7115,7122,7153,7194,7218,7238,7259,7279,7299,7346],{"type":3163,"tag":3446,"props":7043,"children":7044},{"class":3448,"line":3123},[7045,7051,7056,7061],{"type":3163,"tag":3446,"props":7046,"children":7048},{"style":7047},"--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C",[7049],{"type":3168,"value":7050},"CREATE",{"type":3163,"tag":3446,"props":7052,"children":7053},{"style":7047},[7054],{"type":3168,"value":7055}," TABLE",{"type":3163,"tag":3446,"props":7057,"children":7058},{"style":3682},[7059],{"type":3168,"value":7060}," users",{"type":3163,"tag":3446,"props":7062,"children":7063},{"style":3520},[7064],{"type":3168,"value":7065}," (\n",{"type":3163,"tag":3446,"props":7067,"children":7068},{"class":3448,"line":3089},[7069,7074,7079,7084],{"type":3163,"tag":3446,"props":7070,"children":7071},{"style":3520},[7072],{"type":3168,"value":7073},"  id ",{"type":3163,"tag":3446,"props":7075,"children":7076},{"style":3597},[7077],{"type":3168,"value":7078},"INTEGER",{"type":3163,"tag":3446,"props":7080,"children":7081},{"style":3597},[7082],{"type":3168,"value":7083}," PRIMARY KEY",{"type":3163,"tag":3446,"props":7085,"children":7086},{"style":3520},[7087],{"type":3168,"value":7088}," AUTOINCREMENT,\n",{"type":3163,"tag":3446,"props":7090,"children":7091},{"class":3448,"line":3073},[7092,7097,7102],{"type":3163,"tag":3446,"props":7093,"children":7094},{"style":3520},[7095],{"type":3168,"value":7096},"  email ",{"type":3163,"tag":3446,"props":7098,"children":7099},{"style":3597},[7100],{"type":3168,"value":7101},"TEXT",{"type":3163,"tag":3446,"props":7103,"children":7104},{"style":7047},[7105],{"type":3168,"value":7106}," NOT NULL\n",{"type":3163,"tag":3446,"props":7108,"children":7109},{"class":3448,"line":3709},[7110],{"type":3163,"tag":3446,"props":7111,"children":7112},{"style":3520},[7113],{"type":3168,"value":7114},");\n",{"type":3163,"tag":3446,"props":7116,"children":7117},{"class":3448,"line":3718},[7118],{"type":3163,"tag":3446,"props":7119,"children":7120},{"emptyLinePlaceholder":1200},[7121],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":7123,"children":7124},{"class":3448,"line":3735},[7125,7129,7133,7138,7143,7148],{"type":3163,"tag":3446,"props":7126,"children":7127},{"style":7047},[7128],{"type":3168,"value":7050},{"type":3163,"tag":3446,"props":7130,"children":7131},{"style":7047},[7132],{"type":3168,"value":7055},{"type":3163,"tag":3446,"props":7134,"children":7135},{"style":3682},[7136],{"type":3168,"value":7137}," IF",{"type":3163,"tag":3446,"props":7139,"children":7140},{"style":7047},[7141],{"type":3168,"value":7142}," NOT",{"type":3163,"tag":3446,"props":7144,"children":7145},{"style":7047},[7146],{"type":3168,"value":7147}," EXISTS",{"type":3163,"tag":3446,"props":7149,"children":7150},{"style":3520},[7151],{"type":3168,"value":7152}," credentials (\n",{"type":3163,"tag":3446,"props":7154,"children":7155},{"class":3448,"line":3069},[7156,7161,7165,7170,7175,7180,7185,7190],{"type":3163,"tag":3446,"props":7157,"children":7158},{"style":3520},[7159],{"type":3168,"value":7160},"  userId ",{"type":3163,"tag":3446,"props":7162,"children":7163},{"style":3597},[7164],{"type":3168,"value":7078},{"type":3163,"tag":3446,"props":7166,"children":7167},{"style":7047},[7168],{"type":3168,"value":7169}," NOT NULL",{"type":3163,"tag":3446,"props":7171,"children":7172},{"style":3597},[7173],{"type":3168,"value":7174}," REFERENCES",{"type":3163,"tag":3446,"props":7176,"children":7177},{"style":3520},[7178],{"type":3168,"value":7179}," users(id) ",{"type":3163,"tag":3446,"props":7181,"children":7182},{"style":3597},[7183],{"type":3168,"value":7184},"ON DELETE CASCADE",{"type":3163,"tag":3446,"props":7186,"children":7187},{"style":3597},[7188],{"type":3168,"value":7189}," ON UPDATE CASCADE",{"type":3163,"tag":3446,"props":7191,"children":7192},{"style":3520},[7193],{"type":3168,"value":5459},{"type":3163,"tag":3446,"props":7195,"children":7196},{"class":3448,"line":3065},[7197,7201,7205,7210,7214],{"type":3163,"tag":3446,"props":7198,"children":7199},{"style":3520},[7200],{"type":3168,"value":7073},{"type":3163,"tag":3446,"props":7202,"children":7203},{"style":3597},[7204],{"type":3168,"value":7101},{"type":3163,"tag":3446,"props":7206,"children":7207},{"style":7047},[7208],{"type":3168,"value":7209}," UNIQUE",{"type":3163,"tag":3446,"props":7211,"children":7212},{"style":7047},[7213],{"type":3168,"value":7169},{"type":3163,"tag":3446,"props":7215,"children":7216},{"style":3520},[7217],{"type":3168,"value":5459},{"type":3163,"tag":3446,"props":7219,"children":7220},{"class":3448,"line":3061},[7221,7226,7230,7234],{"type":3163,"tag":3446,"props":7222,"children":7223},{"style":3520},[7224],{"type":3168,"value":7225},"  publicKey ",{"type":3163,"tag":3446,"props":7227,"children":7228},{"style":3597},[7229],{"type":3168,"value":7101},{"type":3163,"tag":3446,"props":7231,"children":7232},{"style":7047},[7233],{"type":3168,"value":7169},{"type":3163,"tag":3446,"props":7235,"children":7236},{"style":3520},[7237],{"type":3168,"value":5459},{"type":3163,"tag":3446,"props":7239,"children":7240},{"class":3448,"line":3897},[7241,7246,7251,7255],{"type":3163,"tag":3446,"props":7242,"children":7243},{"style":7047},[7244],{"type":3168,"value":7245},"  counter",{"type":3163,"tag":3446,"props":7247,"children":7248},{"style":3597},[7249],{"type":3168,"value":7250}," INTEGER",{"type":3163,"tag":3446,"props":7252,"children":7253},{"style":7047},[7254],{"type":3168,"value":7169},{"type":3163,"tag":3446,"props":7256,"children":7257},{"style":3520},[7258],{"type":3168,"value":5459},{"type":3163,"tag":3446,"props":7260,"children":7261},{"class":3448,"line":3914},[7262,7267,7271,7275],{"type":3163,"tag":3446,"props":7263,"children":7264},{"style":3520},[7265],{"type":3168,"value":7266},"  backedUp ",{"type":3163,"tag":3446,"props":7268,"children":7269},{"style":3597},[7270],{"type":3168,"value":7078},{"type":3163,"tag":3446,"props":7272,"children":7273},{"style":7047},[7274],{"type":3168,"value":7169},{"type":3163,"tag":3446,"props":7276,"children":7277},{"style":3520},[7278],{"type":3168,"value":5459},{"type":3163,"tag":3446,"props":7280,"children":7281},{"class":3448,"line":3935},[7282,7287,7291,7295],{"type":3163,"tag":3446,"props":7283,"children":7284},{"style":3520},[7285],{"type":3168,"value":7286},"  transports ",{"type":3163,"tag":3446,"props":7288,"children":7289},{"style":3597},[7290],{"type":3168,"value":7101},{"type":3163,"tag":3446,"props":7292,"children":7293},{"style":7047},[7294],{"type":3168,"value":7169},{"type":3163,"tag":3446,"props":7296,"children":7297},{"style":3520},[7298],{"type":3168,"value":5459},{"type":3163,"tag":3446,"props":7300,"children":7301},{"class":3448,"line":3968},[7302,7307,7311,7315,7320,7324,7329,7333,7338,7342],{"type":3163,"tag":3446,"props":7303,"children":7304},{"style":3597},[7305],{"type":3168,"value":7306},"  PRIMARY KEY",{"type":3163,"tag":3446,"props":7308,"children":7309},{"style":3520},[7310],{"type":3168,"value":4538},{"type":3163,"tag":3446,"props":7312,"children":7313},{"style":3525},[7314],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":7316,"children":7317},{"style":3458},[7318],{"type":3168,"value":7319},"userId",{"type":3163,"tag":3446,"props":7321,"children":7322},{"style":3525},[7323],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":7325,"children":7326},{"style":3520},[7327],{"type":3168,"value":7328},", ",{"type":3163,"tag":3446,"props":7330,"children":7331},{"style":3525},[7332],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":7334,"children":7335},{"style":3458},[7336],{"type":3168,"value":7337},"id",{"type":3163,"tag":3446,"props":7339,"children":7340},{"style":3525},[7341],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":7343,"children":7344},{"style":3520},[7345],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":7347,"children":7348},{"class":3448,"line":4023},[7349],{"type":3163,"tag":3446,"props":7350,"children":7351},{"style":3520},[7352],{"type":3168,"value":7114},{"type":3163,"tag":3220,"props":7354,"children":7355},{},[7356,7369],{"type":3163,"tag":3224,"props":7357,"children":7358},{},[7359,7361,7367],{"type":3168,"value":7360},"For the ",{"type":3163,"tag":3308,"props":7362,"children":7364},{"className":7363},[],[7365],{"type":3168,"value":7366},"users",{"type":3168,"value":7368}," 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":3163,"tag":3224,"props":7370,"children":7371},{},[7372,7373,7379,7381],{"type":3168,"value":5317},{"type":3163,"tag":3308,"props":7374,"children":7376},{"className":7375},[],[7377],{"type":3168,"value":7378},"credentials",{"type":3168,"value":7380}," table stores:\n",{"type":3163,"tag":3220,"props":7382,"children":7383},{},[7384,7402,7414,7424,7453,7474],{"type":3163,"tag":3224,"props":7385,"children":7386},{},[7387,7388,7393,7395,7400],{"type":3168,"value":5317},{"type":3163,"tag":3308,"props":7389,"children":7391},{"className":7390},[],[7392],{"type":3168,"value":7319},{"type":3168,"value":7394}," from the ",{"type":3163,"tag":3308,"props":7396,"children":7398},{"className":7397},[],[7399],{"type":3168,"value":7366},{"type":3168,"value":7401}," table.",{"type":3163,"tag":3224,"props":7403,"children":7404},{},[7405,7407,7412],{"type":3168,"value":7406},"The credential ",{"type":3163,"tag":3308,"props":7408,"children":7410},{"className":7409},[],[7411],{"type":3168,"value":7337},{"type":3168,"value":7413}," (as unique index)",{"type":3163,"tag":3224,"props":7415,"children":7416},{},[7417,7418],{"type":3168,"value":7406},{"type":3163,"tag":3308,"props":7419,"children":7421},{"className":7420},[],[7422],{"type":3168,"value":7423},"publicKey",{"type":3163,"tag":3224,"props":7425,"children":7426},{},[7427,7429,7435,7437,7442,7444,7451],{"type":3168,"value":7428},"A ",{"type":3163,"tag":3308,"props":7430,"children":7432},{"className":7431},[],[7433],{"type":3168,"value":7434},"counter",{"type":3168,"value":7436},". Each time a credential is used, the counter is incremented. We can use this value to perform extra security checks. More about ",{"type":3163,"tag":3308,"props":7438,"children":7440},{"className":7439},[],[7441],{"type":3168,"value":7434},{"type":3168,"value":7443}," can be read ",{"type":3163,"tag":3174,"props":7445,"children":7448},{"href":7446,"rel":7447},"https:\u002F\u002Fsimplewebauthn.dev\u002Fdocs\u002Fpackages\u002Fserver#3-post-registration-responsibilities",[3178],[7449],{"type":3168,"value":7450},"here",{"type":3168,"value":7452},". For this example, we won't be using the counter. But you should update the counter in your database with the new value.",{"type":3163,"tag":3224,"props":7454,"children":7455},{},[7456,7457,7463,7465,7472],{"type":3168,"value":7428},{"type":3163,"tag":3308,"props":7458,"children":7460},{"className":7459},[],[7461],{"type":3168,"value":7462},"backedUp",{"type":3168,"value":7464}," 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":3163,"tag":3174,"props":7466,"children":7469},{"href":7467,"rel":7468},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fugaemxot",[3178],[7470],{"type":3168,"value":7471},"this section",{"type":3168,"value":7473}," for more details.",{"type":3163,"tag":3224,"props":7475,"children":7476},{},[7477,7478,7484,7486,7492],{"type":3168,"value":7406},{"type":3163,"tag":3308,"props":7479,"children":7481},{"className":7480},[],[7482],{"type":3168,"value":7483},"transports",{"type":3168,"value":7485},". 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":3163,"tag":3174,"props":7487,"children":7490},{"href":7488,"rel":7489},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fycxtiorp",[3178],[7491],{"type":3168,"value":7471},{"type":3168,"value":7473},{"type":3163,"tag":3170,"props":7494,"children":7495},{},[7496,7498,7505,7506,7513,7515,7522],{"type":3168,"value":7497},"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":3163,"tag":3174,"props":7499,"children":7502},{"href":7500,"rel":7501},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fregister.post.ts",[3178],[7503],{"type":3168,"value":7504},"registration",{"type":3168,"value":7328},{"type":3163,"tag":3174,"props":7507,"children":7510},{"href":7508,"rel":7509},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts",[3178],[7511],{"type":3168,"value":7512},"authentication",{"type":3168,"value":7514}," and the ",{"type":3163,"tag":3174,"props":7516,"children":7519},{"href":7517,"rel":7518},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fplugins\u002Fdatabase.ts",[3178],[7520],{"type":3168,"value":7521},"database setup",{"type":3168,"value":3401},{"type":3163,"tag":3436,"props":7524,"children":7526},{"className":4125,"code":7525,"language":4127,"meta":3037,"style":3037},"\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",[7527],{"type":3163,"tag":3308,"props":7528,"children":7529},{"__ignoreMap":3037},[7530,7538,7578,7602,7610,7648,7656,7664,7672,7708,7797,7867,7874,7881,7889,7917,7925,7967,7999,8006,8054,8062,8070,8095,8102,8110,8157,8186,8194,8234,8241,8249,8258,8290,8298,8307,8335,8351,8376,8385,8419,8431,8439],{"type":3163,"tag":3446,"props":7531,"children":7532},{"class":3448,"line":3123},[7533],{"type":3163,"tag":3446,"props":7534,"children":7535},{"style":3511},[7536],{"type":3168,"value":7537},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fregister.post.ts\n",{"type":3163,"tag":3446,"props":7539,"children":7540},{"class":3448,"line":3089},[7541,7546,7550,7555,7560,7565,7569,7574],{"type":3163,"tag":3446,"props":7542,"children":7543},{"style":4709},[7544],{"type":3168,"value":7545},"import",{"type":3163,"tag":3446,"props":7547,"children":7548},{"style":3525},[7549],{"type":3168,"value":3618},{"type":3163,"tag":3446,"props":7551,"children":7552},{"style":3520},[7553],{"type":3168,"value":7554}," z",{"type":3163,"tag":3446,"props":7556,"children":7557},{"style":3525},[7558],{"type":3168,"value":7559}," }",{"type":3163,"tag":3446,"props":7561,"children":7562},{"style":4709},[7563],{"type":3168,"value":7564}," from",{"type":3163,"tag":3446,"props":7566,"children":7567},{"style":3525},[7568],{"type":3168,"value":4770},{"type":3163,"tag":3446,"props":7570,"children":7571},{"style":3458},[7572],{"type":3168,"value":7573},"zod",{"type":3163,"tag":3446,"props":7575,"children":7576},{"style":3525},[7577],{"type":3168,"value":4779},{"type":3163,"tag":3446,"props":7579,"children":7580},{"class":3448,"line":3073},[7581,7585,7589,7594,7598],{"type":3163,"tag":3446,"props":7582,"children":7583},{"style":4709},[7584],{"type":3168,"value":5243},{"type":3163,"tag":3446,"props":7586,"children":7587},{"style":4709},[7588],{"type":3168,"value":5358},{"type":3163,"tag":3446,"props":7590,"children":7591},{"style":3682},[7592],{"type":3168,"value":7593}," defineWebAuthnRegisterEventHandler",{"type":3163,"tag":3446,"props":7595,"children":7596},{"style":3520},[7597],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":7599,"children":7600},{"style":3525},[7601],{"type":3168,"value":5373},{"type":3163,"tag":3446,"props":7603,"children":7604},{"class":3448,"line":3709},[7605],{"type":3163,"tag":3446,"props":7606,"children":7607},{"style":3511},[7608],{"type":3168,"value":7609},"  \u002F\u002F optional\n",{"type":3163,"tag":3446,"props":7611,"children":7612},{"class":3448,"line":3718},[7613,7617,7622,7626,7631,7635,7640,7644],{"type":3163,"tag":3446,"props":7614,"children":7615},{"style":3597},[7616],{"type":3168,"value":5911},{"type":3163,"tag":3446,"props":7618,"children":7619},{"style":3591},[7620],{"type":3168,"value":7621}," validateUser",{"type":3163,"tag":3446,"props":7623,"children":7624},{"style":3525},[7625],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":7627,"children":7628},{"style":4541},[7629],{"type":3168,"value":7630},"userBody",{"type":3163,"tag":3446,"props":7632,"children":7633},{"style":3525},[7634],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":7636,"children":7637},{"style":4541},[7638],{"type":3168,"value":7639}," event",{"type":3163,"tag":3446,"props":7641,"children":7642},{"style":3525},[7643],{"type":3168,"value":6129},{"type":3163,"tag":3446,"props":7645,"children":7646},{"style":3525},[7647],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":7649,"children":7650},{"class":3448,"line":3735},[7651],{"type":3163,"tag":3446,"props":7652,"children":7653},{"style":3511},[7654],{"type":3168,"value":7655},"    \u002F\u002F bonus: check if the user is already authenticated to link a credential to his account\n",{"type":3163,"tag":3446,"props":7657,"children":7658},{"class":3448,"line":3069},[7659],{"type":3163,"tag":3446,"props":7660,"children":7661},{"style":3511},[7662],{"type":3168,"value":7663},"    \u002F\u002F We first check if the user is already authenticated by getting the session\n",{"type":3163,"tag":3446,"props":7665,"children":7666},{"class":3448,"line":3065},[7667],{"type":3163,"tag":3446,"props":7668,"children":7669},{"style":3511},[7670],{"type":3168,"value":7671},"    \u002F\u002F And verify that the email is the same as the one in session\n",{"type":3163,"tag":3446,"props":7673,"children":7674},{"class":3448,"line":3061},[7675,7680,7684,7688,7692,7696,7700,7704],{"type":3163,"tag":3446,"props":7676,"children":7677},{"style":3597},[7678],{"type":3168,"value":7679},"    const",{"type":3163,"tag":3446,"props":7681,"children":7682},{"style":3520},[7683],{"type":3168,"value":3642},{"type":3163,"tag":3446,"props":7685,"children":7686},{"style":3525},[7687],{"type":3168,"value":3679},{"type":3163,"tag":3446,"props":7689,"children":7690},{"style":4709},[7691],{"type":3168,"value":4965},{"type":3163,"tag":3446,"props":7693,"children":7694},{"style":3682},[7695],{"type":3168,"value":4970},{"type":3163,"tag":3446,"props":7697,"children":7698},{"style":3591},[7699],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":7701,"children":7702},{"style":3520},[7703],{"type":3168,"value":5925},{"type":3163,"tag":3446,"props":7705,"children":7706},{"style":3591},[7707],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":7709,"children":7710},{"class":3448,"line":3897},[7711,7716,7720,7725,7729,7734,7739,7744,7749,7753,7757,7761,7765,7769,7774,7779,7783,7788,7793],{"type":3163,"tag":3446,"props":7712,"children":7713},{"style":4709},[7714],{"type":3168,"value":7715},"    if",{"type":3163,"tag":3446,"props":7717,"children":7718},{"style":3591},[7719],{"type":3168,"value":4538},{"type":3163,"tag":3446,"props":7721,"children":7722},{"style":3520},[7723],{"type":3168,"value":7724},"session",{"type":3163,"tag":3446,"props":7726,"children":7727},{"style":3525},[7728],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":7730,"children":7731},{"style":3520},[7732],{"type":3168,"value":7733},"user",{"type":3163,"tag":3446,"props":7735,"children":7736},{"style":3525},[7737],{"type":3168,"value":7738},"?.",{"type":3163,"tag":3446,"props":7740,"children":7741},{"style":3520},[7742],{"type":3168,"value":7743},"email",{"type":3163,"tag":3446,"props":7745,"children":7746},{"style":3525},[7747],{"type":3168,"value":7748}," &&",{"type":3163,"tag":3446,"props":7750,"children":7751},{"style":3520},[7752],{"type":3168,"value":3642},{"type":3163,"tag":3446,"props":7754,"children":7755},{"style":3525},[7756],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":7758,"children":7759},{"style":3520},[7760],{"type":3168,"value":7733},{"type":3163,"tag":3446,"props":7762,"children":7763},{"style":3525},[7764],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":7766,"children":7767},{"style":3520},[7768],{"type":3168,"value":7743},{"type":3163,"tag":3446,"props":7770,"children":7771},{"style":3525},[7772],{"type":3168,"value":7773}," !==",{"type":3163,"tag":3446,"props":7775,"children":7776},{"style":3520},[7777],{"type":3168,"value":7778}," userBody",{"type":3163,"tag":3446,"props":7780,"children":7781},{"style":3525},[7782],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":7784,"children":7785},{"style":3520},[7786],{"type":3168,"value":7787},"userName",{"type":3163,"tag":3446,"props":7789,"children":7790},{"style":3591},[7791],{"type":3168,"value":7792},") ",{"type":3163,"tag":3446,"props":7794,"children":7795},{"style":3525},[7796],{"type":3168,"value":5373},{"type":3163,"tag":3446,"props":7798,"children":7799},{"class":3448,"line":3914},[7800,7805,7810,7814,7819,7824,7828,7833,7837,7842,7846,7850,7855,7859,7863],{"type":3163,"tag":3446,"props":7801,"children":7802},{"style":4709},[7803],{"type":3168,"value":7804},"      throw",{"type":3163,"tag":3446,"props":7806,"children":7807},{"style":3682},[7808],{"type":3168,"value":7809}," createError",{"type":3163,"tag":3446,"props":7811,"children":7812},{"style":3591},[7813],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":7815,"children":7816},{"style":3525},[7817],{"type":3168,"value":7818},"{",{"type":3163,"tag":3446,"props":7820,"children":7821},{"style":3591},[7822],{"type":3168,"value":7823}," statusCode",{"type":3163,"tag":3446,"props":7825,"children":7826},{"style":3525},[7827],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":7829,"children":7830},{"style":7047},[7831],{"type":3168,"value":7832}," 400",{"type":3163,"tag":3446,"props":7834,"children":7835},{"style":3525},[7836],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":7838,"children":7839},{"style":3591},[7840],{"type":3168,"value":7841}," message",{"type":3163,"tag":3446,"props":7843,"children":7844},{"style":3525},[7845],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":7847,"children":7848},{"style":3525},[7849],{"type":3168,"value":4770},{"type":3163,"tag":3446,"props":7851,"children":7852},{"style":3458},[7853],{"type":3168,"value":7854},"Email not matching current session",{"type":3163,"tag":3446,"props":7856,"children":7857},{"style":3525},[7858],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":7860,"children":7861},{"style":3525},[7862],{"type":3168,"value":7559},{"type":3163,"tag":3446,"props":7864,"children":7865},{"style":3591},[7866],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":7868,"children":7869},{"class":3448,"line":3935},[7870],{"type":3163,"tag":3446,"props":7871,"children":7872},{"style":3525},[7873],{"type":3168,"value":5499},{"type":3163,"tag":3446,"props":7875,"children":7876},{"class":3448,"line":3968},[7877],{"type":3163,"tag":3446,"props":7878,"children":7879},{"emptyLinePlaceholder":1200},[7880],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":7882,"children":7883},{"class":3448,"line":4023},[7884],{"type":3163,"tag":3446,"props":7885,"children":7886},{"style":3511},[7887],{"type":3168,"value":7888},"    \u002F\u002F If he registers a new account with credentials\n",{"type":3163,"tag":3446,"props":7890,"children":7891},{"class":3448,"line":4032},[7892,7896,7900,7904,7909,7913],{"type":3163,"tag":3446,"props":7893,"children":7894},{"style":4709},[7895],{"type":3168,"value":6050},{"type":3163,"tag":3446,"props":7897,"children":7898},{"style":3520},[7899],{"type":3168,"value":7554},{"type":3163,"tag":3446,"props":7901,"children":7902},{"style":3525},[7903],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":7905,"children":7906},{"style":3682},[7907],{"type":3168,"value":7908},"object",{"type":3163,"tag":3446,"props":7910,"children":7911},{"style":3591},[7912],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":7914,"children":7915},{"style":3525},[7916],{"type":3168,"value":5373},{"type":3163,"tag":3446,"props":7918,"children":7919},{"class":3448,"line":3057},[7920],{"type":3163,"tag":3446,"props":7921,"children":7922},{"style":3511},[7923],{"type":3168,"value":7924},"      \u002F\u002F we want the userName to be a valid email\n",{"type":3163,"tag":3446,"props":7926,"children":7927},{"class":3448,"line":4100},[7928,7933,7937,7941,7945,7950,7955,7959,7963],{"type":3163,"tag":3446,"props":7929,"children":7930},{"style":3591},[7931],{"type":3168,"value":7932},"      userName",{"type":3163,"tag":3446,"props":7934,"children":7935},{"style":3525},[7936],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":7938,"children":7939},{"style":3520},[7940],{"type":3168,"value":7554},{"type":3163,"tag":3446,"props":7942,"children":7943},{"style":3525},[7944],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":7946,"children":7947},{"style":3682},[7948],{"type":3168,"value":7949},"string",{"type":3163,"tag":3446,"props":7951,"children":7952},{"style":3591},[7953],{"type":3168,"value":7954},"()",{"type":3163,"tag":3446,"props":7956,"children":7957},{"style":3525},[7958],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":7960,"children":7961},{"style":3682},[7962],{"type":3168,"value":7743},{"type":3163,"tag":3446,"props":7964,"children":7965},{"style":3591},[7966],{"type":3168,"value":3690},{"type":3163,"tag":3446,"props":7968,"children":7969},{"class":3448,"line":4370},[7970,7974,7978,7982,7987,7991,7995],{"type":3163,"tag":3446,"props":7971,"children":7972},{"style":3525},[7973],{"type":3168,"value":6038},{"type":3163,"tag":3446,"props":7975,"children":7976},{"style":3591},[7977],{"type":3168,"value":6129},{"type":3163,"tag":3446,"props":7979,"children":7980},{"style":3525},[7981],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":7983,"children":7984},{"style":3682},[7985],{"type":3168,"value":7986},"parse",{"type":3163,"tag":3446,"props":7988,"children":7989},{"style":3591},[7990],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":7992,"children":7993},{"style":3520},[7994],{"type":3168,"value":7630},{"type":3163,"tag":3446,"props":7996,"children":7997},{"style":3591},[7998],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":8000,"children":8001},{"class":3448,"line":4378},[8002],{"type":3163,"tag":3446,"props":8003,"children":8004},{"style":3525},[8005],{"type":3168,"value":4787},{"type":3163,"tag":3446,"props":8007,"children":8008},{"class":3448,"line":4387},[8009,8013,8017,8021,8025,8029,8033,8038,8042,8046,8050],{"type":3163,"tag":3446,"props":8010,"children":8011},{"style":3597},[8012],{"type":3168,"value":5911},{"type":3163,"tag":3446,"props":8014,"children":8015},{"style":3591},[8016],{"type":3168,"value":5916},{"type":3163,"tag":3446,"props":8018,"children":8019},{"style":3525},[8020],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":8022,"children":8023},{"style":4541},[8024],{"type":3168,"value":5925},{"type":3163,"tag":3446,"props":8026,"children":8027},{"style":3525},[8028],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":8030,"children":8031},{"style":3525},[8032],{"type":3168,"value":3618},{"type":3163,"tag":3446,"props":8034,"children":8035},{"style":4541},[8036],{"type":3168,"value":8037}," credential",{"type":3163,"tag":3446,"props":8039,"children":8040},{"style":3525},[8041],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":8043,"children":8044},{"style":4541},[8045],{"type":3168,"value":3633},{"type":3163,"tag":3446,"props":8047,"children":8048},{"style":3525},[8049],{"type":3168,"value":4607},{"type":3163,"tag":3446,"props":8051,"children":8052},{"style":3525},[8053],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":8055,"children":8056},{"class":3448,"line":4395},[8057],{"type":3163,"tag":3446,"props":8058,"children":8059},{"style":3511},[8060],{"type":3168,"value":8061},"    \u002F\u002F The credential creation has been successful\n",{"type":3163,"tag":3446,"props":8063,"children":8064},{"class":3448,"line":4436},[8065],{"type":3163,"tag":3446,"props":8066,"children":8067},{"style":3511},[8068],{"type":3168,"value":8069},"    \u002F\u002F We need to create a user if it does not exist\n",{"type":3163,"tag":3446,"props":8071,"children":8072},{"class":3448,"line":4444},[8073,8077,8082,8086,8091],{"type":3163,"tag":3446,"props":8074,"children":8075},{"style":3597},[8076],{"type":3168,"value":7679},{"type":3163,"tag":3446,"props":8078,"children":8079},{"style":3520},[8080],{"type":3168,"value":8081}," db",{"type":3163,"tag":3446,"props":8083,"children":8084},{"style":3525},[8085],{"type":3168,"value":3679},{"type":3163,"tag":3446,"props":8087,"children":8088},{"style":3682},[8089],{"type":3168,"value":8090}," useDatabase",{"type":3163,"tag":3446,"props":8092,"children":8093},{"style":3591},[8094],{"type":3168,"value":3690},{"type":3163,"tag":3446,"props":8096,"children":8097},{"class":3448,"line":4453},[8098],{"type":3163,"tag":3446,"props":8099,"children":8100},{"emptyLinePlaceholder":1200},[8101],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":8103,"children":8104},{"class":3448,"line":4461},[8105],{"type":3163,"tag":3446,"props":8106,"children":8107},{"style":3511},[8108],{"type":3168,"value":8109},"    \u002F\u002F Get the user from the database\n",{"type":3163,"tag":3446,"props":8111,"children":8112},{"class":3448,"line":4498},[8113,8118,8123,8127,8131,8135,8139,8143,8148,8152],{"type":3163,"tag":3446,"props":8114,"children":8115},{"style":3597},[8116],{"type":3168,"value":8117},"    let",{"type":3163,"tag":3446,"props":8119,"children":8120},{"style":3520},[8121],{"type":3168,"value":8122}," dbUser",{"type":3163,"tag":3446,"props":8124,"children":8125},{"style":3525},[8126],{"type":3168,"value":3679},{"type":3163,"tag":3446,"props":8128,"children":8129},{"style":4709},[8130],{"type":3168,"value":4965},{"type":3163,"tag":3446,"props":8132,"children":8133},{"style":3520},[8134],{"type":3168,"value":8081},{"type":3163,"tag":3446,"props":8136,"children":8137},{"style":3525},[8138],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":8140,"children":8141},{"style":3682},[8142],{"type":3168,"value":7037},{"type":3163,"tag":3446,"props":8144,"children":8145},{"style":3525},[8146],{"type":3168,"value":8147},"`",{"type":3163,"tag":3446,"props":8149,"children":8150},{"style":3458},[8151],{"type":3168,"value":5450},{"type":3163,"tag":3446,"props":8153,"children":8154},{"style":3525},[8155],{"type":3168,"value":8156},"`\n",{"type":3163,"tag":3446,"props":8158,"children":8159},{"class":3448,"line":4506},[8160,8164,8168,8173,8178,8182],{"type":3163,"tag":3446,"props":8161,"children":8162},{"style":4709},[8163],{"type":3168,"value":7715},{"type":3163,"tag":3446,"props":8165,"children":8166},{"style":3591},[8167],{"type":3168,"value":4538},{"type":3163,"tag":3446,"props":8169,"children":8170},{"style":3525},[8171],{"type":3168,"value":8172},"!",{"type":3163,"tag":3446,"props":8174,"children":8175},{"style":3520},[8176],{"type":3168,"value":8177},"dbUser",{"type":3163,"tag":3446,"props":8179,"children":8180},{"style":3591},[8181],{"type":3168,"value":7792},{"type":3163,"tag":3446,"props":8183,"children":8184},{"style":3525},[8185],{"type":3168,"value":5373},{"type":3163,"tag":3446,"props":8187,"children":8188},{"class":3448,"line":4515},[8189],{"type":3163,"tag":3446,"props":8190,"children":8191},{"style":3511},[8192],{"type":3168,"value":8193},"      \u002F\u002F Store new user in database & its credentials\n",{"type":3163,"tag":3446,"props":8195,"children":8196},{"class":3448,"line":4523},[8197,8202,8206,8210,8214,8218,8222,8226,8230],{"type":3163,"tag":3446,"props":8198,"children":8199},{"style":3520},[8200],{"type":3168,"value":8201},"      dbUser",{"type":3163,"tag":3446,"props":8203,"children":8204},{"style":3525},[8205],{"type":3168,"value":3679},{"type":3163,"tag":3446,"props":8207,"children":8208},{"style":4709},[8209],{"type":3168,"value":4965},{"type":3163,"tag":3446,"props":8211,"children":8212},{"style":3520},[8213],{"type":3168,"value":8081},{"type":3163,"tag":3446,"props":8215,"children":8216},{"style":3525},[8217],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":8219,"children":8220},{"style":3682},[8221],{"type":3168,"value":7037},{"type":3163,"tag":3446,"props":8223,"children":8224},{"style":3525},[8225],{"type":3168,"value":8147},{"type":3163,"tag":3446,"props":8227,"children":8228},{"style":3458},[8229],{"type":3168,"value":5450},{"type":3163,"tag":3446,"props":8231,"children":8232},{"style":3525},[8233],{"type":3168,"value":8156},{"type":3163,"tag":3446,"props":8235,"children":8236},{"class":3448,"line":4619},[8237],{"type":3163,"tag":3446,"props":8238,"children":8239},{"style":3525},[8240],{"type":3168,"value":5499},{"type":3163,"tag":3446,"props":8242,"children":8244},{"class":3448,"line":8243},31,[8245],{"type":3163,"tag":3446,"props":8246,"children":8247},{"emptyLinePlaceholder":1200},[8248],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":8250,"children":8252},{"class":3448,"line":8251},32,[8253],{"type":3163,"tag":3446,"props":8254,"children":8255},{"style":3511},[8256],{"type":3168,"value":8257},"    \u002F\u002F we now need to store the credential in our database and link it to the user\n",{"type":3163,"tag":3446,"props":8259,"children":8261},{"class":3448,"line":8260},33,[8262,8266,8270,8274,8278,8282,8286],{"type":3163,"tag":3446,"props":8263,"children":8264},{"style":4709},[8265],{"type":3168,"value":5962},{"type":3163,"tag":3446,"props":8267,"children":8268},{"style":3520},[8269],{"type":3168,"value":8081},{"type":3163,"tag":3446,"props":8271,"children":8272},{"style":3525},[8273],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":8275,"children":8276},{"style":3682},[8277],{"type":3168,"value":7037},{"type":3163,"tag":3446,"props":8279,"children":8280},{"style":3525},[8281],{"type":3168,"value":8147},{"type":3163,"tag":3446,"props":8283,"children":8284},{"style":3458},[8285],{"type":3168,"value":5450},{"type":3163,"tag":3446,"props":8287,"children":8288},{"style":3525},[8289],{"type":3168,"value":8156},{"type":3163,"tag":3446,"props":8291,"children":8293},{"class":3448,"line":8292},34,[8294],{"type":3163,"tag":3446,"props":8295,"children":8296},{"emptyLinePlaceholder":1200},[8297],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":8299,"children":8301},{"class":3448,"line":8300},35,[8302],{"type":3163,"tag":3446,"props":8303,"children":8304},{"style":3511},[8305],{"type":3168,"value":8306},"    \u002F\u002F Set the user session\n",{"type":3163,"tag":3446,"props":8308,"children":8310},{"class":3448,"line":8309},36,[8311,8315,8319,8323,8327,8331],{"type":3163,"tag":3446,"props":8312,"children":8313},{"style":4709},[8314],{"type":3168,"value":5962},{"type":3163,"tag":3446,"props":8316,"children":8317},{"style":3682},[8318],{"type":3168,"value":4717},{"type":3163,"tag":3446,"props":8320,"children":8321},{"style":3591},[8322],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":8324,"children":8325},{"style":3520},[8326],{"type":3168,"value":5925},{"type":3163,"tag":3446,"props":8328,"children":8329},{"style":3525},[8330],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":8332,"children":8333},{"style":3525},[8334],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":8336,"children":8338},{"class":3448,"line":8337},37,[8339,8343,8347],{"type":3163,"tag":3446,"props":8340,"children":8341},{"style":3591},[8342],{"type":3168,"value":5990},{"type":3163,"tag":3446,"props":8344,"children":8345},{"style":3525},[8346],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":8348,"children":8349},{"style":3525},[8350],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":8352,"children":8354},{"class":3448,"line":8353},38,[8355,8360,8364,8368,8372],{"type":3163,"tag":3446,"props":8356,"children":8357},{"style":3591},[8358],{"type":3168,"value":8359},"        id",{"type":3163,"tag":3446,"props":8361,"children":8362},{"style":3525},[8363],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":8365,"children":8366},{"style":3520},[8367],{"type":3168,"value":8122},{"type":3163,"tag":3446,"props":8369,"children":8370},{"style":3525},[8371],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":8373,"children":8374},{"style":3520},[8375],{"type":3168,"value":6023},{"type":3163,"tag":3446,"props":8377,"children":8379},{"class":3448,"line":8378},39,[8380],{"type":3163,"tag":3446,"props":8381,"children":8382},{"style":3525},[8383],{"type":3168,"value":8384},"      },\n",{"type":3163,"tag":3446,"props":8386,"children":8388},{"class":3448,"line":8387},40,[8389,8394,8398,8402,8406,8411,8415],{"type":3163,"tag":3446,"props":8390,"children":8391},{"style":3591},[8392],{"type":3168,"value":8393},"      loggedInAt",{"type":3163,"tag":3446,"props":8395,"children":8396},{"style":3525},[8397],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":8399,"children":8400},{"style":3520},[8401],{"type":3168,"value":4873},{"type":3163,"tag":3446,"props":8403,"children":8404},{"style":3525},[8405],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":8407,"children":8408},{"style":3682},[8409],{"type":3168,"value":8410},"now",{"type":3163,"tag":3446,"props":8412,"children":8413},{"style":3591},[8414],{"type":3168,"value":7954},{"type":3163,"tag":3446,"props":8416,"children":8417},{"style":3525},[8418],{"type":3168,"value":5459},{"type":3163,"tag":3446,"props":8420,"children":8422},{"class":3448,"line":8421},41,[8423,8427],{"type":3163,"tag":3446,"props":8424,"children":8425},{"style":3525},[8426],{"type":3168,"value":6038},{"type":3163,"tag":3446,"props":8428,"children":8429},{"style":3591},[8430],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":8432,"children":8434},{"class":3448,"line":8433},42,[8435],{"type":3163,"tag":3446,"props":8436,"children":8437},{"style":3525},[8438],{"type":3168,"value":4787},{"type":3163,"tag":3446,"props":8440,"children":8442},{"class":3448,"line":8441},43,[8443,8447],{"type":3163,"tag":3446,"props":8444,"children":8445},{"style":3525},[8446],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":8448,"children":8449},{"style":3520},[8450],{"type":3168,"value":4889},{"type":3163,"tag":4627,"props":8452,"children":8453},{},[8454],{"type":3163,"tag":3170,"props":8455,"children":8456},{},[8457,8462,8464,8471,8473,8479,8481],{"type":3163,"tag":3446,"props":8458,"children":8459},{},[8460],{"type":3168,"value":8461},"!TIP",{"type":3168,"value":8463},"\nIf you want to plug in and use the ",{"type":3163,"tag":3174,"props":8465,"children":8468},{"href":8466,"rel":8467},"https:\u002F\u002Fgithub.com\u002Fpasskeydeveloper\u002Fpasskey-authenticator-aaguids",[3178],[8469],{"type":3168,"value":8470},"Community sourced list of AAGUIDS",{"type":3168,"value":8472}," to decorate your display of added passkeys, you can access the the ID via ",{"type":3163,"tag":3308,"props":8474,"children":8476},{"className":8475},[],[8477],{"type":3168,"value":8478},"credential.aaguid",{"type":3168,"value":8480}," inside ",{"type":3163,"tag":3308,"props":8482,"children":8484},{"className":8483},[],[8485],{"type":3168,"value":5302},{"type":3163,"tag":3436,"props":8487,"children":8489},{"className":4125,"code":8488,"language":4127,"meta":3037,"style":3037},"\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",[8490],{"type":3163,"tag":3308,"props":8491,"children":8492},{"__ignoreMap":3037},[8493,8501,8525,8533,8570,8618,8626,8658,8722,8729,8737,8745,8753,8765,8773,8780,8817,8825,8872,8879,8887,8911,8975,8982,8994,9001,9049,9057,9065,9088,9131,9138,9146,9177,9184,9191,9218,9233,9256,9263,9294,9305,9312],{"type":3163,"tag":3446,"props":8494,"children":8495},{"class":3448,"line":3123},[8496],{"type":3163,"tag":3446,"props":8497,"children":8498},{"style":3511},[8499],{"type":3168,"value":8500},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts\n",{"type":3163,"tag":3446,"props":8502,"children":8503},{"class":3448,"line":3089},[8504,8508,8512,8517,8521],{"type":3163,"tag":3446,"props":8505,"children":8506},{"style":4709},[8507],{"type":3168,"value":5243},{"type":3163,"tag":3446,"props":8509,"children":8510},{"style":4709},[8511],{"type":3168,"value":5358},{"type":3163,"tag":3446,"props":8513,"children":8514},{"style":3682},[8515],{"type":3168,"value":8516}," defineWebAuthnAuthenticateEventHandler",{"type":3163,"tag":3446,"props":8518,"children":8519},{"style":3520},[8520],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":8522,"children":8523},{"style":3525},[8524],{"type":3168,"value":5373},{"type":3163,"tag":3446,"props":8526,"children":8527},{"class":3448,"line":3073},[8528],{"type":3163,"tag":3446,"props":8529,"children":8530},{"style":3511},[8531],{"type":3168,"value":8532},"  \u002F\u002F Optionally, we can prefetch the credentials if the user gives their userName during login\n",{"type":3163,"tag":3446,"props":8534,"children":8535},{"class":3448,"line":3709},[8536,8540,8545,8549,8553,8557,8562,8566],{"type":3163,"tag":3446,"props":8537,"children":8538},{"style":3597},[8539],{"type":3168,"value":5911},{"type":3163,"tag":3446,"props":8541,"children":8542},{"style":3591},[8543],{"type":3168,"value":8544}," allowCredentials",{"type":3163,"tag":3446,"props":8546,"children":8547},{"style":3525},[8548],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":8550,"children":8551},{"style":4541},[8552],{"type":3168,"value":5925},{"type":3163,"tag":3446,"props":8554,"children":8555},{"style":3525},[8556],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":8558,"children":8559},{"style":4541},[8560],{"type":3168,"value":8561}," userName",{"type":3163,"tag":3446,"props":8563,"children":8564},{"style":3525},[8565],{"type":3168,"value":6129},{"type":3163,"tag":3446,"props":8567,"children":8568},{"style":3525},[8569],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":8571,"children":8572},{"class":3448,"line":3718},[8573,8577,8582,8586,8590,8594,8598,8602,8606,8610,8614],{"type":3163,"tag":3446,"props":8574,"children":8575},{"style":3597},[8576],{"type":3168,"value":7679},{"type":3163,"tag":3446,"props":8578,"children":8579},{"style":3520},[8580],{"type":3168,"value":8581}," credentials",{"type":3163,"tag":3446,"props":8583,"children":8584},{"style":3525},[8585],{"type":3168,"value":3679},{"type":3163,"tag":3446,"props":8587,"children":8588},{"style":4709},[8589],{"type":3168,"value":4965},{"type":3163,"tag":3446,"props":8591,"children":8592},{"style":3682},[8593],{"type":3168,"value":8090},{"type":3163,"tag":3446,"props":8595,"children":8596},{"style":3591},[8597],{"type":3168,"value":7954},{"type":3163,"tag":3446,"props":8599,"children":8600},{"style":3525},[8601],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":8603,"children":8604},{"style":3682},[8605],{"type":3168,"value":7037},{"type":3163,"tag":3446,"props":8607,"children":8608},{"style":3525},[8609],{"type":3168,"value":8147},{"type":3163,"tag":3446,"props":8611,"children":8612},{"style":3458},[8613],{"type":3168,"value":5450},{"type":3163,"tag":3446,"props":8615,"children":8616},{"style":3525},[8617],{"type":3168,"value":8156},{"type":3163,"tag":3446,"props":8619,"children":8620},{"class":3448,"line":3735},[8621],{"type":3163,"tag":3446,"props":8622,"children":8623},{"style":3511},[8624],{"type":3168,"value":8625},"    \u002F\u002F If no credentials are found, the authentication cannot be completed\n",{"type":3163,"tag":3446,"props":8627,"children":8628},{"class":3448,"line":3069},[8629,8633,8637,8641,8645,8649,8654],{"type":3163,"tag":3446,"props":8630,"children":8631},{"style":4709},[8632],{"type":3168,"value":7715},{"type":3163,"tag":3446,"props":8634,"children":8635},{"style":3591},[8636],{"type":3168,"value":4538},{"type":3163,"tag":3446,"props":8638,"children":8639},{"style":3525},[8640],{"type":3168,"value":8172},{"type":3163,"tag":3446,"props":8642,"children":8643},{"style":3520},[8644],{"type":3168,"value":7378},{"type":3163,"tag":3446,"props":8646,"children":8647},{"style":3525},[8648],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":8650,"children":8651},{"style":3520},[8652],{"type":3168,"value":8653},"length",{"type":3163,"tag":3446,"props":8655,"children":8656},{"style":3591},[8657],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":8659,"children":8660},{"class":3448,"line":3065},[8661,8665,8669,8673,8677,8681,8685,8689,8693,8697,8701,8705,8710,8714,8718],{"type":3163,"tag":3446,"props":8662,"children":8663},{"style":4709},[8664],{"type":3168,"value":7804},{"type":3163,"tag":3446,"props":8666,"children":8667},{"style":3682},[8668],{"type":3168,"value":7809},{"type":3163,"tag":3446,"props":8670,"children":8671},{"style":3591},[8672],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":8674,"children":8675},{"style":3525},[8676],{"type":3168,"value":7818},{"type":3163,"tag":3446,"props":8678,"children":8679},{"style":3591},[8680],{"type":3168,"value":7823},{"type":3163,"tag":3446,"props":8682,"children":8683},{"style":3525},[8684],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":8686,"children":8687},{"style":7047},[8688],{"type":3168,"value":7832},{"type":3163,"tag":3446,"props":8690,"children":8691},{"style":3525},[8692],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":8694,"children":8695},{"style":3591},[8696],{"type":3168,"value":7841},{"type":3163,"tag":3446,"props":8698,"children":8699},{"style":3525},[8700],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":8702,"children":8703},{"style":3525},[8704],{"type":3168,"value":4770},{"type":3163,"tag":3446,"props":8706,"children":8707},{"style":3458},[8708],{"type":3168,"value":8709},"User not found",{"type":3163,"tag":3446,"props":8711,"children":8712},{"style":3525},[8713],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":8715,"children":8716},{"style":3525},[8717],{"type":3168,"value":7559},{"type":3163,"tag":3446,"props":8719,"children":8720},{"style":3591},[8721],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":8723,"children":8724},{"class":3448,"line":3061},[8725],{"type":3163,"tag":3446,"props":8726,"children":8727},{"emptyLinePlaceholder":1200},[8728],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":8730,"children":8731},{"class":3448,"line":3897},[8732],{"type":3163,"tag":3446,"props":8733,"children":8734},{"style":3511},[8735],{"type":3168,"value":8736},"    \u002F\u002F If user is found, only allow credentials that are registered\n",{"type":3163,"tag":3446,"props":8738,"children":8739},{"class":3448,"line":3914},[8740],{"type":3163,"tag":3446,"props":8741,"children":8742},{"style":3511},[8743],{"type":3168,"value":8744},"    \u002F\u002F The browser will automatically try to use the credential that it knows about\n",{"type":3163,"tag":3446,"props":8746,"children":8747},{"class":3448,"line":3935},[8748],{"type":3163,"tag":3446,"props":8749,"children":8750},{"style":3511},[8751],{"type":3168,"value":8752},"    \u002F\u002F Skipping the step for the user to select a credential for a better user experience\n",{"type":3163,"tag":3446,"props":8754,"children":8755},{"class":3448,"line":3968},[8756,8760],{"type":3163,"tag":3446,"props":8757,"children":8758},{"style":4709},[8759],{"type":3168,"value":6050},{"type":3163,"tag":3446,"props":8761,"children":8762},{"style":3520},[8763],{"type":3168,"value":8764}," credentials\n",{"type":3163,"tag":3446,"props":8766,"children":8767},{"class":3448,"line":4023},[8768],{"type":3163,"tag":3446,"props":8769,"children":8770},{"style":3511},[8771],{"type":3168,"value":8772},"    \u002F\u002F example: [{ id: '...' }]\n",{"type":3163,"tag":3446,"props":8774,"children":8775},{"class":3448,"line":4032},[8776],{"type":3163,"tag":3446,"props":8777,"children":8778},{"style":3525},[8779],{"type":3168,"value":4787},{"type":3163,"tag":3446,"props":8781,"children":8782},{"class":3448,"line":3057},[8783,8787,8792,8796,8800,8804,8809,8813],{"type":3163,"tag":3446,"props":8784,"children":8785},{"style":3597},[8786],{"type":3168,"value":5911},{"type":3163,"tag":3446,"props":8788,"children":8789},{"style":3591},[8790],{"type":3168,"value":8791}," getCredential",{"type":3163,"tag":3446,"props":8793,"children":8794},{"style":3525},[8795],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":8797,"children":8798},{"style":4541},[8799],{"type":3168,"value":5925},{"type":3163,"tag":3446,"props":8801,"children":8802},{"style":3525},[8803],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":8805,"children":8806},{"style":4541},[8807],{"type":3168,"value":8808}," credentialId",{"type":3163,"tag":3446,"props":8810,"children":8811},{"style":3525},[8812],{"type":3168,"value":6129},{"type":3163,"tag":3446,"props":8814,"children":8815},{"style":3525},[8816],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":8818,"children":8819},{"class":3448,"line":4100},[8820],{"type":3163,"tag":3446,"props":8821,"children":8822},{"style":3511},[8823],{"type":3168,"value":8824},"    \u002F\u002F Look for the credential in our database\n",{"type":3163,"tag":3446,"props":8826,"children":8827},{"class":3448,"line":4370},[8828,8832,8836,8840,8844,8848,8852,8856,8860,8864,8868],{"type":3163,"tag":3446,"props":8829,"children":8830},{"style":3597},[8831],{"type":3168,"value":7679},{"type":3163,"tag":3446,"props":8833,"children":8834},{"style":3520},[8835],{"type":3168,"value":8037},{"type":3163,"tag":3446,"props":8837,"children":8838},{"style":3525},[8839],{"type":3168,"value":3679},{"type":3163,"tag":3446,"props":8841,"children":8842},{"style":4709},[8843],{"type":3168,"value":4965},{"type":3163,"tag":3446,"props":8845,"children":8846},{"style":3682},[8847],{"type":3168,"value":8090},{"type":3163,"tag":3446,"props":8849,"children":8850},{"style":3591},[8851],{"type":3168,"value":7954},{"type":3163,"tag":3446,"props":8853,"children":8854},{"style":3525},[8855],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":8857,"children":8858},{"style":3682},[8859],{"type":3168,"value":7037},{"type":3163,"tag":3446,"props":8861,"children":8862},{"style":3525},[8863],{"type":3168,"value":8147},{"type":3163,"tag":3446,"props":8865,"children":8866},{"style":3458},[8867],{"type":3168,"value":5450},{"type":3163,"tag":3446,"props":8869,"children":8870},{"style":3525},[8871],{"type":3168,"value":8156},{"type":3163,"tag":3446,"props":8873,"children":8874},{"class":3448,"line":4378},[8875],{"type":3163,"tag":3446,"props":8876,"children":8877},{"emptyLinePlaceholder":1200},[8878],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":8880,"children":8881},{"class":3448,"line":4387},[8882],{"type":3163,"tag":3446,"props":8883,"children":8884},{"style":3511},[8885],{"type":3168,"value":8886},"    \u002F\u002F If the credential is not found, there is no account to log in to\n",{"type":3163,"tag":3446,"props":8888,"children":8889},{"class":3448,"line":4395},[8890,8894,8898,8902,8907],{"type":3163,"tag":3446,"props":8891,"children":8892},{"style":4709},[8893],{"type":3168,"value":7715},{"type":3163,"tag":3446,"props":8895,"children":8896},{"style":3591},[8897],{"type":3168,"value":4538},{"type":3163,"tag":3446,"props":8899,"children":8900},{"style":3525},[8901],{"type":3168,"value":8172},{"type":3163,"tag":3446,"props":8903,"children":8904},{"style":3520},[8905],{"type":3168,"value":8906},"credential",{"type":3163,"tag":3446,"props":8908,"children":8909},{"style":3591},[8910],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":8912,"children":8913},{"class":3448,"line":4436},[8914,8918,8922,8926,8930,8934,8938,8942,8946,8950,8954,8958,8963,8967,8971],{"type":3163,"tag":3446,"props":8915,"children":8916},{"style":4709},[8917],{"type":3168,"value":7804},{"type":3163,"tag":3446,"props":8919,"children":8920},{"style":3682},[8921],{"type":3168,"value":7809},{"type":3163,"tag":3446,"props":8923,"children":8924},{"style":3591},[8925],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":8927,"children":8928},{"style":3525},[8929],{"type":3168,"value":7818},{"type":3163,"tag":3446,"props":8931,"children":8932},{"style":3591},[8933],{"type":3168,"value":7823},{"type":3163,"tag":3446,"props":8935,"children":8936},{"style":3525},[8937],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":8939,"children":8940},{"style":7047},[8941],{"type":3168,"value":7832},{"type":3163,"tag":3446,"props":8943,"children":8944},{"style":3525},[8945],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":8947,"children":8948},{"style":3591},[8949],{"type":3168,"value":7841},{"type":3163,"tag":3446,"props":8951,"children":8952},{"style":3525},[8953],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":8955,"children":8956},{"style":3525},[8957],{"type":3168,"value":4770},{"type":3163,"tag":3446,"props":8959,"children":8960},{"style":3458},[8961],{"type":3168,"value":8962},"Credential not found",{"type":3163,"tag":3446,"props":8964,"children":8965},{"style":3525},[8966],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":8968,"children":8969},{"style":3525},[8970],{"type":3168,"value":7559},{"type":3163,"tag":3446,"props":8972,"children":8973},{"style":3591},[8974],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":8976,"children":8977},{"class":3448,"line":4444},[8978],{"type":3163,"tag":3446,"props":8979,"children":8980},{"emptyLinePlaceholder":1200},[8981],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":8983,"children":8984},{"class":3448,"line":4453},[8985,8989],{"type":3163,"tag":3446,"props":8986,"children":8987},{"style":4709},[8988],{"type":3168,"value":6050},{"type":3163,"tag":3446,"props":8990,"children":8991},{"style":3520},[8992],{"type":3168,"value":8993}," credential\n",{"type":3163,"tag":3446,"props":8995,"children":8996},{"class":3448,"line":4461},[8997],{"type":3163,"tag":3446,"props":8998,"children":8999},{"style":3525},[9000],{"type":3168,"value":4787},{"type":3163,"tag":3446,"props":9002,"children":9003},{"class":3448,"line":4498},[9004,9008,9012,9016,9020,9024,9028,9032,9036,9041,9045],{"type":3163,"tag":3446,"props":9005,"children":9006},{"style":3597},[9007],{"type":3168,"value":5911},{"type":3163,"tag":3446,"props":9009,"children":9010},{"style":3591},[9011],{"type":3168,"value":5916},{"type":3163,"tag":3446,"props":9013,"children":9014},{"style":3525},[9015],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":9017,"children":9018},{"style":4541},[9019],{"type":3168,"value":5925},{"type":3163,"tag":3446,"props":9021,"children":9022},{"style":3525},[9023],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":9025,"children":9026},{"style":3525},[9027],{"type":3168,"value":3618},{"type":3163,"tag":3446,"props":9029,"children":9030},{"style":4541},[9031],{"type":3168,"value":8037},{"type":3163,"tag":3446,"props":9033,"children":9034},{"style":3525},[9035],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":9037,"children":9038},{"style":4541},[9039],{"type":3168,"value":9040}," authenticationInfo",{"type":3163,"tag":3446,"props":9042,"children":9043},{"style":3525},[9044],{"type":3168,"value":4607},{"type":3163,"tag":3446,"props":9046,"children":9047},{"style":3525},[9048],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":9050,"children":9051},{"class":3448,"line":4506},[9052],{"type":3163,"tag":3446,"props":9053,"children":9054},{"style":3511},[9055],{"type":3168,"value":9056},"    \u002F\u002F The credential authentication has been successful\n",{"type":3163,"tag":3446,"props":9058,"children":9059},{"class":3448,"line":4515},[9060],{"type":3163,"tag":3446,"props":9061,"children":9062},{"style":3511},[9063],{"type":3168,"value":9064},"    \u002F\u002F We can look it up in our database and get the corresponding user\n",{"type":3163,"tag":3446,"props":9066,"children":9067},{"class":3448,"line":4523},[9068,9072,9076,9080,9084],{"type":3163,"tag":3446,"props":9069,"children":9070},{"style":3597},[9071],{"type":3168,"value":7679},{"type":3163,"tag":3446,"props":9073,"children":9074},{"style":3520},[9075],{"type":3168,"value":8081},{"type":3163,"tag":3446,"props":9077,"children":9078},{"style":3525},[9079],{"type":3168,"value":3679},{"type":3163,"tag":3446,"props":9081,"children":9082},{"style":3682},[9083],{"type":3168,"value":8090},{"type":3163,"tag":3446,"props":9085,"children":9086},{"style":3591},[9087],{"type":3168,"value":3690},{"type":3163,"tag":3446,"props":9089,"children":9090},{"class":3448,"line":4619},[9091,9095,9099,9103,9107,9111,9115,9119,9123,9127],{"type":3163,"tag":3446,"props":9092,"children":9093},{"style":3597},[9094],{"type":3168,"value":7679},{"type":3163,"tag":3446,"props":9096,"children":9097},{"style":3520},[9098],{"type":3168,"value":3633},{"type":3163,"tag":3446,"props":9100,"children":9101},{"style":3525},[9102],{"type":3168,"value":3679},{"type":3163,"tag":3446,"props":9104,"children":9105},{"style":4709},[9106],{"type":3168,"value":4965},{"type":3163,"tag":3446,"props":9108,"children":9109},{"style":3520},[9110],{"type":3168,"value":8081},{"type":3163,"tag":3446,"props":9112,"children":9113},{"style":3525},[9114],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":9116,"children":9117},{"style":3682},[9118],{"type":3168,"value":7037},{"type":3163,"tag":3446,"props":9120,"children":9121},{"style":3525},[9122],{"type":3168,"value":8147},{"type":3163,"tag":3446,"props":9124,"children":9125},{"style":3458},[9126],{"type":3168,"value":5450},{"type":3163,"tag":3446,"props":9128,"children":9129},{"style":3525},[9130],{"type":3168,"value":8156},{"type":3163,"tag":3446,"props":9132,"children":9133},{"class":3448,"line":8243},[9134],{"type":3163,"tag":3446,"props":9135,"children":9136},{"emptyLinePlaceholder":1200},[9137],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":9139,"children":9140},{"class":3448,"line":8251},[9141],{"type":3163,"tag":3446,"props":9142,"children":9143},{"style":3511},[9144],{"type":3168,"value":9145},"    \u002F\u002F Update the counter in the database (authenticationInfo.newCounter)\n",{"type":3163,"tag":3446,"props":9147,"children":9148},{"class":3448,"line":8260},[9149,9153,9157,9161,9165,9169,9173],{"type":3163,"tag":3446,"props":9150,"children":9151},{"style":4709},[9152],{"type":3168,"value":5962},{"type":3163,"tag":3446,"props":9154,"children":9155},{"style":3520},[9156],{"type":3168,"value":8081},{"type":3163,"tag":3446,"props":9158,"children":9159},{"style":3525},[9160],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":9162,"children":9163},{"style":3682},[9164],{"type":3168,"value":7037},{"type":3163,"tag":3446,"props":9166,"children":9167},{"style":3525},[9168],{"type":3168,"value":8147},{"type":3163,"tag":3446,"props":9170,"children":9171},{"style":3458},[9172],{"type":3168,"value":5450},{"type":3163,"tag":3446,"props":9174,"children":9175},{"style":3525},[9176],{"type":3168,"value":8156},{"type":3163,"tag":3446,"props":9178,"children":9179},{"class":3448,"line":8292},[9180],{"type":3163,"tag":3446,"props":9181,"children":9182},{"emptyLinePlaceholder":1200},[9183],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":9185,"children":9186},{"class":3448,"line":8300},[9187],{"type":3163,"tag":3446,"props":9188,"children":9189},{"style":3511},[9190],{"type":3168,"value":8306},{"type":3163,"tag":3446,"props":9192,"children":9193},{"class":3448,"line":8309},[9194,9198,9202,9206,9210,9214],{"type":3163,"tag":3446,"props":9195,"children":9196},{"style":4709},[9197],{"type":3168,"value":5962},{"type":3163,"tag":3446,"props":9199,"children":9200},{"style":3682},[9201],{"type":3168,"value":4717},{"type":3163,"tag":3446,"props":9203,"children":9204},{"style":3591},[9205],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":9207,"children":9208},{"style":3520},[9209],{"type":3168,"value":5925},{"type":3163,"tag":3446,"props":9211,"children":9212},{"style":3525},[9213],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":9215,"children":9216},{"style":3525},[9217],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":9219,"children":9220},{"class":3448,"line":8337},[9221,9225,9229],{"type":3163,"tag":3446,"props":9222,"children":9223},{"style":3591},[9224],{"type":3168,"value":5990},{"type":3163,"tag":3446,"props":9226,"children":9227},{"style":3525},[9228],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":9230,"children":9231},{"style":3525},[9232],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":9234,"children":9235},{"class":3448,"line":8353},[9236,9240,9244,9248,9252],{"type":3163,"tag":3446,"props":9237,"children":9238},{"style":3591},[9239],{"type":3168,"value":8359},{"type":3163,"tag":3446,"props":9241,"children":9242},{"style":3525},[9243],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":9245,"children":9246},{"style":3520},[9247],{"type":3168,"value":3633},{"type":3163,"tag":3446,"props":9249,"children":9250},{"style":3525},[9251],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":9253,"children":9254},{"style":3520},[9255],{"type":3168,"value":6023},{"type":3163,"tag":3446,"props":9257,"children":9258},{"class":3448,"line":8378},[9259],{"type":3163,"tag":3446,"props":9260,"children":9261},{"style":3525},[9262],{"type":3168,"value":8384},{"type":3163,"tag":3446,"props":9264,"children":9265},{"class":3448,"line":8387},[9266,9270,9274,9278,9282,9286,9290],{"type":3163,"tag":3446,"props":9267,"children":9268},{"style":3591},[9269],{"type":3168,"value":8393},{"type":3163,"tag":3446,"props":9271,"children":9272},{"style":3525},[9273],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":9275,"children":9276},{"style":3520},[9277],{"type":3168,"value":4873},{"type":3163,"tag":3446,"props":9279,"children":9280},{"style":3525},[9281],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":9283,"children":9284},{"style":3682},[9285],{"type":3168,"value":8410},{"type":3163,"tag":3446,"props":9287,"children":9288},{"style":3591},[9289],{"type":3168,"value":7954},{"type":3163,"tag":3446,"props":9291,"children":9292},{"style":3525},[9293],{"type":3168,"value":5459},{"type":3163,"tag":3446,"props":9295,"children":9296},{"class":3448,"line":8421},[9297,9301],{"type":3163,"tag":3446,"props":9298,"children":9299},{"style":3525},[9300],{"type":3168,"value":6038},{"type":3163,"tag":3446,"props":9302,"children":9303},{"style":3591},[9304],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":9306,"children":9307},{"class":3448,"line":8433},[9308],{"type":3163,"tag":3446,"props":9309,"children":9310},{"style":3525},[9311],{"type":3168,"value":4787},{"type":3163,"tag":3446,"props":9313,"children":9314},{"class":3448,"line":8441},[9315,9319],{"type":3163,"tag":3446,"props":9316,"children":9317},{"style":3525},[9318],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":9320,"children":9321},{"style":3520},[9322],{"type":3168,"value":4889},{"type":3163,"tag":4627,"props":9324,"children":9325},{},[9326],{"type":3163,"tag":3170,"props":9327,"children":9328},{},[9329,9333,9335,9340,9342,9348,9349,9355],{"type":3163,"tag":3446,"props":9330,"children":9331},{},[9332],{"type":3168,"value":4637},{"type":3168,"value":9334},"\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":3163,"tag":4118,"props":9336,"children":9337},{},[9338],{"type":3168,"value":9339},"which is highly recommended",{"type":3168,"value":9341},"), the ",{"type":3163,"tag":3308,"props":9343,"children":9345},{"className":9344},[],[9346],{"type":3168,"value":9347},"storeChallenge",{"type":3168,"value":6279},{"type":3163,"tag":3308,"props":9350,"children":9352},{"className":9351},[],[9353],{"type":3168,"value":9354},"getChallenge",{"type":3168,"value":9356}," 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":3163,"tag":4627,"props":9358,"children":9359},{},[9360],{"type":3163,"tag":3436,"props":9361,"children":9363},{"className":4125,"code":9362,"language":4127,"meta":3037,"style":3037},"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",[9364],{"type":3163,"tag":3308,"props":9365,"children":9366},{"__ignoreMap":3037},[9367,9390,9436,9444,9509,9516,9552,9616,9623,9631,9683,9690,9714,9778,9785,9797,9804,9844,9852,9859],{"type":3163,"tag":3446,"props":9368,"children":9369},{"class":3448,"line":3123},[9370,9374,9378,9382,9386],{"type":3163,"tag":3446,"props":9371,"children":9372},{"style":4709},[9373],{"type":3168,"value":5243},{"type":3163,"tag":3446,"props":9375,"children":9376},{"style":4709},[9377],{"type":3168,"value":5358},{"type":3163,"tag":3446,"props":9379,"children":9380},{"style":3682},[9381],{"type":3168,"value":8516},{"type":3163,"tag":3446,"props":9383,"children":9384},{"style":3520},[9385],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":9387,"children":9388},{"style":3525},[9389],{"type":3168,"value":5373},{"type":3163,"tag":3446,"props":9391,"children":9392},{"class":3448,"line":3089},[9393,9397,9402,9406,9410,9414,9419,9423,9428,9432],{"type":3163,"tag":3446,"props":9394,"children":9395},{"style":3597},[9396],{"type":3168,"value":5911},{"type":3163,"tag":3446,"props":9398,"children":9399},{"style":3591},[9400],{"type":3168,"value":9401}," storeChallenge",{"type":3163,"tag":3446,"props":9403,"children":9404},{"style":3525},[9405],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":9407,"children":9408},{"style":4541},[9409],{"type":3168,"value":5925},{"type":3163,"tag":3446,"props":9411,"children":9412},{"style":3525},[9413],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":9415,"children":9416},{"style":4541},[9417],{"type":3168,"value":9418}," challenge",{"type":3163,"tag":3446,"props":9420,"children":9421},{"style":3525},[9422],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":9424,"children":9425},{"style":4541},[9426],{"type":3168,"value":9427}," attemptId",{"type":3163,"tag":3446,"props":9429,"children":9430},{"style":3525},[9431],{"type":3168,"value":6129},{"type":3163,"tag":3446,"props":9433,"children":9434},{"style":3525},[9435],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":9437,"children":9438},{"class":3448,"line":3073},[9439],{"type":3163,"tag":3446,"props":9440,"children":9441},{"style":3511},[9442],{"type":3168,"value":9443},"    \u002F\u002F Store the challenge in a KV store or DB\n",{"type":3163,"tag":3446,"props":9445,"children":9446},{"class":3448,"line":3709},[9447,9451,9456,9460,9464,9469,9473,9477,9482,9487,9492,9497,9501,9505],{"type":3163,"tag":3446,"props":9448,"children":9449},{"style":4709},[9450],{"type":3168,"value":5962},{"type":3163,"tag":3446,"props":9452,"children":9453},{"style":3682},[9454],{"type":3168,"value":9455}," useStorage",{"type":3163,"tag":3446,"props":9457,"children":9458},{"style":3591},[9459],{"type":3168,"value":7954},{"type":3163,"tag":3446,"props":9461,"children":9462},{"style":3525},[9463],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":9465,"children":9466},{"style":3682},[9467],{"type":3168,"value":9468},"setItem",{"type":3163,"tag":3446,"props":9470,"children":9471},{"style":3591},[9472],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":9474,"children":9475},{"style":3525},[9476],{"type":3168,"value":8147},{"type":3163,"tag":3446,"props":9478,"children":9479},{"style":3458},[9480],{"type":3168,"value":9481},"attempt:",{"type":3163,"tag":3446,"props":9483,"children":9484},{"style":3525},[9485],{"type":3168,"value":9486},"${",{"type":3163,"tag":3446,"props":9488,"children":9489},{"style":3520},[9490],{"type":3168,"value":9491},"attemptId",{"type":3163,"tag":3446,"props":9493,"children":9494},{"style":3525},[9495],{"type":3168,"value":9496},"}`",{"type":3163,"tag":3446,"props":9498,"children":9499},{"style":3525},[9500],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":9502,"children":9503},{"style":3520},[9504],{"type":3168,"value":9418},{"type":3163,"tag":3446,"props":9506,"children":9507},{"style":3591},[9508],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":9510,"children":9511},{"class":3448,"line":3718},[9512],{"type":3163,"tag":3446,"props":9513,"children":9514},{"style":3525},[9515],{"type":3168,"value":4787},{"type":3163,"tag":3446,"props":9517,"children":9518},{"class":3448,"line":3735},[9519,9523,9528,9532,9536,9540,9544,9548],{"type":3163,"tag":3446,"props":9520,"children":9521},{"style":3597},[9522],{"type":3168,"value":5911},{"type":3163,"tag":3446,"props":9524,"children":9525},{"style":3591},[9526],{"type":3168,"value":9527}," getChallenge",{"type":3163,"tag":3446,"props":9529,"children":9530},{"style":3525},[9531],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":9533,"children":9534},{"style":4541},[9535],{"type":3168,"value":5925},{"type":3163,"tag":3446,"props":9537,"children":9538},{"style":3525},[9539],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":9541,"children":9542},{"style":4541},[9543],{"type":3168,"value":9427},{"type":3163,"tag":3446,"props":9545,"children":9546},{"style":3525},[9547],{"type":3168,"value":6129},{"type":3163,"tag":3446,"props":9549,"children":9550},{"style":3525},[9551],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":9553,"children":9554},{"class":3448,"line":3069},[9555,9559,9563,9567,9571,9575,9579,9583,9588,9592,9596,9600,9604,9608,9612],{"type":3163,"tag":3446,"props":9556,"children":9557},{"style":3597},[9558],{"type":3168,"value":7679},{"type":3163,"tag":3446,"props":9560,"children":9561},{"style":3520},[9562],{"type":3168,"value":9418},{"type":3163,"tag":3446,"props":9564,"children":9565},{"style":3525},[9566],{"type":3168,"value":3679},{"type":3163,"tag":3446,"props":9568,"children":9569},{"style":4709},[9570],{"type":3168,"value":4965},{"type":3163,"tag":3446,"props":9572,"children":9573},{"style":3682},[9574],{"type":3168,"value":9455},{"type":3163,"tag":3446,"props":9576,"children":9577},{"style":3591},[9578],{"type":3168,"value":7954},{"type":3163,"tag":3446,"props":9580,"children":9581},{"style":3525},[9582],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":9584,"children":9585},{"style":3682},[9586],{"type":3168,"value":9587},"getItem",{"type":3163,"tag":3446,"props":9589,"children":9590},{"style":3591},[9591],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":9593,"children":9594},{"style":3525},[9595],{"type":3168,"value":8147},{"type":3163,"tag":3446,"props":9597,"children":9598},{"style":3458},[9599],{"type":3168,"value":9481},{"type":3163,"tag":3446,"props":9601,"children":9602},{"style":3525},[9603],{"type":3168,"value":9486},{"type":3163,"tag":3446,"props":9605,"children":9606},{"style":3520},[9607],{"type":3168,"value":9491},{"type":3163,"tag":3446,"props":9609,"children":9610},{"style":3525},[9611],{"type":3168,"value":9496},{"type":3163,"tag":3446,"props":9613,"children":9614},{"style":3591},[9615],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":9617,"children":9618},{"class":3448,"line":3065},[9619],{"type":3163,"tag":3446,"props":9620,"children":9621},{"emptyLinePlaceholder":1200},[9622],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":9624,"children":9625},{"class":3448,"line":3061},[9626],{"type":3163,"tag":3446,"props":9627,"children":9628},{"style":3511},[9629],{"type":3168,"value":9630},"    \u002F\u002F Make sure to always remove the attempt because they are single use only!\n",{"type":3163,"tag":3446,"props":9632,"children":9633},{"class":3448,"line":3897},[9634,9638,9642,9646,9650,9655,9659,9663,9667,9671,9675,9679],{"type":3163,"tag":3446,"props":9635,"children":9636},{"style":4709},[9637],{"type":3168,"value":5962},{"type":3163,"tag":3446,"props":9639,"children":9640},{"style":3682},[9641],{"type":3168,"value":9455},{"type":3163,"tag":3446,"props":9643,"children":9644},{"style":3591},[9645],{"type":3168,"value":7954},{"type":3163,"tag":3446,"props":9647,"children":9648},{"style":3525},[9649],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":9651,"children":9652},{"style":3682},[9653],{"type":3168,"value":9654},"removeItem",{"type":3163,"tag":3446,"props":9656,"children":9657},{"style":3591},[9658],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":9660,"children":9661},{"style":3525},[9662],{"type":3168,"value":8147},{"type":3163,"tag":3446,"props":9664,"children":9665},{"style":3458},[9666],{"type":3168,"value":9481},{"type":3163,"tag":3446,"props":9668,"children":9669},{"style":3525},[9670],{"type":3168,"value":9486},{"type":3163,"tag":3446,"props":9672,"children":9673},{"style":3520},[9674],{"type":3168,"value":9491},{"type":3163,"tag":3446,"props":9676,"children":9677},{"style":3525},[9678],{"type":3168,"value":9496},{"type":3163,"tag":3446,"props":9680,"children":9681},{"style":3591},[9682],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":9684,"children":9685},{"class":3448,"line":3914},[9686],{"type":3163,"tag":3446,"props":9687,"children":9688},{"emptyLinePlaceholder":1200},[9689],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":9691,"children":9692},{"class":3448,"line":3935},[9693,9697,9701,9705,9710],{"type":3163,"tag":3446,"props":9694,"children":9695},{"style":4709},[9696],{"type":3168,"value":7715},{"type":3163,"tag":3446,"props":9698,"children":9699},{"style":3591},[9700],{"type":3168,"value":4538},{"type":3163,"tag":3446,"props":9702,"children":9703},{"style":3525},[9704],{"type":3168,"value":8172},{"type":3163,"tag":3446,"props":9706,"children":9707},{"style":3520},[9708],{"type":3168,"value":9709},"challenge",{"type":3163,"tag":3446,"props":9711,"children":9712},{"style":3591},[9713],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":9715,"children":9716},{"class":3448,"line":3968},[9717,9721,9725,9729,9733,9737,9741,9745,9749,9753,9757,9761,9766,9770,9774],{"type":3163,"tag":3446,"props":9718,"children":9719},{"style":4709},[9720],{"type":3168,"value":7804},{"type":3163,"tag":3446,"props":9722,"children":9723},{"style":3682},[9724],{"type":3168,"value":7809},{"type":3163,"tag":3446,"props":9726,"children":9727},{"style":3591},[9728],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":9730,"children":9731},{"style":3525},[9732],{"type":3168,"value":7818},{"type":3163,"tag":3446,"props":9734,"children":9735},{"style":3591},[9736],{"type":3168,"value":7823},{"type":3163,"tag":3446,"props":9738,"children":9739},{"style":3525},[9740],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":9742,"children":9743},{"style":7047},[9744],{"type":3168,"value":7832},{"type":3163,"tag":3446,"props":9746,"children":9747},{"style":3525},[9748],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":9750,"children":9751},{"style":3591},[9752],{"type":3168,"value":7841},{"type":3163,"tag":3446,"props":9754,"children":9755},{"style":3525},[9756],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":9758,"children":9759},{"style":3525},[9760],{"type":3168,"value":4770},{"type":3163,"tag":3446,"props":9762,"children":9763},{"style":3458},[9764],{"type":3168,"value":9765},"Challenge expired",{"type":3163,"tag":3446,"props":9767,"children":9768},{"style":3525},[9769],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":9771,"children":9772},{"style":3525},[9773],{"type":3168,"value":7559},{"type":3163,"tag":3446,"props":9775,"children":9776},{"style":3591},[9777],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":9779,"children":9780},{"class":3448,"line":4023},[9781],{"type":3163,"tag":3446,"props":9782,"children":9783},{"emptyLinePlaceholder":1200},[9784],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":9786,"children":9787},{"class":3448,"line":4032},[9788,9792],{"type":3163,"tag":3446,"props":9789,"children":9790},{"style":4709},[9791],{"type":3168,"value":6050},{"type":3163,"tag":3446,"props":9793,"children":9794},{"style":3520},[9795],{"type":3168,"value":9796}," challenge\n",{"type":3163,"tag":3446,"props":9798,"children":9799},{"class":3448,"line":3057},[9800],{"type":3163,"tag":3446,"props":9801,"children":9802},{"style":3525},[9803],{"type":3168,"value":4787},{"type":3163,"tag":3446,"props":9805,"children":9806},{"class":3448,"line":4100},[9807,9811,9815,9819,9823,9827,9831,9836,9840],{"type":3163,"tag":3446,"props":9808,"children":9809},{"style":3597},[9810],{"type":3168,"value":5911},{"type":3163,"tag":3446,"props":9812,"children":9813},{"style":3591},[9814],{"type":3168,"value":5916},{"type":3163,"tag":3446,"props":9816,"children":9817},{"style":3525},[9818],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":9820,"children":9821},{"style":4541},[9822],{"type":3168,"value":5925},{"type":3163,"tag":3446,"props":9824,"children":9825},{"style":3525},[9826],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":9828,"children":9829},{"style":3525},[9830],{"type":3168,"value":3618},{"type":3163,"tag":3446,"props":9832,"children":9833},{"style":4541},[9834],{"type":3168,"value":9835}," authenticator",{"type":3163,"tag":3446,"props":9837,"children":9838},{"style":3525},[9839],{"type":3168,"value":4607},{"type":3163,"tag":3446,"props":9841,"children":9842},{"style":3525},[9843],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":9845,"children":9846},{"class":3448,"line":4370},[9847],{"type":3163,"tag":3446,"props":9848,"children":9849},{"style":3511},[9850],{"type":3168,"value":9851},"    \u002F\u002F ...\n",{"type":3163,"tag":3446,"props":9853,"children":9854},{"class":3448,"line":4378},[9855],{"type":3163,"tag":3446,"props":9856,"children":9857},{"style":3525},[9858],{"type":3168,"value":4787},{"type":3163,"tag":3446,"props":9860,"children":9861},{"class":3448,"line":4387},[9862,9866],{"type":3163,"tag":3446,"props":9863,"children":9864},{"style":3525},[9865],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":9867,"children":9868},{"style":3520},[9869],{"type":3168,"value":4889},{"type":3163,"tag":3170,"props":9871,"children":9872},{},[9873],{"type":3168,"value":9874},"On the frontend it is as simple as:",{"type":3163,"tag":3436,"props":9876,"children":9878},{"className":3574,"code":9877,"language":3576,"meta":3037,"style":3037},"\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",[9879],{"type":3163,"tag":3308,"props":9880,"children":9881},{"__ignoreMap":3037},[9882,9922,9968,10002,10035,10046,10086,10093,10127,10153,10202,10233,10240,10247,10271,10303,10330,10337,10352,10359,10374,10412,10472,10526,10541,10577,10632,10684,10699],{"type":3163,"tag":3446,"props":9883,"children":9884},{"class":3448,"line":3123},[9885,9889,9893,9897,9902,9906,9910,9914,9918],{"type":3163,"tag":3446,"props":9886,"children":9887},{"style":3525},[9888],{"type":3168,"value":3588},{"type":3163,"tag":3446,"props":9890,"children":9891},{"style":3591},[9892],{"type":3168,"value":3594},{"type":3163,"tag":3446,"props":9894,"children":9895},{"style":3597},[9896],{"type":3168,"value":3600},{"type":3163,"tag":3446,"props":9898,"children":9899},{"style":3597},[9900],{"type":3168,"value":9901}," lang",{"type":3163,"tag":3446,"props":9903,"children":9904},{"style":3525},[9905],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":9907,"children":9908},{"style":3525},[9909],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":9911,"children":9912},{"style":3458},[9913],{"type":3168,"value":4127},{"type":3163,"tag":3446,"props":9915,"children":9916},{"style":3525},[9917],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":9919,"children":9920},{"style":3525},[9921],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":9923,"children":9924},{"class":3448,"line":3089},[9925,9929,9933,9938,9942,9947,9951,9955,9960,9964],{"type":3163,"tag":3446,"props":9926,"children":9927},{"style":3597},[9928],{"type":3168,"value":3613},{"type":3163,"tag":3446,"props":9930,"children":9931},{"style":3525},[9932],{"type":3168,"value":3618},{"type":3163,"tag":3446,"props":9934,"children":9935},{"style":3520},[9936],{"type":3168,"value":9937}," register",{"type":3163,"tag":3446,"props":9939,"children":9940},{"style":3525},[9941],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":9943,"children":9944},{"style":3520},[9945],{"type":3168,"value":9946}," authenticate ",{"type":3163,"tag":3446,"props":9948,"children":9949},{"style":3525},[9950],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":9952,"children":9953},{"style":3525},[9954],{"type":3168,"value":3679},{"type":3163,"tag":3446,"props":9956,"children":9957},{"style":3682},[9958],{"type":3168,"value":9959}," useWebAuthn",{"type":3163,"tag":3446,"props":9961,"children":9962},{"style":3520},[9963],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":9965,"children":9966},{"style":3525},[9967],{"type":3168,"value":5373},{"type":3163,"tag":3446,"props":9969,"children":9970},{"class":3448,"line":3073},[9971,9976,9980,9984,9989,9993,9997],{"type":3163,"tag":3446,"props":9972,"children":9973},{"style":3591},[9974],{"type":3168,"value":9975},"  registerEndpoint",{"type":3163,"tag":3446,"props":9977,"children":9978},{"style":3525},[9979],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":9981,"children":9982},{"style":3525},[9983],{"type":3168,"value":4770},{"type":3163,"tag":3446,"props":9985,"children":9986},{"style":3458},[9987],{"type":3168,"value":9988},"\u002Fapi\u002Fwebauthn\u002Fregister",{"type":3163,"tag":3446,"props":9990,"children":9991},{"style":3525},[9992],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":9994,"children":9995},{"style":3525},[9996],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":9998,"children":9999},{"style":3511},[10000],{"type":3168,"value":10001}," \u002F\u002F Default\n",{"type":3163,"tag":3446,"props":10003,"children":10004},{"class":3448,"line":3709},[10005,10010,10014,10018,10023,10027,10031],{"type":3163,"tag":3446,"props":10006,"children":10007},{"style":3591},[10008],{"type":3168,"value":10009},"  authenticateEndpoint",{"type":3163,"tag":3446,"props":10011,"children":10012},{"style":3525},[10013],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":10015,"children":10016},{"style":3525},[10017],{"type":3168,"value":4770},{"type":3163,"tag":3446,"props":10019,"children":10020},{"style":3458},[10021],{"type":3168,"value":10022},"\u002Fapi\u002Fwebauthn\u002Fauthenticate",{"type":3163,"tag":3446,"props":10024,"children":10025},{"style":3525},[10026],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":10028,"children":10029},{"style":3525},[10030],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":10032,"children":10033},{"style":3511},[10034],{"type":3168,"value":10001},{"type":3163,"tag":3446,"props":10036,"children":10037},{"class":3448,"line":3718},[10038,10042],{"type":3163,"tag":3446,"props":10039,"children":10040},{"style":3525},[10041],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":10043,"children":10044},{"style":3520},[10045],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":10047,"children":10048},{"class":3448,"line":3735},[10049,10053,10057,10061,10065,10070,10074,10078,10082],{"type":3163,"tag":3446,"props":10050,"children":10051},{"style":3597},[10052],{"type":3168,"value":3613},{"type":3163,"tag":3446,"props":10054,"children":10055},{"style":3525},[10056],{"type":3168,"value":3618},{"type":3163,"tag":3446,"props":10058,"children":10059},{"style":3591},[10060],{"type":3168,"value":3651},{"type":3163,"tag":3446,"props":10062,"children":10063},{"style":3525},[10064],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":10066,"children":10067},{"style":3520},[10068],{"type":3168,"value":10069}," fetchUserSession ",{"type":3163,"tag":3446,"props":10071,"children":10072},{"style":3525},[10073],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":10075,"children":10076},{"style":3525},[10077],{"type":3168,"value":3679},{"type":3163,"tag":3446,"props":10079,"children":10080},{"style":3682},[10081],{"type":3168,"value":3685},{"type":3163,"tag":3446,"props":10083,"children":10084},{"style":3520},[10085],{"type":3168,"value":3690},{"type":3163,"tag":3446,"props":10087,"children":10088},{"class":3448,"line":3069},[10089],{"type":3163,"tag":3446,"props":10090,"children":10091},{"emptyLinePlaceholder":1200},[10092],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":10094,"children":10095},{"class":3448,"line":3065},[10096,10100,10105,10109,10114,10118,10123],{"type":3163,"tag":3446,"props":10097,"children":10098},{"style":3597},[10099],{"type":3168,"value":3613},{"type":3163,"tag":3446,"props":10101,"children":10102},{"style":3520},[10103],{"type":3168,"value":10104}," userName ",{"type":3163,"tag":3446,"props":10106,"children":10107},{"style":3525},[10108],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":10110,"children":10111},{"style":3682},[10112],{"type":3168,"value":10113}," ref",{"type":3163,"tag":3446,"props":10115,"children":10116},{"style":3520},[10117],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":10119,"children":10120},{"style":3525},[10121],{"type":3168,"value":10122},"''",{"type":3163,"tag":3446,"props":10124,"children":10125},{"style":3520},[10126],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":10128,"children":10129},{"class":3448,"line":3061},[10130,10135,10140,10145,10149],{"type":3163,"tag":3446,"props":10131,"children":10132},{"style":3597},[10133],{"type":3168,"value":10134},"async",{"type":3163,"tag":3446,"props":10136,"children":10137},{"style":3597},[10138],{"type":3168,"value":10139}," function",{"type":3163,"tag":3446,"props":10141,"children":10142},{"style":3682},[10143],{"type":3168,"value":10144}," signUp",{"type":3163,"tag":3446,"props":10146,"children":10147},{"style":3525},[10148],{"type":3168,"value":7954},{"type":3163,"tag":3446,"props":10150,"children":10151},{"style":3525},[10152],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":10154,"children":10155},{"class":3448,"line":3897},[10156,10161,10165,10169,10173,10177,10181,10185,10189,10194,10198],{"type":3163,"tag":3446,"props":10157,"children":10158},{"style":4709},[10159],{"type":3168,"value":10160},"  await",{"type":3163,"tag":3446,"props":10162,"children":10163},{"style":3682},[10164],{"type":3168,"value":9937},{"type":3163,"tag":3446,"props":10166,"children":10167},{"style":3591},[10168],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":10170,"children":10171},{"style":3525},[10172],{"type":3168,"value":7818},{"type":3163,"tag":3446,"props":10174,"children":10175},{"style":3591},[10176],{"type":3168,"value":8561},{"type":3163,"tag":3446,"props":10178,"children":10179},{"style":3525},[10180],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":10182,"children":10183},{"style":3520},[10184],{"type":3168,"value":8561},{"type":3163,"tag":3446,"props":10186,"children":10187},{"style":3525},[10188],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":10190,"children":10191},{"style":3520},[10192],{"type":3168,"value":10193},"value",{"type":3163,"tag":3446,"props":10195,"children":10196},{"style":3525},[10197],{"type":3168,"value":7559},{"type":3163,"tag":3446,"props":10199,"children":10200},{"style":3591},[10201],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":10203,"children":10204},{"class":3448,"line":3914},[10205,10210,10215,10219,10224,10228],{"type":3163,"tag":3446,"props":10206,"children":10207},{"style":3525},[10208],{"type":3168,"value":10209},"    .",{"type":3163,"tag":3446,"props":10211,"children":10212},{"style":3682},[10213],{"type":3168,"value":10214},"then",{"type":3163,"tag":3446,"props":10216,"children":10217},{"style":3591},[10218],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":10220,"children":10221},{"style":3520},[10222],{"type":3168,"value":10223},"fetchUserSession",{"type":3163,"tag":3446,"props":10225,"children":10226},{"style":3591},[10227],{"type":3168,"value":7792},{"type":3163,"tag":3446,"props":10229,"children":10230},{"style":3511},[10231],{"type":3168,"value":10232},"\u002F\u002F refetch the user session\n",{"type":3163,"tag":3446,"props":10234,"children":10235},{"class":3448,"line":3935},[10236],{"type":3163,"tag":3446,"props":10237,"children":10238},{"style":3525},[10239],{"type":3168,"value":4625},{"type":3163,"tag":3446,"props":10241,"children":10242},{"class":3448,"line":3968},[10243],{"type":3163,"tag":3446,"props":10244,"children":10245},{"emptyLinePlaceholder":1200},[10246],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":10248,"children":10249},{"class":3448,"line":4023},[10250,10254,10258,10263,10267],{"type":3163,"tag":3446,"props":10251,"children":10252},{"style":3597},[10253],{"type":3168,"value":10134},{"type":3163,"tag":3446,"props":10255,"children":10256},{"style":3597},[10257],{"type":3168,"value":10139},{"type":3163,"tag":3446,"props":10259,"children":10260},{"style":3682},[10261],{"type":3168,"value":10262}," signIn",{"type":3163,"tag":3446,"props":10264,"children":10265},{"style":3525},[10266],{"type":3168,"value":7954},{"type":3163,"tag":3446,"props":10268,"children":10269},{"style":3525},[10270],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":10272,"children":10273},{"class":3448,"line":4032},[10274,10278,10283,10287,10291,10295,10299],{"type":3163,"tag":3446,"props":10275,"children":10276},{"style":4709},[10277],{"type":3168,"value":10160},{"type":3163,"tag":3446,"props":10279,"children":10280},{"style":3682},[10281],{"type":3168,"value":10282}," authenticate",{"type":3163,"tag":3446,"props":10284,"children":10285},{"style":3591},[10286],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":10288,"children":10289},{"style":3520},[10290],{"type":3168,"value":7787},{"type":3163,"tag":3446,"props":10292,"children":10293},{"style":3525},[10294],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":10296,"children":10297},{"style":3520},[10298],{"type":3168,"value":10193},{"type":3163,"tag":3446,"props":10300,"children":10301},{"style":3591},[10302],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":10304,"children":10305},{"class":3448,"line":3057},[10306,10310,10314,10318,10322,10326],{"type":3163,"tag":3446,"props":10307,"children":10308},{"style":3525},[10309],{"type":3168,"value":10209},{"type":3163,"tag":3446,"props":10311,"children":10312},{"style":3682},[10313],{"type":3168,"value":10214},{"type":3163,"tag":3446,"props":10315,"children":10316},{"style":3591},[10317],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":10319,"children":10320},{"style":3520},[10321],{"type":3168,"value":10223},{"type":3163,"tag":3446,"props":10323,"children":10324},{"style":3591},[10325],{"type":3168,"value":7792},{"type":3163,"tag":3446,"props":10327,"children":10328},{"style":3511},[10329],{"type":3168,"value":10232},{"type":3163,"tag":3446,"props":10331,"children":10332},{"class":3448,"line":4100},[10333],{"type":3163,"tag":3446,"props":10334,"children":10335},{"style":3525},[10336],{"type":3168,"value":4625},{"type":3163,"tag":3446,"props":10338,"children":10339},{"class":3448,"line":4370},[10340,10344,10348],{"type":3163,"tag":3446,"props":10341,"children":10342},{"style":3525},[10343],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":10345,"children":10346},{"style":3591},[10347],{"type":3168,"value":3594},{"type":3163,"tag":3446,"props":10349,"children":10350},{"style":3525},[10351],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":10353,"children":10354},{"class":3448,"line":4378},[10355],{"type":3163,"tag":3446,"props":10356,"children":10357},{"emptyLinePlaceholder":1200},[10358],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":10360,"children":10361},{"class":3448,"line":4387},[10362,10366,10370],{"type":3163,"tag":3446,"props":10363,"children":10364},{"style":3525},[10365],{"type":3168,"value":3588},{"type":3163,"tag":3446,"props":10367,"children":10368},{"style":3591},[10369],{"type":3168,"value":3728},{"type":3163,"tag":3446,"props":10371,"children":10372},{"style":3525},[10373],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":10375,"children":10376},{"class":3448,"line":4395},[10377,10381,10386,10391,10395,10399,10404,10408],{"type":3163,"tag":3446,"props":10378,"children":10379},{"style":3525},[10380],{"type":3168,"value":3741},{"type":3163,"tag":3446,"props":10382,"children":10383},{"style":3591},[10384],{"type":3168,"value":10385},"form",{"type":3163,"tag":3446,"props":10387,"children":10388},{"style":3597},[10389],{"type":3168,"value":10390}," @submit.prevent",{"type":3163,"tag":3446,"props":10392,"children":10393},{"style":3525},[10394],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":10396,"children":10397},{"style":3525},[10398],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":10400,"children":10401},{"style":3458},[10402],{"type":3168,"value":10403},"signUp",{"type":3163,"tag":3446,"props":10405,"children":10406},{"style":3525},[10407],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":10409,"children":10410},{"style":3525},[10411],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":10413,"children":10414},{"class":3448,"line":4436},[10415,10419,10424,10429,10433,10437,10441,10445,10450,10454,10458,10463,10467],{"type":3163,"tag":3446,"props":10416,"children":10417},{"style":3525},[10418],{"type":3168,"value":3781},{"type":3163,"tag":3446,"props":10420,"children":10421},{"style":3591},[10422],{"type":3168,"value":10423},"input",{"type":3163,"tag":3446,"props":10425,"children":10426},{"style":3597},[10427],{"type":3168,"value":10428}," v-model",{"type":3163,"tag":3446,"props":10430,"children":10431},{"style":3525},[10432],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":10434,"children":10435},{"style":3525},[10436],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":10438,"children":10439},{"style":3458},[10440],{"type":3168,"value":7787},{"type":3163,"tag":3446,"props":10442,"children":10443},{"style":3525},[10444],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":10446,"children":10447},{"style":3597},[10448],{"type":3168,"value":10449}," placeholder",{"type":3163,"tag":3446,"props":10451,"children":10452},{"style":3525},[10453],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":10455,"children":10456},{"style":3525},[10457],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":10459,"children":10460},{"style":3458},[10461],{"type":3168,"value":10462},"Email or username",{"type":3163,"tag":3446,"props":10464,"children":10465},{"style":3525},[10466],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":10468,"children":10469},{"style":3525},[10470],{"type":3168,"value":10471}," \u002F>\n",{"type":3163,"tag":3446,"props":10473,"children":10474},{"class":3448,"line":4444},[10475,10479,10483,10488,10492,10496,10501,10505,10509,10514,10518,10522],{"type":3163,"tag":3446,"props":10476,"children":10477},{"style":3525},[10478],{"type":3168,"value":3781},{"type":3163,"tag":3446,"props":10480,"children":10481},{"style":3591},[10482],{"type":3168,"value":3851},{"type":3163,"tag":3446,"props":10484,"children":10485},{"style":3597},[10486],{"type":3168,"value":10487}," type",{"type":3163,"tag":3446,"props":10489,"children":10490},{"style":3525},[10491],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":10493,"children":10494},{"style":3525},[10495],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":10497,"children":10498},{"style":3458},[10499],{"type":3168,"value":10500},"submit",{"type":3163,"tag":3446,"props":10502,"children":10503},{"style":3525},[10504],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":10506,"children":10507},{"style":3525},[10508],{"type":3168,"value":3790},{"type":3163,"tag":3446,"props":10510,"children":10511},{"style":3520},[10512],{"type":3168,"value":10513},"Sign up",{"type":3163,"tag":3446,"props":10515,"children":10516},{"style":3525},[10517],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":10519,"children":10520},{"style":3591},[10521],{"type":3168,"value":3851},{"type":3163,"tag":3446,"props":10523,"children":10524},{"style":3525},[10525],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":10527,"children":10528},{"class":3448,"line":4453},[10529,10533,10537],{"type":3163,"tag":3446,"props":10530,"children":10531},{"style":3525},[10532],{"type":3168,"value":3903},{"type":3163,"tag":3446,"props":10534,"children":10535},{"style":3591},[10536],{"type":3168,"value":10385},{"type":3163,"tag":3446,"props":10538,"children":10539},{"style":3525},[10540],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":10542,"children":10543},{"class":3448,"line":4461},[10544,10548,10552,10556,10560,10564,10569,10573],{"type":3163,"tag":3446,"props":10545,"children":10546},{"style":3525},[10547],{"type":3168,"value":3741},{"type":3163,"tag":3446,"props":10549,"children":10550},{"style":3591},[10551],{"type":3168,"value":10385},{"type":3163,"tag":3446,"props":10553,"children":10554},{"style":3597},[10555],{"type":3168,"value":10390},{"type":3163,"tag":3446,"props":10557,"children":10558},{"style":3525},[10559],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":10561,"children":10562},{"style":3525},[10563],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":10565,"children":10566},{"style":3458},[10567],{"type":3168,"value":10568},"signIn",{"type":3163,"tag":3446,"props":10570,"children":10571},{"style":3525},[10572],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":10574,"children":10575},{"style":3525},[10576],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":10578,"children":10579},{"class":3448,"line":4498},[10580,10584,10588,10592,10596,10600,10604,10608,10612,10616,10620,10624,10628],{"type":3163,"tag":3446,"props":10581,"children":10582},{"style":3525},[10583],{"type":3168,"value":3781},{"type":3163,"tag":3446,"props":10585,"children":10586},{"style":3591},[10587],{"type":3168,"value":10423},{"type":3163,"tag":3446,"props":10589,"children":10590},{"style":3597},[10591],{"type":3168,"value":10428},{"type":3163,"tag":3446,"props":10593,"children":10594},{"style":3525},[10595],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":10597,"children":10598},{"style":3525},[10599],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":10601,"children":10602},{"style":3458},[10603],{"type":3168,"value":7787},{"type":3163,"tag":3446,"props":10605,"children":10606},{"style":3525},[10607],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":10609,"children":10610},{"style":3597},[10611],{"type":3168,"value":10449},{"type":3163,"tag":3446,"props":10613,"children":10614},{"style":3525},[10615],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":10617,"children":10618},{"style":3525},[10619],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":10621,"children":10622},{"style":3458},[10623],{"type":3168,"value":10462},{"type":3163,"tag":3446,"props":10625,"children":10626},{"style":3525},[10627],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":10629,"children":10630},{"style":3525},[10631],{"type":3168,"value":10471},{"type":3163,"tag":3446,"props":10633,"children":10634},{"class":3448,"line":4506},[10635,10639,10643,10647,10651,10655,10659,10663,10667,10672,10676,10680],{"type":3163,"tag":3446,"props":10636,"children":10637},{"style":3525},[10638],{"type":3168,"value":3781},{"type":3163,"tag":3446,"props":10640,"children":10641},{"style":3591},[10642],{"type":3168,"value":3851},{"type":3163,"tag":3446,"props":10644,"children":10645},{"style":3597},[10646],{"type":3168,"value":10487},{"type":3163,"tag":3446,"props":10648,"children":10649},{"style":3525},[10650],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":10652,"children":10653},{"style":3525},[10654],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":10656,"children":10657},{"style":3458},[10658],{"type":3168,"value":10500},{"type":3163,"tag":3446,"props":10660,"children":10661},{"style":3525},[10662],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":10664,"children":10665},{"style":3525},[10666],{"type":3168,"value":3790},{"type":3163,"tag":3446,"props":10668,"children":10669},{"style":3520},[10670],{"type":3168,"value":10671},"Sign in",{"type":3163,"tag":3446,"props":10673,"children":10674},{"style":3525},[10675],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":10677,"children":10678},{"style":3591},[10679],{"type":3168,"value":3851},{"type":3163,"tag":3446,"props":10681,"children":10682},{"style":3525},[10683],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":10685,"children":10686},{"class":3448,"line":4515},[10687,10691,10695],{"type":3163,"tag":3446,"props":10688,"children":10689},{"style":3525},[10690],{"type":3168,"value":3903},{"type":3163,"tag":3446,"props":10692,"children":10693},{"style":3591},[10694],{"type":3168,"value":10385},{"type":3163,"tag":3446,"props":10696,"children":10697},{"style":3525},[10698],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":10700,"children":10701},{"class":3448,"line":4523},[10702,10706,10710],{"type":3163,"tag":3446,"props":10703,"children":10704},{"style":3525},[10705],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":10707,"children":10708},{"style":3591},[10709],{"type":3168,"value":3728},{"type":3163,"tag":3446,"props":10711,"children":10712},{"style":3525},[10713],{"type":3168,"value":3605},{"type":3163,"tag":3170,"props":10715,"children":10716},{},[10717,10719,10730],{"type":3168,"value":10718},"Take a look at the ",{"type":3163,"tag":3174,"props":10720,"children":10723},{"href":10721,"rel":10722},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fcomponents\u002FWebAuthnModal.vue",[3178],[10724],{"type":3163,"tag":3308,"props":10725,"children":10727},{"className":10726},[],[10728],{"type":3168,"value":10729},"WebAuthnModal.vue",{"type":3168,"value":10731}," for a full example.",{"type":3163,"tag":5553,"props":10733,"children":10735},{"id":10734},"demo",[10736],{"type":3168,"value":10737},"Demo",{"type":3163,"tag":3170,"props":10739,"children":10740},{},[10741,10743,10749,10751,10758,10759,10766],{"type":3168,"value":10742},"A full demo can be found on ",{"type":3163,"tag":3174,"props":10744,"children":10747},{"href":10745,"rel":10746},"https:\u002F\u002Ftodo-passkeys.nuxt.dev",[3178],[10748],{"type":3168,"value":10745},{"type":3168,"value":10750}," using ",{"type":3163,"tag":3174,"props":10752,"children":10755},{"href":10753,"rel":10754},"https:\u002F\u002Form.drizzle.team\u002F",[3178],[10756],{"type":3168,"value":10757},"Drizzle ORM",{"type":3168,"value":6279},{"type":3163,"tag":3174,"props":10760,"children":10763},{"href":10761,"rel":10762},"https:\u002F\u002Fhub.nuxt.com",[3178],[10764],{"type":3168,"value":10765},"NuxtHub",{"type":3168,"value":3401},{"type":3163,"tag":3170,"props":10768,"children":10769},{},[10770,10772,10777],{"type":3168,"value":10771},"The source code of the demo is available on ",{"type":3163,"tag":3174,"props":10773,"children":10775},{"href":3248,"rel":10774},[3178],[10776],{"type":3168,"value":3248},{"type":3168,"value":3401},{"type":3163,"tag":3566,"props":10779,"children":10781},{"id":10780},"extend-session",[10782],{"type":3168,"value":10783},"Extend Session",{"type":3163,"tag":3170,"props":10785,"children":10786},{},[10787],{"type":3168,"value":10788},"We leverage hooks to let you extend the session data with your own data or log when the user clears the session.",{"type":3163,"tag":3436,"props":10790,"children":10792},{"className":4125,"code":10791,"language":4127,"meta":3037,"style":3037},"\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",[10793],{"type":3163,"tag":3308,"props":10794,"children":10795},{"__ignoreMap":3037},[10796,10804,10836,10844,10852,10923,10931,10939,10947,10959,10966,10974,11041,11049,11060],{"type":3163,"tag":3446,"props":10797,"children":10798},{"class":3448,"line":3123},[10799],{"type":3163,"tag":3446,"props":10800,"children":10801},{"style":3511},[10802],{"type":3168,"value":10803},"\u002F\u002F server\u002Fplugins\u002Fsession.ts\n",{"type":3163,"tag":3446,"props":10805,"children":10806},{"class":3448,"line":3089},[10807,10811,10815,10820,10824,10828,10832],{"type":3163,"tag":3446,"props":10808,"children":10809},{"style":4709},[10810],{"type":3168,"value":5243},{"type":3163,"tag":3446,"props":10812,"children":10813},{"style":4709},[10814],{"type":3168,"value":5358},{"type":3163,"tag":3446,"props":10816,"children":10817},{"style":3682},[10818],{"type":3168,"value":10819}," defineNitroPlugin",{"type":3163,"tag":3446,"props":10821,"children":10822},{"style":3520},[10823],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":10825,"children":10826},{"style":3525},[10827],{"type":3168,"value":7954},{"type":3163,"tag":3446,"props":10829,"children":10830},{"style":3597},[10831],{"type":3168,"value":4415},{"type":3163,"tag":3446,"props":10833,"children":10834},{"style":3525},[10835],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":10837,"children":10838},{"class":3448,"line":3073},[10839],{"type":3163,"tag":3446,"props":10840,"children":10841},{"style":3511},[10842],{"type":3168,"value":10843},"  \u002F\u002F Called when the session is fetched during SSR for the Vue composable (\u002Fapi\u002F_auth\u002Fsession)\n",{"type":3163,"tag":3446,"props":10845,"children":10846},{"class":3448,"line":3709},[10847],{"type":3163,"tag":3446,"props":10848,"children":10849},{"style":3511},[10850],{"type":3168,"value":10851},"  \u002F\u002F Or when we call useUserSession().fetch()\n",{"type":3163,"tag":3446,"props":10853,"children":10854},{"class":3448,"line":3718},[10855,10860,10864,10869,10873,10877,10882,10886,10890,10895,10899,10903,10907,10911,10915,10919],{"type":3163,"tag":3446,"props":10856,"children":10857},{"style":3520},[10858],{"type":3168,"value":10859},"  sessionHooks",{"type":3163,"tag":3446,"props":10861,"children":10862},{"style":3525},[10863],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":10865,"children":10866},{"style":3682},[10867],{"type":3168,"value":10868},"hook",{"type":3163,"tag":3446,"props":10870,"children":10871},{"style":3591},[10872],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":10874,"children":10875},{"style":3525},[10876],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":10878,"children":10879},{"style":3458},[10880],{"type":3168,"value":10881},"fetch",{"type":3163,"tag":3446,"props":10883,"children":10884},{"style":3525},[10885],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":10887,"children":10888},{"style":3525},[10889],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":10891,"children":10892},{"style":3597},[10893],{"type":3168,"value":10894}," async",{"type":3163,"tag":3446,"props":10896,"children":10897},{"style":3525},[10898],{"type":3168,"value":4538},{"type":3163,"tag":3446,"props":10900,"children":10901},{"style":4541},[10902],{"type":3168,"value":7724},{"type":3163,"tag":3446,"props":10904,"children":10905},{"style":3525},[10906],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":10908,"children":10909},{"style":4541},[10910],{"type":3168,"value":7639},{"type":3163,"tag":3446,"props":10912,"children":10913},{"style":3525},[10914],{"type":3168,"value":6129},{"type":3163,"tag":3446,"props":10916,"children":10917},{"style":3597},[10918],{"type":3168,"value":4415},{"type":3163,"tag":3446,"props":10920,"children":10921},{"style":3525},[10922],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":10924,"children":10925},{"class":3448,"line":3735},[10926],{"type":3163,"tag":3446,"props":10927,"children":10928},{"style":3511},[10929],{"type":3168,"value":10930},"    \u002F\u002F extend User Session by calling your database\n",{"type":3163,"tag":3446,"props":10932,"children":10933},{"class":3448,"line":3069},[10934],{"type":3163,"tag":3446,"props":10935,"children":10936},{"style":3511},[10937],{"type":3168,"value":10938},"    \u002F\u002F or\n",{"type":3163,"tag":3446,"props":10940,"children":10941},{"class":3448,"line":3065},[10942],{"type":3163,"tag":3446,"props":10943,"children":10944},{"style":3511},[10945],{"type":3168,"value":10946},"    \u002F\u002F throw createError({ ... }) if session is invalid for example\n",{"type":3163,"tag":3446,"props":10948,"children":10949},{"class":3448,"line":3061},[10950,10955],{"type":3163,"tag":3446,"props":10951,"children":10952},{"style":3525},[10953],{"type":3168,"value":10954},"  }",{"type":3163,"tag":3446,"props":10956,"children":10957},{"style":3591},[10958],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":10960,"children":10961},{"class":3448,"line":3897},[10962],{"type":3163,"tag":3446,"props":10963,"children":10964},{"emptyLinePlaceholder":1200},[10965],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":10967,"children":10968},{"class":3448,"line":3914},[10969],{"type":3163,"tag":3446,"props":10970,"children":10971},{"style":3511},[10972],{"type":3168,"value":10973},"  \u002F\u002F Called when we call useUserSession().clear() or clearUserSession(event)\n",{"type":3163,"tag":3446,"props":10975,"children":10976},{"class":3448,"line":3935},[10977,10981,10985,10989,10993,10997,11001,11005,11009,11013,11017,11021,11025,11029,11033,11037],{"type":3163,"tag":3446,"props":10978,"children":10979},{"style":3520},[10980],{"type":3168,"value":10859},{"type":3163,"tag":3446,"props":10982,"children":10983},{"style":3525},[10984],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":10986,"children":10987},{"style":3682},[10988],{"type":3168,"value":10868},{"type":3163,"tag":3446,"props":10990,"children":10991},{"style":3591},[10992],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":10994,"children":10995},{"style":3525},[10996],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":10998,"children":10999},{"style":3458},[11000],{"type":3168,"value":3869},{"type":3163,"tag":3446,"props":11002,"children":11003},{"style":3525},[11004],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":11006,"children":11007},{"style":3525},[11008],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":11010,"children":11011},{"style":3597},[11012],{"type":3168,"value":10894},{"type":3163,"tag":3446,"props":11014,"children":11015},{"style":3525},[11016],{"type":3168,"value":4538},{"type":3163,"tag":3446,"props":11018,"children":11019},{"style":4541},[11020],{"type":3168,"value":7724},{"type":3163,"tag":3446,"props":11022,"children":11023},{"style":3525},[11024],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":11026,"children":11027},{"style":4541},[11028],{"type":3168,"value":7639},{"type":3163,"tag":3446,"props":11030,"children":11031},{"style":3525},[11032],{"type":3168,"value":6129},{"type":3163,"tag":3446,"props":11034,"children":11035},{"style":3597},[11036],{"type":3168,"value":4415},{"type":3163,"tag":3446,"props":11038,"children":11039},{"style":3525},[11040],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":11042,"children":11043},{"class":3448,"line":3968},[11044],{"type":3163,"tag":3446,"props":11045,"children":11046},{"style":3511},[11047],{"type":3168,"value":11048},"    \u002F\u002F Log that user logged out\n",{"type":3163,"tag":3446,"props":11050,"children":11051},{"class":3448,"line":4023},[11052,11056],{"type":3163,"tag":3446,"props":11053,"children":11054},{"style":3525},[11055],{"type":3168,"value":10954},{"type":3163,"tag":3446,"props":11057,"children":11058},{"style":3591},[11059],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":11061,"children":11062},{"class":3448,"line":4032},[11063,11067],{"type":3163,"tag":3446,"props":11064,"children":11065},{"style":3525},[11066],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":11068,"children":11069},{"style":3520},[11070],{"type":3168,"value":4889},{"type":3163,"tag":3254,"props":11072,"children":11074},{"id":11073},"server-side-rendering",[11075],{"type":3168,"value":11076},"Server-Side Rendering",{"type":3163,"tag":3170,"props":11078,"children":11079},{},[11080,11082,11088,11090],{"type":3168,"value":11081},"You can make authenticated requests both from the client and the server. However, you must use ",{"type":3163,"tag":3308,"props":11083,"children":11085},{"className":11084},[],[11086],{"type":3168,"value":11087},"useRequestFetch()",{"type":3168,"value":11089}," to make authenticated requests during SSR if you are not using ",{"type":3163,"tag":3308,"props":11091,"children":11093},{"className":11092},[],[11094],{"type":3168,"value":11095},"useFetch()",{"type":3163,"tag":3436,"props":11097,"children":11099},{"className":3574,"code":11098,"language":3576,"meta":3037,"style":3037},"\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",[11100],{"type":3163,"tag":3308,"props":11101,"children":11102},{"__ignoreMap":3037},[11103,11142,11150,11240,11247,11255,11307],{"type":3163,"tag":3446,"props":11104,"children":11105},{"class":3448,"line":3123},[11106,11110,11114,11118,11122,11126,11130,11134,11138],{"type":3163,"tag":3446,"props":11107,"children":11108},{"style":3525},[11109],{"type":3168,"value":3588},{"type":3163,"tag":3446,"props":11111,"children":11112},{"style":3591},[11113],{"type":3168,"value":3594},{"type":3163,"tag":3446,"props":11115,"children":11116},{"style":3597},[11117],{"type":3168,"value":3600},{"type":3163,"tag":3446,"props":11119,"children":11120},{"style":3597},[11121],{"type":3168,"value":9901},{"type":3163,"tag":3446,"props":11123,"children":11124},{"style":3525},[11125],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":11127,"children":11128},{"style":3525},[11129],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":11131,"children":11132},{"style":3458},[11133],{"type":3168,"value":4127},{"type":3163,"tag":3446,"props":11135,"children":11136},{"style":3525},[11137],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":11139,"children":11140},{"style":3525},[11141],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":11143,"children":11144},{"class":3448,"line":3089},[11145],{"type":3163,"tag":3446,"props":11146,"children":11147},{"style":3511},[11148],{"type":3168,"value":11149},"\u002F\u002F When using useAsyncData\n",{"type":3163,"tag":3446,"props":11151,"children":11152},{"class":3448,"line":3073},[11153,11157,11161,11166,11170,11174,11178,11183,11187,11191,11196,11200,11204,11208,11212,11217,11222,11226,11231,11235],{"type":3163,"tag":3446,"props":11154,"children":11155},{"style":3597},[11156],{"type":3168,"value":3613},{"type":3163,"tag":3446,"props":11158,"children":11159},{"style":3525},[11160],{"type":3168,"value":3618},{"type":3163,"tag":3446,"props":11162,"children":11163},{"style":3520},[11164],{"type":3168,"value":11165}," data ",{"type":3163,"tag":3446,"props":11167,"children":11168},{"style":3525},[11169],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":11171,"children":11172},{"style":3525},[11173],{"type":3168,"value":3679},{"type":3163,"tag":3446,"props":11175,"children":11176},{"style":4709},[11177],{"type":3168,"value":4965},{"type":3163,"tag":3446,"props":11179,"children":11180},{"style":3682},[11181],{"type":3168,"value":11182}," useAsyncData",{"type":3163,"tag":3446,"props":11184,"children":11185},{"style":3520},[11186],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":11188,"children":11189},{"style":3525},[11190],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":11192,"children":11193},{"style":3458},[11194],{"type":3168,"value":11195},"team",{"type":3163,"tag":3446,"props":11197,"children":11198},{"style":3525},[11199],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":11201,"children":11202},{"style":3525},[11203],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":11205,"children":11206},{"style":3525},[11207],{"type":3168,"value":4410},{"type":3163,"tag":3446,"props":11209,"children":11210},{"style":3597},[11211],{"type":3168,"value":4415},{"type":3163,"tag":3446,"props":11213,"children":11214},{"style":3682},[11215],{"type":3168,"value":11216}," useRequestFetch",{"type":3163,"tag":3446,"props":11218,"children":11219},{"style":3520},[11220],{"type":3168,"value":11221},"()(",{"type":3163,"tag":3446,"props":11223,"children":11224},{"style":3525},[11225],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":11227,"children":11228},{"style":3458},[11229],{"type":3168,"value":11230},"\u002Fapi\u002Fprotected-endpoint",{"type":3163,"tag":3446,"props":11232,"children":11233},{"style":3525},[11234],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":11236,"children":11237},{"style":3520},[11238],{"type":3168,"value":11239},"))\n",{"type":3163,"tag":3446,"props":11241,"children":11242},{"class":3448,"line":3709},[11243],{"type":3163,"tag":3446,"props":11244,"children":11245},{"emptyLinePlaceholder":1200},[11246],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":11248,"children":11249},{"class":3448,"line":3718},[11250],{"type":3163,"tag":3446,"props":11251,"children":11252},{"style":3511},[11253],{"type":3168,"value":11254},"\u002F\u002F useFetch will automatically use useRequestFetch during SSR\n",{"type":3163,"tag":3446,"props":11256,"children":11257},{"class":3448,"line":3735},[11258,11262,11266,11270,11274,11278,11282,11287,11291,11295,11299,11303],{"type":3163,"tag":3446,"props":11259,"children":11260},{"style":3597},[11261],{"type":3168,"value":3613},{"type":3163,"tag":3446,"props":11263,"children":11264},{"style":3525},[11265],{"type":3168,"value":3618},{"type":3163,"tag":3446,"props":11267,"children":11268},{"style":3520},[11269],{"type":3168,"value":11165},{"type":3163,"tag":3446,"props":11271,"children":11272},{"style":3525},[11273],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":11275,"children":11276},{"style":3525},[11277],{"type":3168,"value":3679},{"type":3163,"tag":3446,"props":11279,"children":11280},{"style":4709},[11281],{"type":3168,"value":4965},{"type":3163,"tag":3446,"props":11283,"children":11284},{"style":3682},[11285],{"type":3168,"value":11286}," useFetch",{"type":3163,"tag":3446,"props":11288,"children":11289},{"style":3520},[11290],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":11292,"children":11293},{"style":3525},[11294],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":11296,"children":11297},{"style":3458},[11298],{"type":3168,"value":11230},{"type":3163,"tag":3446,"props":11300,"children":11301},{"style":3525},[11302],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":11304,"children":11305},{"style":3520},[11306],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":11308,"children":11309},{"class":3448,"line":3069},[11310,11314,11318],{"type":3163,"tag":3446,"props":11311,"children":11312},{"style":3525},[11313],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":11315,"children":11316},{"style":3591},[11317],{"type":3168,"value":3594},{"type":3163,"tag":3446,"props":11319,"children":11320},{"style":3525},[11321],{"type":3168,"value":3605},{"type":3163,"tag":4627,"props":11323,"children":11324},{},[11325],{"type":3163,"tag":3170,"props":11326,"children":11327},{},[11328,11330,11337,11339,11344],{"type":3168,"value":11329},"There's ",{"type":3163,"tag":3174,"props":11331,"children":11334},{"href":11332,"rel":11333},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F24813",[3178],[11335],{"type":3168,"value":11336},"an open issue",{"type":3168,"value":11338}," to include credentials in ",{"type":3163,"tag":3308,"props":11340,"children":11342},{"className":11341},[],[11343],{"type":3168,"value":634},{"type":3168,"value":11345}," in Nuxt.",{"type":3163,"tag":3254,"props":11347,"children":11349},{"id":11348},"hybrid-rendering",[11350],{"type":3168,"value":3270},{"type":3163,"tag":3170,"props":11352,"children":11353},{},[11354,11356,11369],{"type":3168,"value":11355},"When using ",{"type":3163,"tag":3174,"props":11357,"children":11360},{"href":11358,"rel":11359},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fguide\u002Fconcepts\u002Frendering#hybrid-rendering",[3178],[11361,11363],{"type":3168,"value":11362},"Nuxt ",{"type":3163,"tag":3308,"props":11364,"children":11366},{"className":11365},[],[11367],{"type":3168,"value":11368},"routeRules",{"type":3168,"value":11370}," 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":3163,"tag":3170,"props":11372,"children":11373},{},[11374],{"type":3168,"value":11375},"This is because the user session is stored in a secure cookie and cannot be accessed during prerendering.",{"type":3163,"tag":3170,"props":11377,"children":11378},{},[11379],{"type":3163,"tag":4118,"props":11380,"children":11381},{},[11382],{"type":3168,"value":11383},"This means that you should not rely on the user session during prerendering.",{"type":3163,"tag":3170,"props":11385,"children":11386},{},[11387,11389,11395,11397,11402],{"type":3168,"value":11388},"You may also choose to instruct Nuxt Auth Utils to fetch the user session only on the client side, with the ",{"type":3163,"tag":3308,"props":11390,"children":11392},{"className":11391},[],[11393],{"type":3168,"value":11394},"loadStrategy",{"type":3168,"value":11396}," option in your ",{"type":3163,"tag":3308,"props":11398,"children":11400},{"className":11399},[],[11401],{"type":3168,"value":233},{"type":3168,"value":4186},{"type":3163,"tag":3436,"props":11404,"children":11406},{"className":4125,"code":11405,"language":4127,"meta":3037,"style":3037},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'client-only'\n  }\n})\n",[11407],{"type":3163,"tag":3308,"props":11408,"children":11409},{"__ignoreMap":3037},[11410,11433,11448,11473,11480],{"type":3163,"tag":3446,"props":11411,"children":11412},{"class":3448,"line":3123},[11413,11417,11421,11425,11429],{"type":3163,"tag":3446,"props":11414,"children":11415},{"style":4709},[11416],{"type":3168,"value":5243},{"type":3163,"tag":3446,"props":11418,"children":11419},{"style":4709},[11420],{"type":3168,"value":5358},{"type":3163,"tag":3446,"props":11422,"children":11423},{"style":3682},[11424],{"type":3168,"value":5363},{"type":3163,"tag":3446,"props":11426,"children":11427},{"style":3520},[11428],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":11430,"children":11431},{"style":3525},[11432],{"type":3168,"value":5373},{"type":3163,"tag":3446,"props":11434,"children":11435},{"class":3448,"line":3089},[11436,11440,11444],{"type":3163,"tag":3446,"props":11437,"children":11438},{"style":3591},[11439],{"type":3168,"value":6633},{"type":3163,"tag":3446,"props":11441,"children":11442},{"style":3525},[11443],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":11445,"children":11446},{"style":3525},[11447],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":11449,"children":11450},{"class":3448,"line":3073},[11451,11456,11460,11464,11469],{"type":3163,"tag":3446,"props":11452,"children":11453},{"style":3591},[11454],{"type":3168,"value":11455},"    loadStrategy",{"type":3163,"tag":3446,"props":11457,"children":11458},{"style":3525},[11459],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":11461,"children":11462},{"style":3525},[11463],{"type":3168,"value":4770},{"type":3163,"tag":3446,"props":11465,"children":11466},{"style":3458},[11467],{"type":3168,"value":11468},"client-only",{"type":3163,"tag":3446,"props":11470,"children":11471},{"style":3525},[11472],{"type":3168,"value":4779},{"type":3163,"tag":3446,"props":11474,"children":11475},{"class":3448,"line":3709},[11476],{"type":3163,"tag":3446,"props":11477,"children":11478},{"style":3525},[11479],{"type":3168,"value":5147},{"type":3163,"tag":3446,"props":11481,"children":11482},{"class":3448,"line":3718},[11483,11487],{"type":3163,"tag":3446,"props":11484,"children":11485},{"style":3525},[11486],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":11488,"children":11489},{"style":3520},[11490],{"type":3168,"value":4889},{"type":3163,"tag":3170,"props":11492,"children":11493},{},[11494,11496,11501,11503,11508,11509,11515],{"type":3168,"value":11495},"When using the ",{"type":3163,"tag":3308,"props":11497,"children":11499},{"className":11498},[],[11500],{"type":3168,"value":11468},{"type":3168,"value":11502}," load strategy, the user session can still be manually fetched on the server side by calling ",{"type":3163,"tag":3308,"props":11504,"children":11506},{"className":11505},[],[11507],{"type":3168,"value":10881},{"type":3168,"value":7394},{"type":3163,"tag":3308,"props":11510,"children":11512},{"className":11511},[],[11513],{"type":3168,"value":11514},"useUserSession",{"type":3168,"value":11516}," composable.",{"type":3163,"tag":3566,"props":11518,"children":11520},{"id":11519},"disable-session-loading",[11521],{"type":3168,"value":11522},"Disable session loading",{"type":3163,"tag":3170,"props":11524,"children":11525},{},[11526,11528,11533,11534,11539],{"type":3168,"value":11527},"You may also choose to disable session loading entirely, with the ",{"type":3163,"tag":3308,"props":11529,"children":11531},{"className":11530},[],[11532],{"type":3168,"value":11394},{"type":3168,"value":11396},{"type":3163,"tag":3308,"props":11535,"children":11537},{"className":11536},[],[11538],{"type":3168,"value":233},{"type":3168,"value":4186},{"type":3163,"tag":3436,"props":11541,"children":11543},{"className":4125,"code":11542,"language":4127,"meta":3037,"style":3037},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'none'\n  }\n})\n",[11544],{"type":3163,"tag":3308,"props":11545,"children":11546},{"__ignoreMap":3037},[11547,11570,11585,11609,11616],{"type":3163,"tag":3446,"props":11548,"children":11549},{"class":3448,"line":3123},[11550,11554,11558,11562,11566],{"type":3163,"tag":3446,"props":11551,"children":11552},{"style":4709},[11553],{"type":3168,"value":5243},{"type":3163,"tag":3446,"props":11555,"children":11556},{"style":4709},[11557],{"type":3168,"value":5358},{"type":3163,"tag":3446,"props":11559,"children":11560},{"style":3682},[11561],{"type":3168,"value":5363},{"type":3163,"tag":3446,"props":11563,"children":11564},{"style":3520},[11565],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":11567,"children":11568},{"style":3525},[11569],{"type":3168,"value":5373},{"type":3163,"tag":3446,"props":11571,"children":11572},{"class":3448,"line":3089},[11573,11577,11581],{"type":3163,"tag":3446,"props":11574,"children":11575},{"style":3591},[11576],{"type":3168,"value":6633},{"type":3163,"tag":3446,"props":11578,"children":11579},{"style":3525},[11580],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":11582,"children":11583},{"style":3525},[11584],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":11586,"children":11587},{"class":3448,"line":3073},[11588,11592,11596,11600,11605],{"type":3163,"tag":3446,"props":11589,"children":11590},{"style":3591},[11591],{"type":3168,"value":11455},{"type":3163,"tag":3446,"props":11593,"children":11594},{"style":3525},[11595],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":11597,"children":11598},{"style":3525},[11599],{"type":3168,"value":4770},{"type":3163,"tag":3446,"props":11601,"children":11602},{"style":3458},[11603],{"type":3168,"value":11604},"none",{"type":3163,"tag":3446,"props":11606,"children":11607},{"style":3525},[11608],{"type":3168,"value":4779},{"type":3163,"tag":3446,"props":11610,"children":11611},{"class":3448,"line":3709},[11612],{"type":3163,"tag":3446,"props":11613,"children":11614},{"style":3525},[11615],{"type":3168,"value":5147},{"type":3163,"tag":3446,"props":11617,"children":11618},{"class":3448,"line":3718},[11619,11623],{"type":3163,"tag":3446,"props":11620,"children":11621},{"style":3525},[11622],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":11624,"children":11625},{"style":3520},[11626],{"type":3168,"value":4889},{"type":3163,"tag":3170,"props":11628,"children":11629},{},[11630,11631,11636,11638,11644],{"type":3168,"value":11495},{"type":3163,"tag":3308,"props":11632,"children":11634},{"className":11633},[],[11635],{"type":3168,"value":11604},{"type":3168,"value":11637}," load strategy, the user session can still be manually fetched by calling ",{"type":3163,"tag":3308,"props":11639,"children":11641},{"className":11640},[],[11642],{"type":3168,"value":11643},"useUserSession().fetch()",{"type":3168,"value":3401},{"type":3163,"tag":3566,"props":11646,"children":11648},{"id":11647},"authstate-component",[11649,11654],{"type":3163,"tag":3308,"props":11650,"children":11652},{"className":11651},[],[11653],{"type":3168,"value":3337},{"type":3168,"value":3339},{"type":3163,"tag":3170,"props":11656,"children":11657},{},[11658,11660,11665],{"type":3168,"value":11659},"You can use the ",{"type":3163,"tag":3308,"props":11661,"children":11663},{"className":11662},[],[11664],{"type":3168,"value":3337},{"type":3168,"value":11666}," component to safely display auth-related data in your components without worrying about the rendering mode.",{"type":3163,"tag":3170,"props":11668,"children":11669},{},[11670],{"type":3168,"value":11671},"One common use case if the Login button in the header:",{"type":3163,"tag":3436,"props":11673,"children":11675},{"className":3574,"code":11674,"language":3576,"meta":3037,"style":3037},"\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",[11676],{"type":3163,"tag":3308,"props":11677,"children":11678},{"__ignoreMap":3037},[11679,11694,11710,11764,11836,11895,11911,11926],{"type":3163,"tag":3446,"props":11680,"children":11681},{"class":3448,"line":3123},[11682,11686,11690],{"type":3163,"tag":3446,"props":11683,"children":11684},{"style":3525},[11685],{"type":3168,"value":3588},{"type":3163,"tag":3446,"props":11687,"children":11688},{"style":3591},[11689],{"type":3168,"value":3728},{"type":3163,"tag":3446,"props":11691,"children":11692},{"style":3525},[11693],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":11695,"children":11696},{"class":3448,"line":3089},[11697,11701,11706],{"type":3163,"tag":3446,"props":11698,"children":11699},{"style":3525},[11700],{"type":3168,"value":3741},{"type":3163,"tag":3446,"props":11702,"children":11703},{"style":3591},[11704],{"type":3168,"value":11705},"header",{"type":3163,"tag":3446,"props":11707,"children":11708},{"style":3525},[11709],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":11711,"children":11712},{"class":3448,"line":3073},[11713,11717,11722,11727,11731,11735,11740,11744,11748,11752,11756,11760],{"type":3163,"tag":3446,"props":11714,"children":11715},{"style":3525},[11716],{"type":3168,"value":3781},{"type":3163,"tag":3446,"props":11718,"children":11719},{"style":3591},[11720],{"type":3168,"value":11721},"AuthState",{"type":3163,"tag":3446,"props":11723,"children":11724},{"style":3597},[11725],{"type":3168,"value":11726}," v-slot",{"type":3163,"tag":3446,"props":11728,"children":11729},{"style":3525},[11730],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":11732,"children":11733},{"style":3525},[11734],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":11736,"children":11737},{"style":3525},[11738],{"type":3168,"value":11739},"{ ",{"type":3163,"tag":3446,"props":11741,"children":11742},{"style":3520},[11743],{"type":3168,"value":3765},{"type":3163,"tag":3446,"props":11745,"children":11746},{"style":3525},[11747],{"type":3168,"value":7328},{"type":3163,"tag":3446,"props":11749,"children":11750},{"style":3520},[11751],{"type":3168,"value":3869},{"type":3163,"tag":3446,"props":11753,"children":11754},{"style":3525},[11755],{"type":3168,"value":7559},{"type":3163,"tag":3446,"props":11757,"children":11758},{"style":3525},[11759],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":11761,"children":11762},{"style":3525},[11763],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":11765,"children":11766},{"class":3448,"line":3709},[11767,11772,11776,11780,11784,11788,11792,11796,11800,11804,11808,11812,11816,11820,11824,11828,11832],{"type":3163,"tag":3446,"props":11768,"children":11769},{"style":3525},[11770],{"type":3168,"value":11771},"      \u003C",{"type":3163,"tag":3446,"props":11773,"children":11774},{"style":3591},[11775],{"type":3168,"value":3851},{"type":3163,"tag":3446,"props":11777,"children":11778},{"style":3597},[11779],{"type":3168,"value":3751},{"type":3163,"tag":3446,"props":11781,"children":11782},{"style":3525},[11783],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":11785,"children":11786},{"style":3525},[11787],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":11789,"children":11790},{"style":3458},[11791],{"type":3168,"value":3765},{"type":3163,"tag":3446,"props":11793,"children":11794},{"style":3525},[11795],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":11797,"children":11798},{"style":3597},[11799],{"type":3168,"value":3856},{"type":3163,"tag":3446,"props":11801,"children":11802},{"style":3525},[11803],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":11805,"children":11806},{"style":3525},[11807],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":11809,"children":11810},{"style":3458},[11811],{"type":3168,"value":3869},{"type":3163,"tag":3446,"props":11813,"children":11814},{"style":3525},[11815],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":11817,"children":11818},{"style":3525},[11819],{"type":3168,"value":3790},{"type":3163,"tag":3446,"props":11821,"children":11822},{"style":3520},[11823],{"type":3168,"value":3882},{"type":3163,"tag":3446,"props":11825,"children":11826},{"style":3525},[11827],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":11829,"children":11830},{"style":3591},[11831],{"type":3168,"value":3851},{"type":3163,"tag":3446,"props":11833,"children":11834},{"style":3525},[11835],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":11837,"children":11838},{"class":3448,"line":3718},[11839,11843,11848,11852,11857,11861,11865,11870,11874,11878,11883,11887,11891],{"type":3163,"tag":3446,"props":11840,"children":11841},{"style":3525},[11842],{"type":3168,"value":11771},{"type":3163,"tag":3446,"props":11844,"children":11845},{"style":3591},[11846],{"type":3168,"value":11847},"NuxtLink",{"type":3163,"tag":3446,"props":11849,"children":11850},{"style":4709},[11851],{"type":3168,"value":3928},{"type":3163,"tag":3446,"props":11853,"children":11854},{"style":3597},[11855],{"type":3168,"value":11856}," to",{"type":3163,"tag":3446,"props":11858,"children":11859},{"style":3525},[11860],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":11862,"children":11863},{"style":3525},[11864],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":11866,"children":11867},{"style":3458},[11868],{"type":3168,"value":11869},"\u002Flogin",{"type":3163,"tag":3446,"props":11871,"children":11872},{"style":3525},[11873],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":11875,"children":11876},{"style":3525},[11877],{"type":3168,"value":3790},{"type":3163,"tag":3446,"props":11879,"children":11880},{"style":3520},[11881],{"type":3168,"value":11882},"Login",{"type":3163,"tag":3446,"props":11884,"children":11885},{"style":3525},[11886],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":11888,"children":11889},{"style":3591},[11890],{"type":3168,"value":11847},{"type":3163,"tag":3446,"props":11892,"children":11893},{"style":3525},[11894],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":11896,"children":11897},{"class":3448,"line":3735},[11898,11903,11907],{"type":3163,"tag":3446,"props":11899,"children":11900},{"style":3525},[11901],{"type":3168,"value":11902},"    \u003C\u002F",{"type":3163,"tag":3446,"props":11904,"children":11905},{"style":3591},[11906],{"type":3168,"value":11721},{"type":3163,"tag":3446,"props":11908,"children":11909},{"style":3525},[11910],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":11912,"children":11913},{"class":3448,"line":3069},[11914,11918,11922],{"type":3163,"tag":3446,"props":11915,"children":11916},{"style":3525},[11917],{"type":3168,"value":3903},{"type":3163,"tag":3446,"props":11919,"children":11920},{"style":3591},[11921],{"type":3168,"value":11705},{"type":3163,"tag":3446,"props":11923,"children":11924},{"style":3525},[11925],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":11927,"children":11928},{"class":3448,"line":3065},[11929,11933,11937],{"type":3163,"tag":3446,"props":11930,"children":11931},{"style":3525},[11932],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":11934,"children":11935},{"style":3591},[11936],{"type":3168,"value":3728},{"type":3163,"tag":3446,"props":11938,"children":11939},{"style":3525},[11940],{"type":3168,"value":3605},{"type":3163,"tag":3170,"props":11942,"children":11943},{},[11944,11946,11951],{"type":3168,"value":11945},"If the page is cached or prerendered or the load strategy set as ",{"type":3163,"tag":3308,"props":11947,"children":11949},{"className":11948},[],[11950],{"type":3168,"value":11468},{"type":3168,"value":11952},", nothing will be rendered until the user session is fetched on the client-side.",{"type":3163,"tag":3170,"props":11954,"children":11955},{},[11956,11957,11963],{"type":3168,"value":11659},{"type":3163,"tag":3308,"props":11958,"children":11960},{"className":11959},[],[11961],{"type":3168,"value":11962},"placeholder",{"type":3168,"value":11964}," slot to show a placeholder on server-side and while the user session is being fetched on client-side for the prerendered pages:",{"type":3163,"tag":3436,"props":11966,"children":11968},{"className":3574,"code":11967,"language":3576,"meta":3037,"style":3037},"\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",[11969],{"type":3163,"tag":3308,"props":11970,"children":11971},{"__ignoreMap":3037},[11972,11987,12002,12017,12075,12147,12202,12218,12241,12278,12293,12308,12323],{"type":3163,"tag":3446,"props":11973,"children":11974},{"class":3448,"line":3123},[11975,11979,11983],{"type":3163,"tag":3446,"props":11976,"children":11977},{"style":3525},[11978],{"type":3168,"value":3588},{"type":3163,"tag":3446,"props":11980,"children":11981},{"style":3591},[11982],{"type":3168,"value":3728},{"type":3163,"tag":3446,"props":11984,"children":11985},{"style":3525},[11986],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":11988,"children":11989},{"class":3448,"line":3089},[11990,11994,11998],{"type":3163,"tag":3446,"props":11991,"children":11992},{"style":3525},[11993],{"type":3168,"value":3741},{"type":3163,"tag":3446,"props":11995,"children":11996},{"style":3591},[11997],{"type":3168,"value":11705},{"type":3163,"tag":3446,"props":11999,"children":12000},{"style":3525},[12001],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":12003,"children":12004},{"class":3448,"line":3073},[12005,12009,12013],{"type":3163,"tag":3446,"props":12006,"children":12007},{"style":3525},[12008],{"type":3168,"value":3781},{"type":3163,"tag":3446,"props":12010,"children":12011},{"style":3591},[12012],{"type":3168,"value":11721},{"type":3163,"tag":3446,"props":12014,"children":12015},{"style":3525},[12016],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":12018,"children":12019},{"class":3448,"line":3709},[12020,12024,12028,12033,12038,12042,12046,12050,12054,12058,12063,12067,12071],{"type":3163,"tag":3446,"props":12021,"children":12022},{"style":3525},[12023],{"type":3168,"value":11771},{"type":3163,"tag":3446,"props":12025,"children":12026},{"style":3591},[12027],{"type":3168,"value":3728},{"type":3163,"tag":3446,"props":12029,"children":12030},{"style":3525},[12031],{"type":3168,"value":12032}," #",{"type":3163,"tag":3446,"props":12034,"children":12035},{"style":3597},[12036],{"type":3168,"value":12037},"default",{"type":3163,"tag":3446,"props":12039,"children":12040},{"style":3525},[12041],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":12043,"children":12044},{"style":3525},[12045],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":12047,"children":12048},{"style":3525},[12049],{"type":3168,"value":7818},{"type":3163,"tag":3446,"props":12051,"children":12052},{"style":3520},[12053],{"type":3168,"value":3623},{"type":3163,"tag":3446,"props":12055,"children":12056},{"style":3525},[12057],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":12059,"children":12060},{"style":3520},[12061],{"type":3168,"value":12062}," clear ",{"type":3163,"tag":3446,"props":12064,"children":12065},{"style":3525},[12066],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":12068,"children":12069},{"style":3525},[12070],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":12072,"children":12073},{"style":3525},[12074],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":12076,"children":12077},{"class":3448,"line":3718},[12078,12083,12087,12091,12095,12099,12103,12107,12111,12115,12119,12123,12127,12131,12135,12139,12143],{"type":3163,"tag":3446,"props":12079,"children":12080},{"style":3525},[12081],{"type":3168,"value":12082},"        \u003C",{"type":3163,"tag":3446,"props":12084,"children":12085},{"style":3591},[12086],{"type":3168,"value":3851},{"type":3163,"tag":3446,"props":12088,"children":12089},{"style":3597},[12090],{"type":3168,"value":3751},{"type":3163,"tag":3446,"props":12092,"children":12093},{"style":3525},[12094],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":12096,"children":12097},{"style":3525},[12098],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":12100,"children":12101},{"style":3458},[12102],{"type":3168,"value":3765},{"type":3163,"tag":3446,"props":12104,"children":12105},{"style":3525},[12106],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":12108,"children":12109},{"style":3597},[12110],{"type":3168,"value":3856},{"type":3163,"tag":3446,"props":12112,"children":12113},{"style":3525},[12114],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":12116,"children":12117},{"style":3525},[12118],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":12120,"children":12121},{"style":3458},[12122],{"type":3168,"value":3869},{"type":3163,"tag":3446,"props":12124,"children":12125},{"style":3525},[12126],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":12128,"children":12129},{"style":3525},[12130],{"type":3168,"value":3790},{"type":3163,"tag":3446,"props":12132,"children":12133},{"style":3520},[12134],{"type":3168,"value":3882},{"type":3163,"tag":3446,"props":12136,"children":12137},{"style":3525},[12138],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":12140,"children":12141},{"style":3591},[12142],{"type":3168,"value":3851},{"type":3163,"tag":3446,"props":12144,"children":12145},{"style":3525},[12146],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":12148,"children":12149},{"class":3448,"line":3735},[12150,12154,12158,12162,12166,12170,12174,12178,12182,12186,12190,12194,12198],{"type":3163,"tag":3446,"props":12151,"children":12152},{"style":3525},[12153],{"type":3168,"value":12082},{"type":3163,"tag":3446,"props":12155,"children":12156},{"style":3591},[12157],{"type":3168,"value":11847},{"type":3163,"tag":3446,"props":12159,"children":12160},{"style":4709},[12161],{"type":3168,"value":3928},{"type":3163,"tag":3446,"props":12163,"children":12164},{"style":3597},[12165],{"type":3168,"value":11856},{"type":3163,"tag":3446,"props":12167,"children":12168},{"style":3525},[12169],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":12171,"children":12172},{"style":3525},[12173],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":12175,"children":12176},{"style":3458},[12177],{"type":3168,"value":11869},{"type":3163,"tag":3446,"props":12179,"children":12180},{"style":3525},[12181],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":12183,"children":12184},{"style":3525},[12185],{"type":3168,"value":3790},{"type":3163,"tag":3446,"props":12187,"children":12188},{"style":3520},[12189],{"type":3168,"value":11882},{"type":3163,"tag":3446,"props":12191,"children":12192},{"style":3525},[12193],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":12195,"children":12196},{"style":3591},[12197],{"type":3168,"value":11847},{"type":3163,"tag":3446,"props":12199,"children":12200},{"style":3525},[12201],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":12203,"children":12204},{"class":3448,"line":3069},[12205,12210,12214],{"type":3163,"tag":3446,"props":12206,"children":12207},{"style":3525},[12208],{"type":3168,"value":12209},"      \u003C\u002F",{"type":3163,"tag":3446,"props":12211,"children":12212},{"style":3591},[12213],{"type":3168,"value":3728},{"type":3163,"tag":3446,"props":12215,"children":12216},{"style":3525},[12217],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":12219,"children":12220},{"class":3448,"line":3065},[12221,12225,12229,12233,12237],{"type":3163,"tag":3446,"props":12222,"children":12223},{"style":3525},[12224],{"type":3168,"value":11771},{"type":3163,"tag":3446,"props":12226,"children":12227},{"style":3591},[12228],{"type":3168,"value":3728},{"type":3163,"tag":3446,"props":12230,"children":12231},{"style":3525},[12232],{"type":3168,"value":12032},{"type":3163,"tag":3446,"props":12234,"children":12235},{"style":3597},[12236],{"type":3168,"value":11962},{"type":3163,"tag":3446,"props":12238,"children":12239},{"style":3525},[12240],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":12242,"children":12243},{"class":3448,"line":3061},[12244,12248,12252,12257,12261,12266,12270,12274],{"type":3163,"tag":3446,"props":12245,"children":12246},{"style":3525},[12247],{"type":3168,"value":12082},{"type":3163,"tag":3446,"props":12249,"children":12250},{"style":3591},[12251],{"type":3168,"value":3851},{"type":3163,"tag":3446,"props":12253,"children":12254},{"style":3597},[12255],{"type":3168,"value":12256}," disabled",{"type":3163,"tag":3446,"props":12258,"children":12259},{"style":3525},[12260],{"type":3168,"value":3790},{"type":3163,"tag":3446,"props":12262,"children":12263},{"style":3520},[12264],{"type":3168,"value":12265},"Loading...",{"type":3163,"tag":3446,"props":12267,"children":12268},{"style":3525},[12269],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":12271,"children":12272},{"style":3591},[12273],{"type":3168,"value":3851},{"type":3163,"tag":3446,"props":12275,"children":12276},{"style":3525},[12277],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":12279,"children":12280},{"class":3448,"line":3897},[12281,12285,12289],{"type":3163,"tag":3446,"props":12282,"children":12283},{"style":3525},[12284],{"type":3168,"value":12209},{"type":3163,"tag":3446,"props":12286,"children":12287},{"style":3591},[12288],{"type":3168,"value":3728},{"type":3163,"tag":3446,"props":12290,"children":12291},{"style":3525},[12292],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":12294,"children":12295},{"class":3448,"line":3914},[12296,12300,12304],{"type":3163,"tag":3446,"props":12297,"children":12298},{"style":3525},[12299],{"type":3168,"value":11902},{"type":3163,"tag":3446,"props":12301,"children":12302},{"style":3591},[12303],{"type":3168,"value":11721},{"type":3163,"tag":3446,"props":12305,"children":12306},{"style":3525},[12307],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":12309,"children":12310},{"class":3448,"line":3935},[12311,12315,12319],{"type":3163,"tag":3446,"props":12312,"children":12313},{"style":3525},[12314],{"type":3168,"value":3903},{"type":3163,"tag":3446,"props":12316,"children":12317},{"style":3591},[12318],{"type":3168,"value":11705},{"type":3163,"tag":3446,"props":12320,"children":12321},{"style":3525},[12322],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":12324,"children":12325},{"class":3448,"line":3968},[12326,12330,12334],{"type":3163,"tag":3446,"props":12327,"children":12328},{"style":3525},[12329],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":12331,"children":12332},{"style":3591},[12333],{"type":3168,"value":3728},{"type":3163,"tag":3446,"props":12335,"children":12336},{"style":3525},[12337],{"type":3168,"value":3605},{"type":3163,"tag":3170,"props":12339,"children":12340},{},[12341,12343,12348,12350,12356,12358,12364],{"type":3168,"value":12342},"If you are caching your routes with ",{"type":3163,"tag":3308,"props":12344,"children":12346},{"className":12345},[],[12347],{"type":3168,"value":11368},{"type":3168,"value":12349},", please make sure to use ",{"type":3163,"tag":3174,"props":12351,"children":12354},{"href":12352,"rel":12353},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fnitro",[3178],[12355],{"type":3168,"value":837},{"type":3168,"value":12357}," >= ",{"type":3163,"tag":3308,"props":12359,"children":12361},{"className":12360},[],[12362],{"type":3168,"value":12363},"2.9.7",{"type":3168,"value":12365}," to support the client-side fetching of the user session.",{"type":3163,"tag":3254,"props":12367,"children":12369},{"id":12368},"websocket-support",[12370],{"type":3168,"value":12371},"WebSocket Support",{"type":3163,"tag":3170,"props":12373,"children":12374},{},[12375,12377,12384],{"type":3168,"value":12376},"Nuxt Auth Utils is compatible with ",{"type":3163,"tag":3174,"props":12378,"children":12381},{"href":12379,"rel":12380},"https:\u002F\u002Fnitro.build\u002Fguide\u002Fwebsocket",[3178],[12382],{"type":3168,"value":12383},"Nitro WebSockets",{"type":3168,"value":3401},{"type":3163,"tag":3170,"props":12386,"children":12387},{},[12388,12390,12396,12397,12402],{"type":3168,"value":12389},"Make sure to enable the ",{"type":3163,"tag":3308,"props":12391,"children":12393},{"className":12392},[],[12394],{"type":3168,"value":12395},"experimental.websocket",{"type":3168,"value":11396},{"type":3163,"tag":3308,"props":12398,"children":12400},{"className":12399},[],[12401],{"type":3168,"value":233},{"type":3168,"value":4186},{"type":3163,"tag":3436,"props":12404,"children":12406},{"className":4125,"code":12405,"language":4127,"meta":3037,"style":3037},"export default defineNuxtConfig({\n  nitro: {\n    experimental: {\n      websocket: true\n    }\n  }\n})\n",[12407],{"type":3163,"tag":3308,"props":12408,"children":12409},{"__ignoreMap":3037},[12410,12433,12449,12465,12481,12488,12495],{"type":3163,"tag":3446,"props":12411,"children":12412},{"class":3448,"line":3123},[12413,12417,12421,12425,12429],{"type":3163,"tag":3446,"props":12414,"children":12415},{"style":4709},[12416],{"type":3168,"value":5243},{"type":3163,"tag":3446,"props":12418,"children":12419},{"style":4709},[12420],{"type":3168,"value":5358},{"type":3163,"tag":3446,"props":12422,"children":12423},{"style":3682},[12424],{"type":3168,"value":5363},{"type":3163,"tag":3446,"props":12426,"children":12427},{"style":3520},[12428],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":12430,"children":12431},{"style":3525},[12432],{"type":3168,"value":5373},{"type":3163,"tag":3446,"props":12434,"children":12435},{"class":3448,"line":3089},[12436,12441,12445],{"type":3163,"tag":3446,"props":12437,"children":12438},{"style":3591},[12439],{"type":3168,"value":12440},"  nitro",{"type":3163,"tag":3446,"props":12442,"children":12443},{"style":3525},[12444],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":12446,"children":12447},{"style":3525},[12448],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":12450,"children":12451},{"class":3448,"line":3073},[12452,12457,12461],{"type":3163,"tag":3446,"props":12453,"children":12454},{"style":3591},[12455],{"type":3168,"value":12456},"    experimental",{"type":3163,"tag":3446,"props":12458,"children":12459},{"style":3525},[12460],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":12462,"children":12463},{"style":3525},[12464],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":12466,"children":12467},{"class":3448,"line":3709},[12468,12473,12477],{"type":3163,"tag":3446,"props":12469,"children":12470},{"style":3591},[12471],{"type":3168,"value":12472},"      websocket",{"type":3163,"tag":3446,"props":12474,"children":12475},{"style":3525},[12476],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":12478,"children":12479},{"style":5893},[12480],{"type":3168,"value":5896},{"type":3163,"tag":3446,"props":12482,"children":12483},{"class":3448,"line":3718},[12484],{"type":3163,"tag":3446,"props":12485,"children":12486},{"style":3525},[12487],{"type":3168,"value":5499},{"type":3163,"tag":3446,"props":12489,"children":12490},{"class":3448,"line":3735},[12491],{"type":3163,"tag":3446,"props":12492,"children":12493},{"style":3525},[12494],{"type":3168,"value":5147},{"type":3163,"tag":3446,"props":12496,"children":12497},{"class":3448,"line":3069},[12498,12502],{"type":3163,"tag":3446,"props":12499,"children":12500},{"style":3525},[12501],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":12503,"children":12504},{"style":3520},[12505],{"type":3168,"value":4889},{"type":3163,"tag":3170,"props":12507,"children":12508},{},[12509,12510,12516,12518,12524],{"type":3168,"value":11659},{"type":3163,"tag":3308,"props":12511,"children":12513},{"className":12512},[],[12514],{"type":3168,"value":12515},"requireUserSession",{"type":3168,"value":12517}," function in the ",{"type":3163,"tag":3308,"props":12519,"children":12521},{"className":12520},[],[12522],{"type":3168,"value":12523},"upgrade",{"type":3168,"value":12525}," function to check if the user is authenticated before upgrading the WebSocket connection.",{"type":3163,"tag":3436,"props":12527,"children":12529},{"className":4125,"code":12528,"language":4127,"meta":3037,"style":3037},"\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",[12530],{"type":3163,"tag":3308,"props":12531,"children":12532},{"__ignoreMap":3037},[12533,12541,12565,12594,12602,12625,12632,12661,12704,12711,12774,12781,12813,12858,12865],{"type":3163,"tag":3446,"props":12534,"children":12535},{"class":3448,"line":3123},[12536],{"type":3163,"tag":3446,"props":12537,"children":12538},{"style":3511},[12539],{"type":3168,"value":12540},"\u002F\u002F server\u002Froutes\u002Fws.ts\n",{"type":3163,"tag":3446,"props":12542,"children":12543},{"class":3448,"line":3089},[12544,12548,12552,12557,12561],{"type":3163,"tag":3446,"props":12545,"children":12546},{"style":4709},[12547],{"type":3168,"value":5243},{"type":3163,"tag":3446,"props":12549,"children":12550},{"style":4709},[12551],{"type":3168,"value":5358},{"type":3163,"tag":3446,"props":12553,"children":12554},{"style":3682},[12555],{"type":3168,"value":12556}," defineWebSocketHandler",{"type":3163,"tag":3446,"props":12558,"children":12559},{"style":3520},[12560],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":12562,"children":12563},{"style":3525},[12564],{"type":3168,"value":5373},{"type":3163,"tag":3446,"props":12566,"children":12567},{"class":3448,"line":3073},[12568,12572,12577,12581,12586,12590],{"type":3163,"tag":3446,"props":12569,"children":12570},{"style":3597},[12571],{"type":3168,"value":5911},{"type":3163,"tag":3446,"props":12573,"children":12574},{"style":3591},[12575],{"type":3168,"value":12576}," upgrade",{"type":3163,"tag":3446,"props":12578,"children":12579},{"style":3525},[12580],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":12582,"children":12583},{"style":4541},[12584],{"type":3168,"value":12585},"request",{"type":3163,"tag":3446,"props":12587,"children":12588},{"style":3525},[12589],{"type":3168,"value":6129},{"type":3163,"tag":3446,"props":12591,"children":12592},{"style":3525},[12593],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":12595,"children":12596},{"class":3448,"line":3709},[12597],{"type":3163,"tag":3446,"props":12598,"children":12599},{"style":3511},[12600],{"type":3168,"value":12601},"    \u002F\u002F Make sure the user is authenticated before upgrading the WebSocket connection\n",{"type":3163,"tag":3446,"props":12603,"children":12604},{"class":3448,"line":3718},[12605,12609,12613,12617,12621],{"type":3163,"tag":3446,"props":12606,"children":12607},{"style":4709},[12608],{"type":3168,"value":5962},{"type":3163,"tag":3446,"props":12610,"children":12611},{"style":3682},[12612],{"type":3168,"value":5045},{"type":3163,"tag":3446,"props":12614,"children":12615},{"style":3591},[12616],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":12618,"children":12619},{"style":3520},[12620],{"type":3168,"value":12585},{"type":3163,"tag":3446,"props":12622,"children":12623},{"style":3591},[12624],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":12626,"children":12627},{"class":3448,"line":3735},[12628],{"type":3163,"tag":3446,"props":12629,"children":12630},{"style":3525},[12631],{"type":3168,"value":4787},{"type":3163,"tag":3446,"props":12633,"children":12634},{"class":3448,"line":3069},[12635,12639,12644,12648,12653,12657],{"type":3163,"tag":3446,"props":12636,"children":12637},{"style":3597},[12638],{"type":3168,"value":5911},{"type":3163,"tag":3446,"props":12640,"children":12641},{"style":3591},[12642],{"type":3168,"value":12643}," open",{"type":3163,"tag":3446,"props":12645,"children":12646},{"style":3525},[12647],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":12649,"children":12650},{"style":4541},[12651],{"type":3168,"value":12652},"peer",{"type":3163,"tag":3446,"props":12654,"children":12655},{"style":3525},[12656],{"type":3168,"value":6129},{"type":3163,"tag":3446,"props":12658,"children":12659},{"style":3525},[12660],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":12662,"children":12663},{"class":3448,"line":3065},[12664,12668,12672,12676,12680,12684,12688,12692,12696,12700],{"type":3163,"tag":3446,"props":12665,"children":12666},{"style":3597},[12667],{"type":3168,"value":7679},{"type":3163,"tag":3446,"props":12669,"children":12670},{"style":3525},[12671],{"type":3168,"value":3618},{"type":3163,"tag":3446,"props":12673,"children":12674},{"style":3520},[12675],{"type":3168,"value":3633},{"type":3163,"tag":3446,"props":12677,"children":12678},{"style":3525},[12679],{"type":3168,"value":7559},{"type":3163,"tag":3446,"props":12681,"children":12682},{"style":3525},[12683],{"type":3168,"value":3679},{"type":3163,"tag":3446,"props":12685,"children":12686},{"style":4709},[12687],{"type":3168,"value":4965},{"type":3163,"tag":3446,"props":12689,"children":12690},{"style":3682},[12691],{"type":3168,"value":5045},{"type":3163,"tag":3446,"props":12693,"children":12694},{"style":3591},[12695],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":12697,"children":12698},{"style":3520},[12699],{"type":3168,"value":12652},{"type":3163,"tag":3446,"props":12701,"children":12702},{"style":3591},[12703],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":12705,"children":12706},{"class":3448,"line":3061},[12707],{"type":3163,"tag":3446,"props":12708,"children":12709},{"emptyLinePlaceholder":1200},[12710],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":12712,"children":12713},{"class":3448,"line":3897},[12714,12719,12723,12728,12732,12736,12741,12745,12749,12753,12758,12762,12766,12770],{"type":3163,"tag":3446,"props":12715,"children":12716},{"style":3520},[12717],{"type":3168,"value":12718},"    peer",{"type":3163,"tag":3446,"props":12720,"children":12721},{"style":3525},[12722],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":12724,"children":12725},{"style":3682},[12726],{"type":3168,"value":12727},"send",{"type":3163,"tag":3446,"props":12729,"children":12730},{"style":3591},[12731],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":12733,"children":12734},{"style":3525},[12735],{"type":3168,"value":8147},{"type":3163,"tag":3446,"props":12737,"children":12738},{"style":3458},[12739],{"type":3168,"value":12740},"Hello, ",{"type":3163,"tag":3446,"props":12742,"children":12743},{"style":3525},[12744],{"type":3168,"value":9486},{"type":3163,"tag":3446,"props":12746,"children":12747},{"style":3520},[12748],{"type":3168,"value":7733},{"type":3163,"tag":3446,"props":12750,"children":12751},{"style":3525},[12752],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":12754,"children":12755},{"style":3520},[12756],{"type":3168,"value":12757},"name",{"type":3163,"tag":3446,"props":12759,"children":12760},{"style":3525},[12761],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":12763,"children":12764},{"style":3458},[12765],{"type":3168,"value":8172},{"type":3163,"tag":3446,"props":12767,"children":12768},{"style":3525},[12769],{"type":3168,"value":8147},{"type":3163,"tag":3446,"props":12771,"children":12772},{"style":3591},[12773],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":12775,"children":12776},{"class":3448,"line":3914},[12777],{"type":3163,"tag":3446,"props":12778,"children":12779},{"style":3525},[12780],{"type":3168,"value":4787},{"type":3163,"tag":3446,"props":12782,"children":12783},{"class":3448,"line":3935},[12784,12789,12793,12797,12801,12805,12809],{"type":3163,"tag":3446,"props":12785,"children":12786},{"style":3591},[12787],{"type":3168,"value":12788},"  message",{"type":3163,"tag":3446,"props":12790,"children":12791},{"style":3525},[12792],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":12794,"children":12795},{"style":4541},[12796],{"type":3168,"value":12652},{"type":3163,"tag":3446,"props":12798,"children":12799},{"style":3525},[12800],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":12802,"children":12803},{"style":4541},[12804],{"type":3168,"value":7841},{"type":3163,"tag":3446,"props":12806,"children":12807},{"style":3525},[12808],{"type":3168,"value":6129},{"type":3163,"tag":3446,"props":12810,"children":12811},{"style":3525},[12812],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":12814,"children":12815},{"class":3448,"line":3968},[12816,12820,12824,12828,12832,12836,12841,12845,12850,12854],{"type":3163,"tag":3446,"props":12817,"children":12818},{"style":3520},[12819],{"type":3168,"value":12718},{"type":3163,"tag":3446,"props":12821,"children":12822},{"style":3525},[12823],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":12825,"children":12826},{"style":3682},[12827],{"type":3168,"value":12727},{"type":3163,"tag":3446,"props":12829,"children":12830},{"style":3591},[12831],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":12833,"children":12834},{"style":3525},[12835],{"type":3168,"value":8147},{"type":3163,"tag":3446,"props":12837,"children":12838},{"style":3458},[12839],{"type":3168,"value":12840},"Echo: ",{"type":3163,"tag":3446,"props":12842,"children":12843},{"style":3525},[12844],{"type":3168,"value":9486},{"type":3163,"tag":3446,"props":12846,"children":12847},{"style":3520},[12848],{"type":3168,"value":12849},"message",{"type":3163,"tag":3446,"props":12851,"children":12852},{"style":3525},[12853],{"type":3168,"value":9496},{"type":3163,"tag":3446,"props":12855,"children":12856},{"style":3591},[12857],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":12859,"children":12860},{"class":3448,"line":4023},[12861],{"type":3163,"tag":3446,"props":12862,"children":12863},{"style":3525},[12864],{"type":3168,"value":4787},{"type":3163,"tag":3446,"props":12866,"children":12867},{"class":3448,"line":4032},[12868,12872],{"type":3163,"tag":3446,"props":12869,"children":12870},{"style":3525},[12871],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":12873,"children":12874},{"style":3520},[12875],{"type":3168,"value":4889},{"type":3163,"tag":3170,"props":12877,"children":12878},{},[12879,12881,12888],{"type":3168,"value":12880},"Then, in your application, you can use the ",{"type":3163,"tag":3174,"props":12882,"children":12885},{"href":12883,"rel":12884},"https:\u002F\u002Fvueuse.org\u002Fcore\u002FuseWebSocket\u002F",[3178],[12886],{"type":3168,"value":12887},"useWebSocket",{"type":3168,"value":12889}," composable to connect to the WebSocket:",{"type":3163,"tag":3436,"props":12891,"children":12893},{"className":3574,"code":12892,"language":3576,"meta":3037,"style":3037},"\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",[12894],{"type":3163,"tag":3308,"props":12895,"children":12896},{"__ignoreMap":3037},[12897,12916,13027,13034,13042,13055,13070,13077,13092,13107,13139,13171,13186,13239,13292,13345,13360,13375],{"type":3163,"tag":3446,"props":12898,"children":12899},{"class":3448,"line":3123},[12900,12904,12908,12912],{"type":3163,"tag":3446,"props":12901,"children":12902},{"style":3525},[12903],{"type":3168,"value":3588},{"type":3163,"tag":3446,"props":12905,"children":12906},{"style":3591},[12907],{"type":3168,"value":3594},{"type":3163,"tag":3446,"props":12909,"children":12910},{"style":3597},[12911],{"type":3168,"value":3600},{"type":3163,"tag":3446,"props":12913,"children":12914},{"style":3525},[12915],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":12917,"children":12918},{"class":3448,"line":3089},[12919,12923,12927,12932,12936,12941,12945,12950,12954,12958,12962,12967,12971,12975,12980,12984,12988,12993,12997,13001,13005,13010,13014,13019,13023],{"type":3163,"tag":3446,"props":12920,"children":12921},{"style":3597},[12922],{"type":3168,"value":3613},{"type":3163,"tag":3446,"props":12924,"children":12925},{"style":3525},[12926],{"type":3168,"value":3618},{"type":3163,"tag":3446,"props":12928,"children":12929},{"style":3520},[12930],{"type":3168,"value":12931}," status",{"type":3163,"tag":3446,"props":12933,"children":12934},{"style":3525},[12935],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":12937,"children":12938},{"style":3520},[12939],{"type":3168,"value":12940}," data",{"type":3163,"tag":3446,"props":12942,"children":12943},{"style":3525},[12944],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":12946,"children":12947},{"style":3520},[12948],{"type":3168,"value":12949}," send",{"type":3163,"tag":3446,"props":12951,"children":12952},{"style":3525},[12953],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":12955,"children":12956},{"style":3520},[12957],{"type":3168,"value":12643},{"type":3163,"tag":3446,"props":12959,"children":12960},{"style":3525},[12961],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":12963,"children":12964},{"style":3520},[12965],{"type":3168,"value":12966}," close ",{"type":3163,"tag":3446,"props":12968,"children":12969},{"style":3525},[12970],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":12972,"children":12973},{"style":3525},[12974],{"type":3168,"value":3679},{"type":3163,"tag":3446,"props":12976,"children":12977},{"style":3682},[12978],{"type":3168,"value":12979}," useWebSocket",{"type":3163,"tag":3446,"props":12981,"children":12982},{"style":3520},[12983],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":12985,"children":12986},{"style":3525},[12987],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":12989,"children":12990},{"style":3458},[12991],{"type":3168,"value":12992},"\u002Fws",{"type":3163,"tag":3446,"props":12994,"children":12995},{"style":3525},[12996],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":12998,"children":12999},{"style":3525},[13000],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":13002,"children":13003},{"style":3525},[13004],{"type":3168,"value":3618},{"type":3163,"tag":3446,"props":13006,"children":13007},{"style":3591},[13008],{"type":3168,"value":13009}," immediate",{"type":3163,"tag":3446,"props":13011,"children":13012},{"style":3525},[13013],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":13015,"children":13016},{"style":5893},[13017],{"type":3168,"value":13018}," false",{"type":3163,"tag":3446,"props":13020,"children":13021},{"style":3525},[13022],{"type":3168,"value":7559},{"type":3163,"tag":3446,"props":13024,"children":13025},{"style":3520},[13026],{"type":3168,"value":4889},{"type":3163,"tag":3446,"props":13028,"children":13029},{"class":3448,"line":3073},[13030],{"type":3163,"tag":3446,"props":13031,"children":13032},{"emptyLinePlaceholder":1200},[13033],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":13035,"children":13036},{"class":3448,"line":3709},[13037],{"type":3163,"tag":3446,"props":13038,"children":13039},{"style":3511},[13040],{"type":3168,"value":13041},"\u002F\u002F Only open the websocket after the page is hydrated (client-only)\n",{"type":3163,"tag":3446,"props":13043,"children":13044},{"class":3448,"line":3718},[13045,13050],{"type":3163,"tag":3446,"props":13046,"children":13047},{"style":3682},[13048],{"type":3168,"value":13049},"onMounted",{"type":3163,"tag":3446,"props":13051,"children":13052},{"style":3520},[13053],{"type":3168,"value":13054},"(open)\n",{"type":3163,"tag":3446,"props":13056,"children":13057},{"class":3448,"line":3735},[13058,13062,13066],{"type":3163,"tag":3446,"props":13059,"children":13060},{"style":3525},[13061],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":13063,"children":13064},{"style":3591},[13065],{"type":3168,"value":3594},{"type":3163,"tag":3446,"props":13067,"children":13068},{"style":3525},[13069],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":13071,"children":13072},{"class":3448,"line":3069},[13073],{"type":3163,"tag":3446,"props":13074,"children":13075},{"emptyLinePlaceholder":1200},[13076],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":13078,"children":13079},{"class":3448,"line":3065},[13080,13084,13088],{"type":3163,"tag":3446,"props":13081,"children":13082},{"style":3525},[13083],{"type":3168,"value":3588},{"type":3163,"tag":3446,"props":13085,"children":13086},{"style":3591},[13087],{"type":3168,"value":3728},{"type":3163,"tag":3446,"props":13089,"children":13090},{"style":3525},[13091],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":13093,"children":13094},{"class":3448,"line":3061},[13095,13099,13103],{"type":3163,"tag":3446,"props":13096,"children":13097},{"style":3525},[13098],{"type":3168,"value":3741},{"type":3163,"tag":3446,"props":13100,"children":13101},{"style":3591},[13102],{"type":3168,"value":3746},{"type":3163,"tag":3446,"props":13104,"children":13105},{"style":3525},[13106],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":13108,"children":13109},{"class":3448,"line":3897},[13110,13114,13118,13122,13127,13131,13135],{"type":3163,"tag":3446,"props":13111,"children":13112},{"style":3525},[13113],{"type":3168,"value":3781},{"type":3163,"tag":3446,"props":13115,"children":13116},{"style":3591},[13117],{"type":3168,"value":3170},{"type":3163,"tag":3446,"props":13119,"children":13120},{"style":3525},[13121],{"type":3168,"value":3790},{"type":3163,"tag":3446,"props":13123,"children":13124},{"style":3520},[13125],{"type":3168,"value":13126},"Status: {{ status }}",{"type":3163,"tag":3446,"props":13128,"children":13129},{"style":3525},[13130],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":13132,"children":13133},{"style":3591},[13134],{"type":3168,"value":3170},{"type":3163,"tag":3446,"props":13136,"children":13137},{"style":3525},[13138],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":13140,"children":13141},{"class":3448,"line":3914},[13142,13146,13150,13154,13159,13163,13167],{"type":3163,"tag":3446,"props":13143,"children":13144},{"style":3525},[13145],{"type":3168,"value":3781},{"type":3163,"tag":3446,"props":13147,"children":13148},{"style":3591},[13149],{"type":3168,"value":3170},{"type":3163,"tag":3446,"props":13151,"children":13152},{"style":3525},[13153],{"type":3168,"value":3790},{"type":3163,"tag":3446,"props":13155,"children":13156},{"style":3520},[13157],{"type":3168,"value":13158},"Data: {{ data }}",{"type":3163,"tag":3446,"props":13160,"children":13161},{"style":3525},[13162],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":13164,"children":13165},{"style":3591},[13166],{"type":3168,"value":3170},{"type":3163,"tag":3446,"props":13168,"children":13169},{"style":3525},[13170],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":13172,"children":13173},{"class":3448,"line":3935},[13174,13178,13182],{"type":3163,"tag":3446,"props":13175,"children":13176},{"style":3525},[13177],{"type":3168,"value":3781},{"type":3163,"tag":3446,"props":13179,"children":13180},{"style":3591},[13181],{"type":3168,"value":3170},{"type":3163,"tag":3446,"props":13183,"children":13184},{"style":3525},[13185],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":13187,"children":13188},{"class":3448,"line":3968},[13189,13193,13197,13201,13205,13209,13214,13218,13222,13227,13231,13235],{"type":3163,"tag":3446,"props":13190,"children":13191},{"style":3525},[13192],{"type":3168,"value":11771},{"type":3163,"tag":3446,"props":13194,"children":13195},{"style":3591},[13196],{"type":3168,"value":3851},{"type":3163,"tag":3446,"props":13198,"children":13199},{"style":3597},[13200],{"type":3168,"value":3856},{"type":3163,"tag":3446,"props":13202,"children":13203},{"style":3525},[13204],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":13206,"children":13207},{"style":3525},[13208],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":13210,"children":13211},{"style":3458},[13212],{"type":3168,"value":13213},"open",{"type":3163,"tag":3446,"props":13215,"children":13216},{"style":3525},[13217],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":13219,"children":13220},{"style":3525},[13221],{"type":3168,"value":3790},{"type":3163,"tag":3446,"props":13223,"children":13224},{"style":3520},[13225],{"type":3168,"value":13226},"Open",{"type":3163,"tag":3446,"props":13228,"children":13229},{"style":3525},[13230],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":13232,"children":13233},{"style":3591},[13234],{"type":3168,"value":3851},{"type":3163,"tag":3446,"props":13236,"children":13237},{"style":3525},[13238],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":13240,"children":13241},{"class":3448,"line":4023},[13242,13246,13250,13254,13258,13262,13267,13271,13275,13280,13284,13288],{"type":3163,"tag":3446,"props":13243,"children":13244},{"style":3525},[13245],{"type":3168,"value":11771},{"type":3163,"tag":3446,"props":13247,"children":13248},{"style":3591},[13249],{"type":3168,"value":3851},{"type":3163,"tag":3446,"props":13251,"children":13252},{"style":3597},[13253],{"type":3168,"value":3856},{"type":3163,"tag":3446,"props":13255,"children":13256},{"style":3525},[13257],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":13259,"children":13260},{"style":3525},[13261],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":13263,"children":13264},{"style":3458},[13265],{"type":3168,"value":13266},"close(1000, 'Closing')",{"type":3163,"tag":3446,"props":13268,"children":13269},{"style":3525},[13270],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":13272,"children":13273},{"style":3525},[13274],{"type":3168,"value":3790},{"type":3163,"tag":3446,"props":13276,"children":13277},{"style":3520},[13278],{"type":3168,"value":13279},"Close",{"type":3163,"tag":3446,"props":13281,"children":13282},{"style":3525},[13283],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":13285,"children":13286},{"style":3591},[13287],{"type":3168,"value":3851},{"type":3163,"tag":3446,"props":13289,"children":13290},{"style":3525},[13291],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":13293,"children":13294},{"class":3448,"line":4032},[13295,13299,13303,13307,13311,13315,13320,13324,13328,13333,13337,13341],{"type":3163,"tag":3446,"props":13296,"children":13297},{"style":3525},[13298],{"type":3168,"value":11771},{"type":3163,"tag":3446,"props":13300,"children":13301},{"style":3591},[13302],{"type":3168,"value":3851},{"type":3163,"tag":3446,"props":13304,"children":13305},{"style":3597},[13306],{"type":3168,"value":3856},{"type":3163,"tag":3446,"props":13308,"children":13309},{"style":3525},[13310],{"type":3168,"value":3528},{"type":3163,"tag":3446,"props":13312,"children":13313},{"style":3525},[13314],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":13316,"children":13317},{"style":3458},[13318],{"type":3168,"value":13319},"send('hello')",{"type":3163,"tag":3446,"props":13321,"children":13322},{"style":3525},[13323],{"type":3168,"value":3760},{"type":3163,"tag":3446,"props":13325,"children":13326},{"style":3525},[13327],{"type":3168,"value":3790},{"type":3163,"tag":3446,"props":13329,"children":13330},{"style":3520},[13331],{"type":3168,"value":13332},"Send hello",{"type":3163,"tag":3446,"props":13334,"children":13335},{"style":3525},[13336],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":13338,"children":13339},{"style":3591},[13340],{"type":3168,"value":3851},{"type":3163,"tag":3446,"props":13342,"children":13343},{"style":3525},[13344],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":13346,"children":13347},{"class":3448,"line":3057},[13348,13352,13356],{"type":3163,"tag":3446,"props":13349,"children":13350},{"style":3525},[13351],{"type":3168,"value":11902},{"type":3163,"tag":3446,"props":13353,"children":13354},{"style":3591},[13355],{"type":3168,"value":3170},{"type":3163,"tag":3446,"props":13357,"children":13358},{"style":3525},[13359],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":13361,"children":13362},{"class":3448,"line":4100},[13363,13367,13371],{"type":3163,"tag":3446,"props":13364,"children":13365},{"style":3525},[13366],{"type":3168,"value":3903},{"type":3163,"tag":3446,"props":13368,"children":13369},{"style":3591},[13370],{"type":3168,"value":3746},{"type":3163,"tag":3446,"props":13372,"children":13373},{"style":3525},[13374],{"type":3168,"value":3605},{"type":3163,"tag":3446,"props":13376,"children":13377},{"class":3448,"line":4370},[13378,13382,13386],{"type":3163,"tag":3446,"props":13379,"children":13380},{"style":3525},[13381],{"type":3168,"value":3698},{"type":3163,"tag":3446,"props":13383,"children":13384},{"style":3591},[13385],{"type":3168,"value":3728},{"type":3163,"tag":3446,"props":13387,"children":13388},{"style":3525},[13389],{"type":3168,"value":3605},{"type":3163,"tag":3254,"props":13391,"children":13393},{"id":13392},"configuration",[13394],{"type":3168,"value":29},{"type":3163,"tag":3170,"props":13396,"children":13397},{},[13398,13400,13406,13408,13421],{"type":3168,"value":13399},"We leverage ",{"type":3163,"tag":3308,"props":13401,"children":13403},{"className":13402},[],[13404],{"type":3168,"value":13405},"runtimeConfig.session",{"type":3168,"value":13407}," to give the defaults option to ",{"type":3163,"tag":3174,"props":13409,"children":13412},{"href":13410,"rel":13411},"https:\u002F\u002Fh3.unjs.io\u002Fexamples\u002Fhandle-session",[3178],[13413,13415],{"type":3168,"value":13414},"h3 ",{"type":3163,"tag":3308,"props":13416,"children":13418},{"className":13417},[],[13419],{"type":3168,"value":13420},"useSession",{"type":3168,"value":3401},{"type":3163,"tag":3170,"props":13423,"children":13424},{},[13425,13427,13432],{"type":3168,"value":13426},"You can overwrite the options in your ",{"type":3163,"tag":3308,"props":13428,"children":13430},{"className":13429},[],[13431],{"type":3168,"value":233},{"type":3168,"value":4186},{"type":3163,"tag":3436,"props":13434,"children":13436},{"className":4125,"code":13435,"language":4127,"meta":3037,"style":3037},"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",[13437],{"type":3163,"tag":3308,"props":13438,"children":13439},{"__ignoreMap":3037},[13440,13463,13498,13513,13529,13578,13585,13592],{"type":3163,"tag":3446,"props":13441,"children":13442},{"class":3448,"line":3123},[13443,13447,13451,13455,13459],{"type":3163,"tag":3446,"props":13444,"children":13445},{"style":4709},[13446],{"type":3168,"value":5243},{"type":3163,"tag":3446,"props":13448,"children":13449},{"style":4709},[13450],{"type":3168,"value":5358},{"type":3163,"tag":3446,"props":13452,"children":13453},{"style":3682},[13454],{"type":3168,"value":5363},{"type":3163,"tag":3446,"props":13456,"children":13457},{"style":3520},[13458],{"type":3168,"value":5368},{"type":3163,"tag":3446,"props":13460,"children":13461},{"style":3525},[13462],{"type":3168,"value":5373},{"type":3163,"tag":3446,"props":13464,"children":13465},{"class":3448,"line":3089},[13466,13470,13474,13478,13482,13486,13490,13494],{"type":3163,"tag":3446,"props":13467,"children":13468},{"style":3591},[13469],{"type":3168,"value":6595},{"type":3163,"tag":3446,"props":13471,"children":13472},{"style":3525},[13473],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":13475,"children":13476},{"style":3520},[13477],{"type":3168,"value":6604},{"type":3163,"tag":3446,"props":13479,"children":13480},{"style":3525},[13481],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":13483,"children":13484},{"style":3458},[13485],{"type":3168,"value":3036},{"type":3163,"tag":3446,"props":13487,"children":13488},{"style":3525},[13489],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":13491,"children":13492},{"style":3520},[13493],{"type":3168,"value":6621},{"type":3163,"tag":3446,"props":13495,"children":13496},{"style":3525},[13497],{"type":3168,"value":5459},{"type":3163,"tag":3446,"props":13499,"children":13500},{"class":3448,"line":3073},[13501,13505,13509],{"type":3163,"tag":3446,"props":13502,"children":13503},{"style":3591},[13504],{"type":3168,"value":5381},{"type":3163,"tag":3446,"props":13506,"children":13507},{"style":3525},[13508],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":13510,"children":13511},{"style":3525},[13512],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":13514,"children":13515},{"class":3448,"line":3709},[13516,13521,13525],{"type":3163,"tag":3446,"props":13517,"children":13518},{"style":3591},[13519],{"type":3168,"value":13520},"    session",{"type":3163,"tag":3446,"props":13522,"children":13523},{"style":3525},[13524],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":13526,"children":13527},{"style":3525},[13528],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":13530,"children":13531},{"class":3448,"line":3718},[13532,13537,13541,13546,13551,13555,13559,13564,13568,13573],{"type":3163,"tag":3446,"props":13533,"children":13534},{"style":3591},[13535],{"type":3168,"value":13536},"      maxAge",{"type":3163,"tag":3446,"props":13538,"children":13539},{"style":3525},[13540],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":13542,"children":13543},{"style":7047},[13544],{"type":3168,"value":13545}," 60",{"type":3163,"tag":3446,"props":13547,"children":13548},{"style":3525},[13549],{"type":3168,"value":13550}," *",{"type":3163,"tag":3446,"props":13552,"children":13553},{"style":7047},[13554],{"type":3168,"value":13545},{"type":3163,"tag":3446,"props":13556,"children":13557},{"style":3525},[13558],{"type":3168,"value":13550},{"type":3163,"tag":3446,"props":13560,"children":13561},{"style":7047},[13562],{"type":3168,"value":13563}," 24",{"type":3163,"tag":3446,"props":13565,"children":13566},{"style":3525},[13567],{"type":3168,"value":13550},{"type":3163,"tag":3446,"props":13569,"children":13570},{"style":7047},[13571],{"type":3168,"value":13572}," 7",{"type":3163,"tag":3446,"props":13574,"children":13575},{"style":3511},[13576],{"type":3168,"value":13577}," \u002F\u002F 1 week\n",{"type":3163,"tag":3446,"props":13579,"children":13580},{"class":3448,"line":3735},[13581],{"type":3163,"tag":3446,"props":13582,"children":13583},{"style":3525},[13584],{"type":3168,"value":5499},{"type":3163,"tag":3446,"props":13586,"children":13587},{"class":3448,"line":3069},[13588],{"type":3163,"tag":3446,"props":13589,"children":13590},{"style":3525},[13591],{"type":3168,"value":5147},{"type":3163,"tag":3446,"props":13593,"children":13594},{"class":3448,"line":3065},[13595,13599],{"type":3163,"tag":3446,"props":13596,"children":13597},{"style":3525},[13598],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":13600,"children":13601},{"style":3520},[13602],{"type":3168,"value":4889},{"type":3163,"tag":3170,"props":13604,"children":13605},{},[13606],{"type":3168,"value":13607},"Our defaults are:",{"type":3163,"tag":3436,"props":13609,"children":13611},{"className":4125,"code":13610,"language":4127,"meta":3037,"style":3037},"{\n  name: 'nuxt-session',\n  password: process.env.NUXT_SESSION_PASSWORD || '',\n  cookie: {\n    sameSite: 'lax'\n  }\n}\n",[13612],{"type":3163,"tag":3308,"props":13613,"children":13614},{"__ignoreMap":3037},[13615,13622,13651,13699,13715,13740,13747],{"type":3163,"tag":3446,"props":13616,"children":13617},{"class":3448,"line":3123},[13618],{"type":3163,"tag":3446,"props":13619,"children":13620},{"style":3525},[13621],{"type":3168,"value":5373},{"type":3163,"tag":3446,"props":13623,"children":13624},{"class":3448,"line":3089},[13625,13630,13634,13638,13643,13647],{"type":3163,"tag":3446,"props":13626,"children":13627},{"style":3452},[13628],{"type":3168,"value":13629},"  name",{"type":3163,"tag":3446,"props":13631,"children":13632},{"style":3525},[13633],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":13635,"children":13636},{"style":3525},[13637],{"type":3168,"value":4770},{"type":3163,"tag":3446,"props":13639,"children":13640},{"style":3458},[13641],{"type":3168,"value":13642},"nuxt-session",{"type":3163,"tag":3446,"props":13644,"children":13645},{"style":3525},[13646],{"type":3168,"value":5110},{"type":3163,"tag":3446,"props":13648,"children":13649},{"style":3525},[13650],{"type":3168,"value":5459},{"type":3163,"tag":3446,"props":13652,"children":13653},{"class":3448,"line":3073},[13654,13659,13663,13668,13672,13677,13681,13685,13690,13695],{"type":3163,"tag":3446,"props":13655,"children":13656},{"style":3452},[13657],{"type":3168,"value":13658},"  password",{"type":3163,"tag":3446,"props":13660,"children":13661},{"style":3525},[13662],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":13664,"children":13665},{"style":3520},[13666],{"type":3168,"value":13667}," process",{"type":3163,"tag":3446,"props":13669,"children":13670},{"style":3525},[13671],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":13673,"children":13674},{"style":3520},[13675],{"type":3168,"value":13676},"env",{"type":3163,"tag":3446,"props":13678,"children":13679},{"style":3525},[13680],{"type":3168,"value":3401},{"type":3163,"tag":3446,"props":13682,"children":13683},{"style":3520},[13684],{"type":3168,"value":3490},{"type":3163,"tag":3446,"props":13686,"children":13687},{"style":3525},[13688],{"type":3168,"value":13689}," ||",{"type":3163,"tag":3446,"props":13691,"children":13692},{"style":3525},[13693],{"type":3168,"value":13694}," ''",{"type":3163,"tag":3446,"props":13696,"children":13697},{"style":3525},[13698],{"type":3168,"value":5459},{"type":3163,"tag":3446,"props":13700,"children":13701},{"class":3448,"line":3709},[13702,13707,13711],{"type":3163,"tag":3446,"props":13703,"children":13704},{"style":3452},[13705],{"type":3168,"value":13706},"  cookie",{"type":3163,"tag":3446,"props":13708,"children":13709},{"style":3525},[13710],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":13712,"children":13713},{"style":3525},[13714],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":13716,"children":13717},{"class":3448,"line":3718},[13718,13723,13727,13731,13736],{"type":3163,"tag":3446,"props":13719,"children":13720},{"style":3452},[13721],{"type":3168,"value":13722},"    sameSite",{"type":3163,"tag":3446,"props":13724,"children":13725},{"style":3525},[13726],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":13728,"children":13729},{"style":3525},[13730],{"type":3168,"value":4770},{"type":3163,"tag":3446,"props":13732,"children":13733},{"style":3458},[13734],{"type":3168,"value":13735},"lax",{"type":3163,"tag":3446,"props":13737,"children":13738},{"style":3525},[13739],{"type":3168,"value":4779},{"type":3163,"tag":3446,"props":13741,"children":13742},{"class":3448,"line":3735},[13743],{"type":3163,"tag":3446,"props":13744,"children":13745},{"style":3525},[13746],{"type":3168,"value":5147},{"type":3163,"tag":3446,"props":13748,"children":13749},{"class":3448,"line":3069},[13750],{"type":3163,"tag":3446,"props":13751,"children":13752},{"style":3525},[13753],{"type":3168,"value":4625},{"type":3163,"tag":3170,"props":13755,"children":13756},{},[13757,13759,13765,13766,13772],{"type":3168,"value":13758},"You can also overwrite the session config by passing it as 3rd argument of the ",{"type":3163,"tag":3308,"props":13760,"children":13762},{"className":13761},[],[13763],{"type":3168,"value":13764},"setUserSession",{"type":3168,"value":6279},{"type":3163,"tag":3308,"props":13767,"children":13769},{"className":13768},[],[13770],{"type":3168,"value":13771},"replaceUserSession",{"type":3168,"value":13773}," functions:",{"type":3163,"tag":3436,"props":13775,"children":13777},{"className":4125,"code":13776,"language":4127,"meta":3037,"style":3037},"await setUserSession(event, { ... } , {\n  maxAge: 60 * 60 * 24 * 7 \u002F\u002F 1 week\n})\n",[13778],{"type":3163,"tag":3308,"props":13779,"children":13780},{"__ignoreMap":3037},[13781,13822,13866],{"type":3163,"tag":3446,"props":13782,"children":13783},{"class":3448,"line":3123},[13784,13788,13792,13796,13800,13804,13809,13813,13818],{"type":3163,"tag":3446,"props":13785,"children":13786},{"style":4709},[13787],{"type":3168,"value":4712},{"type":3163,"tag":3446,"props":13789,"children":13790},{"style":3682},[13791],{"type":3168,"value":4717},{"type":3163,"tag":3446,"props":13793,"children":13794},{"style":3520},[13795],{"type":3168,"value":4722},{"type":3163,"tag":3446,"props":13797,"children":13798},{"style":3525},[13799],{"type":3168,"value":3628},{"type":3163,"tag":3446,"props":13801,"children":13802},{"style":3525},[13803],{"type":3168,"value":3618},{"type":3163,"tag":3446,"props":13805,"children":13806},{"style":3525},[13807],{"type":3168,"value":13808}," ...",{"type":3163,"tag":3446,"props":13810,"children":13811},{"style":3525},[13812],{"type":3168,"value":7559},{"type":3163,"tag":3446,"props":13814,"children":13815},{"style":3525},[13816],{"type":3168,"value":13817}," ,",{"type":3163,"tag":3446,"props":13819,"children":13820},{"style":3525},[13821],{"type":3168,"value":4149},{"type":3163,"tag":3446,"props":13823,"children":13824},{"class":3448,"line":3089},[13825,13830,13834,13838,13842,13846,13850,13854,13858,13862],{"type":3163,"tag":3446,"props":13826,"children":13827},{"style":3591},[13828],{"type":3168,"value":13829},"  maxAge",{"type":3163,"tag":3446,"props":13831,"children":13832},{"style":3525},[13833],{"type":3168,"value":4186},{"type":3163,"tag":3446,"props":13835,"children":13836},{"style":7047},[13837],{"type":3168,"value":13545},{"type":3163,"tag":3446,"props":13839,"children":13840},{"style":3525},[13841],{"type":3168,"value":13550},{"type":3163,"tag":3446,"props":13843,"children":13844},{"style":7047},[13845],{"type":3168,"value":13545},{"type":3163,"tag":3446,"props":13847,"children":13848},{"style":3525},[13849],{"type":3168,"value":13550},{"type":3163,"tag":3446,"props":13851,"children":13852},{"style":7047},[13853],{"type":3168,"value":13563},{"type":3163,"tag":3446,"props":13855,"children":13856},{"style":3525},[13857],{"type":3168,"value":13550},{"type":3163,"tag":3446,"props":13859,"children":13860},{"style":7047},[13861],{"type":3168,"value":13572},{"type":3163,"tag":3446,"props":13863,"children":13864},{"style":3511},[13865],{"type":3168,"value":13577},{"type":3163,"tag":3446,"props":13867,"children":13868},{"class":3448,"line":3073},[13869,13873],{"type":3163,"tag":3446,"props":13870,"children":13871},{"style":3525},[13872],{"type":3168,"value":3674},{"type":3163,"tag":3446,"props":13874,"children":13875},{"style":3520},[13876],{"type":3168,"value":4889},{"type":3163,"tag":3170,"props":13878,"children":13879},{},[13880,13882,13893],{"type":3168,"value":13881},"Checkout the ",{"type":3163,"tag":3174,"props":13883,"children":13886},{"href":13884,"rel":13885},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fh3\u002Fblob\u002Fc04c458810e34eb15c1647e1369e7d7ef19f567d\u002Fsrc\u002Futils\u002Fsession.ts#L20",[3178],[13887],{"type":3163,"tag":3308,"props":13888,"children":13890},{"className":13889},[],[13891],{"type":3168,"value":13892},"SessionConfig",{"type":3168,"value":13894}," for all options.",{"type":3163,"tag":3254,"props":13896,"children":13898},{"id":13897},"more",[13899],{"type":3168,"value":13900},"More",{"type":3163,"tag":3220,"props":13902,"children":13903},{},[13904],{"type":3163,"tag":3224,"props":13905,"children":13906},{},[13907,13914,13916],{"type":3163,"tag":3174,"props":13908,"children":13911},{"href":13909,"rel":13910},"https:\u002F\u002Fgithub.com\u002Fbarbapapazes\u002Fnuxt-authorization",[3178],[13912],{"type":3168,"value":13913},"nuxt-authorization",{"type":3168,"value":13915},": Authorization module for managing permissions inside a Nuxt app, compatible with ",{"type":3163,"tag":3308,"props":13917,"children":13919},{"className":13918},[],[13920],{"type":3168,"value":3036},{"type":3163,"tag":3254,"props":13922,"children":13924},{"id":13923},"development",[13925],{"type":3168,"value":13926},"Development",{"type":3163,"tag":3436,"props":13928,"children":13930},{"className":3438,"code":13929,"language":3440,"meta":3037,"style":3037},"# 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",[13931],{"type":3163,"tag":3308,"props":13932,"children":13933},{"__ignoreMap":3037},[13934,13942,13955,13962,13970,13987,13994,14002,14018,14025,14033,14049,14056,14064,14080,14087,14095,14111,14127,14134,14142],{"type":3163,"tag":3446,"props":13935,"children":13936},{"class":3448,"line":3123},[13937],{"type":3163,"tag":3446,"props":13938,"children":13939},{"style":3511},[13940],{"type":3168,"value":13941},"# Install dependencies\n",{"type":3163,"tag":3446,"props":13943,"children":13944},{"class":3448,"line":3089},[13945,13950],{"type":3163,"tag":3446,"props":13946,"children":13947},{"style":3452},[13948],{"type":3168,"value":13949},"pnpm",{"type":3163,"tag":3446,"props":13951,"children":13952},{"style":3458},[13953],{"type":3168,"value":13954}," install\n",{"type":3163,"tag":3446,"props":13956,"children":13957},{"class":3448,"line":3073},[13958],{"type":3163,"tag":3446,"props":13959,"children":13960},{"emptyLinePlaceholder":1200},[13961],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":13963,"children":13964},{"class":3448,"line":3709},[13965],{"type":3163,"tag":3446,"props":13966,"children":13967},{"style":3511},[13968],{"type":3168,"value":13969},"# Generate type stubs\n",{"type":3163,"tag":3446,"props":13971,"children":13972},{"class":3448,"line":3718},[13973,13977,13982],{"type":3163,"tag":3446,"props":13974,"children":13975},{"style":3452},[13976],{"type":3168,"value":13949},{"type":3163,"tag":3446,"props":13978,"children":13979},{"style":3458},[13980],{"type":3168,"value":13981}," run",{"type":3163,"tag":3446,"props":13983,"children":13984},{"style":3458},[13985],{"type":3168,"value":13986}," dev:prepare\n",{"type":3163,"tag":3446,"props":13988,"children":13989},{"class":3448,"line":3735},[13990],{"type":3163,"tag":3446,"props":13991,"children":13992},{"emptyLinePlaceholder":1200},[13993],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":13995,"children":13996},{"class":3448,"line":3069},[13997],{"type":3163,"tag":3446,"props":13998,"children":13999},{"style":3511},[14000],{"type":3168,"value":14001},"# Develop with the playground\n",{"type":3163,"tag":3446,"props":14003,"children":14004},{"class":3448,"line":3065},[14005,14009,14013],{"type":3163,"tag":3446,"props":14006,"children":14007},{"style":3452},[14008],{"type":3168,"value":13949},{"type":3163,"tag":3446,"props":14010,"children":14011},{"style":3458},[14012],{"type":3168,"value":13981},{"type":3163,"tag":3446,"props":14014,"children":14015},{"style":3458},[14016],{"type":3168,"value":14017}," dev\n",{"type":3163,"tag":3446,"props":14019,"children":14020},{"class":3448,"line":3061},[14021],{"type":3163,"tag":3446,"props":14022,"children":14023},{"emptyLinePlaceholder":1200},[14024],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":14026,"children":14027},{"class":3448,"line":3897},[14028],{"type":3163,"tag":3446,"props":14029,"children":14030},{"style":3511},[14031],{"type":3168,"value":14032},"# Build the playground\n",{"type":3163,"tag":3446,"props":14034,"children":14035},{"class":3448,"line":3914},[14036,14040,14044],{"type":3163,"tag":3446,"props":14037,"children":14038},{"style":3452},[14039],{"type":3168,"value":13949},{"type":3163,"tag":3446,"props":14041,"children":14042},{"style":3458},[14043],{"type":3168,"value":13981},{"type":3163,"tag":3446,"props":14045,"children":14046},{"style":3458},[14047],{"type":3168,"value":14048}," dev:build\n",{"type":3163,"tag":3446,"props":14050,"children":14051},{"class":3448,"line":3935},[14052],{"type":3163,"tag":3446,"props":14053,"children":14054},{"emptyLinePlaceholder":1200},[14055],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":14057,"children":14058},{"class":3448,"line":3968},[14059],{"type":3163,"tag":3446,"props":14060,"children":14061},{"style":3511},[14062],{"type":3168,"value":14063},"# Run ESLint\n",{"type":3163,"tag":3446,"props":14065,"children":14066},{"class":3448,"line":4023},[14067,14071,14075],{"type":3163,"tag":3446,"props":14068,"children":14069},{"style":3452},[14070],{"type":3168,"value":13949},{"type":3163,"tag":3446,"props":14072,"children":14073},{"style":3458},[14074],{"type":3168,"value":13981},{"type":3163,"tag":3446,"props":14076,"children":14077},{"style":3458},[14078],{"type":3168,"value":14079}," lint\n",{"type":3163,"tag":3446,"props":14081,"children":14082},{"class":3448,"line":4032},[14083],{"type":3163,"tag":3446,"props":14084,"children":14085},{"emptyLinePlaceholder":1200},[14086],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":14088,"children":14089},{"class":3448,"line":3057},[14090],{"type":3163,"tag":3446,"props":14091,"children":14092},{"style":3511},[14093],{"type":3168,"value":14094},"# Run Vitest\n",{"type":3163,"tag":3446,"props":14096,"children":14097},{"class":3448,"line":4100},[14098,14102,14106],{"type":3163,"tag":3446,"props":14099,"children":14100},{"style":3452},[14101],{"type":3168,"value":13949},{"type":3163,"tag":3446,"props":14103,"children":14104},{"style":3458},[14105],{"type":3168,"value":13981},{"type":3163,"tag":3446,"props":14107,"children":14108},{"style":3458},[14109],{"type":3168,"value":14110}," test\n",{"type":3163,"tag":3446,"props":14112,"children":14113},{"class":3448,"line":4370},[14114,14118,14122],{"type":3163,"tag":3446,"props":14115,"children":14116},{"style":3452},[14117],{"type":3168,"value":13949},{"type":3163,"tag":3446,"props":14119,"children":14120},{"style":3458},[14121],{"type":3168,"value":13981},{"type":3163,"tag":3446,"props":14123,"children":14124},{"style":3458},[14125],{"type":3168,"value":14126}," test:watch\n",{"type":3163,"tag":3446,"props":14128,"children":14129},{"class":3448,"line":4378},[14130],{"type":3163,"tag":3446,"props":14131,"children":14132},{"emptyLinePlaceholder":1200},[14133],{"type":3168,"value":3715},{"type":3163,"tag":3446,"props":14135,"children":14136},{"class":3448,"line":4387},[14137],{"type":3163,"tag":3446,"props":14138,"children":14139},{"style":3511},[14140],{"type":3168,"value":14141},"# Release new version\n",{"type":3163,"tag":3446,"props":14143,"children":14144},{"class":3448,"line":4395},[14145,14149,14153],{"type":3163,"tag":3446,"props":14146,"children":14147},{"style":3452},[14148],{"type":3168,"value":13949},{"type":3163,"tag":3446,"props":14150,"children":14151},{"style":3458},[14152],{"type":3168,"value":13981},{"type":3163,"tag":3446,"props":14154,"children":14155},{"style":3458},[14156],{"type":3168,"value":14157}," release\n",{"type":3163,"tag":14159,"props":14160,"children":14161},"style",{},[14162],{"type":3168,"value":14163},"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":3037,"searchDepth":3089,"depth":3089,"links":14165},[14166,14167,14168,14169,14172,14180,14181,14186,14187,14188,14189],{"id":3256,"depth":3089,"text":399},{"id":3374,"depth":3089,"text":3377},{"id":3415,"depth":3089,"text":3418},{"id":3556,"depth":3089,"text":3559,"children":14170},[14171],{"id":3568,"depth":3073,"text":3571},{"id":4650,"depth":3089,"text":4653,"children":14173},[14174,14175,14176,14177,14178,14179],{"id":4669,"depth":3073,"text":4672},{"id":5263,"depth":3073,"text":5266},{"id":6264,"depth":3073,"text":3290},{"id":6716,"depth":3073,"text":6719},{"id":6866,"depth":3073,"text":3299},{"id":10780,"depth":3073,"text":10783},{"id":11073,"depth":3089,"text":11076},{"id":11348,"depth":3089,"text":3270,"children":14182},[14183,14184],{"id":11519,"depth":3073,"text":11522},{"id":11647,"depth":3073,"text":14185},"\u003CAuthState> component",{"id":12368,"depth":3089,"text":12371},{"id":13392,"depth":3089,"text":29},{"id":13897,"depth":3089,"text":13900},{"id":13923,"depth":3089,"text":13926},{"v5":14191,"v4":14192,"v3":14193,"v2":14194},"5 (nightly)","4.5.2","3.21.11","2.18.1"]