[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f30r277ag21rfj":3,"module-auth-utils":3072,"versions":14230},[4,1132,2002,2866],{"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,919,1011,1048,1090],{"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,828,901,914],{"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},"CLI","%s · Nuxt CLI","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,820,824],{"title":757,"path":758,"stem":759,"titleTemplate":6},"Nuxt CLI","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Foverview","docs\u002F3.x\u002F4.api\u002F4.commands\u002F1.overview",{"title":761,"path":762,"stem":763,"titleTemplate":6},"nuxt add","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fadd",{"title":765,"path":766,"stem":767,"titleTemplate":6},"nuxt add-template","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fadd-template","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fadd-template",{"title":769,"path":770,"stem":771,"titleTemplate":6},"nuxt analyze","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":773,"path":774,"stem":775,"titleTemplate":6},"nuxt build","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":777,"path":778,"stem":779,"titleTemplate":6},"nuxt build-module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":781,"path":782,"stem":783,"titleTemplate":6},"nuxt cleanup","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":785,"path":786,"stem":787,"titleTemplate":6},"nuxt dev","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdev",{"title":789,"path":790,"stem":791,"titleTemplate":6},"nuxt devtools","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":793,"path":794,"stem":795,"titleTemplate":6},"nuxt generate","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":797,"path":798,"stem":799,"titleTemplate":6},"nuxt info","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finfo",{"title":801,"path":802,"stem":803,"titleTemplate":6},"create nuxt","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F3.x\u002F4.api\u002F4.commands\u002Finit",{"title":805,"path":806,"stem":807,"titleTemplate":6},"nuxt module","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":809,"path":810,"stem":811,"titleTemplate":6},"nuxt prepare","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":813,"path":814,"stem":815,"titleTemplate":6},"nuxt preview","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":817,"path":818,"stem":819,"titleTemplate":6},"nuxt test","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftest",{"title":821,"path":822,"stem":823,"titleTemplate":6},"nuxt typecheck","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F3.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":825,"path":826,"stem":827,"titleTemplate":6},"nuxt upgrade","\u002Fdocs\u002F3.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F3.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":415,"titleTemplate":829,"icon":830,"path":831,"stem":832,"children":833,"page":108},"%s · Nuxt Kit","i-lucide-package","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit","docs\u002F3.x\u002F4.api\u002F5.kit",[834,837,840,844,848,852,856,860,864,867,871,875,878,881,885,889,893,897],{"title":276,"path":835,"stem":836,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F3.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":403,"path":838,"stem":839,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":841,"path":842,"stem":843,"titleTemplate":6},"Templates","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F3.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":845,"path":846,"stem":847,"titleTemplate":6},"Nitro","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F3.x\u002F4.api\u002F5.kit\u002F11.nitro",{"title":849,"path":850,"stem":851,"titleTemplate":6},"Resolving","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F3.x\u002F4.api\u002F5.kit\u002F12.resolving",{"title":853,"path":854,"stem":855,"titleTemplate":6},"Logging","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F3.x\u002F4.api\u002F5.kit\u002F13.logging",{"title":857,"path":858,"stem":859,"titleTemplate":6},"Builder","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F3.x\u002F4.api\u002F5.kit\u002F14.builder",{"title":861,"path":862,"stem":863,"titleTemplate":6},"Examples","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F3.x\u002F4.api\u002F5.kit\u002F15.examples",{"title":84,"path":865,"stem":866,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F3.x\u002F4.api\u002F5.kit\u002F16.layers",{"title":868,"path":869,"stem":870,"titleTemplate":6},"Programmatic Usage","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F3.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":872,"path":873,"stem":874,"titleTemplate":6},"Compatibility","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F3.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":876,"stem":877,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F3.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":438,"path":879,"stem":880,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F3.x\u002F4.api\u002F5.kit\u002F5.components",{"title":882,"path":883,"stem":884,"titleTemplate":6},"Context","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F3.x\u002F4.api\u002F5.kit\u002F6.context",{"title":886,"path":887,"stem":888,"titleTemplate":6},"Pages","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F3.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":890,"path":891,"stem":892,"titleTemplate":6},"Layout","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F3.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":894,"path":895,"stem":896,"titleTemplate":6},"Head","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.head",{"title":898,"path":899,"stem":900,"titleTemplate":6},"Plugins","\u002Fdocs\u002F3.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F3.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":902,"titleTemplate":6,"icon":903,"path":904,"stem":905,"children":906,"page":108},"Advanced","i-lucide-brain","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced","docs\u002F3.x\u002F4.api\u002F6.advanced",[907,910],{"title":411,"path":908,"stem":909,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":911,"path":912,"stem":913,"titleTemplate":6},"Import meta","\u002Fdocs\u002F3.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F3.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":915,"path":916,"stem":917,"titleTemplate":918,"icon":32},"Nuxt Configuration","\u002Fdocs\u002F3.x\u002Fapi\u002Fnuxt-config","docs\u002F3.x\u002F4.api\u002F6.nuxt-config","%s",{"title":861,"titleTemplate":920,"icon":921,"path":922,"stem":923,"children":924,"page":108},"%s · Nuxt Examples","i-lucide-app-window-mac","\u002Fdocs\u002F3.x\u002Fexamples","docs\u002F3.x\u002F4.examples",[925,929,951,966,1002],{"title":926,"path":927,"stem":928,"titleTemplate":6},"Hello World","\u002Fdocs\u002F3.x\u002Fexamples\u002Fhello-world","docs\u002F3.x\u002F4.examples\u002F0.hello-world",{"title":399,"path":930,"stem":931,"children":932,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures","docs\u002F3.x\u002F4.examples\u002F1.features",[933,937,940,943,947],{"title":934,"path":935,"stem":936,"titleTemplate":6},"Auto Imports","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F3.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":938,"stem":939,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F3.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":941,"stem":942,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F3.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":944,"path":945,"stem":946,"titleTemplate":6},"Meta Tags","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F3.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":948,"path":949,"stem":950,"titleTemplate":6},"Layouts","\u002Fdocs\u002F3.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F3.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":952,"stem":953,"children":954,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting","docs\u002F3.x\u002F4.examples\u002F2.routing",[955,959,962],{"title":956,"path":957,"stem":958,"titleTemplate":6},"Middleware","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":886,"path":960,"stem":961,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":963,"path":964,"stem":965,"titleTemplate":6},"Universal Router","\u002Fdocs\u002F3.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F3.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":902,"path":967,"stem":968,"children":969,"page":108},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced","docs\u002F3.x\u002F4.examples\u002F4.advanced",[970,973,976,980,984,988,992,995,998],{"title":84,"path":971,"stem":972,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":974,"stem":975,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":977,"path":978,"stem":979,"titleTemplate":6},"JSX \u002F TSX","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":981,"path":982,"stem":983,"titleTemplate":6},"Locale","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":985,"path":986,"stem":987,"titleTemplate":6},"Module Extend Pages","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":989,"path":990,"stem":991,"titleTemplate":6},"Teleport","\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":993,"stem":994,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":523,"path":996,"stem":997,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F3.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":999,"path":1000,"stem":1001,"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":1003,"path":1004,"stem":1005,"children":1006,"page":108},"Experimental","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental","docs\u002F3.x\u002F4.examples\u002F7.experimental",[1007],{"title":1008,"path":1009,"stem":1010,"titleTemplate":6},"WASM","\u002Fdocs\u002F3.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F3.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1012,"titleTemplate":1013,"icon":1014,"path":1015,"stem":1016,"children":1017,"page":108},"Community","%s · Nuxt Community","i-lucide-messages-square","\u002Fdocs\u002F3.x\u002Fcommunity","docs\u002F3.x\u002F5.community",[1018,1023,1028,1033,1038,1043],{"title":1019,"path":1020,"stem":1021,"titleTemplate":6,"icon":1022},"Getting Help","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fgetting-help","docs\u002F3.x\u002F5.community\u002F2.getting-help","i-lucide-life-buoy",{"title":1024,"path":1025,"stem":1026,"titleTemplate":6,"icon":1027},"Reporting Bugs","\u002Fdocs\u002F3.x\u002Fcommunity\u002Freporting-bugs","docs\u002F3.x\u002F5.community\u002F3.reporting-bugs","i-lucide-bug",{"title":1029,"path":1030,"stem":1031,"titleTemplate":6,"icon":1032},"Contribution","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fcontribution","docs\u002F3.x\u002F5.community\u002F4.contribution","i-lucide-git-pull-request",{"title":1034,"path":1035,"stem":1036,"titleTemplate":6,"icon":1037},"Framework","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fframework-contribution","docs\u002F3.x\u002F5.community\u002F5.framework-contribution","i-lucide-github",{"title":1039,"path":1040,"stem":1041,"titleTemplate":6,"icon":1042},"Roadmap","\u002Fdocs\u002F3.x\u002Fcommunity\u002Froadmap","docs\u002F3.x\u002F5.community\u002F6.roadmap","i-lucide-map",{"title":1044,"path":1045,"stem":1046,"titleTemplate":6,"icon":1047},"Releases","\u002Fdocs\u002F3.x\u002Fcommunity\u002Fchangelog","docs\u002F3.x\u002F5.community\u002F7.changelog","i-lucide-bell-dot",{"title":1049,"titleTemplate":1050,"icon":1051,"path":1052,"stem":1053,"children":1054,"page":108},"Migrate to Nuxt Bridge","Migrate to Nuxt Bridge: %s","i-lucide-ship","\u002Fdocs\u002F3.x\u002Fbridge","docs\u002F3.x\u002F6.bridge",[1055,1059,1062,1065,1069,1073,1077,1080,1083,1086],{"title":1056,"path":1057,"stem":1058,"titleTemplate":6},"Overview","\u002Fdocs\u002F3.x\u002Fbridge\u002Foverview","docs\u002F3.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1060,"stem":1061,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fconfiguration","docs\u002F3.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1063,"stem":1064,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Ftypescript","docs\u002F3.x\u002F6.bridge\u002F2.typescript",{"title":1066,"path":1067,"stem":1068,"titleTemplate":6},"Legacy Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F3.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1070,"path":1071,"stem":1072,"titleTemplate":6},"Plugins and Middleware","\u002Fdocs\u002F3.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F3.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1074,"path":1075,"stem":1076,"titleTemplate":6},"New Composition API","\u002Fdocs\u002F3.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F3.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":944,"path":1078,"stem":1079,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fmeta","docs\u002F3.x\u002F6.bridge\u002F6.meta",{"title":403,"path":1081,"stem":1082,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fruntime-config","docs\u002F3.x\u002F6.bridge\u002F7.runtime-config",{"title":845,"path":1084,"stem":1085,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fbridge\u002Fnitro","docs\u002F3.x\u002F6.bridge\u002F8.nitro",{"title":1087,"path":1088,"stem":1089,"titleTemplate":6},"Vite","\u002Fdocs\u002F3.x\u002Fbridge\u002Fvite","docs\u002F3.x\u002F6.bridge\u002F9.vite",{"title":1091,"titleTemplate":1092,"icon":107,"path":1093,"stem":1094,"children":1095,"page":108},"Migrate to Nuxt 3","Migrate to Nuxt 3: %s","\u002Fdocs\u002F3.x\u002Fmigration","docs\u002F3.x\u002F7.migration",[1096,1099,1103,1106,1109,1112,1115,1118,1121,1125,1129],{"title":1056,"path":1097,"stem":1098,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Foverview","docs\u002F3.x\u002F7.migration\u002F1.overview",{"title":1100,"path":1101,"stem":1102,"titleTemplate":6},"Build Tooling","\u002Fdocs\u002F3.x\u002Fmigration\u002Fbundling","docs\u002F3.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1104,"stem":1105,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fserver","docs\u002F3.x\u002F7.migration\u002F11.server",{"title":29,"path":1107,"stem":1108,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fconfiguration","docs\u002F3.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1110,"stem":1111,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmodule-authors","docs\u002F3.x\u002F7.migration\u002F20.module-authors",{"title":934,"path":1113,"stem":1114,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fauto-imports","docs\u002F3.x\u002F7.migration\u002F3.auto-imports",{"title":944,"path":1116,"stem":1117,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fmeta","docs\u002F3.x\u002F7.migration\u002F4.meta",{"title":1070,"path":1119,"stem":1120,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F3.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1122,"path":1123,"stem":1124,"titleTemplate":6},"Pages and Layouts","\u002Fdocs\u002F3.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F3.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1126,"path":1127,"stem":1128,"titleTemplate":6},"Component Options","\u002Fdocs\u002F3.x\u002Fmigration\u002Fcomponent-options","docs\u002F3.x\u002F7.migration\u002F7.component-options",{"title":403,"path":1130,"stem":1131,"titleTemplate":6},"\u002Fdocs\u002F3.x\u002Fmigration\u002Fruntime-config","docs\u002F3.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":1133,"stem":1134,"children":1135,"page":108},"\u002Fdocs\u002F4.x","docs\u002F4.x",[1136,1194,1293,1444,1832,1909,1931,1965],{"title":12,"titleTemplate":13,"icon":14,"path":1137,"stem":1138,"children":1139,"page":108},"\u002Fdocs\u002F4.x\u002Fgetting-started","docs\u002F4.x\u002F1.getting-started",[1140,1143,1146,1149,1152,1155,1158,1161,1164,1167,1170,1173,1176,1179,1182,1185,1188,1191],{"title":19,"path":1141,"stem":1142,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fintroduction","docs\u002F4.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":1144,"stem":1145,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Finstallation","docs\u002F4.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":1147,"stem":1148,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fconfiguration","docs\u002F4.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":1150,"stem":1151,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fviews","docs\u002F4.x\u002F1.getting-started\u002F04.views",{"title":39,"path":1153,"stem":1154,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fassets","docs\u002F4.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":1156,"stem":1157,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstyling","docs\u002F4.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":1159,"stem":1160,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Frouting","docs\u002F4.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":1162,"stem":1163,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fseo-meta","docs\u002F4.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":1165,"stem":1166,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftransitions","docs\u002F4.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":1168,"stem":1169,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F4.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":1171,"stem":1172,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fstate-management","docs\u002F4.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":1174,"stem":1175,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ferror-handling","docs\u002F4.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":1177,"stem":1178,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fserver","docs\u002F4.x\u002F1.getting-started\u002F13.server",{"title":84,"path":1180,"stem":1181,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Flayers","docs\u002F4.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":1183,"stem":1184,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fprerendering","docs\u002F4.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":1186,"stem":1187,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Fdeployment","docs\u002F4.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":1189,"stem":1190,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F4.x\u002Fgetting-started\u002Ftesting","docs\u002F4.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":1192,"stem":1193,"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":1195,"stem":1196,"children":1197,"page":108},"\u002Fdocs\u002F4.x\u002Fdirectory-structure","docs\u002F4.x\u002F2.directory-structure",[1198,1201,1204,1246,1249,1252,1255,1258,1261,1264,1267,1272,1275,1278,1281,1284,1287,1290],{"title":117,"path":1199,"stem":1200,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F4.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":1202,"stem":1203,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Foutput","docs\u002F4.x\u002F2.directory-structure\u002F0.output",{"title":1205,"titleTemplate":111,"head":1206,"defaultOpen":1208,"icon":1209,"path":1210,"stem":1211,"children":1212,"page":108},"app",{"title":1207},"app\u002F",true,"i-vscode-icons-folder-type-app","\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app",[1213,1216,1219,1222,1225,1228,1231,1234,1237,1240,1243],{"title":127,"path":1214,"stem":1215,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":1217,"stem":1218,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":1220,"stem":1221,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":1223,"stem":1224,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":1226,"stem":1227,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":1229,"stem":1230,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":1232,"stem":1233,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":1235,"stem":1236,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":1238,"stem":1239,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":1241,"stem":1242,"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":1244,"stem":1245,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F4.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":1247,"stem":1248,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fcontent","docs\u002F4.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":1250,"stem":1251,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Flayers","docs\u002F4.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":1253,"stem":1254,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fmodules","docs\u002F4.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":1256,"stem":1257,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F4.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":1259,"stem":1260,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpublic","docs\u002F4.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":1262,"stem":1263,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fserver","docs\u002F4.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":1265,"stem":1266,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fshared","docs\u002F4.x\u002F2.directory-structure\u002F1.shared",{"title":1268,"path":1269,"stem":1270,"titleTemplate":6,"icon":1271},"test","\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Ftest","docs\u002F4.x\u002F2.directory-structure\u002F1.test","i-vscode-icons-folder-type-test",{"title":200,"path":1273,"stem":1274,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fenv","docs\u002F4.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":1276,"stem":1277,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F4.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":1279,"stem":1280,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":1282,"stem":1283,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F4.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":1285,"stem":1286,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F4.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":1288,"stem":1289,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F4.x\u002Fdirectory-structure\u002Fpackage","docs\u002F4.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":1291,"stem":1292,"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":1294,"stem":1295,"children":1296,"page":108},"\u002Fdocs\u002F4.x\u002Fguide","docs\u002F4.x\u002F3.guide",[1297,1326,1348,1358,1386,1406],{"title":253,"titleTemplate":254,"icon":255,"path":1298,"stem":1299,"children":1300,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts","docs\u002F4.x\u002F3.guide\u002F1.concepts",[1301,1304,1307,1310,1313,1316,1320,1323],{"title":260,"path":1302,"stem":1303,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":1305,"stem":1306,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":1308,"stem":1309,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":1311,"stem":1312,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":1314,"stem":1315,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":1317,"path":1318,"stem":1319,"titleTemplate":6},"Server Components","\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Fserver-components","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F6.server-components",{"title":280,"path":1321,"stem":1322,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F4.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":1324,"stem":1325,"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":1327,"stem":1328,"children":1329,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F2.best-practices",[1330,1334,1338,1342,1345],{"title":1331,"path":1332,"stem":1333,"titleTemplate":6},"Accessibility","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Faccessibility","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Faccessibility",{"title":1335,"path":1336,"stem":1337,"titleTemplate":6},"Dev Containers","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fdevcontainers","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fdevcontainers",{"title":1339,"path":1340,"stem":1341,"titleTemplate":6},"Nuxt and Hydration","\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":1343,"stem":1344,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F4.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":1346,"stem":1347,"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":1349,"stem":1350,"children":1351,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai","docs\u002F4.x\u002F3.guide\u002F3.ai",[1352,1355],{"title":314,"path":1353,"stem":1354,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F4.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":1356,"stem":1357,"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":1359,"stem":1360,"children":1361,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules","docs\u002F4.x\u002F3.guide\u002F4.modules",[1362,1365,1368,1371,1374,1377,1380,1383],{"title":329,"path":1363,"stem":1364,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":1366,"stem":1367,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":1369,"stem":1370,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":1372,"stem":1373,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F4.module-dependencies",{"title":345,"path":1375,"stem":1376,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F5.recipes-advanced",{"title":349,"path":1378,"stem":1379,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F6.testing",{"title":353,"path":1381,"stem":1382,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F7.best-practices",{"title":357,"path":1384,"stem":1385,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F4.x\u002F3.guide\u002F4.modules\u002F8.ecosystem",{"title":361,"titleTemplate":362,"icon":363,"path":1387,"stem":1388,"children":1389,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes","docs\u002F4.x\u002F3.guide\u002F5.recipes",[1390,1393,1396,1399,1402],{"title":368,"path":1391,"stem":1392,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":372,"path":1394,"stem":1395,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":376,"path":1397,"stem":1398,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":380,"path":1400,"stem":1401,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F4.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":1403,"path":1404,"stem":1405,"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":1407,"stem":1408,"children":1409,"page":108},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further","docs\u002F4.x\u002F3.guide\u002F6.going-further",[1410,1413,1416,1419,1422,1425,1428,1431,1434,1437,1441],{"title":391,"path":1411,"stem":1412,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":395,"path":1414,"stem":1415,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":399,"path":1417,"stem":1418,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":403,"path":1420,"stem":1421,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":407,"path":1423,"stem":1424,"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":1426,"stem":1427,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":415,"path":1429,"stem":1430,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":419,"path":1432,"stem":1433,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":423,"path":1435,"stem":1436,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F4.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":1438,"path":1439,"stem":1440,"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":1442,"stem":1443,"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":1445,"stem":1446,"children":1447,"page":108},"\u002Fdocs\u002F4.x\u002Fapi","docs\u002F4.x\u002F4.api",[1448,1501,1608,1699,1757,1819,1829],{"title":438,"titleTemplate":439,"icon":324,"path":1449,"stem":1450,"children":1451,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F1.components",[1452,1455,1458,1461,1464,1467,1470,1473,1477,1480,1483,1486,1489,1492,1495,1498],{"title":444,"path":1453,"stem":1454,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":448,"path":1456,"stem":1457,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":452,"path":1459,"stem":1460,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F4.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":456,"path":1462,"stem":1463,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F4.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":460,"path":1465,"stem":1466,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F4.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":464,"path":1468,"stem":1469,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":468,"path":1471,"stem":1472,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F4.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1474,"path":1475,"stem":1476,"titleTemplate":6},"\u003CNuxtAnnouncer>","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F4.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":472,"path":1478,"stem":1479,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F4.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":476,"path":1481,"stem":1482,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F4.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":480,"path":1484,"stem":1485,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F4.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":484,"path":1487,"stem":1488,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F4.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":488,"path":1490,"stem":1491,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F4.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":492,"path":1493,"stem":1494,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F4.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":496,"path":1496,"stem":1497,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F4.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":500,"path":1499,"stem":1500,"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":1502,"stem":1503,"children":1504,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables","docs\u002F4.x\u002F4.api\u002F2.composables",[1505,1509,1513,1516,1520,1523,1526,1529,1532,1535,1538,1541,1544,1548,1551,1554,1557,1560,1563,1566,1569,1572,1575,1578,1581,1584,1587,1590,1593,1596,1599,1602,1605],{"title":1506,"path":1507,"stem":1508,"titleTemplate":6},"createUseAsyncData","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1510,"path":1511,"stem":1512,"titleTemplate":6},"createUseFetch","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":511,"path":1514,"stem":1515,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1517,"path":1518,"stem":1519,"titleTemplate":6},"useAnnouncer","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":515,"path":1521,"stem":1522,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":519,"path":1524,"stem":1525,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":523,"path":1527,"stem":1528,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":527,"path":1530,"stem":1531,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":531,"path":1533,"stem":1534,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":535,"path":1536,"stem":1537,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":539,"path":1539,"stem":1540,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":543,"path":1542,"stem":1543,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":1545,"path":1546,"stem":1547,"titleTemplate":6},"useLayout","\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-layout","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-layout",{"title":547,"path":1549,"stem":1550,"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":1552,"stem":1553,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":555,"path":1555,"stem":1556,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":559,"path":1558,"stem":1559,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":563,"path":1561,"stem":1562,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":567,"path":1564,"stem":1565,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":571,"path":1567,"stem":1568,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":575,"path":1570,"stem":1571,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":579,"path":1573,"stem":1574,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":583,"path":1576,"stem":1577,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":587,"path":1579,"stem":1580,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":591,"path":1582,"stem":1583,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":595,"path":1585,"stem":1586,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":599,"path":1588,"stem":1589,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":603,"path":1591,"stem":1592,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":607,"path":1594,"stem":1595,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":611,"path":1597,"stem":1598,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":615,"path":1600,"stem":1601,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F4.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":619,"path":1603,"stem":1604,"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":1606,"stem":1607,"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":1609,"stem":1610,"children":1611,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils","docs\u002F4.x\u002F4.api\u002F3.utils",[1612,1615,1618,1621,1624,1627,1630,1633,1636,1639,1642,1645,1648,1651,1654,1657,1660,1663,1666,1669,1672,1675,1678,1681,1684,1687,1690,1693,1696],{"title":634,"path":1613,"stem":1614,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F4.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":638,"path":1616,"stem":1617,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":642,"path":1619,"stem":1620,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":646,"path":1622,"stem":1623,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":650,"path":1625,"stem":1626,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":654,"path":1628,"stem":1629,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":658,"path":1631,"stem":1632,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":662,"path":1634,"stem":1635,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":666,"path":1637,"stem":1638,"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":1640,"stem":1641,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":674,"path":1643,"stem":1644,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":678,"path":1646,"stem":1647,"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":1649,"stem":1650,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":686,"path":1652,"stem":1653,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":690,"path":1655,"stem":1656,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":694,"path":1658,"stem":1659,"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":1661,"stem":1662,"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":1664,"stem":1665,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":706,"path":1667,"stem":1668,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":710,"path":1670,"stem":1671,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":714,"path":1673,"stem":1674,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":718,"path":1676,"stem":1677,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":722,"path":1679,"stem":1680,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":726,"path":1682,"stem":1683,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F4.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":730,"path":1685,"stem":1686,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F4.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":734,"path":1688,"stem":1689,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":738,"path":1691,"stem":1692,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":742,"path":1694,"stem":1695,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F4.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":746,"path":1697,"stem":1698,"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":1700,"stem":1701,"children":1702,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands","docs\u002F4.x\u002F4.api\u002F4.commands",[1703,1706,1709,1712,1715,1718,1721,1724,1727,1730,1733,1736,1739,1742,1745,1748,1751,1754],{"title":757,"path":1704,"stem":1705,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Foverview","docs\u002F4.x\u002F4.api\u002F4.commands\u002F1.overview",{"title":761,"path":1707,"stem":1708,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fadd",{"title":765,"path":1710,"stem":1711,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fadd-template","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fadd-template",{"title":769,"path":1713,"stem":1714,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":773,"path":1716,"stem":1717,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":777,"path":1719,"stem":1720,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":781,"path":1722,"stem":1723,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":785,"path":1725,"stem":1726,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdev",{"title":789,"path":1728,"stem":1729,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":793,"path":1731,"stem":1732,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":797,"path":1734,"stem":1735,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finfo",{"title":801,"path":1737,"stem":1738,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F4.x\u002F4.api\u002F4.commands\u002Finit",{"title":805,"path":1740,"stem":1741,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":809,"path":1743,"stem":1744,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":813,"path":1746,"stem":1747,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":817,"path":1749,"stem":1750,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftest",{"title":821,"path":1752,"stem":1753,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F4.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":825,"path":1755,"stem":1756,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F4.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":415,"titleTemplate":829,"icon":830,"path":1758,"stem":1759,"children":1760,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit","docs\u002F4.x\u002F4.api\u002F5.kit",[1761,1764,1767,1770,1774,1777,1780,1783,1786,1789,1792,1795,1798,1801,1804,1807,1810,1813,1816],{"title":276,"path":1762,"stem":1763,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F4.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":403,"path":1765,"stem":1766,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":841,"path":1768,"stem":1769,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F4.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":1771,"path":1772,"stem":1773,"titleTemplate":6},"App Config","\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fapp-config","docs\u002F4.x\u002F4.api\u002F5.kit\u002F11.app-config",{"title":845,"path":1775,"stem":1776,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F4.x\u002F4.api\u002F5.kit\u002F12.nitro",{"title":849,"path":1778,"stem":1779,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F4.x\u002F4.api\u002F5.kit\u002F13.resolving",{"title":853,"path":1781,"stem":1782,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F4.x\u002F4.api\u002F5.kit\u002F14.logging",{"title":857,"path":1784,"stem":1785,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F4.x\u002F4.api\u002F5.kit\u002F15.builder",{"title":861,"path":1787,"stem":1788,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F4.x\u002F4.api\u002F5.kit\u002F16.examples",{"title":84,"path":1790,"stem":1791,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F4.x\u002F4.api\u002F5.kit\u002F17.layers",{"title":868,"path":1793,"stem":1794,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F4.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":872,"path":1796,"stem":1797,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F4.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":1799,"stem":1800,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F4.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":438,"path":1802,"stem":1803,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F4.x\u002F4.api\u002F5.kit\u002F5.components",{"title":882,"path":1805,"stem":1806,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F4.x\u002F4.api\u002F5.kit\u002F6.context",{"title":886,"path":1808,"stem":1809,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F4.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":890,"path":1811,"stem":1812,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F4.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":894,"path":1814,"stem":1815,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.head",{"title":898,"path":1817,"stem":1818,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F4.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":902,"titleTemplate":6,"icon":903,"path":1820,"stem":1821,"children":1822,"page":108},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced","docs\u002F4.x\u002F4.api\u002F6.advanced",[1823,1826],{"title":411,"path":1824,"stem":1825,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":911,"path":1827,"stem":1828,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F4.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":915,"path":1830,"stem":1831,"titleTemplate":918,"icon":32},"\u002Fdocs\u002F4.x\u002Fapi\u002Fnuxt-config","docs\u002F4.x\u002F4.api\u002F6.nuxt-config",{"title":861,"titleTemplate":920,"icon":921,"path":1833,"stem":1834,"children":1835,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples","docs\u002F4.x\u002F4.examples",[1836,1839,1858,1871,1902],{"title":926,"path":1837,"stem":1838,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fhello-world","docs\u002F4.x\u002F4.examples\u002F0.hello-world",{"title":399,"path":1840,"stem":1841,"children":1842,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures","docs\u002F4.x\u002F4.examples\u002F1.features",[1843,1846,1849,1852,1855],{"title":934,"path":1844,"stem":1845,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F4.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":1847,"stem":1848,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F4.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":1850,"stem":1851,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F4.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":944,"path":1853,"stem":1854,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F4.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":948,"path":1856,"stem":1857,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F4.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":1859,"stem":1860,"children":1861,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting","docs\u002F4.x\u002F4.examples\u002F2.routing",[1862,1865,1868],{"title":956,"path":1863,"stem":1864,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":886,"path":1866,"stem":1867,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":963,"path":1869,"stem":1870,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F4.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":902,"path":1872,"stem":1873,"children":1874,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced","docs\u002F4.x\u002F4.examples\u002F4.advanced",[1875,1878,1881,1884,1887,1890,1893,1896,1899],{"title":84,"path":1876,"stem":1877,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":1879,"stem":1880,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":977,"path":1882,"stem":1883,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":981,"path":1885,"stem":1886,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":985,"path":1888,"stem":1889,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":989,"path":1891,"stem":1892,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":1894,"stem":1895,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":523,"path":1897,"stem":1898,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":999,"path":1900,"stem":1901,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F4.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":1003,"path":1903,"stem":1904,"children":1905,"page":108},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental","docs\u002F4.x\u002F4.examples\u002F7.experimental",[1906],{"title":1008,"path":1907,"stem":1908,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F4.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1012,"titleTemplate":1013,"icon":1014,"path":1910,"stem":1911,"children":1912,"page":108},"\u002Fdocs\u002F4.x\u002Fcommunity","docs\u002F4.x\u002F5.community",[1913,1916,1919,1922,1925,1928],{"title":1019,"path":1914,"stem":1915,"titleTemplate":6,"icon":1022},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fgetting-help","docs\u002F4.x\u002F5.community\u002F2.getting-help",{"title":1024,"path":1917,"stem":1918,"titleTemplate":6,"icon":1027},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Freporting-bugs","docs\u002F4.x\u002F5.community\u002F3.reporting-bugs",{"title":1029,"path":1920,"stem":1921,"titleTemplate":6,"icon":1032},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fcontribution","docs\u002F4.x\u002F5.community\u002F4.contribution",{"title":1034,"path":1923,"stem":1924,"titleTemplate":6,"icon":1037},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fframework-contribution","docs\u002F4.x\u002F5.community\u002F5.framework-contribution",{"title":1039,"path":1926,"stem":1927,"titleTemplate":6,"icon":1042},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Froadmap","docs\u002F4.x\u002F5.community\u002F6.roadmap",{"title":1044,"path":1929,"stem":1930,"titleTemplate":6,"icon":1047},"\u002Fdocs\u002F4.x\u002Fcommunity\u002Fchangelog","docs\u002F4.x\u002F5.community\u002F7.changelog",{"title":1049,"titleTemplate":1050,"icon":1051,"path":1932,"stem":1933,"children":1934,"page":108},"\u002Fdocs\u002F4.x\u002Fbridge","docs\u002F4.x\u002F6.bridge",[1935,1938,1941,1944,1947,1950,1953,1956,1959,1962],{"title":1056,"path":1936,"stem":1937,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Foverview","docs\u002F4.x\u002F6.bridge\u002F1.overview",{"title":29,"path":1939,"stem":1940,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fconfiguration","docs\u002F4.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":1942,"stem":1943,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Ftypescript","docs\u002F4.x\u002F6.bridge\u002F2.typescript",{"title":1066,"path":1945,"stem":1946,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F4.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1070,"path":1948,"stem":1949,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F4.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1074,"path":1951,"stem":1952,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F4.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":944,"path":1954,"stem":1955,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fmeta","docs\u002F4.x\u002F6.bridge\u002F6.meta",{"title":403,"path":1957,"stem":1958,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fruntime-config","docs\u002F4.x\u002F6.bridge\u002F7.runtime-config",{"title":845,"path":1960,"stem":1961,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fnitro","docs\u002F4.x\u002F6.bridge\u002F8.nitro",{"title":1087,"path":1963,"stem":1964,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fbridge\u002Fvite","docs\u002F4.x\u002F6.bridge\u002F9.vite",{"title":1091,"titleTemplate":1092,"icon":107,"path":1966,"stem":1967,"children":1968,"page":108},"\u002Fdocs\u002F4.x\u002Fmigration","docs\u002F4.x\u002F7.migration",[1969,1972,1975,1978,1981,1984,1987,1990,1993,1996,1999],{"title":1056,"path":1970,"stem":1971,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Foverview","docs\u002F4.x\u002F7.migration\u002F1.overview",{"title":1100,"path":1973,"stem":1974,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fbundling","docs\u002F4.x\u002F7.migration\u002F10.bundling",{"title":79,"path":1976,"stem":1977,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fserver","docs\u002F4.x\u002F7.migration\u002F11.server",{"title":29,"path":1979,"stem":1980,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fconfiguration","docs\u002F4.x\u002F7.migration\u002F2.configuration",{"title":276,"path":1982,"stem":1983,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmodule-authors","docs\u002F4.x\u002F7.migration\u002F20.module-authors",{"title":934,"path":1985,"stem":1986,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fauto-imports","docs\u002F4.x\u002F7.migration\u002F3.auto-imports",{"title":944,"path":1988,"stem":1989,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fmeta","docs\u002F4.x\u002F7.migration\u002F4.meta",{"title":1070,"path":1991,"stem":1992,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F4.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1122,"path":1994,"stem":1995,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F4.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1126,"path":1997,"stem":1998,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fcomponent-options","docs\u002F4.x\u002F7.migration\u002F7.component-options",{"title":403,"path":2000,"stem":2001,"titleTemplate":6},"\u002Fdocs\u002F4.x\u002Fmigration\u002Fruntime-config","docs\u002F4.x\u002F7.migration\u002F8.runtime-config",{"title":5,"titleTemplate":6,"icon":7,"path":2003,"stem":2004,"children":2005,"page":108},"\u002Fdocs\u002F5.x","docs\u002F5.x",[2006,2064,2157,2302,2696,2773,2795,2829],{"title":12,"titleTemplate":13,"icon":14,"path":2007,"stem":2008,"children":2009,"page":108},"\u002Fdocs\u002F5.x\u002Fgetting-started","docs\u002F5.x\u002F1.getting-started",[2010,2013,2016,2019,2022,2025,2028,2031,2034,2037,2040,2043,2046,2049,2052,2055,2058,2061],{"title":19,"path":2011,"stem":2012,"titleTemplate":6,"icon":22},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fintroduction","docs\u002F5.x\u002F1.getting-started\u002F01.introduction",{"title":24,"path":2014,"stem":2015,"titleTemplate":6,"icon":27},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Finstallation","docs\u002F5.x\u002F1.getting-started\u002F02.installation",{"title":29,"path":2017,"stem":2018,"titleTemplate":6,"icon":32},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fconfiguration","docs\u002F5.x\u002F1.getting-started\u002F03.configuration",{"title":34,"path":2020,"stem":2021,"titleTemplate":6,"icon":37},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fviews","docs\u002F5.x\u002F1.getting-started\u002F04.views",{"title":39,"path":2023,"stem":2024,"titleTemplate":6,"icon":42},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fassets","docs\u002F5.x\u002F1.getting-started\u002F05.assets",{"title":44,"path":2026,"stem":2027,"titleTemplate":6,"icon":47},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstyling","docs\u002F5.x\u002F1.getting-started\u002F06.styling",{"title":49,"path":2029,"stem":2030,"titleTemplate":6,"icon":52},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Frouting","docs\u002F5.x\u002F1.getting-started\u002F07.routing",{"title":54,"path":2032,"stem":2033,"titleTemplate":6,"icon":57},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fseo-meta","docs\u002F5.x\u002F1.getting-started\u002F08.seo-meta",{"title":59,"path":2035,"stem":2036,"titleTemplate":6,"icon":62},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftransitions","docs\u002F5.x\u002F1.getting-started\u002F09.transitions",{"title":64,"path":2038,"stem":2039,"titleTemplate":6,"icon":67},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdata-fetching","docs\u002F5.x\u002F1.getting-started\u002F10.data-fetching",{"title":69,"path":2041,"stem":2042,"titleTemplate":6,"icon":72},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fstate-management","docs\u002F5.x\u002F1.getting-started\u002F11.state-management",{"title":74,"path":2044,"stem":2045,"titleTemplate":6,"icon":77},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ferror-handling","docs\u002F5.x\u002F1.getting-started\u002F12.error-handling",{"title":79,"path":2047,"stem":2048,"titleTemplate":6,"icon":82},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fserver","docs\u002F5.x\u002F1.getting-started\u002F13.server",{"title":84,"path":2050,"stem":2051,"titleTemplate":6,"icon":87},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Flayers","docs\u002F5.x\u002F1.getting-started\u002F14.layers",{"title":89,"path":2053,"stem":2054,"titleTemplate":6,"icon":92},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fprerendering","docs\u002F5.x\u002F1.getting-started\u002F15.prerendering",{"title":94,"path":2056,"stem":2057,"titleTemplate":6,"icon":97},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Fdeployment","docs\u002F5.x\u002F1.getting-started\u002F16.deployment",{"title":99,"path":2059,"stem":2060,"titleTemplate":6,"icon":102},"\u002Fdocs\u002F5.x\u002Fgetting-started\u002Ftesting","docs\u002F5.x\u002F1.getting-started\u002F17.testing",{"title":104,"path":2062,"stem":2063,"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":2065,"stem":2066,"children":2067,"page":108},"\u002Fdocs\u002F5.x\u002Fdirectory-structure","docs\u002F5.x\u002F2.directory-structure",[2068,2071,2074,2112,2115,2118,2121,2124,2127,2130,2133,2136,2139,2142,2145,2148,2151,2154],{"title":117,"path":2069,"stem":2070,"titleTemplate":6,"icon":120},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt","docs\u002F5.x\u002F2.directory-structure\u002F0.nuxt",{"title":122,"path":2072,"stem":2073,"titleTemplate":6,"icon":125},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Foutput","docs\u002F5.x\u002F2.directory-structure\u002F0.output",{"title":1205,"titleTemplate":111,"head":2075,"defaultOpen":1208,"icon":1209,"path":2076,"stem":2077,"children":2078,"page":108},{"title":1207},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app",[2079,2082,2085,2088,2091,2094,2097,2100,2103,2106,2109],{"title":127,"path":2080,"stem":2081,"titleTemplate":6,"icon":130},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fassets","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.assets",{"title":132,"path":2083,"stem":2084,"titleTemplate":6,"icon":135},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomponents","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.components",{"title":137,"path":2086,"stem":2087,"titleTemplate":6,"icon":140},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fcomposables","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.composables",{"title":152,"path":2089,"stem":2090,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Flayouts","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.layouts",{"title":157,"path":2092,"stem":2093,"titleTemplate":6,"icon":160},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fmiddleware","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.middleware",{"title":171,"path":2095,"stem":2096,"titleTemplate":6,"icon":155},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fpages","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.pages",{"title":175,"path":2098,"stem":2099,"titleTemplate":6,"icon":178},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fplugins","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.plugins",{"title":195,"path":2101,"stem":2102,"titleTemplate":6,"icon":198},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Futils","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F1.utils",{"title":219,"path":2104,"stem":2105,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Fapp","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.app",{"title":224,"path":2107,"stem":2108,"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":2110,"stem":2111,"titleTemplate":6,"icon":222},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fapp\u002Ferror","docs\u002F5.x\u002F2.directory-structure\u002F1.app\u002F3.error",{"title":142,"path":2113,"stem":2114,"titleTemplate":6,"icon":145},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fcontent","docs\u002F5.x\u002F2.directory-structure\u002F1.content",{"title":147,"path":2116,"stem":2117,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Flayers","docs\u002F5.x\u002F2.directory-structure\u002F1.layers",{"title":162,"path":2119,"stem":2120,"titleTemplate":6,"icon":150},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fmodules","docs\u002F5.x\u002F2.directory-structure\u002F1.modules",{"title":166,"path":2122,"stem":2123,"titleTemplate":6,"icon":169},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnode_modules","docs\u002F5.x\u002F2.directory-structure\u002F1.node_modules",{"title":180,"path":2125,"stem":2126,"titleTemplate":6,"icon":183},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpublic","docs\u002F5.x\u002F2.directory-structure\u002F1.public",{"title":185,"path":2128,"stem":2129,"titleTemplate":6,"icon":188},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fserver","docs\u002F5.x\u002F2.directory-structure\u002F1.server",{"title":190,"path":2131,"stem":2132,"titleTemplate":6,"icon":193},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fshared","docs\u002F5.x\u002F2.directory-structure\u002F1.shared",{"title":1268,"path":2134,"stem":2135,"titleTemplate":6,"icon":1271},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Ftest","docs\u002F5.x\u002F2.directory-structure\u002F1.test",{"title":200,"path":2137,"stem":2138,"titleTemplate":6,"icon":203},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fenv","docs\u002F5.x\u002F2.directory-structure\u002F2.env",{"title":205,"path":2140,"stem":2141,"titleTemplate":6,"icon":208},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fgitignore","docs\u002F5.x\u002F2.directory-structure\u002F2.gitignore",{"title":210,"path":2143,"stem":2144,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtignore","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtignore",{"title":215,"path":2146,"stem":2147,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxtrc","docs\u002F5.x\u002F2.directory-structure\u002F2.nuxtrc",{"title":233,"path":2149,"stem":2150,"titleTemplate":6,"icon":213},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fnuxt-config","docs\u002F5.x\u002F2.directory-structure\u002F3.nuxt-config",{"title":237,"path":2152,"stem":2153,"titleTemplate":6,"icon":240},"\u002Fdocs\u002F5.x\u002Fdirectory-structure\u002Fpackage","docs\u002F5.x\u002F2.directory-structure\u002F3.package",{"title":242,"path":2155,"stem":2156,"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":2158,"stem":2159,"children":2160,"page":108},"\u002Fdocs\u002F5.x\u002Fguide","docs\u002F5.x\u002F3.guide",[2161,2189,2208,2218,2246,2265],{"title":253,"titleTemplate":254,"icon":255,"path":2162,"stem":2163,"children":2164,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts","docs\u002F5.x\u002F3.guide\u002F1.concepts",[2165,2168,2171,2174,2177,2180,2183,2186],{"title":260,"path":2166,"stem":2167,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Frendering","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F1.rendering",{"title":264,"path":2169,"stem":2170,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fnuxt-lifecycle","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F2.nuxt-lifecycle",{"title":268,"path":2172,"stem":2173,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fauto-imports","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F3.auto-imports",{"title":272,"path":2175,"stem":2176,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-engine","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F4.server-engine",{"title":276,"path":2178,"stem":2179,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F5.modules",{"title":1317,"path":2181,"stem":2182,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Fserver-components","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F6.server-components",{"title":280,"path":2184,"stem":2185,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fconcepts\u002Ftypescript","docs\u002F5.x\u002F3.guide\u002F1.concepts\u002F8.typescript",{"title":284,"path":2187,"stem":2188,"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":2190,"stem":2191,"children":2192,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F2.best-practices",[2193,2196,2199,2202,2205],{"title":1331,"path":2194,"stem":2195,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Faccessibility","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Faccessibility",{"title":1335,"path":2197,"stem":2198,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fdevcontainers","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fdevcontainers",{"title":1339,"path":2200,"stem":2201,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fhydration","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fhydration",{"title":299,"path":2203,"stem":2204,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fbest-practices\u002Fperformance","docs\u002F5.x\u002F3.guide\u002F2.best-practices\u002Fperformance",{"title":303,"path":2206,"stem":2207,"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":2209,"stem":2210,"children":2211,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai","docs\u002F5.x\u002F3.guide\u002F3.ai",[2212,2215],{"title":314,"path":2213,"stem":2214,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fai\u002Fmcp","docs\u002F5.x\u002F3.guide\u002F3.ai\u002F1.mcp",{"title":318,"path":2216,"stem":2217,"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":2219,"stem":2220,"children":2221,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules","docs\u002F5.x\u002F3.guide\u002F4.modules",[2222,2225,2228,2231,2234,2237,2240,2243],{"title":329,"path":2223,"stem":2224,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fgetting-started","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F1.getting-started",{"title":333,"path":2226,"stem":2227,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-anatomy","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F2.module-anatomy",{"title":337,"path":2229,"stem":2230,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-basics","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F3.recipes-basics",{"title":341,"path":2232,"stem":2233,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fmodule-dependencies","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F4.module-dependencies",{"title":345,"path":2235,"stem":2236,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Frecipes-advanced","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F5.recipes-advanced",{"title":349,"path":2238,"stem":2239,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Ftesting","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F6.testing",{"title":353,"path":2241,"stem":2242,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fbest-practices","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F7.best-practices",{"title":357,"path":2244,"stem":2245,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fmodules\u002Fecosystem","docs\u002F5.x\u002F3.guide\u002F4.modules\u002F8.ecosystem",{"title":361,"titleTemplate":362,"icon":363,"path":2247,"stem":2248,"children":2249,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes","docs\u002F5.x\u002F3.guide\u002F5.recipes",[2250,2253,2256,2259,2262],{"title":368,"path":2251,"stem":2252,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-routing","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F1.custom-routing",{"title":372,"path":2254,"stem":2255,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fvite-plugin","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F2.vite-plugin",{"title":376,"path":2257,"stem":2258,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fcustom-usefetch","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F3.custom-usefetch",{"title":380,"path":2260,"stem":2261,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Frecipes\u002Fsessions-and-authentication","docs\u002F5.x\u002F3.guide\u002F5.recipes\u002F4.sessions-and-authentication",{"title":1403,"path":2263,"stem":2264,"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":2266,"stem":2267,"children":2268,"page":108},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further","docs\u002F5.x\u002F3.guide\u002F6.going-further",[2269,2272,2275,2278,2281,2284,2287,2290,2293,2296,2299],{"title":391,"path":2270,"stem":2271,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fevents","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.events",{"title":395,"path":2273,"stem":2274,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fexperimental-features","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.experimental-features",{"title":399,"path":2276,"stem":2277,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Ffeatures","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F1.features",{"title":403,"path":2279,"stem":2280,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fruntime-config","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F10.runtime-config",{"title":407,"path":2282,"stem":2283,"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":2285,"stem":2286,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fhooks","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F2.hooks",{"title":415,"path":2288,"stem":2289,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fkit","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F4.kit",{"title":419,"path":2291,"stem":2292,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fnuxt-app","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F6.nuxt-app",{"title":423,"path":2294,"stem":2295,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Flayers","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F7.layers",{"title":1438,"path":2297,"stem":2298,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fguide\u002Fgoing-further\u002Fbuilders","docs\u002F5.x\u002F3.guide\u002F6.going-further\u002F8.builders",{"title":427,"path":2300,"stem":2301,"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":2303,"stem":2304,"children":2305,"page":108},"\u002Fdocs\u002F5.x\u002Fapi","docs\u002F5.x\u002F4.api",[2306,2358,2461,2552,2622,2683,2693],{"title":438,"titleTemplate":439,"icon":324,"path":2307,"stem":2308,"children":2309,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F1.components",[2310,2313,2316,2319,2322,2325,2328,2331,2334,2337,2340,2343,2346,2349,2352,2355],{"title":444,"path":2311,"stem":2312,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fclient-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.client-only",{"title":448,"path":2314,"stem":2315,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fdev-only","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.dev-only",{"title":452,"path":2317,"stem":2318,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-client-fallback","docs\u002F5.x\u002F4.api\u002F1.components\u002F1.nuxt-client-fallback",{"title":456,"path":2320,"stem":2321,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-picture","docs\u002F5.x\u002F4.api\u002F1.components\u002F10.nuxt-picture",{"title":460,"path":2323,"stem":2324,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fteleports","docs\u002F5.x\u002F4.api\u002F1.components\u002F11.teleports",{"title":464,"path":2326,"stem":2327,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-route-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F12.nuxt-route-announcer",{"title":468,"path":2329,"stem":2330,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-time","docs\u002F5.x\u002F4.api\u002F1.components\u002F13.nuxt-time",{"title":1474,"path":2332,"stem":2333,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-announcer","docs\u002F5.x\u002F4.api\u002F1.components\u002F14.nuxt-announcer",{"title":472,"path":2335,"stem":2336,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-page","docs\u002F5.x\u002F4.api\u002F1.components\u002F2.nuxt-page",{"title":476,"path":2338,"stem":2339,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-layout","docs\u002F5.x\u002F4.api\u002F1.components\u002F3.nuxt-layout",{"title":480,"path":2341,"stem":2342,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-link","docs\u002F5.x\u002F4.api\u002F1.components\u002F4.nuxt-link",{"title":484,"path":2344,"stem":2345,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-loading-indicator","docs\u002F5.x\u002F4.api\u002F1.components\u002F5.nuxt-loading-indicator",{"title":488,"path":2347,"stem":2348,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-error-boundary","docs\u002F5.x\u002F4.api\u002F1.components\u002F6.nuxt-error-boundary",{"title":492,"path":2350,"stem":2351,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-welcome","docs\u002F5.x\u002F4.api\u002F1.components\u002F7.nuxt-welcome",{"title":496,"path":2353,"stem":2354,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomponents\u002Fnuxt-island","docs\u002F5.x\u002F4.api\u002F1.components\u002F8.nuxt-island",{"title":500,"path":2356,"stem":2357,"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":2359,"stem":2360,"children":2361,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables","docs\u002F5.x\u002F4.api\u002F2.composables",[2362,2365,2368,2371,2374,2377,2380,2383,2386,2389,2392,2395,2398,2401,2404,2407,2410,2413,2416,2419,2422,2425,2428,2431,2434,2437,2440,2443,2446,2449,2452,2455,2458],{"title":1506,"path":2363,"stem":2364,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-async-data",{"title":1510,"path":2366,"stem":2367,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fcreate-use-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fcreate-use-fetch",{"title":511,"path":2369,"stem":2370,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fon-prehydrate","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fon-prehydrate",{"title":1517,"path":2372,"stem":2373,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-announcer",{"title":515,"path":2375,"stem":2376,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-app-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-app-config",{"title":519,"path":2378,"stem":2379,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-async-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-async-data",{"title":523,"path":2381,"stem":2382,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-cookie","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-cookie",{"title":527,"path":2384,"stem":2385,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-error","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-error",{"title":531,"path":2387,"stem":2388,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-fetch",{"title":535,"path":2390,"stem":2391,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head",{"title":539,"path":2393,"stem":2394,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-head-safe","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-head-safe",{"title":543,"path":2396,"stem":2397,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-hydration","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-hydration",{"title":1545,"path":2399,"stem":2400,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-layout","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-layout",{"title":547,"path":2402,"stem":2403,"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":2405,"stem":2406,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-lazy-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-lazy-fetch",{"title":555,"path":2408,"stem":2409,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-loading-indicator","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-loading-indicator",{"title":559,"path":2411,"stem":2412,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-app",{"title":563,"path":2414,"stem":2415,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-nuxt-data","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-nuxt-data",{"title":567,"path":2417,"stem":2418,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-preview-mode","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-preview-mode",{"title":571,"path":2420,"stem":2421,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-event","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-event",{"title":575,"path":2423,"stem":2424,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-fetch","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-fetch",{"title":579,"path":2426,"stem":2427,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-header",{"title":583,"path":2429,"stem":2430,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-headers","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-headers",{"title":587,"path":2432,"stem":2433,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-request-url","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-request-url",{"title":591,"path":2435,"stem":2436,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-response-header","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-response-header",{"title":595,"path":2438,"stem":2439,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route",{"title":599,"path":2441,"stem":2442,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-route-announcer","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-route-announcer",{"title":603,"path":2444,"stem":2445,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-router","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-router",{"title":607,"path":2447,"stem":2448,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-config","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-config",{"title":611,"path":2450,"stem":2451,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-runtime-hook","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-runtime-hook",{"title":615,"path":2453,"stem":2454,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcomposables\u002Fuse-seo-meta","docs\u002F5.x\u002F4.api\u002F2.composables\u002Fuse-seo-meta",{"title":619,"path":2456,"stem":2457,"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":2459,"stem":2460,"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":2462,"stem":2463,"children":2464,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils","docs\u002F5.x\u002F4.api\u002F3.utils",[2465,2468,2471,2474,2477,2480,2483,2486,2489,2492,2495,2498,2501,2504,2507,2510,2513,2516,2519,2522,2525,2528,2531,2534,2537,2540,2543,2546,2549],{"title":634,"path":2466,"stem":2467,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdollarfetch","docs\u002F5.x\u002F4.api\u002F3.utils\u002F$fetch",{"title":638,"path":2469,"stem":2470,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fabort-navigation","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fabort-navigation",{"title":642,"path":2472,"stem":2473,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fadd-route-middleware","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fadd-route-middleware",{"title":646,"path":2475,"stem":2476,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcall-once","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcall-once",{"title":650,"path":2478,"stem":2479,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-error",{"title":654,"path":2481,"stem":2482,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-data",{"title":658,"path":2484,"stem":2485,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fclear-nuxt-state","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fclear-nuxt-state",{"title":662,"path":2487,"stem":2488,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fcreate-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fcreate-error",{"title":666,"path":2490,"stem":2491,"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":2493,"stem":2494,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-component","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-component",{"title":674,"path":2496,"stem":2497,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-nuxt-plugin","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-nuxt-plugin",{"title":678,"path":2499,"stem":2500,"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":2502,"stem":2503,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-page-meta","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-page-meta",{"title":686,"path":2505,"stem":2506,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fdefine-route-rules","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fdefine-route-rules",{"title":690,"path":2508,"stem":2509,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fnavigate-to","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fnavigate-to",{"title":694,"path":2511,"stem":2512,"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":2514,"stem":2515,"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":2517,"stem":2518,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fon-nuxt-ready","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fon-nuxt-ready",{"title":706,"path":2520,"stem":2521,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprefetch-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprefetch-components",{"title":710,"path":2523,"stem":2524,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-components",{"title":714,"path":2526,"stem":2527,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fpreload-route-components","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fpreload-route-components",{"title":718,"path":2529,"stem":2530,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fprerender-routes","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fprerender-routes",{"title":722,"path":2532,"stem":2533,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-cookie","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-cookie",{"title":726,"path":2535,"stem":2536,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Frefresh-nuxt-data","docs\u002F5.x\u002F4.api\u002F3.utils\u002Frefresh-nuxt-data",{"title":730,"path":2538,"stem":2539,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Freload-nuxt-app","docs\u002F5.x\u002F4.api\u002F3.utils\u002Freload-nuxt-app",{"title":734,"path":2541,"stem":2542,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-page-layout","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-page-layout",{"title":738,"path":2544,"stem":2545,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fset-response-status","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fset-response-status",{"title":742,"path":2547,"stem":2548,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Futils\u002Fshow-error","docs\u002F5.x\u002F4.api\u002F3.utils\u002Fshow-error",{"title":746,"path":2550,"stem":2551,"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":2553,"stem":2554,"children":2555,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands","docs\u002F5.x\u002F4.api\u002F4.commands",[2556,2559,2562,2565,2568,2571,2574,2577,2581,2584,2587,2591,2594,2597,2600,2603,2606,2609,2613,2616,2619],{"title":757,"path":2557,"stem":2558,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Foverview","docs\u002F5.x\u002F4.api\u002F4.commands\u002F1.overview",{"title":761,"path":2560,"stem":2561,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fadd","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fadd",{"title":765,"path":2563,"stem":2564,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fadd-template","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fadd-template",{"title":769,"path":2566,"stem":2567,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fanalyze","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fanalyze",{"title":773,"path":2569,"stem":2570,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild",{"title":777,"path":2572,"stem":2573,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fbuild-module","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fbuild-module",{"title":781,"path":2575,"stem":2576,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fcleanup","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fcleanup",{"title":2578,"path":2579,"stem":2580,"titleTemplate":6},"nuxt curl","\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fcurl","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fcurl",{"title":785,"path":2582,"stem":2583,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdev","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdev",{"title":789,"path":2585,"stem":2586,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdevtools","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdevtools",{"title":2588,"path":2589,"stem":2590,"titleTemplate":6},"nuxt docs","\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fdocs","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fdocs",{"title":793,"path":2592,"stem":2593,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fgenerate","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fgenerate",{"title":797,"path":2595,"stem":2596,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finfo","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finfo",{"title":801,"path":2598,"stem":2599,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Finit","docs\u002F5.x\u002F4.api\u002F4.commands\u002Finit",{"title":805,"path":2601,"stem":2602,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fmodule","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fmodule",{"title":809,"path":2604,"stem":2605,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fprepare","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fprepare",{"title":813,"path":2607,"stem":2608,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fpreview","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fpreview",{"title":2610,"path":2611,"stem":2612,"titleTemplate":6},"nuxt task","\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftask","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftask",{"title":817,"path":2614,"stem":2615,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftest","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftest",{"title":821,"path":2617,"stem":2618,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Ftypecheck","docs\u002F5.x\u002F4.api\u002F4.commands\u002Ftypecheck",{"title":825,"path":2620,"stem":2621,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fcommands\u002Fupgrade","docs\u002F5.x\u002F4.api\u002F4.commands\u002Fupgrade",{"title":415,"titleTemplate":829,"icon":830,"path":2623,"stem":2624,"children":2625,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit","docs\u002F5.x\u002F4.api\u002F5.kit",[2626,2629,2632,2635,2638,2641,2644,2647,2650,2653,2656,2659,2662,2665,2668,2671,2674,2677,2680],{"title":276,"path":2627,"stem":2628,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fmodules","docs\u002F5.x\u002F4.api\u002F5.kit\u002F1.modules",{"title":403,"path":2630,"stem":2631,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fruntime-config","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.runtime-config",{"title":841,"path":2633,"stem":2634,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Ftemplates","docs\u002F5.x\u002F4.api\u002F5.kit\u002F10.templates",{"title":1771,"path":2636,"stem":2637,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fapp-config","docs\u002F5.x\u002F4.api\u002F5.kit\u002F11.app-config",{"title":845,"path":2639,"stem":2640,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fnitro","docs\u002F5.x\u002F4.api\u002F5.kit\u002F12.nitro",{"title":849,"path":2642,"stem":2643,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fresolving","docs\u002F5.x\u002F4.api\u002F5.kit\u002F13.resolving",{"title":853,"path":2645,"stem":2646,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flogging","docs\u002F5.x\u002F4.api\u002F5.kit\u002F14.logging",{"title":857,"path":2648,"stem":2649,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fbuilder","docs\u002F5.x\u002F4.api\u002F5.kit\u002F15.builder",{"title":861,"path":2651,"stem":2652,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fexamples","docs\u002F5.x\u002F4.api\u002F5.kit\u002F16.examples",{"title":84,"path":2654,"stem":2655,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayers","docs\u002F5.x\u002F4.api\u002F5.kit\u002F17.layers",{"title":868,"path":2657,"stem":2658,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fprogrammatic","docs\u002F5.x\u002F4.api\u002F5.kit\u002F2.programmatic",{"title":872,"path":2660,"stem":2661,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcompatibility","docs\u002F5.x\u002F4.api\u002F5.kit\u002F3.compatibility",{"title":268,"path":2663,"stem":2664,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fautoimports","docs\u002F5.x\u002F4.api\u002F5.kit\u002F4.autoimports",{"title":438,"path":2666,"stem":2667,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcomponents","docs\u002F5.x\u002F4.api\u002F5.kit\u002F5.components",{"title":882,"path":2669,"stem":2670,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fcontext","docs\u002F5.x\u002F4.api\u002F5.kit\u002F6.context",{"title":886,"path":2672,"stem":2673,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fpages","docs\u002F5.x\u002F4.api\u002F5.kit\u002F7.pages",{"title":890,"path":2675,"stem":2676,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Flayout","docs\u002F5.x\u002F4.api\u002F5.kit\u002F8.layout",{"title":894,"path":2678,"stem":2679,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fhead","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.head",{"title":898,"path":2681,"stem":2682,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fkit\u002Fplugins","docs\u002F5.x\u002F4.api\u002F5.kit\u002F9.plugins",{"title":902,"titleTemplate":6,"icon":903,"path":2684,"stem":2685,"children":2686,"page":108},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced","docs\u002F5.x\u002F4.api\u002F6.advanced",[2687,2690],{"title":411,"path":2688,"stem":2689,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fhooks","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F1.hooks",{"title":911,"path":2691,"stem":2692,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fapi\u002Fadvanced\u002Fimport-meta","docs\u002F5.x\u002F4.api\u002F6.advanced\u002F2.import-meta",{"title":915,"path":2694,"stem":2695,"titleTemplate":918,"icon":32},"\u002Fdocs\u002F5.x\u002Fapi\u002Fnuxt-config","docs\u002F5.x\u002F4.api\u002F6.nuxt-config",{"title":861,"titleTemplate":920,"icon":921,"path":2697,"stem":2698,"children":2699,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples","docs\u002F5.x\u002F4.examples",[2700,2703,2722,2735,2766],{"title":926,"path":2701,"stem":2702,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fhello-world","docs\u002F5.x\u002F4.examples\u002F0.hello-world",{"title":399,"path":2704,"stem":2705,"children":2706,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures","docs\u002F5.x\u002F4.examples\u002F1.features",[2707,2710,2713,2716,2719],{"title":934,"path":2708,"stem":2709,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fauto-imports","docs\u002F5.x\u002F4.examples\u002F1.features\u002F1.auto-imports",{"title":64,"path":2711,"stem":2712,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fdata-fetching","docs\u002F5.x\u002F4.examples\u002F1.features\u002F2.data-fetching",{"title":69,"path":2714,"stem":2715,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fstate-management","docs\u002F5.x\u002F4.examples\u002F1.features\u002F3.state-management",{"title":944,"path":2717,"stem":2718,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Fmeta-tags","docs\u002F5.x\u002F4.examples\u002F1.features\u002F4.meta-tags",{"title":948,"path":2720,"stem":2721,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Ffeatures\u002Flayouts","docs\u002F5.x\u002F4.examples\u002F1.features\u002F5.layouts",{"title":49,"path":2723,"stem":2724,"children":2725,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting","docs\u002F5.x\u002F4.examples\u002F2.routing",[2726,2729,2732],{"title":956,"path":2727,"stem":2728,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fmiddleware","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fmiddleware",{"title":886,"path":2730,"stem":2731,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Fpages","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Fpages",{"title":963,"path":2733,"stem":2734,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Frouting\u002Funiversal-router","docs\u002F5.x\u002F4.examples\u002F2.routing\u002Funiversal-router",{"title":902,"path":2736,"stem":2737,"children":2738,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced","docs\u002F5.x\u002F4.examples\u002F4.advanced",[2739,2742,2745,2748,2751,2754,2757,2760,2763],{"title":84,"path":2740,"stem":2741,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fconfig-extends","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fconfig-extends",{"title":74,"path":2743,"stem":2744,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ferror-handling","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ferror-handling",{"title":977,"path":2746,"stem":2747,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fjsx","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fjsx",{"title":981,"path":2749,"stem":2750,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Flocale","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Flocale",{"title":985,"path":2752,"stem":2753,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fmodule-extend-pages","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fmodule-extend-pages",{"title":989,"path":2755,"stem":2756,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fteleport","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fteleport",{"title":99,"path":2758,"stem":2759,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Ftesting","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Ftesting",{"title":523,"path":2761,"stem":2762,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-cookie","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-cookie",{"title":999,"path":2764,"stem":2765,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fadvanced\u002Fuse-custom-fetch-composable","docs\u002F5.x\u002F4.examples\u002F4.advanced\u002Fuse-custom-fetch-composable",{"title":1003,"path":2767,"stem":2768,"children":2769,"page":108},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental","docs\u002F5.x\u002F4.examples\u002F7.experimental",[2770],{"title":1008,"path":2771,"stem":2772,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fexamples\u002Fexperimental\u002Fwasm","docs\u002F5.x\u002F4.examples\u002F7.experimental\u002Fwasm",{"title":1012,"titleTemplate":1013,"icon":1014,"path":2774,"stem":2775,"children":2776,"page":108},"\u002Fdocs\u002F5.x\u002Fcommunity","docs\u002F5.x\u002F5.community",[2777,2780,2783,2786,2789,2792],{"title":1019,"path":2778,"stem":2779,"titleTemplate":6,"icon":1022},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fgetting-help","docs\u002F5.x\u002F5.community\u002F2.getting-help",{"title":1024,"path":2781,"stem":2782,"titleTemplate":6,"icon":1027},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Freporting-bugs","docs\u002F5.x\u002F5.community\u002F3.reporting-bugs",{"title":1029,"path":2784,"stem":2785,"titleTemplate":6,"icon":1032},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fcontribution","docs\u002F5.x\u002F5.community\u002F4.contribution",{"title":1034,"path":2787,"stem":2788,"titleTemplate":6,"icon":1037},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fframework-contribution","docs\u002F5.x\u002F5.community\u002F5.framework-contribution",{"title":1039,"path":2790,"stem":2791,"titleTemplate":6,"icon":1042},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Froadmap","docs\u002F5.x\u002F5.community\u002F6.roadmap",{"title":1044,"path":2793,"stem":2794,"titleTemplate":6,"icon":1047},"\u002Fdocs\u002F5.x\u002Fcommunity\u002Fchangelog","docs\u002F5.x\u002F5.community\u002F7.changelog",{"title":1049,"titleTemplate":1050,"icon":1051,"path":2796,"stem":2797,"children":2798,"page":108},"\u002Fdocs\u002F5.x\u002Fbridge","docs\u002F5.x\u002F6.bridge",[2799,2802,2805,2808,2811,2814,2817,2820,2823,2826],{"title":1056,"path":2800,"stem":2801,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Foverview","docs\u002F5.x\u002F6.bridge\u002F1.overview",{"title":29,"path":2803,"stem":2804,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fconfiguration","docs\u002F5.x\u002F6.bridge\u002F10.configuration",{"title":280,"path":2806,"stem":2807,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Ftypescript","docs\u002F5.x\u002F6.bridge\u002F2.typescript",{"title":1066,"path":2809,"stem":2810,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fbridge-composition-api","docs\u002F5.x\u002F6.bridge\u002F3.bridge-composition-api",{"title":1070,"path":2812,"stem":2813,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fplugins-and-middleware","docs\u002F5.x\u002F6.bridge\u002F4.plugins-and-middleware",{"title":1074,"path":2815,"stem":2816,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnuxt3-compatible-api","docs\u002F5.x\u002F6.bridge\u002F5.nuxt3-compatible-api",{"title":944,"path":2818,"stem":2819,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fmeta","docs\u002F5.x\u002F6.bridge\u002F6.meta",{"title":403,"path":2821,"stem":2822,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fruntime-config","docs\u002F5.x\u002F6.bridge\u002F7.runtime-config",{"title":845,"path":2824,"stem":2825,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fnitro","docs\u002F5.x\u002F6.bridge\u002F8.nitro",{"title":1087,"path":2827,"stem":2828,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fbridge\u002Fvite","docs\u002F5.x\u002F6.bridge\u002F9.vite",{"title":1091,"titleTemplate":1092,"icon":107,"path":2830,"stem":2831,"children":2832,"page":108},"\u002Fdocs\u002F5.x\u002Fmigration","docs\u002F5.x\u002F7.migration",[2833,2836,2839,2842,2845,2848,2851,2854,2857,2860,2863],{"title":1056,"path":2834,"stem":2835,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Foverview","docs\u002F5.x\u002F7.migration\u002F1.overview",{"title":1100,"path":2837,"stem":2838,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fbundling","docs\u002F5.x\u002F7.migration\u002F10.bundling",{"title":79,"path":2840,"stem":2841,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fserver","docs\u002F5.x\u002F7.migration\u002F11.server",{"title":29,"path":2843,"stem":2844,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fconfiguration","docs\u002F5.x\u002F7.migration\u002F2.configuration",{"title":276,"path":2846,"stem":2847,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmodule-authors","docs\u002F5.x\u002F7.migration\u002F20.module-authors",{"title":934,"path":2849,"stem":2850,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fauto-imports","docs\u002F5.x\u002F7.migration\u002F3.auto-imports",{"title":944,"path":2852,"stem":2853,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fmeta","docs\u002F5.x\u002F7.migration\u002F4.meta",{"title":1070,"path":2855,"stem":2856,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fplugins-and-middleware","docs\u002F5.x\u002F7.migration\u002F5.plugins-and-middleware",{"title":1122,"path":2858,"stem":2859,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fpages-and-layouts","docs\u002F5.x\u002F7.migration\u002F6.pages-and-layouts",{"title":1126,"path":2861,"stem":2862,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fcomponent-options","docs\u002F5.x\u002F7.migration\u002F7.component-options",{"title":403,"path":2864,"stem":2865,"titleTemplate":6},"\u002Fdocs\u002F5.x\u002Fmigration\u002Fruntime-config","docs\u002F5.x\u002F7.migration\u002F8.runtime-config",{"title":2867,"icon":2868,"path":2869,"stem":2870,"children":2871,"page":108},"Blog","i-lucide-newspaper","\u002Fblog","blog",[2872,2876,2880,2884,2888,2892,2896,2900,2904,2908,2912,2916,2920,2924,2928,2932,2936,2940,2944,2948,2952,2956,2960,2964,2968,2972,2976,2980,2984,2988,2992,2996,3000,3004,3008,3012,3016,3020,3024,3028,3032,3036,3040,3044,3048,3052,3056,3060,3064,3068],{"title":2873,"path":2874,"stem":2875},"Announcing 3.0","\u002Fblog\u002Fv3","blog\u002F1.v3",{"title":2877,"path":2878,"stem":2879},"Nuxt 3.3","\u002Fblog\u002Fv3-3","blog\u002F10.v3-3",{"title":2881,"path":2882,"stem":2883},"Nuxt 3.4","\u002Fblog\u002Fv3-4","blog\u002F11.v3-4",{"title":2885,"path":2886,"stem":2887},"Nuxt 3.5","\u002Fblog\u002Fv3-5","blog\u002F12.v3-5",{"title":2889,"path":2890,"stem":2891},"Nuxt 3.6","\u002Fblog\u002Fv3-6","blog\u002F13.v3-6",{"title":2893,"path":2894,"stem":2895},"Nuxt on the Edge","\u002Fblog\u002Fnuxt-on-the-edge","blog\u002F14.nuxt-on-the-edge",{"title":2897,"path":2898,"stem":2899},"Nuxt 3.7","\u002Fblog\u002Fv3-7","blog\u002F15.v3-7",{"title":2901,"path":2902,"stem":2903},"A New Website","\u002Fblog\u002Fnew-website","blog\u002F16.new-website",{"title":2905,"path":2906,"stem":2907},"Nuxt 3.8","\u002Fblog\u002Fv3-8","blog\u002F17.v3-8",{"title":2909,"path":2910,"stem":2911},"Nuxt DevTools v1.0","\u002Fblog\u002Fnuxt-devtools-v1-0","blog\u002F18.nuxt-devtools-v1-0",{"title":2913,"path":2914,"stem":2915},"Nuxt 3.9","\u002Fblog\u002Fv3-9","blog\u002F19.v3-9",{"title":2917,"path":2918,"stem":2919},"Nuxt: A vision for 2023","\u002Fblog\u002Fvision-2023","blog\u002F2.vision-2023",{"title":2921,"path":2922,"stem":2923},"Nuxt 3.10","\u002Fblog\u002Fv3-10","blog\u002F20.v3-10",{"title":2925,"path":2926,"stem":2927},"The Evolution of Shiki v1.0","\u002Fblog\u002Fshiki-v1","blog\u002F21.shiki-v1",{"title":2929,"path":2930,"stem":2931},"Nuxt 3.11","\u002Fblog\u002Fv3-11","blog\u002F22.v3-11",{"title":2933,"path":2934,"stem":2935},"Nuxt: Looking forward","\u002Fblog\u002Flooking-forward-2024","blog\u002F23.looking-forward-2024",{"title":2937,"path":2938,"stem":2939},"Refreshed Nuxt ESLint Integrations","\u002Fblog\u002Feslint-module","blog\u002F24.eslint-module",{"title":2941,"path":2942,"stem":2943},"Nuxt 3.12","\u002Fblog\u002Fv3-12","blog\u002F25.v3-12",{"title":2945,"path":2946,"stem":2947},"Introducing Nuxt Scripts","\u002Fblog\u002Fnuxt-scripts","blog\u002F26.nuxt-scripts",{"title":2949,"path":2950,"stem":2951},"Nuxt 3.13","\u002Fblog\u002Fv3-13","blog\u002F27.v3-13",{"title":2953,"path":2954,"stem":2955},"Nuxt 3.14","\u002Fblog\u002Fv3-14","blog\u002F27.v3-14",{"title":2957,"path":2958,"stem":2959},"Introducing Nuxt Icon v1","\u002Fblog\u002Fnuxt-icon-v1-0","blog\u002F29.nuxt-icon-v1-0",{"title":2961,"path":2962,"stem":2963},"Introducing Nuxt DevTools","\u002Fblog\u002Fintroducing-nuxt-devtools","blog\u002F3.introducing-nuxt-devtools",{"title":2965,"path":2966,"stem":2967},"Announcing Nuxt 3 Release Candidate","\u002Fblog\u002Fnuxt3-rc","blog\u002F3.nuxt3-rc",{"title":2969,"path":2970,"stem":2971},"Nuxt 3.15","\u002Fblog\u002Fv3-15","blog\u002F30.v3-15",{"title":2973,"path":2974,"stem":2975},"Nuxt 3.16","\u002Fblog\u002Fv3-16","blog\u002F31.v3-16",{"title":2977,"path":2978,"stem":2979},"Nuxt UI v3","\u002Fblog\u002Fnuxt-ui-v3","blog\u002F32.nuxt-ui-v3",{"title":2981,"path":2982,"stem":2983},"Nuxt 3.17","\u002Fblog\u002Fv3-17","blog\u002F33.v3-17",{"title":2985,"path":2986,"stem":2987},"Roadmap to v4","\u002Fblog\u002Froadmap-v4","blog\u002F34.roadmap-v4",{"title":2989,"path":2990,"stem":2991},"Building a Privacy-First Feedback Widget","\u002Fblog\u002Fbuilding-a-feedback-widget","blog\u002F35.building-a-feedback-widget",{"title":2993,"path":2994,"stem":2995},"Announcing Nuxt 4.0","\u002Fblog\u002Fv4","blog\u002F36.v4",{"title":2997,"path":2998,"stem":2999},"Nuxt 3.18","\u002Fblog\u002Fv3-18","blog\u002F37.v3-18",{"title":3001,"path":3002,"stem":3003},"Nuxt 4.1","\u002Fblog\u002Fv4-1","blog\u002F38.v4-1",{"title":3005,"path":3006,"stem":3007},"Nuxt UI v4","\u002Fblog\u002Fnuxt-ui-v4","blog\u002F39.nuxt-ui-v4",{"title":3009,"path":3010,"stem":3011},"Nuxt 2 End-of-Life (EOL)","\u002Fblog\u002Fnuxt2-eol","blog\u002F4.nuxt2-eol",{"title":3013,"path":3014,"stem":3015},"Introducing Nuxt 3 Beta","\u002Fblog\u002Fnuxt3-beta","blog\u002F4.nuxt3-beta",{"title":3017,"path":3018,"stem":3019},"Building an MCP Server for Nuxt","\u002Fblog\u002Fbuilding-nuxt-mcp","blog\u002F40.building-nuxt-mcp",{"title":3021,"path":3022,"stem":3023},"Nuxt 4.2","\u002Fblog\u002Fv4-2","blog\u002F40.v4-2",{"title":3025,"path":3026,"stem":3027},"Nuxt Image v2","\u002Fblog\u002Fnuxt-image-v2","blog\u002F41.nuxt-image-v2",{"title":3029,"path":3030,"stem":3031},"Nuxt 4.3","\u002Fblog\u002Fv4-3","blog\u002F42.v4-3",{"title":3033,"path":3034,"stem":3035},"Nuxt 4.4","\u002Fblog\u002Fv4-4","blog\u002F43.v4-4",{"title":3037,"path":3038,"stem":3039},"Introducing the Nuxt Agent","\u002Fblog\u002Fintroducing-nuxt-agent","blog\u002F44.introducing-nuxt-agent",{"title":3041,"path":3042,"stem":3043},"Meet Nuxi","\u002Fblog\u002Fmeet-nuxi","blog\u002F45.meet-nuxi",{"title":3045,"path":3046,"stem":3047},"Nuxt 4.5","\u002Fblog\u002Fv4-5","blog\u002F46.v4-5",{"title":3049,"path":3050,"stem":3051},"Nuxt Security Patch Releases","\u002Fblog\u002Fv4-5-security","blog\u002F47.v4-5-security",{"title":3053,"path":3054,"stem":3055},"Going Full Static","\u002Fblog\u002Fgoing-full-static","blog\u002F5.going-full-static",{"title":3057,"path":3058,"stem":3059},"Introducing Smart Prefetching","\u002Fblog\u002Fintroducing-smart-prefetching","blog\u002F6.introducing-smart-prefetching",{"title":3061,"path":3062,"stem":3063},"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":3065,"path":3066,"stem":3067},"Nuxt 2 Static Improvements","\u002Fblog\u002Fnuxt-static-improvements","blog\u002F8.nuxt-static-improvements",{"title":3069,"path":3070,"stem":3071},"Nuxt 2: From Terminal to Browser","\u002Fblog\u002Fnuxtjs-from-terminal-to-browser","blog\u002F9.nuxtjs-from-terminal-to-browser",{"name":3073,"description":3074,"repo":3075,"npm":3076,"icon":3077,"github":3078,"website":3078,"learn_more":3077,"category":3079,"type":3080,"maintainers":3081,"compatibility":3086,"generatedAt":3089,"contributors":3090,"stats":3188,"readme":3197},"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",[3082],{"name":3083,"github":3084,"twitter":3084,"bluesky":3085},"Sébastien Chopin","atinux","atinux.com",{"nuxt":3087,"requires":3088},">=3.0.0",{},"2026-08-28T01:47:42.909Z",[3091,3094,3098,3102,3106,3110,3114,3117,3120,3123,3126,3130,3133,3136,3139,3142,3145,3148,3151,3154,3157,3160,3164,3167,3170,3173,3176,3179,3182,3185],{"id":3092,"username":3084,"contributions":3093},904724,199,{"id":3095,"username":3096,"contributions":3097},28706372,"danielroe",16,{"id":3099,"username":3100,"contributions":3101},50090595,"ahmedrangel",9,{"id":3103,"username":3104,"contributions":3105},12988935,"Gerbuuun",8,{"id":3107,"username":3108,"contributions":3109},45267552,"Barbapapazes",7,{"id":3111,"username":3112,"contributions":3113},13056429,"sandros94",3,{"id":3115,"username":3116,"contributions":3113},16264115,"Yizack",{"id":3118,"username":3119,"contributions":3113},967369,"acidjazz",{"id":3121,"username":3122,"contributions":3113},15887916,"blumgart",{"id":3124,"username":3125,"contributions":3113},67746033,"justserdar",{"id":3127,"username":3128,"contributions":3129},10636392,"brianacdev",2,{"id":3131,"username":3132,"contributions":3129},67898185,"larsrickert",{"id":3134,"username":3135,"contributions":3129},40021217,"kingyue737",{"id":3137,"username":3138,"contributions":3129},59120414,"cth-latest",{"id":3140,"username":3141,"contributions":3129},19751938,"noook",{"id":3143,"username":3144,"contributions":3129},1409645,"mariosant",{"id":3146,"username":3147,"contributions":3129},24661232,"Jorgagu",{"id":3149,"username":3150,"contributions":3129},5326365,"harlan-zw",{"id":3152,"username":3153,"contributions":3129},61092270,"stranavad",{"id":3155,"username":3156,"contributions":3129},1592441,"mendrinos",{"id":3158,"username":3159,"contributions":3129},376963,"bisand",{"id":3161,"username":3162,"contributions":3163},68467996,"tejas161",1,{"id":3165,"username":3166,"contributions":3163},18315316,"Syrex-o",{"id":3168,"username":3169,"contributions":3163},3109921,"silvio-e",{"id":3171,"username":3172,"contributions":3163},18753964,"sifferhans",{"id":3174,"username":3175,"contributions":3163},17186421,"samulefevre",{"id":3177,"username":3178,"contributions":3163},15785987,"samydoesit",{"id":3180,"username":3181,"contributions":3163},31662219,"rudokemper",{"id":3183,"username":3184,"contributions":3163},29805551,"RobertHaba",{"id":3186,"username":3187,"contributions":3163},1231105,"SteinRobert",{"version":3189,"downloads":3190,"stars":3191,"watchers":3192,"forks":3193,"defaultBranch":3194,"publishedAt":3195,"createdAt":3196},"0.5.30",436382,1589,11,189,"main",1785851859387,1699356484873,{"data":3198,"body":3200,"toc":14204},{"title":3199,"description":3077},"Nuxt Auth Utils",{"type":3201,"children":3202},"root",[3203,3210,3256,3260,3294,3300,3399,3413,3419,3431,3443,3454,3460,3476,3518,3540,3575,3587,3595,3601,3606,3613,4154,4163,4666,4688,4694,4707,4713,5090,5110,5289,5301,5307,5312,5332,5353,5380,5558,5563,5584,5592,5599,5842,5855,5861,5872,6277,6289,6302,6307,6337,6463,6476,6587,6598,6754,6760,6765,6770,6778,6812,6825,6904,6909,6914,6919,6926,6958,6970,7049,7054,7059,7073,7393,7533,7563,8491,8526,9363,9397,9910,9915,10754,10772,10778,10807,10818,10824,10829,11111,11117,11136,11362,11386,11391,11411,11416,11424,11443,11531,11557,11563,11580,11667,11685,11695,11707,11712,11981,11993,12005,12378,12406,12412,12425,12443,12546,12566,12916,12930,13430,13435,13462,13473,13643,13648,13794,13814,13917,13935,13941,13961,13967,14198],{"type":3204,"tag":3205,"props":3206,"children":3207},"element","h1",{"id":3076},[3208],{"type":3209,"value":3199},"text",{"type":3204,"tag":3211,"props":3212,"children":3213},"p",{},[3214,3227,3237,3246],{"type":3204,"tag":3215,"props":3216,"children":3220},"a",{"href":3217,"rel":3218},"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fnuxt-auth-utils",[3219],"nofollow",[3221],{"type":3204,"tag":3222,"props":3223,"children":3226},"img",{"alt":3224,"src":3225},"npm version","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fnuxt-auth-utils\u002Flatest.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3204,"tag":3215,"props":3228,"children":3231},{"href":3229,"rel":3230},"https:\u002F\u002Fnpm.chart.dev\u002Fnuxt-auth-utils",[3219],[3232],{"type":3204,"tag":3222,"props":3233,"children":3236},{"alt":3234,"src":3235},"npm downloads","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fdm\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3204,"tag":3215,"props":3238,"children":3240},{"href":3217,"rel":3239},[3219],[3241],{"type":3204,"tag":3222,"props":3242,"children":3245},{"alt":3243,"src":3244},"License","https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fl\u002Fnuxt-auth-utils.svg?style=flat&colorA=020420&colorB=00DC82",[],{"type":3204,"tag":3215,"props":3247,"children":3250},{"href":3248,"rel":3249},"https:\u002F\u002Fnuxt.com",[3219],[3251],{"type":3204,"tag":3222,"props":3252,"children":3255},{"alt":3253,"src":3254},"Nuxt","https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNuxt-020420?logo=nuxt.js",[],{"type":3204,"tag":3211,"props":3257,"children":3258},{},[3259],{"type":3209,"value":3074},{"type":3204,"tag":3261,"props":3262,"children":3263},"ul",{},[3264,3274,3284],{"type":3204,"tag":3265,"props":3266,"children":3267},"li",{},[3268],{"type":3204,"tag":3215,"props":3269,"children":3271},{"href":3270},"\u002FCHANGELOG.md",[3272],{"type":3209,"value":3273},"Release Notes",{"type":3204,"tag":3265,"props":3275,"children":3276},{},[3277],{"type":3204,"tag":3215,"props":3278,"children":3281},{"href":3279,"rel":3280},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fatidone",[3219],[3282],{"type":3209,"value":3283},"Demo with OAuth",{"type":3204,"tag":3265,"props":3285,"children":3286},{},[3287],{"type":3204,"tag":3215,"props":3288,"children":3291},{"href":3289,"rel":3290},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Ftodo-passkeys",[3219],[3292],{"type":3209,"value":3293},"Demo with Passkeys",{"type":3204,"tag":3295,"props":3296,"children":3298},"h2",{"id":3297},"features",[3299],{"type":3209,"value":399},{"type":3204,"tag":3261,"props":3301,"children":3302},{},[3303,3314,3323,3332,3341,3357,3366,3381,3390],{"type":3204,"tag":3265,"props":3304,"children":3305},{},[3306,3312],{"type":3204,"tag":3215,"props":3307,"children":3309},{"href":3308},"#hybrid-rendering",[3310],{"type":3209,"value":3311},"Hybrid Rendering",{"type":3209,"value":3313}," support (SSR \u002F CSR \u002F SWR \u002F Prerendering)",{"type":3204,"tag":3265,"props":3315,"children":3316},{},[3317],{"type":3204,"tag":3215,"props":3318,"children":3320},{"href":3319},"#supported-oauth-providers",[3321],{"type":3209,"value":3322},"40+ OAuth Providers",{"type":3204,"tag":3265,"props":3324,"children":3325},{},[3326],{"type":3204,"tag":3215,"props":3327,"children":3329},{"href":3328},"#password-hashing",[3330],{"type":3209,"value":3331},"Password Hashing",{"type":3204,"tag":3265,"props":3333,"children":3334},{},[3335],{"type":3204,"tag":3215,"props":3336,"children":3338},{"href":3337},"#webauthn-passkey",[3339],{"type":3209,"value":3340},"WebAuthn (passkey)",{"type":3204,"tag":3265,"props":3342,"children":3343},{},[3344],{"type":3204,"tag":3215,"props":3345,"children":3347},{"href":3346},"#vue-composable",[3348,3355],{"type":3204,"tag":3349,"props":3350,"children":3352},"code",{"className":3351},[],[3353],{"type":3209,"value":3354},"useUserSession()",{"type":3209,"value":3356}," Vue composable",{"type":3204,"tag":3265,"props":3358,"children":3359},{},[3360],{"type":3204,"tag":3215,"props":3361,"children":3363},{"href":3362},"#server-utils",[3364],{"type":3209,"value":3365},"Tree-shakable server utils",{"type":3204,"tag":3265,"props":3367,"children":3368},{},[3369],{"type":3204,"tag":3215,"props":3370,"children":3372},{"href":3371},"#authstate-component",[3373,3379],{"type":3204,"tag":3349,"props":3374,"children":3376},{"className":3375},[],[3377],{"type":3209,"value":3378},"\u003CAuthState>",{"type":3209,"value":3380}," component",{"type":3204,"tag":3265,"props":3382,"children":3383},{},[3384],{"type":3204,"tag":3215,"props":3385,"children":3387},{"href":3386},"#extend-session",[3388],{"type":3209,"value":3389},"Extendable with hooks",{"type":3204,"tag":3265,"props":3391,"children":3392},{},[3393],{"type":3204,"tag":3215,"props":3394,"children":3396},{"href":3395},"#websocket-support",[3397],{"type":3209,"value":3398},"WebSocket support",{"type":3204,"tag":3211,"props":3400,"children":3401},{},[3402,3404,3411],{"type":3209,"value":3403},"It has few dependencies (only from ",{"type":3204,"tag":3215,"props":3405,"children":3408},{"href":3406,"rel":3407},"https:\u002F\u002Fgithub.com\u002Funjs",[3219],[3409],{"type":3209,"value":3410},"UnJS",{"type":3209,"value":3412},"), run on multiple JS environments (Node, Deno, Workers) and is fully typed with TypeScript.",{"type":3204,"tag":3295,"props":3414,"children":3416},{"id":3415},"requirements",[3417],{"type":3209,"value":3418},"Requirements",{"type":3204,"tag":3211,"props":3420,"children":3421},{},[3422,3424,3429],{"type":3209,"value":3423},"This module only works with a Nuxt server running as it uses server API routes (",{"type":3204,"tag":3349,"props":3425,"children":3427},{"className":3426},[],[3428],{"type":3209,"value":773},{"type":3209,"value":3430},").",{"type":3204,"tag":3211,"props":3432,"children":3433},{},[3434,3436,3441],{"type":3209,"value":3435},"This means that you cannot use this module with ",{"type":3204,"tag":3349,"props":3437,"children":3439},{"className":3438},[],[3440],{"type":3209,"value":793},{"type":3209,"value":3442},".",{"type":3204,"tag":3211,"props":3444,"children":3445},{},[3446,3448,3452],{"type":3209,"value":3447},"You can anyway use ",{"type":3204,"tag":3215,"props":3449,"children":3450},{"href":3308},[3451],{"type":3209,"value":3311},{"type":3209,"value":3453}," to pre-render pages of your application or disable server-side rendering completely.",{"type":3204,"tag":3295,"props":3455,"children":3457},{"id":3456},"quick-setup",[3458],{"type":3209,"value":3459},"Quick Setup",{"type":3204,"tag":3461,"props":3462,"children":3463},"ol",{},[3464],{"type":3204,"tag":3265,"props":3465,"children":3466},{},[3467,3469,3474],{"type":3209,"value":3468},"Add ",{"type":3204,"tag":3349,"props":3470,"children":3472},{"className":3471},[],[3473],{"type":3209,"value":3076},{"type":3209,"value":3475}," in your Nuxt project",{"type":3204,"tag":3477,"props":3478,"children":3482},"pre",{"className":3479,"code":3480,"language":3481,"meta":3077,"style":3077},"language-bash shiki shiki-themes material-theme-lighter material-theme-lighter material-theme-palenight","npx nuxi@latest module add auth-utils\n","bash",[3483],{"type":3204,"tag":3349,"props":3484,"children":3485},{"__ignoreMap":3077},[3486],{"type":3204,"tag":3487,"props":3488,"children":3490},"span",{"class":3489,"line":3163},"line",[3491,3497,3503,3508,3513],{"type":3204,"tag":3487,"props":3492,"children":3494},{"style":3493},"--shiki-light:#E2931D;--shiki-default:#E2931D;--shiki-dark:#FFCB6B",[3495],{"type":3209,"value":3496},"npx",{"type":3204,"tag":3487,"props":3498,"children":3500},{"style":3499},"--shiki-light:#91B859;--shiki-default:#91B859;--shiki-dark:#C3E88D",[3501],{"type":3209,"value":3502}," nuxi@latest",{"type":3204,"tag":3487,"props":3504,"children":3505},{"style":3499},[3506],{"type":3209,"value":3507}," module",{"type":3204,"tag":3487,"props":3509,"children":3510},{"style":3499},[3511],{"type":3209,"value":3512}," add",{"type":3204,"tag":3487,"props":3514,"children":3515},{"style":3499},[3516],{"type":3209,"value":3517}," auth-utils\n",{"type":3204,"tag":3461,"props":3519,"children":3520},{"start":3129},[3521],{"type":3204,"tag":3265,"props":3522,"children":3523},{},[3524,3526,3532,3534,3539],{"type":3209,"value":3525},"Add a ",{"type":3204,"tag":3349,"props":3527,"children":3529},{"className":3528},[],[3530],{"type":3209,"value":3531},"NUXT_SESSION_PASSWORD",{"type":3209,"value":3533}," env variable with at least 32 characters in the ",{"type":3204,"tag":3349,"props":3535,"children":3537},{"className":3536},[],[3538],{"type":3209,"value":200},{"type":3209,"value":3442},{"type":3204,"tag":3477,"props":3541,"children":3543},{"className":3479,"code":3542,"language":3481,"meta":3077,"style":3077},"# .env\nNUXT_SESSION_PASSWORD=password-with-at-least-32-characters\n",[3544],{"type":3204,"tag":3349,"props":3545,"children":3546},{"__ignoreMap":3077},[3547,3556],{"type":3204,"tag":3487,"props":3548,"children":3549},{"class":3489,"line":3163},[3550],{"type":3204,"tag":3487,"props":3551,"children":3553},{"style":3552},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[3554],{"type":3209,"value":3555},"# .env\n",{"type":3204,"tag":3487,"props":3557,"children":3558},{"class":3489,"line":3129},[3559,3564,3570],{"type":3204,"tag":3487,"props":3560,"children":3562},{"style":3561},"--shiki-light:#90A4AE;--shiki-default:#90A4AE;--shiki-dark:#BABED8",[3563],{"type":3209,"value":3531},{"type":3204,"tag":3487,"props":3565,"children":3567},{"style":3566},"--shiki-light:#39ADB5;--shiki-default:#39ADB5;--shiki-dark:#89DDFF",[3568],{"type":3209,"value":3569},"=",{"type":3204,"tag":3487,"props":3571,"children":3572},{"style":3499},[3573],{"type":3209,"value":3574},"password-with-at-least-32-characters\n",{"type":3204,"tag":3211,"props":3576,"children":3577},{},[3578,3580,3585],{"type":3209,"value":3579},"Nuxt Auth Utils generates one for you when running Nuxt in development the first time if no ",{"type":3204,"tag":3349,"props":3581,"children":3583},{"className":3582},[],[3584],{"type":3209,"value":3531},{"type":3209,"value":3586}," is set.",{"type":3204,"tag":3461,"props":3588,"children":3589},{"start":3113},[3590],{"type":3204,"tag":3265,"props":3591,"children":3592},{},[3593],{"type":3209,"value":3594},"That's it! You can now add authentication to your Nuxt app ✨",{"type":3204,"tag":3295,"props":3596,"children":3598},{"id":3597},"vue-composable",[3599],{"type":3209,"value":3600},"Vue Composable",{"type":3204,"tag":3211,"props":3602,"children":3603},{},[3604],{"type":3209,"value":3605},"Nuxt Auth Utils automatically adds some plugins to fetch the current user session to let you access it from your Vue components.",{"type":3204,"tag":3607,"props":3608,"children":3610},"h3",{"id":3609},"user-session",[3611],{"type":3209,"value":3612},"User Session",{"type":3204,"tag":3477,"props":3614,"children":3618},{"className":3615,"code":3616,"language":3617,"meta":3077,"style":3077},"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",[3619],{"type":3204,"tag":3349,"props":3620,"children":3621},{"__ignoreMap":3077},[3622,3647,3732,3748,3757,3774,3815,3849,3881,3936,3953,3973,4006,4061,4070,4123,4138],{"type":3204,"tag":3487,"props":3623,"children":3624},{"class":3489,"line":3163},[3625,3630,3636,3642],{"type":3204,"tag":3487,"props":3626,"children":3627},{"style":3566},[3628],{"type":3209,"value":3629},"\u003C",{"type":3204,"tag":3487,"props":3631,"children":3633},{"style":3632},"--shiki-light:#E53935;--shiki-default:#E53935;--shiki-dark:#F07178",[3634],{"type":3209,"value":3635},"script",{"type":3204,"tag":3487,"props":3637,"children":3639},{"style":3638},"--shiki-light:#9C3EDA;--shiki-default:#9C3EDA;--shiki-dark:#C792EA",[3640],{"type":3209,"value":3641}," setup",{"type":3204,"tag":3487,"props":3643,"children":3644},{"style":3566},[3645],{"type":3209,"value":3646},">\n",{"type":3204,"tag":3487,"props":3648,"children":3649},{"class":3489,"line":3129},[3650,3655,3660,3665,3670,3675,3679,3684,3688,3693,3697,3702,3706,3711,3716,3721,3727],{"type":3204,"tag":3487,"props":3651,"children":3652},{"style":3638},[3653],{"type":3209,"value":3654},"const",{"type":3204,"tag":3487,"props":3656,"children":3657},{"style":3566},[3658],{"type":3209,"value":3659}," {",{"type":3204,"tag":3487,"props":3661,"children":3662},{"style":3561},[3663],{"type":3209,"value":3664}," loggedIn",{"type":3204,"tag":3487,"props":3666,"children":3667},{"style":3566},[3668],{"type":3209,"value":3669},",",{"type":3204,"tag":3487,"props":3671,"children":3672},{"style":3561},[3673],{"type":3209,"value":3674}," user",{"type":3204,"tag":3487,"props":3676,"children":3677},{"style":3566},[3678],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":3680,"children":3681},{"style":3561},[3682],{"type":3209,"value":3683}," session",{"type":3204,"tag":3487,"props":3685,"children":3686},{"style":3566},[3687],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":3689,"children":3690},{"style":3561},[3691],{"type":3209,"value":3692}," fetch",{"type":3204,"tag":3487,"props":3694,"children":3695},{"style":3566},[3696],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":3698,"children":3699},{"style":3561},[3700],{"type":3209,"value":3701}," clear",{"type":3204,"tag":3487,"props":3703,"children":3704},{"style":3566},[3705],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":3707,"children":3708},{"style":3561},[3709],{"type":3209,"value":3710}," openInPopup ",{"type":3204,"tag":3487,"props":3712,"children":3713},{"style":3566},[3714],{"type":3209,"value":3715},"}",{"type":3204,"tag":3487,"props":3717,"children":3718},{"style":3566},[3719],{"type":3209,"value":3720}," =",{"type":3204,"tag":3487,"props":3722,"children":3724},{"style":3723},"--shiki-light:#6182B8;--shiki-default:#6182B8;--shiki-dark:#82AAFF",[3725],{"type":3209,"value":3726}," useUserSession",{"type":3204,"tag":3487,"props":3728,"children":3729},{"style":3561},[3730],{"type":3209,"value":3731},"()\n",{"type":3204,"tag":3487,"props":3733,"children":3734},{"class":3489,"line":3113},[3735,3740,3744],{"type":3204,"tag":3487,"props":3736,"children":3737},{"style":3566},[3738],{"type":3209,"value":3739},"\u003C\u002F",{"type":3204,"tag":3487,"props":3741,"children":3742},{"style":3632},[3743],{"type":3209,"value":3635},{"type":3204,"tag":3487,"props":3745,"children":3746},{"style":3566},[3747],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":3749,"children":3751},{"class":3489,"line":3750},4,[3752],{"type":3204,"tag":3487,"props":3753,"children":3754},{"emptyLinePlaceholder":1208},[3755],{"type":3209,"value":3756},"\n",{"type":3204,"tag":3487,"props":3758,"children":3760},{"class":3489,"line":3759},5,[3761,3765,3770],{"type":3204,"tag":3487,"props":3762,"children":3763},{"style":3566},[3764],{"type":3209,"value":3629},{"type":3204,"tag":3487,"props":3766,"children":3767},{"style":3632},[3768],{"type":3209,"value":3769},"template",{"type":3204,"tag":3487,"props":3771,"children":3772},{"style":3566},[3773],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":3775,"children":3777},{"class":3489,"line":3776},6,[3778,3783,3788,3793,3797,3802,3807,3811],{"type":3204,"tag":3487,"props":3779,"children":3780},{"style":3566},[3781],{"type":3209,"value":3782},"  \u003C",{"type":3204,"tag":3487,"props":3784,"children":3785},{"style":3632},[3786],{"type":3209,"value":3787},"div",{"type":3204,"tag":3487,"props":3789,"children":3790},{"style":3638},[3791],{"type":3209,"value":3792}," v-if",{"type":3204,"tag":3487,"props":3794,"children":3795},{"style":3566},[3796],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":3798,"children":3799},{"style":3566},[3800],{"type":3209,"value":3801},"\"",{"type":3204,"tag":3487,"props":3803,"children":3804},{"style":3499},[3805],{"type":3209,"value":3806},"loggedIn",{"type":3204,"tag":3487,"props":3808,"children":3809},{"style":3566},[3810],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":3812,"children":3813},{"style":3566},[3814],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":3816,"children":3817},{"class":3489,"line":3109},[3818,3823,3827,3832,3837,3841,3845],{"type":3204,"tag":3487,"props":3819,"children":3820},{"style":3566},[3821],{"type":3209,"value":3822},"    \u003C",{"type":3204,"tag":3487,"props":3824,"children":3825},{"style":3632},[3826],{"type":3209,"value":3205},{"type":3204,"tag":3487,"props":3828,"children":3829},{"style":3566},[3830],{"type":3209,"value":3831},">",{"type":3204,"tag":3487,"props":3833,"children":3834},{"style":3561},[3835],{"type":3209,"value":3836},"Welcome {{ user.login }}!",{"type":3204,"tag":3487,"props":3838,"children":3839},{"style":3566},[3840],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":3842,"children":3843},{"style":3632},[3844],{"type":3209,"value":3205},{"type":3204,"tag":3487,"props":3846,"children":3847},{"style":3566},[3848],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":3850,"children":3851},{"class":3489,"line":3105},[3852,3856,3860,3864,3869,3873,3877],{"type":3204,"tag":3487,"props":3853,"children":3854},{"style":3566},[3855],{"type":3209,"value":3822},{"type":3204,"tag":3487,"props":3857,"children":3858},{"style":3632},[3859],{"type":3209,"value":3211},{"type":3204,"tag":3487,"props":3861,"children":3862},{"style":3566},[3863],{"type":3209,"value":3831},{"type":3204,"tag":3487,"props":3865,"children":3866},{"style":3561},[3867],{"type":3209,"value":3868},"Logged in since {{ session.loggedInAt }}",{"type":3204,"tag":3487,"props":3870,"children":3871},{"style":3566},[3872],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":3874,"children":3875},{"style":3632},[3876],{"type":3209,"value":3211},{"type":3204,"tag":3487,"props":3878,"children":3879},{"style":3566},[3880],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":3882,"children":3883},{"class":3489,"line":3101},[3884,3888,3893,3898,3902,3906,3911,3915,3919,3924,3928,3932],{"type":3204,"tag":3487,"props":3885,"children":3886},{"style":3566},[3887],{"type":3209,"value":3822},{"type":3204,"tag":3487,"props":3889,"children":3890},{"style":3632},[3891],{"type":3209,"value":3892},"button",{"type":3204,"tag":3487,"props":3894,"children":3895},{"style":3638},[3896],{"type":3209,"value":3897}," @click",{"type":3204,"tag":3487,"props":3899,"children":3900},{"style":3566},[3901],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":3903,"children":3904},{"style":3566},[3905],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":3907,"children":3908},{"style":3499},[3909],{"type":3209,"value":3910},"clear",{"type":3204,"tag":3487,"props":3912,"children":3913},{"style":3566},[3914],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":3916,"children":3917},{"style":3566},[3918],{"type":3209,"value":3831},{"type":3204,"tag":3487,"props":3920,"children":3921},{"style":3561},[3922],{"type":3209,"value":3923},"Logout",{"type":3204,"tag":3487,"props":3925,"children":3926},{"style":3566},[3927],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":3929,"children":3930},{"style":3632},[3931],{"type":3209,"value":3892},{"type":3204,"tag":3487,"props":3933,"children":3934},{"style":3566},[3935],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":3937,"children":3939},{"class":3489,"line":3938},10,[3940,3945,3949],{"type":3204,"tag":3487,"props":3941,"children":3942},{"style":3566},[3943],{"type":3209,"value":3944},"  \u003C\u002F",{"type":3204,"tag":3487,"props":3946,"children":3947},{"style":3632},[3948],{"type":3209,"value":3787},{"type":3204,"tag":3487,"props":3950,"children":3951},{"style":3566},[3952],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":3954,"children":3955},{"class":3489,"line":3192},[3956,3960,3964,3969],{"type":3204,"tag":3487,"props":3957,"children":3958},{"style":3566},[3959],{"type":3209,"value":3782},{"type":3204,"tag":3487,"props":3961,"children":3962},{"style":3632},[3963],{"type":3209,"value":3787},{"type":3204,"tag":3487,"props":3965,"children":3966},{"style":3638},[3967],{"type":3209,"value":3968}," v-else",{"type":3204,"tag":3487,"props":3970,"children":3971},{"style":3566},[3972],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":3974,"children":3976},{"class":3489,"line":3975},12,[3977,3981,3985,3989,3994,3998,4002],{"type":3204,"tag":3487,"props":3978,"children":3979},{"style":3566},[3980],{"type":3209,"value":3822},{"type":3204,"tag":3487,"props":3982,"children":3983},{"style":3632},[3984],{"type":3209,"value":3205},{"type":3204,"tag":3487,"props":3986,"children":3987},{"style":3566},[3988],{"type":3209,"value":3831},{"type":3204,"tag":3487,"props":3990,"children":3991},{"style":3561},[3992],{"type":3209,"value":3993},"Not logged in",{"type":3204,"tag":3487,"props":3995,"children":3996},{"style":3566},[3997],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":3999,"children":4000},{"style":3632},[4001],{"type":3209,"value":3205},{"type":3204,"tag":3487,"props":4003,"children":4004},{"style":3566},[4005],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":4007,"children":4009},{"class":3489,"line":4008},13,[4010,4014,4018,4023,4027,4031,4036,4040,4044,4049,4053,4057],{"type":3204,"tag":3487,"props":4011,"children":4012},{"style":3566},[4013],{"type":3209,"value":3822},{"type":3204,"tag":3487,"props":4015,"children":4016},{"style":3632},[4017],{"type":3209,"value":3215},{"type":3204,"tag":3487,"props":4019,"children":4020},{"style":3638},[4021],{"type":3209,"value":4022}," href",{"type":3204,"tag":3487,"props":4024,"children":4025},{"style":3566},[4026],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":4028,"children":4029},{"style":3566},[4030],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":4032,"children":4033},{"style":3499},[4034],{"type":3209,"value":4035},"\u002Fauth\u002Fgithub",{"type":3204,"tag":3487,"props":4037,"children":4038},{"style":3566},[4039],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":4041,"children":4042},{"style":3566},[4043],{"type":3209,"value":3831},{"type":3204,"tag":3487,"props":4045,"children":4046},{"style":3561},[4047],{"type":3209,"value":4048},"Login with GitHub",{"type":3204,"tag":3487,"props":4050,"children":4051},{"style":3566},[4052],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":4054,"children":4055},{"style":3632},[4056],{"type":3209,"value":3215},{"type":3204,"tag":3487,"props":4058,"children":4059},{"style":3566},[4060],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":4062,"children":4064},{"class":3489,"line":4063},14,[4065],{"type":3204,"tag":3487,"props":4066,"children":4067},{"style":3552},[4068],{"type":3209,"value":4069},"    \u003C!-- or open the OAuth route in a popup -->\n",{"type":3204,"tag":3487,"props":4071,"children":4073},{"class":3489,"line":4072},15,[4074,4078,4082,4086,4090,4094,4099,4103,4107,4111,4115,4119],{"type":3204,"tag":3487,"props":4075,"children":4076},{"style":3566},[4077],{"type":3209,"value":3822},{"type":3204,"tag":3487,"props":4079,"children":4080},{"style":3632},[4081],{"type":3209,"value":3892},{"type":3204,"tag":3487,"props":4083,"children":4084},{"style":3638},[4085],{"type":3209,"value":3897},{"type":3204,"tag":3487,"props":4087,"children":4088},{"style":3566},[4089],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":4091,"children":4092},{"style":3566},[4093],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":4095,"children":4096},{"style":3499},[4097],{"type":3209,"value":4098},"openInPopup('\u002Fauth\u002Fgithub')",{"type":3204,"tag":3487,"props":4100,"children":4101},{"style":3566},[4102],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":4104,"children":4105},{"style":3566},[4106],{"type":3209,"value":3831},{"type":3204,"tag":3487,"props":4108,"children":4109},{"style":3561},[4110],{"type":3209,"value":4048},{"type":3204,"tag":3487,"props":4112,"children":4113},{"style":3566},[4114],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":4116,"children":4117},{"style":3632},[4118],{"type":3209,"value":3892},{"type":3204,"tag":3487,"props":4120,"children":4121},{"style":3566},[4122],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":4124,"children":4125},{"class":3489,"line":3097},[4126,4130,4134],{"type":3204,"tag":3487,"props":4127,"children":4128},{"style":3566},[4129],{"type":3209,"value":3944},{"type":3204,"tag":3487,"props":4131,"children":4132},{"style":3632},[4133],{"type":3209,"value":3787},{"type":3204,"tag":3487,"props":4135,"children":4136},{"style":3566},[4137],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":4139,"children":4141},{"class":3489,"line":4140},17,[4142,4146,4150],{"type":3204,"tag":3487,"props":4143,"children":4144},{"style":3566},[4145],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":4147,"children":4148},{"style":3632},[4149],{"type":3209,"value":3769},{"type":3204,"tag":3487,"props":4151,"children":4152},{"style":3566},[4153],{"type":3209,"value":3646},{"type":3204,"tag":3211,"props":4155,"children":4156},{},[4157],{"type":3204,"tag":4158,"props":4159,"children":4160},"strong",{},[4161],{"type":3209,"value":4162},"TypeScript Signature:",{"type":3204,"tag":3477,"props":4164,"children":4168},{"className":4165,"code":4166,"language":4167,"meta":3077,"style":3077},"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",[4169],{"type":3204,"tag":3349,"props":4170,"children":4171},{"__ignoreMap":3077},[4172,4190,4198,4206,4214,4245,4252,4260,4267,4295,4302,4310,4317,4356,4363,4371,4378,4408,4416,4425,4433,4474,4482,4491,4499,4536,4544,4553,4561,4657],{"type":3204,"tag":3487,"props":4173,"children":4174},{"class":3489,"line":3163},[4175,4180,4185],{"type":3204,"tag":3487,"props":4176,"children":4177},{"style":3638},[4178],{"type":3209,"value":4179},"interface",{"type":3204,"tag":3487,"props":4181,"children":4182},{"style":3493},[4183],{"type":3209,"value":4184}," UserSessionComposable",{"type":3204,"tag":3487,"props":4186,"children":4187},{"style":3566},[4188],{"type":3209,"value":4189}," {\n",{"type":3204,"tag":3487,"props":4191,"children":4192},{"class":3489,"line":3129},[4193],{"type":3204,"tag":3487,"props":4194,"children":4195},{"style":3552},[4196],{"type":3209,"value":4197},"  \u002F**\n",{"type":3204,"tag":3487,"props":4199,"children":4200},{"class":3489,"line":3113},[4201],{"type":3204,"tag":3487,"props":4202,"children":4203},{"style":3552},[4204],{"type":3209,"value":4205},"   * Computed indicating if the auth session is ready\n",{"type":3204,"tag":3487,"props":4207,"children":4208},{"class":3489,"line":3750},[4209],{"type":3204,"tag":3487,"props":4210,"children":4211},{"style":3552},[4212],{"type":3209,"value":4213},"   *\u002F\n",{"type":3204,"tag":3487,"props":4215,"children":4216},{"class":3489,"line":3759},[4217,4222,4227,4232,4236,4241],{"type":3204,"tag":3487,"props":4218,"children":4219},{"style":3632},[4220],{"type":3209,"value":4221},"  ready",{"type":3204,"tag":3487,"props":4223,"children":4224},{"style":3566},[4225],{"type":3209,"value":4226},":",{"type":3204,"tag":3487,"props":4228,"children":4229},{"style":3493},[4230],{"type":3209,"value":4231}," ComputedRef",{"type":3204,"tag":3487,"props":4233,"children":4234},{"style":3566},[4235],{"type":3209,"value":3629},{"type":3204,"tag":3487,"props":4237,"children":4238},{"style":3493},[4239],{"type":3209,"value":4240},"boolean",{"type":3204,"tag":3487,"props":4242,"children":4243},{"style":3566},[4244],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":4246,"children":4247},{"class":3489,"line":3776},[4248],{"type":3204,"tag":3487,"props":4249,"children":4250},{"style":3552},[4251],{"type":3209,"value":4197},{"type":3204,"tag":3487,"props":4253,"children":4254},{"class":3489,"line":3109},[4255],{"type":3204,"tag":3487,"props":4256,"children":4257},{"style":3552},[4258],{"type":3209,"value":4259},"   * Computed indicating if the user is logged in.\n",{"type":3204,"tag":3487,"props":4261,"children":4262},{"class":3489,"line":3105},[4263],{"type":3204,"tag":3487,"props":4264,"children":4265},{"style":3552},[4266],{"type":3209,"value":4213},{"type":3204,"tag":3487,"props":4268,"children":4269},{"class":3489,"line":3101},[4270,4275,4279,4283,4287,4291],{"type":3204,"tag":3487,"props":4271,"children":4272},{"style":3632},[4273],{"type":3209,"value":4274},"  loggedIn",{"type":3204,"tag":3487,"props":4276,"children":4277},{"style":3566},[4278],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":4280,"children":4281},{"style":3493},[4282],{"type":3209,"value":4231},{"type":3204,"tag":3487,"props":4284,"children":4285},{"style":3566},[4286],{"type":3209,"value":3629},{"type":3204,"tag":3487,"props":4288,"children":4289},{"style":3493},[4290],{"type":3209,"value":4240},{"type":3204,"tag":3487,"props":4292,"children":4293},{"style":3566},[4294],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":4296,"children":4297},{"class":3489,"line":3938},[4298],{"type":3204,"tag":3487,"props":4299,"children":4300},{"style":3552},[4301],{"type":3209,"value":4197},{"type":3204,"tag":3487,"props":4303,"children":4304},{"class":3489,"line":3192},[4305],{"type":3204,"tag":3487,"props":4306,"children":4307},{"style":3552},[4308],{"type":3209,"value":4309},"   * The user object if logged in, null otherwise.\n",{"type":3204,"tag":3487,"props":4311,"children":4312},{"class":3489,"line":3975},[4313],{"type":3204,"tag":3487,"props":4314,"children":4315},{"style":3552},[4316],{"type":3209,"value":4213},{"type":3204,"tag":3487,"props":4318,"children":4319},{"class":3489,"line":4008},[4320,4325,4329,4333,4337,4342,4347,4352],{"type":3204,"tag":3487,"props":4321,"children":4322},{"style":3632},[4323],{"type":3209,"value":4324},"  user",{"type":3204,"tag":3487,"props":4326,"children":4327},{"style":3566},[4328],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":4330,"children":4331},{"style":3493},[4332],{"type":3209,"value":4231},{"type":3204,"tag":3487,"props":4334,"children":4335},{"style":3566},[4336],{"type":3209,"value":3629},{"type":3204,"tag":3487,"props":4338,"children":4339},{"style":3493},[4340],{"type":3209,"value":4341},"User",{"type":3204,"tag":3487,"props":4343,"children":4344},{"style":3566},[4345],{"type":3209,"value":4346}," |",{"type":3204,"tag":3487,"props":4348,"children":4349},{"style":3493},[4350],{"type":3209,"value":4351}," null",{"type":3204,"tag":3487,"props":4353,"children":4354},{"style":3566},[4355],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":4357,"children":4358},{"class":3489,"line":4063},[4359],{"type":3204,"tag":3487,"props":4360,"children":4361},{"style":3552},[4362],{"type":3209,"value":4197},{"type":3204,"tag":3487,"props":4364,"children":4365},{"class":3489,"line":4072},[4366],{"type":3204,"tag":3487,"props":4367,"children":4368},{"style":3552},[4369],{"type":3209,"value":4370},"   * The session object.\n",{"type":3204,"tag":3487,"props":4372,"children":4373},{"class":3489,"line":3097},[4374],{"type":3204,"tag":3487,"props":4375,"children":4376},{"style":3552},[4377],{"type":3209,"value":4213},{"type":3204,"tag":3487,"props":4379,"children":4380},{"class":3489,"line":4140},[4381,4386,4390,4395,4399,4404],{"type":3204,"tag":3487,"props":4382,"children":4383},{"style":3632},[4384],{"type":3209,"value":4385},"  session",{"type":3204,"tag":3487,"props":4387,"children":4388},{"style":3566},[4389],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":4391,"children":4392},{"style":3493},[4393],{"type":3209,"value":4394}," Ref",{"type":3204,"tag":3487,"props":4396,"children":4397},{"style":3566},[4398],{"type":3209,"value":3629},{"type":3204,"tag":3487,"props":4400,"children":4401},{"style":3493},[4402],{"type":3209,"value":4403},"UserSession",{"type":3204,"tag":3487,"props":4405,"children":4406},{"style":3566},[4407],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":4409,"children":4411},{"class":3489,"line":4410},18,[4412],{"type":3204,"tag":3487,"props":4413,"children":4414},{"style":3552},[4415],{"type":3209,"value":4197},{"type":3204,"tag":3487,"props":4417,"children":4419},{"class":3489,"line":4418},19,[4420],{"type":3204,"tag":3487,"props":4421,"children":4422},{"style":3552},[4423],{"type":3209,"value":4424},"   * Fetch the user session from the server.\n",{"type":3204,"tag":3487,"props":4426,"children":4428},{"class":3489,"line":4427},20,[4429],{"type":3204,"tag":3487,"props":4430,"children":4431},{"style":3552},[4432],{"type":3209,"value":4213},{"type":3204,"tag":3487,"props":4434,"children":4436},{"class":3489,"line":4435},21,[4437,4442,4446,4451,4456,4461,4465,4470],{"type":3204,"tag":3487,"props":4438,"children":4439},{"style":3632},[4440],{"type":3209,"value":4441},"  fetch",{"type":3204,"tag":3487,"props":4443,"children":4444},{"style":3566},[4445],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":4447,"children":4448},{"style":3566},[4449],{"type":3209,"value":4450}," ()",{"type":3204,"tag":3487,"props":4452,"children":4453},{"style":3638},[4454],{"type":3209,"value":4455}," =>",{"type":3204,"tag":3487,"props":4457,"children":4458},{"style":3493},[4459],{"type":3209,"value":4460}," Promise",{"type":3204,"tag":3487,"props":4462,"children":4463},{"style":3566},[4464],{"type":3209,"value":3629},{"type":3204,"tag":3487,"props":4466,"children":4467},{"style":3493},[4468],{"type":3209,"value":4469},"void",{"type":3204,"tag":3487,"props":4471,"children":4472},{"style":3566},[4473],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":4475,"children":4477},{"class":3489,"line":4476},22,[4478],{"type":3204,"tag":3487,"props":4479,"children":4480},{"style":3552},[4481],{"type":3209,"value":4197},{"type":3204,"tag":3487,"props":4483,"children":4485},{"class":3489,"line":4484},23,[4486],{"type":3204,"tag":3487,"props":4487,"children":4488},{"style":3552},[4489],{"type":3209,"value":4490},"   * Clear the user session and remove the session cookie.\n",{"type":3204,"tag":3487,"props":4492,"children":4494},{"class":3489,"line":4493},24,[4495],{"type":3204,"tag":3487,"props":4496,"children":4497},{"style":3552},[4498],{"type":3209,"value":4213},{"type":3204,"tag":3487,"props":4500,"children":4502},{"class":3489,"line":4501},25,[4503,4508,4512,4516,4520,4524,4528,4532],{"type":3204,"tag":3487,"props":4504,"children":4505},{"style":3632},[4506],{"type":3209,"value":4507},"  clear",{"type":3204,"tag":3487,"props":4509,"children":4510},{"style":3566},[4511],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":4513,"children":4514},{"style":3566},[4515],{"type":3209,"value":4450},{"type":3204,"tag":3487,"props":4517,"children":4518},{"style":3638},[4519],{"type":3209,"value":4455},{"type":3204,"tag":3487,"props":4521,"children":4522},{"style":3493},[4523],{"type":3209,"value":4460},{"type":3204,"tag":3487,"props":4525,"children":4526},{"style":3566},[4527],{"type":3209,"value":3629},{"type":3204,"tag":3487,"props":4529,"children":4530},{"style":3493},[4531],{"type":3209,"value":4469},{"type":3204,"tag":3487,"props":4533,"children":4534},{"style":3566},[4535],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":4537,"children":4539},{"class":3489,"line":4538},26,[4540],{"type":3204,"tag":3487,"props":4541,"children":4542},{"style":3552},[4543],{"type":3209,"value":4197},{"type":3204,"tag":3487,"props":4545,"children":4547},{"class":3489,"line":4546},27,[4548],{"type":3204,"tag":3487,"props":4549,"children":4550},{"style":3552},[4551],{"type":3209,"value":4552},"   * Open the OAuth route in a popup that auto-closes when successful.\n",{"type":3204,"tag":3487,"props":4554,"children":4556},{"class":3489,"line":4555},28,[4557],{"type":3204,"tag":3487,"props":4558,"children":4559},{"style":3552},[4560],{"type":3209,"value":4213},{"type":3204,"tag":3487,"props":4562,"children":4564},{"class":3489,"line":4563},29,[4565,4570,4574,4579,4585,4589,4594,4598,4603,4608,4612,4617,4621,4626,4630,4635,4639,4643,4648,4652],{"type":3204,"tag":3487,"props":4566,"children":4567},{"style":3632},[4568],{"type":3209,"value":4569},"  openInPopup",{"type":3204,"tag":3487,"props":4571,"children":4572},{"style":3566},[4573],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":4575,"children":4576},{"style":3566},[4577],{"type":3209,"value":4578}," (",{"type":3204,"tag":3487,"props":4580,"children":4582},{"style":4581},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#90A4AE;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[4583],{"type":3209,"value":4584},"route",{"type":3204,"tag":3487,"props":4586,"children":4587},{"style":3566},[4588],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":4590,"children":4591},{"style":3493},[4592],{"type":3209,"value":4593}," string",{"type":3204,"tag":3487,"props":4595,"children":4596},{"style":3566},[4597],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":4599,"children":4600},{"style":4581},[4601],{"type":3209,"value":4602}," size",{"type":3204,"tag":3487,"props":4604,"children":4605},{"style":3566},[4606],{"type":3209,"value":4607},"?:",{"type":3204,"tag":3487,"props":4609,"children":4610},{"style":3566},[4611],{"type":3209,"value":3659},{"type":3204,"tag":3487,"props":4613,"children":4614},{"style":3632},[4615],{"type":3209,"value":4616}," width",{"type":3204,"tag":3487,"props":4618,"children":4619},{"style":3566},[4620],{"type":3209,"value":4607},{"type":3204,"tag":3487,"props":4622,"children":4623},{"style":3493},[4624],{"type":3209,"value":4625}," number",{"type":3204,"tag":3487,"props":4627,"children":4628},{"style":3566},[4629],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":4631,"children":4632},{"style":3632},[4633],{"type":3209,"value":4634}," height",{"type":3204,"tag":3487,"props":4636,"children":4637},{"style":3566},[4638],{"type":3209,"value":4607},{"type":3204,"tag":3487,"props":4640,"children":4641},{"style":3493},[4642],{"type":3209,"value":4625},{"type":3204,"tag":3487,"props":4644,"children":4645},{"style":3566},[4646],{"type":3209,"value":4647}," })",{"type":3204,"tag":3487,"props":4649,"children":4650},{"style":3638},[4651],{"type":3209,"value":4455},{"type":3204,"tag":3487,"props":4653,"children":4654},{"style":3493},[4655],{"type":3209,"value":4656}," void\n",{"type":3204,"tag":3487,"props":4658,"children":4660},{"class":3489,"line":4659},30,[4661],{"type":3204,"tag":3487,"props":4662,"children":4663},{"style":3566},[4664],{"type":3209,"value":4665},"}\n",{"type":3204,"tag":4667,"props":4668,"children":4669},"blockquote",{},[4670],{"type":3204,"tag":3211,"props":4671,"children":4672},{},[4673,4678,4680,4686],{"type":3204,"tag":3487,"props":4674,"children":4675},{},[4676],{"type":3209,"value":4677},"!IMPORTANT",{"type":3209,"value":4679},"\nNuxt Auth Utils uses the ",{"type":3204,"tag":3349,"props":4681,"children":4683},{"className":4682},[],[4684],{"type":3209,"value":4685},"\u002Fapi\u002F_auth\u002Fsession",{"type":3209,"value":4687}," route for session management. Ensure your API route middleware doesn't interfere with this path.",{"type":3204,"tag":3295,"props":4689,"children":4691},{"id":4690},"server-utils",[4692],{"type":3209,"value":4693},"Server Utils",{"type":3204,"tag":3211,"props":4695,"children":4696},{},[4697,4699,4705],{"type":3209,"value":4698},"The following helpers are auto-imported in your ",{"type":3204,"tag":3349,"props":4700,"children":4702},{"className":4701},[],[4703],{"type":3209,"value":4704},"server\u002F",{"type":3209,"value":4706}," directory.",{"type":3204,"tag":3607,"props":4708,"children":4710},{"id":4709},"session-management",[4711],{"type":3209,"value":4712},"Session Management",{"type":3204,"tag":3477,"props":4714,"children":4716},{"className":4165,"code":4715,"language":4167,"meta":3077,"style":3077},"\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",[4717],{"type":3204,"tag":3349,"props":4718,"children":4719},{"__ignoreMap":3077},[4720,4728,4736,4744,4771,4779,4794,4820,4828,4836,4852,4877,4884,4892,4918,4930,4937,4945,4970,4977,4985,5016,5023,5031,5047,5054,5062],{"type":3204,"tag":3487,"props":4721,"children":4722},{"class":3489,"line":3163},[4723],{"type":3204,"tag":3487,"props":4724,"children":4725},{"style":3552},[4726],{"type":3209,"value":4727},"\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":3204,"tag":3487,"props":4729,"children":4730},{"class":3489,"line":3129},[4731],{"type":3204,"tag":3487,"props":4732,"children":4733},{"style":3552},[4734],{"type":3209,"value":4735},"\u002F\u002F Only store the data that allow you to recognize a user, but do not store sensitive data\n",{"type":3204,"tag":3487,"props":4737,"children":4738},{"class":3489,"line":3113},[4739],{"type":3204,"tag":3487,"props":4740,"children":4741},{"style":3552},[4742],{"type":3209,"value":4743},"\u002F\u002F Merges new data with existing data using unjs\u002Fdefu library\n",{"type":3204,"tag":3487,"props":4745,"children":4746},{"class":3489,"line":3750},[4747,4753,4758,4763,4767],{"type":3204,"tag":3487,"props":4748,"children":4750},{"style":4749},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#39ADB5;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[4751],{"type":3209,"value":4752},"await",{"type":3204,"tag":3487,"props":4754,"children":4755},{"style":3723},[4756],{"type":3209,"value":4757}," setUserSession",{"type":3204,"tag":3487,"props":4759,"children":4760},{"style":3561},[4761],{"type":3209,"value":4762},"(event",{"type":3204,"tag":3487,"props":4764,"children":4765},{"style":3566},[4766],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":4768,"children":4769},{"style":3566},[4770],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":4772,"children":4773},{"class":3489,"line":3759},[4774],{"type":3204,"tag":3487,"props":4775,"children":4776},{"style":3552},[4777],{"type":3209,"value":4778},"  \u002F\u002F User data\n",{"type":3204,"tag":3487,"props":4780,"children":4781},{"class":3489,"line":3776},[4782,4786,4790],{"type":3204,"tag":3487,"props":4783,"children":4784},{"style":3632},[4785],{"type":3209,"value":4324},{"type":3204,"tag":3487,"props":4787,"children":4788},{"style":3566},[4789],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":4791,"children":4792},{"style":3566},[4793],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":4795,"children":4796},{"class":3489,"line":3109},[4797,4802,4806,4811,4815],{"type":3204,"tag":3487,"props":4798,"children":4799},{"style":3632},[4800],{"type":3209,"value":4801},"    login",{"type":3204,"tag":3487,"props":4803,"children":4804},{"style":3566},[4805],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":4807,"children":4808},{"style":3566},[4809],{"type":3209,"value":4810}," '",{"type":3204,"tag":3487,"props":4812,"children":4813},{"style":3499},[4814],{"type":3209,"value":3084},{"type":3204,"tag":3487,"props":4816,"children":4817},{"style":3566},[4818],{"type":3209,"value":4819},"'\n",{"type":3204,"tag":3487,"props":4821,"children":4822},{"class":3489,"line":3105},[4823],{"type":3204,"tag":3487,"props":4824,"children":4825},{"style":3566},[4826],{"type":3209,"value":4827},"  },\n",{"type":3204,"tag":3487,"props":4829,"children":4830},{"class":3489,"line":3101},[4831],{"type":3204,"tag":3487,"props":4832,"children":4833},{"style":3552},[4834],{"type":3209,"value":4835},"  \u002F\u002F Private data accessible only on server\u002F routes\n",{"type":3204,"tag":3487,"props":4837,"children":4838},{"class":3489,"line":3938},[4839,4844,4848],{"type":3204,"tag":3487,"props":4840,"children":4841},{"style":3632},[4842],{"type":3209,"value":4843},"  secure",{"type":3204,"tag":3487,"props":4845,"children":4846},{"style":3566},[4847],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":4849,"children":4850},{"style":3566},[4851],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":4853,"children":4854},{"class":3489,"line":3192},[4855,4860,4864,4868,4873],{"type":3204,"tag":3487,"props":4856,"children":4857},{"style":3632},[4858],{"type":3209,"value":4859},"    apiToken",{"type":3204,"tag":3487,"props":4861,"children":4862},{"style":3566},[4863],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":4865,"children":4866},{"style":3566},[4867],{"type":3209,"value":4810},{"type":3204,"tag":3487,"props":4869,"children":4870},{"style":3499},[4871],{"type":3209,"value":4872},"1234567890",{"type":3204,"tag":3487,"props":4874,"children":4875},{"style":3566},[4876],{"type":3209,"value":4819},{"type":3204,"tag":3487,"props":4878,"children":4879},{"class":3489,"line":3975},[4880],{"type":3204,"tag":3487,"props":4881,"children":4882},{"style":3566},[4883],{"type":3209,"value":4827},{"type":3204,"tag":3487,"props":4885,"children":4886},{"class":3489,"line":4008},[4887],{"type":3204,"tag":3487,"props":4888,"children":4889},{"style":3552},[4890],{"type":3209,"value":4891},"  \u002F\u002F Any extra fields for the session data\n",{"type":3204,"tag":3487,"props":4893,"children":4894},{"class":3489,"line":4063},[4895,4900,4904,4909,4914],{"type":3204,"tag":3487,"props":4896,"children":4897},{"style":3632},[4898],{"type":3209,"value":4899},"  loggedInAt",{"type":3204,"tag":3487,"props":4901,"children":4902},{"style":3566},[4903],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":4905,"children":4906},{"style":3566},[4907],{"type":3209,"value":4908}," new",{"type":3204,"tag":3487,"props":4910,"children":4911},{"style":3723},[4912],{"type":3209,"value":4913}," Date",{"type":3204,"tag":3487,"props":4915,"children":4916},{"style":3561},[4917],{"type":3209,"value":3731},{"type":3204,"tag":3487,"props":4919,"children":4920},{"class":3489,"line":4072},[4921,4925],{"type":3204,"tag":3487,"props":4922,"children":4923},{"style":3566},[4924],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":4926,"children":4927},{"style":3561},[4928],{"type":3209,"value":4929},")\n",{"type":3204,"tag":3487,"props":4931,"children":4932},{"class":3489,"line":3097},[4933],{"type":3204,"tag":3487,"props":4934,"children":4935},{"emptyLinePlaceholder":1208},[4936],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":4938,"children":4939},{"class":3489,"line":4140},[4940],{"type":3204,"tag":3487,"props":4941,"children":4942},{"style":3552},[4943],{"type":3209,"value":4944},"\u002F\u002F Replace a user session. Same behaviour as setUserSession, except it does not merge data with existing data\n",{"type":3204,"tag":3487,"props":4946,"children":4947},{"class":3489,"line":4410},[4948,4952,4957,4961,4965],{"type":3204,"tag":3487,"props":4949,"children":4950},{"style":4749},[4951],{"type":3209,"value":4752},{"type":3204,"tag":3487,"props":4953,"children":4954},{"style":3723},[4955],{"type":3209,"value":4956}," replaceUserSession",{"type":3204,"tag":3487,"props":4958,"children":4959},{"style":3561},[4960],{"type":3209,"value":4762},{"type":3204,"tag":3487,"props":4962,"children":4963},{"style":3566},[4964],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":4966,"children":4967},{"style":3561},[4968],{"type":3209,"value":4969}," data)\n",{"type":3204,"tag":3487,"props":4971,"children":4972},{"class":3489,"line":4418},[4973],{"type":3204,"tag":3487,"props":4974,"children":4975},{"emptyLinePlaceholder":1208},[4976],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":4978,"children":4979},{"class":3489,"line":4427},[4980],{"type":3204,"tag":3487,"props":4981,"children":4982},{"style":3552},[4983],{"type":3209,"value":4984},"\u002F\u002F Get the current user session\n",{"type":3204,"tag":3487,"props":4986,"children":4987},{"class":3489,"line":4435},[4988,4992,4997,5001,5006,5011],{"type":3204,"tag":3487,"props":4989,"children":4990},{"style":3638},[4991],{"type":3209,"value":3654},{"type":3204,"tag":3487,"props":4993,"children":4994},{"style":3561},[4995],{"type":3209,"value":4996}," session ",{"type":3204,"tag":3487,"props":4998,"children":4999},{"style":3566},[5000],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":5002,"children":5003},{"style":4749},[5004],{"type":3209,"value":5005}," await",{"type":3204,"tag":3487,"props":5007,"children":5008},{"style":3723},[5009],{"type":3209,"value":5010}," getUserSession",{"type":3204,"tag":3487,"props":5012,"children":5013},{"style":3561},[5014],{"type":3209,"value":5015},"(event)\n",{"type":3204,"tag":3487,"props":5017,"children":5018},{"class":3489,"line":4476},[5019],{"type":3204,"tag":3487,"props":5020,"children":5021},{"emptyLinePlaceholder":1208},[5022],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":5024,"children":5025},{"class":3489,"line":4484},[5026],{"type":3204,"tag":3487,"props":5027,"children":5028},{"style":3552},[5029],{"type":3209,"value":5030},"\u002F\u002F Clear the current user session\n",{"type":3204,"tag":3487,"props":5032,"children":5033},{"class":3489,"line":4493},[5034,5038,5043],{"type":3204,"tag":3487,"props":5035,"children":5036},{"style":4749},[5037],{"type":3209,"value":4752},{"type":3204,"tag":3487,"props":5039,"children":5040},{"style":3723},[5041],{"type":3209,"value":5042}," clearUserSession",{"type":3204,"tag":3487,"props":5044,"children":5045},{"style":3561},[5046],{"type":3209,"value":5015},{"type":3204,"tag":3487,"props":5048,"children":5049},{"class":3489,"line":4501},[5050],{"type":3204,"tag":3487,"props":5051,"children":5052},{"emptyLinePlaceholder":1208},[5053],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":5055,"children":5056},{"class":3489,"line":4538},[5057],{"type":3204,"tag":3487,"props":5058,"children":5059},{"style":3552},[5060],{"type":3209,"value":5061},"\u002F\u002F Require a user session (send back 401 if no `user` key in session)\n",{"type":3204,"tag":3487,"props":5063,"children":5064},{"class":3489,"line":4546},[5065,5069,5073,5077,5081,5086],{"type":3204,"tag":3487,"props":5066,"children":5067},{"style":3638},[5068],{"type":3209,"value":3654},{"type":3204,"tag":3487,"props":5070,"children":5071},{"style":3561},[5072],{"type":3209,"value":4996},{"type":3204,"tag":3487,"props":5074,"children":5075},{"style":3566},[5076],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":5078,"children":5079},{"style":4749},[5080],{"type":3209,"value":5005},{"type":3204,"tag":3487,"props":5082,"children":5083},{"style":3723},[5084],{"type":3209,"value":5085}," requireUserSession",{"type":3204,"tag":3487,"props":5087,"children":5088},{"style":3561},[5089],{"type":3209,"value":5015},{"type":3204,"tag":3211,"props":5091,"children":5092},{},[5093,5095,5101,5103,5108],{"type":3209,"value":5094},"You can define the type for your user session by creating a type declaration file (for example, ",{"type":3204,"tag":3349,"props":5096,"children":5098},{"className":5097},[],[5099],{"type":3209,"value":5100},"auth.d.ts",{"type":3209,"value":5102},") in your project to augment the ",{"type":3204,"tag":3349,"props":5104,"children":5106},{"className":5105},[],[5107],{"type":3209,"value":4403},{"type":3209,"value":5109}," type:",{"type":3204,"tag":3477,"props":5111,"children":5113},{"className":4165,"code":5112,"language":4167,"meta":3077,"style":3077},"\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",[5114],{"type":3204,"tag":3349,"props":5115,"children":5116},{"__ignoreMap":3077},[5117,5125,5155,5172,5180,5188,5195,5211,5218,5225,5232,5248,5255,5262,5269,5276],{"type":3204,"tag":3487,"props":5118,"children":5119},{"class":3489,"line":3163},[5120],{"type":3204,"tag":3487,"props":5121,"children":5122},{"style":3552},[5123],{"type":3209,"value":5124},"\u002F\u002F shared\u002Ftypes\u002Fauth.d.ts\n",{"type":3204,"tag":3487,"props":5126,"children":5127},{"class":3489,"line":3129},[5128,5133,5137,5141,5146,5151],{"type":3204,"tag":3487,"props":5129,"children":5130},{"style":3638},[5131],{"type":3209,"value":5132},"declare",{"type":3204,"tag":3487,"props":5134,"children":5135},{"style":3638},[5136],{"type":3209,"value":3507},{"type":3204,"tag":3487,"props":5138,"children":5139},{"style":3566},[5140],{"type":3209,"value":4810},{"type":3204,"tag":3487,"props":5142,"children":5143},{"style":3499},[5144],{"type":3209,"value":5145},"#auth-utils",{"type":3204,"tag":3487,"props":5147,"children":5148},{"style":3566},[5149],{"type":3209,"value":5150},"'",{"type":3204,"tag":3487,"props":5152,"children":5153},{"style":3566},[5154],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":5156,"children":5157},{"class":3489,"line":3113},[5158,5163,5168],{"type":3204,"tag":3487,"props":5159,"children":5160},{"style":3638},[5161],{"type":3209,"value":5162},"  interface",{"type":3204,"tag":3487,"props":5164,"children":5165},{"style":3493},[5166],{"type":3209,"value":5167}," User",{"type":3204,"tag":3487,"props":5169,"children":5170},{"style":3566},[5171],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":5173,"children":5174},{"class":3489,"line":3750},[5175],{"type":3204,"tag":3487,"props":5176,"children":5177},{"style":3552},[5178],{"type":3209,"value":5179},"    \u002F\u002F Add your own fields\n",{"type":3204,"tag":3487,"props":5181,"children":5182},{"class":3489,"line":3759},[5183],{"type":3204,"tag":3487,"props":5184,"children":5185},{"style":3566},[5186],{"type":3209,"value":5187},"  }\n",{"type":3204,"tag":3487,"props":5189,"children":5190},{"class":3489,"line":3776},[5191],{"type":3204,"tag":3487,"props":5192,"children":5193},{"emptyLinePlaceholder":1208},[5194],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":5196,"children":5197},{"class":3489,"line":3109},[5198,5202,5207],{"type":3204,"tag":3487,"props":5199,"children":5200},{"style":3638},[5201],{"type":3209,"value":5162},{"type":3204,"tag":3487,"props":5203,"children":5204},{"style":3493},[5205],{"type":3209,"value":5206}," UserSession",{"type":3204,"tag":3487,"props":5208,"children":5209},{"style":3566},[5210],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":5212,"children":5213},{"class":3489,"line":3105},[5214],{"type":3204,"tag":3487,"props":5215,"children":5216},{"style":3552},[5217],{"type":3209,"value":5179},{"type":3204,"tag":3487,"props":5219,"children":5220},{"class":3489,"line":3101},[5221],{"type":3204,"tag":3487,"props":5222,"children":5223},{"style":3566},[5224],{"type":3209,"value":5187},{"type":3204,"tag":3487,"props":5226,"children":5227},{"class":3489,"line":3938},[5228],{"type":3204,"tag":3487,"props":5229,"children":5230},{"emptyLinePlaceholder":1208},[5231],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":5233,"children":5234},{"class":3489,"line":3192},[5235,5239,5244],{"type":3204,"tag":3487,"props":5236,"children":5237},{"style":3638},[5238],{"type":3209,"value":5162},{"type":3204,"tag":3487,"props":5240,"children":5241},{"style":3493},[5242],{"type":3209,"value":5243}," SecureSessionData",{"type":3204,"tag":3487,"props":5245,"children":5246},{"style":3566},[5247],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":5249,"children":5250},{"class":3489,"line":3975},[5251],{"type":3204,"tag":3487,"props":5252,"children":5253},{"style":3552},[5254],{"type":3209,"value":5179},{"type":3204,"tag":3487,"props":5256,"children":5257},{"class":3489,"line":4008},[5258],{"type":3204,"tag":3487,"props":5259,"children":5260},{"style":3566},[5261],{"type":3209,"value":5187},{"type":3204,"tag":3487,"props":5263,"children":5264},{"class":3489,"line":4063},[5265],{"type":3204,"tag":3487,"props":5266,"children":5267},{"style":3566},[5268],{"type":3209,"value":4665},{"type":3204,"tag":3487,"props":5270,"children":5271},{"class":3489,"line":4072},[5272],{"type":3204,"tag":3487,"props":5273,"children":5274},{"emptyLinePlaceholder":1208},[5275],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":5277,"children":5278},{"class":3489,"line":3097},[5279,5284],{"type":3204,"tag":3487,"props":5280,"children":5281},{"style":4749},[5282],{"type":3209,"value":5283},"export",{"type":3204,"tag":3487,"props":5285,"children":5286},{"style":3566},[5287],{"type":3209,"value":5288}," {}\n",{"type":3204,"tag":4667,"props":5290,"children":5291},{},[5292],{"type":3204,"tag":3211,"props":5293,"children":5294},{},[5295,5299],{"type":3204,"tag":3487,"props":5296,"children":5297},{},[5298],{"type":3209,"value":4677},{"type":3209,"value":5300},"\nSince we encrypt and store session data in cookies, we're constrained by the 4096-byte cookie size limit. Store only essential information.",{"type":3204,"tag":3607,"props":5302,"children":5304},{"id":5303},"oauth-event-handlers",[5305],{"type":3209,"value":5306},"OAuth Event Handlers",{"type":3204,"tag":3211,"props":5308,"children":5309},{},[5310],{"type":3209,"value":5311},"All handlers can be auto-imported and used in your server routes or API routes.",{"type":3204,"tag":3211,"props":5313,"children":5314},{},[5315,5317,5323,5325,5331],{"type":3209,"value":5316},"The pattern is ",{"type":3204,"tag":3349,"props":5318,"children":5320},{"className":5319},[],[5321],{"type":3209,"value":5322},"defineOAuth\u003CProvider>EventHandler({ onSuccess, config?, onError? })",{"type":3209,"value":5324},", example: ",{"type":3204,"tag":3349,"props":5326,"children":5328},{"className":5327},[],[5329],{"type":3209,"value":5330},"defineOAuthGitHubEventHandler",{"type":3209,"value":3442},{"type":3204,"tag":3211,"props":5333,"children":5334},{},[5335,5337,5343,5345,5351],{"type":3209,"value":5336},"The helper returns an event handler that automatically redirects to the provider authorization page and then calls ",{"type":3204,"tag":3349,"props":5338,"children":5340},{"className":5339},[],[5341],{"type":3209,"value":5342},"onSuccess",{"type":3209,"value":5344}," or ",{"type":3204,"tag":3349,"props":5346,"children":5348},{"className":5347},[],[5349],{"type":3209,"value":5350},"onError",{"type":3209,"value":5352}," depending on the result.",{"type":3204,"tag":3211,"props":5354,"children":5355},{},[5356,5358,5364,5366,5372,5374,5379],{"type":3209,"value":5357},"The ",{"type":3204,"tag":3349,"props":5359,"children":5361},{"className":5360},[],[5362],{"type":3209,"value":5363},"config",{"type":3209,"value":5365}," can be defined directly from the ",{"type":3204,"tag":3349,"props":5367,"children":5369},{"className":5368},[],[5370],{"type":3209,"value":5371},"runtimeConfig",{"type":3209,"value":5373}," in your ",{"type":3204,"tag":3349,"props":5375,"children":5377},{"className":5376},[],[5378],{"type":3209,"value":233},{"type":3209,"value":4226},{"type":3204,"tag":3477,"props":5381,"children":5383},{"className":4165,"code":5382,"language":4167,"meta":3077,"style":3077},"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",[5384],{"type":3204,"tag":3349,"props":5385,"children":5386},{"__ignoreMap":3077},[5387,5414,5430,5446,5454,5470,5500,5524,5532,5540,5547],{"type":3204,"tag":3487,"props":5388,"children":5389},{"class":3489,"line":3163},[5390,5394,5399,5404,5409],{"type":3204,"tag":3487,"props":5391,"children":5392},{"style":4749},[5393],{"type":3209,"value":5283},{"type":3204,"tag":3487,"props":5395,"children":5396},{"style":4749},[5397],{"type":3209,"value":5398}," default",{"type":3204,"tag":3487,"props":5400,"children":5401},{"style":3723},[5402],{"type":3209,"value":5403}," defineNuxtConfig",{"type":3204,"tag":3487,"props":5405,"children":5406},{"style":3561},[5407],{"type":3209,"value":5408},"(",{"type":3204,"tag":3487,"props":5410,"children":5411},{"style":3566},[5412],{"type":3209,"value":5413},"{\n",{"type":3204,"tag":3487,"props":5415,"children":5416},{"class":3489,"line":3129},[5417,5422,5426],{"type":3204,"tag":3487,"props":5418,"children":5419},{"style":3632},[5420],{"type":3209,"value":5421},"  runtimeConfig",{"type":3204,"tag":3487,"props":5423,"children":5424},{"style":3566},[5425],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":5427,"children":5428},{"style":3566},[5429],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":5431,"children":5432},{"class":3489,"line":3113},[5433,5438,5442],{"type":3204,"tag":3487,"props":5434,"children":5435},{"style":3632},[5436],{"type":3209,"value":5437},"    oauth",{"type":3204,"tag":3487,"props":5439,"children":5440},{"style":3566},[5441],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":5443,"children":5444},{"style":3566},[5445],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":5447,"children":5448},{"class":3489,"line":3750},[5449],{"type":3204,"tag":3487,"props":5450,"children":5451},{"style":3552},[5452],{"type":3209,"value":5453},"      \u002F\u002F provider in lowercase (github, google, etc.)\n",{"type":3204,"tag":3487,"props":5455,"children":5456},{"class":3489,"line":3759},[5457,5462,5466],{"type":3204,"tag":3487,"props":5458,"children":5459},{"style":3561},[5460],{"type":3209,"value":5461},"      \u003Cprovider>",{"type":3204,"tag":3487,"props":5463,"children":5464},{"style":3566},[5465],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":5467,"children":5468},{"style":3566},[5469],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":5471,"children":5472},{"class":3489,"line":3776},[5473,5478,5482,5486,5491,5495],{"type":3204,"tag":3487,"props":5474,"children":5475},{"style":3632},[5476],{"type":3209,"value":5477},"        clientId",{"type":3204,"tag":3487,"props":5479,"children":5480},{"style":3566},[5481],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":5483,"children":5484},{"style":3566},[5485],{"type":3209,"value":4810},{"type":3204,"tag":3487,"props":5487,"children":5488},{"style":3499},[5489],{"type":3209,"value":5490},"...",{"type":3204,"tag":3487,"props":5492,"children":5493},{"style":3566},[5494],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":5496,"children":5497},{"style":3566},[5498],{"type":3209,"value":5499},",\n",{"type":3204,"tag":3487,"props":5501,"children":5502},{"class":3489,"line":3109},[5503,5508,5512,5516,5520],{"type":3204,"tag":3487,"props":5504,"children":5505},{"style":3632},[5506],{"type":3209,"value":5507},"        clientSecret",{"type":3204,"tag":3487,"props":5509,"children":5510},{"style":3566},[5511],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":5513,"children":5514},{"style":3566},[5515],{"type":3209,"value":4810},{"type":3204,"tag":3487,"props":5517,"children":5518},{"style":3499},[5519],{"type":3209,"value":5490},{"type":3204,"tag":3487,"props":5521,"children":5522},{"style":3566},[5523],{"type":3209,"value":4819},{"type":3204,"tag":3487,"props":5525,"children":5526},{"class":3489,"line":3105},[5527],{"type":3204,"tag":3487,"props":5528,"children":5529},{"style":3566},[5530],{"type":3209,"value":5531},"      }\n",{"type":3204,"tag":3487,"props":5533,"children":5534},{"class":3489,"line":3101},[5535],{"type":3204,"tag":3487,"props":5536,"children":5537},{"style":3566},[5538],{"type":3209,"value":5539},"    }\n",{"type":3204,"tag":3487,"props":5541,"children":5542},{"class":3489,"line":3938},[5543],{"type":3204,"tag":3487,"props":5544,"children":5545},{"style":3566},[5546],{"type":3209,"value":5187},{"type":3204,"tag":3487,"props":5548,"children":5549},{"class":3489,"line":3192},[5550,5554],{"type":3204,"tag":3487,"props":5551,"children":5552},{"style":3566},[5553],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":5555,"children":5556},{"style":3561},[5557],{"type":3209,"value":4929},{"type":3204,"tag":3211,"props":5559,"children":5560},{},[5561],{"type":3209,"value":5562},"It can also be set using environment variables:",{"type":3204,"tag":3261,"props":5564,"children":5565},{},[5566,5575],{"type":3204,"tag":3265,"props":5567,"children":5568},{},[5569],{"type":3204,"tag":3349,"props":5570,"children":5572},{"className":5571},[],[5573],{"type":3209,"value":5574},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_ID",{"type":3204,"tag":3265,"props":5576,"children":5577},{},[5578],{"type":3204,"tag":3349,"props":5579,"children":5581},{"className":5580},[],[5582],{"type":3209,"value":5583},"NUXT_OAUTH_\u003CPROVIDER>_CLIENT_SECRET",{"type":3204,"tag":4667,"props":5585,"children":5586},{},[5587],{"type":3204,"tag":3211,"props":5588,"children":5589},{},[5590],{"type":3209,"value":5591},"Provider is in uppercase (GITHUB, GOOGLE, etc.)",{"type":3204,"tag":5593,"props":5594,"children":5596},"h4",{"id":5595},"supported-oauth-providers",[5597],{"type":3209,"value":5598},"Supported OAuth Providers",{"type":3204,"tag":3261,"props":5600,"children":5601},{},[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,5802,5807,5812,5817,5822,5827,5832,5837],{"type":3204,"tag":3265,"props":5603,"children":5604},{},[5605],{"type":3209,"value":5606},"Apple",{"type":3204,"tag":3265,"props":5608,"children":5609},{},[5610],{"type":3209,"value":5611},"Atlassian",{"type":3204,"tag":3265,"props":5613,"children":5614},{},[5615],{"type":3209,"value":5616},"Auth0",{"type":3204,"tag":3265,"props":5618,"children":5619},{},[5620],{"type":3209,"value":5621},"Authentik",{"type":3204,"tag":3265,"props":5623,"children":5624},{},[5625],{"type":3209,"value":5626},"AWS Cognito",{"type":3204,"tag":3265,"props":5628,"children":5629},{},[5630],{"type":3209,"value":5631},"Azure B2C",{"type":3204,"tag":3265,"props":5633,"children":5634},{},[5635],{"type":3209,"value":5636},"Battle.net",{"type":3204,"tag":3265,"props":5638,"children":5639},{},[5640],{"type":3209,"value":5641},"Bluesky (AT Protocol)",{"type":3204,"tag":3265,"props":5643,"children":5644},{},[5645],{"type":3209,"value":5646},"Box.com",{"type":3204,"tag":3265,"props":5648,"children":5649},{},[5650],{"type":3209,"value":5651},"Discord",{"type":3204,"tag":3265,"props":5653,"children":5654},{},[5655],{"type":3209,"value":5656},"Dropbox",{"type":3204,"tag":3265,"props":5658,"children":5659},{},[5660],{"type":3209,"value":5661},"Facebook",{"type":3204,"tag":3265,"props":5663,"children":5664},{},[5665],{"type":3209,"value":5666},"GitHub",{"type":3204,"tag":3265,"props":5668,"children":5669},{},[5670],{"type":3209,"value":5671},"GitLab",{"type":3204,"tag":3265,"props":5673,"children":5674},{},[5675],{"type":3209,"value":5676},"Gitea",{"type":3204,"tag":3265,"props":5678,"children":5679},{},[5680],{"type":3209,"value":5681},"Google",{"type":3204,"tag":3265,"props":5683,"children":5684},{},[5685],{"type":3209,"value":5686},"Heroku",{"type":3204,"tag":3265,"props":5688,"children":5689},{},[5690],{"type":3209,"value":5691},"Hubspot",{"type":3204,"tag":3265,"props":5693,"children":5694},{},[5695],{"type":3209,"value":5696},"Instagram",{"type":3204,"tag":3265,"props":5698,"children":5699},{},[5700],{"type":3209,"value":5701},"Kick",{"type":3204,"tag":3265,"props":5703,"children":5704},{},[5705],{"type":3209,"value":5706},"Keycloak",{"type":3204,"tag":3265,"props":5708,"children":5709},{},[5710],{"type":3209,"value":5711},"Line",{"type":3204,"tag":3265,"props":5713,"children":5714},{},[5715],{"type":3209,"value":5716},"Linear",{"type":3204,"tag":3265,"props":5718,"children":5719},{},[5720],{"type":3209,"value":5721},"LinkedIn",{"type":3204,"tag":3265,"props":5723,"children":5724},{},[5725],{"type":3209,"value":5726},"LiveChat",{"type":3204,"tag":3265,"props":5728,"children":5729},{},[5730],{"type":3209,"value":5731},"Microsoft",{"type":3204,"tag":3265,"props":5733,"children":5734},{},[5735],{"type":3209,"value":5736},"OIDC \u002F OpenID Connect (Generic)",{"type":3204,"tag":3265,"props":5738,"children":5739},{},[5740],{"type":3209,"value":5741},"Okta",{"type":3204,"tag":3265,"props":5743,"children":5744},{},[5745],{"type":3209,"value":5746},"Ory",{"type":3204,"tag":3265,"props":5748,"children":5749},{},[5750],{"type":3209,"value":5751},"osu!",{"type":3204,"tag":3265,"props":5753,"children":5754},{},[5755],{"type":3209,"value":5756},"PayPal",{"type":3204,"tag":3265,"props":5758,"children":5759},{},[5760],{"type":3209,"value":5761},"Polar",{"type":3204,"tag":3265,"props":5763,"children":5764},{},[5765],{"type":3209,"value":5766},"Riot Games",{"type":3204,"tag":3265,"props":5768,"children":5769},{},[5770],{"type":3209,"value":5771},"Salesforce",{"type":3204,"tag":3265,"props":5773,"children":5774},{},[5775],{"type":3209,"value":5776},"Seznam",{"type":3204,"tag":3265,"props":5778,"children":5779},{},[5780],{"type":3209,"value":5781},"Shopify Customer",{"type":3204,"tag":3265,"props":5783,"children":5784},{},[5785],{"type":3209,"value":5786},"Slack",{"type":3204,"tag":3265,"props":5788,"children":5789},{},[5790],{"type":3209,"value":5791},"Spotify",{"type":3204,"tag":3265,"props":5793,"children":5794},{},[5795],{"type":3209,"value":5796},"Steam",{"type":3204,"tag":3265,"props":5798,"children":5799},{},[5800],{"type":3209,"value":5801},"Strava",{"type":3204,"tag":3265,"props":5803,"children":5804},{},[5805],{"type":3209,"value":5806},"TikTok",{"type":3204,"tag":3265,"props":5808,"children":5809},{},[5810],{"type":3209,"value":5811},"Twitch",{"type":3204,"tag":3265,"props":5813,"children":5814},{},[5815],{"type":3209,"value":5816},"VK",{"type":3204,"tag":3265,"props":5818,"children":5819},{},[5820],{"type":3209,"value":5821},"WorkOS",{"type":3204,"tag":3265,"props":5823,"children":5824},{},[5825],{"type":3209,"value":5826},"X (Twitter)",{"type":3204,"tag":3265,"props":5828,"children":5829},{},[5830],{"type":3209,"value":5831},"XSUAA",{"type":3204,"tag":3265,"props":5833,"children":5834},{},[5835],{"type":3209,"value":5836},"Yandex",{"type":3204,"tag":3265,"props":5838,"children":5839},{},[5840],{"type":3209,"value":5841},"Zitadel",{"type":3204,"tag":3211,"props":5843,"children":5844},{},[5845,5847,5854],{"type":3209,"value":5846},"You can add your favorite provider by creating a new file in ",{"type":3204,"tag":3215,"props":5848,"children":5851},{"href":5849,"rel":5850},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Ftree\u002Fmain\u002Fsrc\u002Fruntime\u002Fserver\u002Flib\u002Foauth",[3219],[5852],{"type":3209,"value":5853},"src\u002Fruntime\u002Fserver\u002Flib\u002Foauth\u002F",{"type":3209,"value":3442},{"type":3204,"tag":5593,"props":5856,"children":5858},{"id":5857},"example",[5859],{"type":3209,"value":5860},"Example",{"type":3204,"tag":3211,"props":5862,"children":5863},{},[5864,5866],{"type":3209,"value":5865},"Example: ",{"type":3204,"tag":3349,"props":5867,"children":5869},{"className":5868},[],[5870],{"type":3209,"value":5871},"~\u002Fserver\u002Froutes\u002Fauth\u002Fgithub.get.ts",{"type":3204,"tag":3477,"props":5873,"children":5875},{"className":4165,"code":5874,"language":4167,"meta":3077,"style":3077},"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",[5876],{"type":3204,"tag":3349,"props":5877,"children":5878},{"__ignoreMap":3077},[5879,5903,5919,5937,5944,5995,6023,6039,6064,6071,6083,6125,6132,6140,6174,6220,6259,6266],{"type":3204,"tag":3487,"props":5880,"children":5881},{"class":3489,"line":3163},[5882,5886,5890,5895,5899],{"type":3204,"tag":3487,"props":5883,"children":5884},{"style":4749},[5885],{"type":3209,"value":5283},{"type":3204,"tag":3487,"props":5887,"children":5888},{"style":4749},[5889],{"type":3209,"value":5398},{"type":3204,"tag":3487,"props":5891,"children":5892},{"style":3723},[5893],{"type":3209,"value":5894}," defineOAuthGitHubEventHandler",{"type":3204,"tag":3487,"props":5896,"children":5897},{"style":3561},[5898],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":5900,"children":5901},{"style":3566},[5902],{"type":3209,"value":5413},{"type":3204,"tag":3487,"props":5904,"children":5905},{"class":3489,"line":3129},[5906,5911,5915],{"type":3204,"tag":3487,"props":5907,"children":5908},{"style":3632},[5909],{"type":3209,"value":5910},"  config",{"type":3204,"tag":3487,"props":5912,"children":5913},{"style":3566},[5914],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":5916,"children":5917},{"style":3566},[5918],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":5920,"children":5921},{"class":3489,"line":3113},[5922,5927,5931],{"type":3204,"tag":3487,"props":5923,"children":5924},{"style":3632},[5925],{"type":3209,"value":5926},"    emailRequired",{"type":3204,"tag":3487,"props":5928,"children":5929},{"style":3566},[5930],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":5932,"children":5934},{"style":5933},"--shiki-light:#FF5370;--shiki-default:#FF5370;--shiki-dark:#FF9CAC",[5935],{"type":3209,"value":5936}," true\n",{"type":3204,"tag":3487,"props":5938,"children":5939},{"class":3489,"line":3750},[5940],{"type":3204,"tag":3487,"props":5941,"children":5942},{"style":3566},[5943],{"type":3209,"value":4827},{"type":3204,"tag":3487,"props":5945,"children":5946},{"class":3489,"line":3759},[5947,5952,5957,5961,5966,5970,5974,5978,5982,5987,5991],{"type":3204,"tag":3487,"props":5948,"children":5949},{"style":3638},[5950],{"type":3209,"value":5951},"  async",{"type":3204,"tag":3487,"props":5953,"children":5954},{"style":3632},[5955],{"type":3209,"value":5956}," onSuccess",{"type":3204,"tag":3487,"props":5958,"children":5959},{"style":3566},[5960],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":5962,"children":5963},{"style":4581},[5964],{"type":3209,"value":5965},"event",{"type":3204,"tag":3487,"props":5967,"children":5968},{"style":3566},[5969],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":5971,"children":5972},{"style":3566},[5973],{"type":3209,"value":3659},{"type":3204,"tag":3487,"props":5975,"children":5976},{"style":4581},[5977],{"type":3209,"value":3674},{"type":3204,"tag":3487,"props":5979,"children":5980},{"style":3566},[5981],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":5983,"children":5984},{"style":4581},[5985],{"type":3209,"value":5986}," tokens",{"type":3204,"tag":3487,"props":5988,"children":5989},{"style":3566},[5990],{"type":3209,"value":4647},{"type":3204,"tag":3487,"props":5992,"children":5993},{"style":3566},[5994],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":5996,"children":5997},{"class":3489,"line":3776},[5998,6003,6007,6011,6015,6019],{"type":3204,"tag":3487,"props":5999,"children":6000},{"style":4749},[6001],{"type":3209,"value":6002},"    await",{"type":3204,"tag":3487,"props":6004,"children":6005},{"style":3723},[6006],{"type":3209,"value":4757},{"type":3204,"tag":3487,"props":6008,"children":6009},{"style":3632},[6010],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":6012,"children":6013},{"style":3561},[6014],{"type":3209,"value":5965},{"type":3204,"tag":3487,"props":6016,"children":6017},{"style":3566},[6018],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":6020,"children":6021},{"style":3566},[6022],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":6024,"children":6025},{"class":3489,"line":3109},[6026,6031,6035],{"type":3204,"tag":3487,"props":6027,"children":6028},{"style":3632},[6029],{"type":3209,"value":6030},"      user",{"type":3204,"tag":3487,"props":6032,"children":6033},{"style":3566},[6034],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":6036,"children":6037},{"style":3566},[6038],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":6040,"children":6041},{"class":3489,"line":3105},[6042,6047,6051,6055,6059],{"type":3204,"tag":3487,"props":6043,"children":6044},{"style":3632},[6045],{"type":3209,"value":6046},"        githubId",{"type":3204,"tag":3487,"props":6048,"children":6049},{"style":3566},[6050],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":6052,"children":6053},{"style":3561},[6054],{"type":3209,"value":3674},{"type":3204,"tag":3487,"props":6056,"children":6057},{"style":3566},[6058],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":6060,"children":6061},{"style":3561},[6062],{"type":3209,"value":6063},"id\n",{"type":3204,"tag":3487,"props":6065,"children":6066},{"class":3489,"line":3101},[6067],{"type":3204,"tag":3487,"props":6068,"children":6069},{"style":3566},[6070],{"type":3209,"value":5531},{"type":3204,"tag":3487,"props":6072,"children":6073},{"class":3489,"line":3938},[6074,6079],{"type":3204,"tag":3487,"props":6075,"children":6076},{"style":3566},[6077],{"type":3209,"value":6078},"    }",{"type":3204,"tag":3487,"props":6080,"children":6081},{"style":3632},[6082],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":6084,"children":6085},{"class":3489,"line":3192},[6086,6091,6096,6100,6104,6108,6112,6117,6121],{"type":3204,"tag":3487,"props":6087,"children":6088},{"style":4749},[6089],{"type":3209,"value":6090},"    return",{"type":3204,"tag":3487,"props":6092,"children":6093},{"style":3723},[6094],{"type":3209,"value":6095}," sendRedirect",{"type":3204,"tag":3487,"props":6097,"children":6098},{"style":3632},[6099],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":6101,"children":6102},{"style":3561},[6103],{"type":3209,"value":5965},{"type":3204,"tag":3487,"props":6105,"children":6106},{"style":3566},[6107],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":6109,"children":6110},{"style":3566},[6111],{"type":3209,"value":4810},{"type":3204,"tag":3487,"props":6113,"children":6114},{"style":3499},[6115],{"type":3209,"value":6116},"\u002F",{"type":3204,"tag":3487,"props":6118,"children":6119},{"style":3566},[6120],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":6122,"children":6123},{"style":3632},[6124],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":6126,"children":6127},{"class":3489,"line":3975},[6128],{"type":3204,"tag":3487,"props":6129,"children":6130},{"style":3566},[6131],{"type":3209,"value":4827},{"type":3204,"tag":3487,"props":6133,"children":6134},{"class":3489,"line":4008},[6135],{"type":3204,"tag":3487,"props":6136,"children":6137},{"style":3552},[6138],{"type":3209,"value":6139},"  \u002F\u002F Optional, will return a json error and 401 status code by default\n",{"type":3204,"tag":3487,"props":6141,"children":6142},{"class":3489,"line":4063},[6143,6148,6152,6156,6160,6165,6170],{"type":3204,"tag":3487,"props":6144,"children":6145},{"style":3632},[6146],{"type":3209,"value":6147},"  onError",{"type":3204,"tag":3487,"props":6149,"children":6150},{"style":3566},[6151],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":6153,"children":6154},{"style":4581},[6155],{"type":3209,"value":5965},{"type":3204,"tag":3487,"props":6157,"children":6158},{"style":3566},[6159],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":6161,"children":6162},{"style":4581},[6163],{"type":3209,"value":6164}," error",{"type":3204,"tag":3487,"props":6166,"children":6167},{"style":3566},[6168],{"type":3209,"value":6169},")",{"type":3204,"tag":3487,"props":6171,"children":6172},{"style":3566},[6173],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":6175,"children":6176},{"class":3489,"line":4072},[6177,6182,6186,6191,6195,6199,6204,6208,6212,6216],{"type":3204,"tag":3487,"props":6178,"children":6179},{"style":3561},[6180],{"type":3209,"value":6181},"    console",{"type":3204,"tag":3487,"props":6183,"children":6184},{"style":3566},[6185],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":6187,"children":6188},{"style":3723},[6189],{"type":3209,"value":6190},"error",{"type":3204,"tag":3487,"props":6192,"children":6193},{"style":3632},[6194],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":6196,"children":6197},{"style":3566},[6198],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":6200,"children":6201},{"style":3499},[6202],{"type":3209,"value":6203},"GitHub OAuth error:",{"type":3204,"tag":3487,"props":6205,"children":6206},{"style":3566},[6207],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":6209,"children":6210},{"style":3566},[6211],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":6213,"children":6214},{"style":3561},[6215],{"type":3209,"value":6164},{"type":3204,"tag":3487,"props":6217,"children":6218},{"style":3632},[6219],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":6221,"children":6222},{"class":3489,"line":3097},[6223,6227,6231,6235,6239,6243,6247,6251,6255],{"type":3204,"tag":3487,"props":6224,"children":6225},{"style":4749},[6226],{"type":3209,"value":6090},{"type":3204,"tag":3487,"props":6228,"children":6229},{"style":3723},[6230],{"type":3209,"value":6095},{"type":3204,"tag":3487,"props":6232,"children":6233},{"style":3632},[6234],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":6236,"children":6237},{"style":3561},[6238],{"type":3209,"value":5965},{"type":3204,"tag":3487,"props":6240,"children":6241},{"style":3566},[6242],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":6244,"children":6245},{"style":3566},[6246],{"type":3209,"value":4810},{"type":3204,"tag":3487,"props":6248,"children":6249},{"style":3499},[6250],{"type":3209,"value":6116},{"type":3204,"tag":3487,"props":6252,"children":6253},{"style":3566},[6254],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":6256,"children":6257},{"style":3632},[6258],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":6260,"children":6261},{"class":3489,"line":4140},[6262],{"type":3204,"tag":3487,"props":6263,"children":6264},{"style":3566},[6265],{"type":3209,"value":4827},{"type":3204,"tag":3487,"props":6267,"children":6268},{"class":3489,"line":4410},[6269,6273],{"type":3204,"tag":3487,"props":6270,"children":6271},{"style":3566},[6272],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":6274,"children":6275},{"style":3561},[6276],{"type":3209,"value":4929},{"type":3204,"tag":3211,"props":6278,"children":6279},{},[6280,6282,6288],{"type":3209,"value":6281},"Make sure to set the callback URL in your OAuth app settings as ",{"type":3204,"tag":3349,"props":6283,"children":6285},{"className":6284},[],[6286],{"type":3209,"value":6287},"\u003Cyour-domain>\u002Fauth\u002Fgithub",{"type":3209,"value":3442},{"type":3204,"tag":3211,"props":6290,"children":6291},{},[6292,6294,6300],{"type":3209,"value":6293},"If the redirect URL mismatch in production, this means that the module cannot guess the right redirect URL. You can set the ",{"type":3204,"tag":3349,"props":6295,"children":6297},{"className":6296},[],[6298],{"type":3209,"value":6299},"NUXT_OAUTH_\u003CPROVIDER>_REDIRECT_URL",{"type":3209,"value":6301}," env variable to overwrite the default one.",{"type":3204,"tag":3607,"props":6303,"children":6305},{"id":6304},"password-hashing",[6306],{"type":3209,"value":3331},{"type":3204,"tag":3211,"props":6308,"children":6309},{},[6310,6312,6318,6320,6326,6328,6335],{"type":3209,"value":6311},"Nuxt Auth Utils provides password hashing utilities like ",{"type":3204,"tag":3349,"props":6313,"children":6315},{"className":6314},[],[6316],{"type":3209,"value":6317},"hashPassword",{"type":3209,"value":6319}," and ",{"type":3204,"tag":3349,"props":6321,"children":6323},{"className":6322},[],[6324],{"type":3209,"value":6325},"verifyPassword",{"type":3209,"value":6327}," to hash and verify passwords by using ",{"type":3204,"tag":3215,"props":6329,"children":6332},{"href":6330,"rel":6331},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FScrypt",[3219],[6333],{"type":3209,"value":6334},"scrypt",{"type":3209,"value":6336}," as it is supported in many JS runtime.",{"type":3204,"tag":3477,"props":6338,"children":6340},{"className":4165,"code":6339,"language":4167,"meta":3077,"style":3077},"const hashedPassword = await hashPassword('user_password')\n\nif (await verifyPassword(hashedPassword, 'user_password')) {\n  \u002F\u002F Password is valid\n}\n",[6341],{"type":3204,"tag":3349,"props":6342,"children":6343},{"__ignoreMap":3077},[6344,6390,6397,6448,6456],{"type":3204,"tag":3487,"props":6345,"children":6346},{"class":3489,"line":3163},[6347,6351,6356,6360,6364,6369,6373,6377,6382,6386],{"type":3204,"tag":3487,"props":6348,"children":6349},{"style":3638},[6350],{"type":3209,"value":3654},{"type":3204,"tag":3487,"props":6352,"children":6353},{"style":3561},[6354],{"type":3209,"value":6355}," hashedPassword ",{"type":3204,"tag":3487,"props":6357,"children":6358},{"style":3566},[6359],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":6361,"children":6362},{"style":4749},[6363],{"type":3209,"value":5005},{"type":3204,"tag":3487,"props":6365,"children":6366},{"style":3723},[6367],{"type":3209,"value":6368}," hashPassword",{"type":3204,"tag":3487,"props":6370,"children":6371},{"style":3561},[6372],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":6374,"children":6375},{"style":3566},[6376],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":6378,"children":6379},{"style":3499},[6380],{"type":3209,"value":6381},"user_password",{"type":3204,"tag":3487,"props":6383,"children":6384},{"style":3566},[6385],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":6387,"children":6388},{"style":3561},[6389],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":6391,"children":6392},{"class":3489,"line":3129},[6393],{"type":3204,"tag":3487,"props":6394,"children":6395},{"emptyLinePlaceholder":1208},[6396],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":6398,"children":6399},{"class":3489,"line":3113},[6400,6405,6409,6413,6418,6423,6427,6431,6435,6439,6444],{"type":3204,"tag":3487,"props":6401,"children":6402},{"style":4749},[6403],{"type":3209,"value":6404},"if",{"type":3204,"tag":3487,"props":6406,"children":6407},{"style":3561},[6408],{"type":3209,"value":4578},{"type":3204,"tag":3487,"props":6410,"children":6411},{"style":4749},[6412],{"type":3209,"value":4752},{"type":3204,"tag":3487,"props":6414,"children":6415},{"style":3723},[6416],{"type":3209,"value":6417}," verifyPassword",{"type":3204,"tag":3487,"props":6419,"children":6420},{"style":3561},[6421],{"type":3209,"value":6422},"(hashedPassword",{"type":3204,"tag":3487,"props":6424,"children":6425},{"style":3566},[6426],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":6428,"children":6429},{"style":3566},[6430],{"type":3209,"value":4810},{"type":3204,"tag":3487,"props":6432,"children":6433},{"style":3499},[6434],{"type":3209,"value":6381},{"type":3204,"tag":3487,"props":6436,"children":6437},{"style":3566},[6438],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":6440,"children":6441},{"style":3561},[6442],{"type":3209,"value":6443},")) ",{"type":3204,"tag":3487,"props":6445,"children":6446},{"style":3566},[6447],{"type":3209,"value":5413},{"type":3204,"tag":3487,"props":6449,"children":6450},{"class":3489,"line":3750},[6451],{"type":3204,"tag":3487,"props":6452,"children":6453},{"style":3552},[6454],{"type":3209,"value":6455},"  \u002F\u002F Password is valid\n",{"type":3204,"tag":3487,"props":6457,"children":6458},{"class":3489,"line":3759},[6459],{"type":3204,"tag":3487,"props":6460,"children":6461},{"style":3566},[6462],{"type":3209,"value":4665},{"type":3204,"tag":3211,"props":6464,"children":6465},{},[6466,6468,6474],{"type":3209,"value":6467},"It also provides a ",{"type":3204,"tag":3349,"props":6469,"children":6471},{"className":6470},[],[6472],{"type":3209,"value":6473},"passwordNeedsRehash",{"type":3209,"value":6475}," 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":3204,"tag":3477,"props":6477,"children":6479},{"className":4165,"code":6478,"language":4167,"meta":3077,"style":3077},"const needsRehash = passwordNeedsRehash(hashedPassword)\n\nif (needsRehash) {\n  \u002F\u002F Password needs to be rehashed\n  hashedPassword = await hashPassword('user_password')\n}\n",[6480],{"type":3204,"tag":3349,"props":6481,"children":6482},{"__ignoreMap":3077},[6483,6509,6516,6532,6540,6580],{"type":3204,"tag":3487,"props":6484,"children":6485},{"class":3489,"line":3163},[6486,6490,6495,6499,6504],{"type":3204,"tag":3487,"props":6487,"children":6488},{"style":3638},[6489],{"type":3209,"value":3654},{"type":3204,"tag":3487,"props":6491,"children":6492},{"style":3561},[6493],{"type":3209,"value":6494}," needsRehash ",{"type":3204,"tag":3487,"props":6496,"children":6497},{"style":3566},[6498],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":6500,"children":6501},{"style":3723},[6502],{"type":3209,"value":6503}," passwordNeedsRehash",{"type":3204,"tag":3487,"props":6505,"children":6506},{"style":3561},[6507],{"type":3209,"value":6508},"(hashedPassword)\n",{"type":3204,"tag":3487,"props":6510,"children":6511},{"class":3489,"line":3129},[6512],{"type":3204,"tag":3487,"props":6513,"children":6514},{"emptyLinePlaceholder":1208},[6515],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":6517,"children":6518},{"class":3489,"line":3113},[6519,6523,6528],{"type":3204,"tag":3487,"props":6520,"children":6521},{"style":4749},[6522],{"type":3209,"value":6404},{"type":3204,"tag":3487,"props":6524,"children":6525},{"style":3561},[6526],{"type":3209,"value":6527}," (needsRehash) ",{"type":3204,"tag":3487,"props":6529,"children":6530},{"style":3566},[6531],{"type":3209,"value":5413},{"type":3204,"tag":3487,"props":6533,"children":6534},{"class":3489,"line":3750},[6535],{"type":3204,"tag":3487,"props":6536,"children":6537},{"style":3552},[6538],{"type":3209,"value":6539},"  \u002F\u002F Password needs to be rehashed\n",{"type":3204,"tag":3487,"props":6541,"children":6542},{"class":3489,"line":3759},[6543,6548,6552,6556,6560,6564,6568,6572,6576],{"type":3204,"tag":3487,"props":6544,"children":6545},{"style":3561},[6546],{"type":3209,"value":6547},"  hashedPassword",{"type":3204,"tag":3487,"props":6549,"children":6550},{"style":3566},[6551],{"type":3209,"value":3720},{"type":3204,"tag":3487,"props":6553,"children":6554},{"style":4749},[6555],{"type":3209,"value":5005},{"type":3204,"tag":3487,"props":6557,"children":6558},{"style":3723},[6559],{"type":3209,"value":6368},{"type":3204,"tag":3487,"props":6561,"children":6562},{"style":3632},[6563],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":6565,"children":6566},{"style":3566},[6567],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":6569,"children":6570},{"style":3499},[6571],{"type":3209,"value":6381},{"type":3204,"tag":3487,"props":6573,"children":6574},{"style":3566},[6575],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":6577,"children":6578},{"style":3632},[6579],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":6581,"children":6582},{"class":3489,"line":3776},[6583],{"type":3204,"tag":3487,"props":6584,"children":6585},{"style":3566},[6586],{"type":3209,"value":4665},{"type":3204,"tag":3211,"props":6588,"children":6589},{},[6590,6592,6597],{"type":3209,"value":6591},"You can configure the scrypt options in your ",{"type":3204,"tag":3349,"props":6593,"children":6595},{"className":6594},[],[6596],{"type":3209,"value":233},{"type":3209,"value":4226},{"type":3204,"tag":3477,"props":6599,"children":6601},{"className":4165,"code":6600,"language":4167,"meta":3077,"style":3077},"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",[6602],{"type":3204,"tag":3349,"props":6603,"children":6604},{"__ignoreMap":3077},[6605,6628,6666,6682,6698,6714,6722,6729,6736,6743],{"type":3204,"tag":3487,"props":6606,"children":6607},{"class":3489,"line":3163},[6608,6612,6616,6620,6624],{"type":3204,"tag":3487,"props":6609,"children":6610},{"style":4749},[6611],{"type":3209,"value":5283},{"type":3204,"tag":3487,"props":6613,"children":6614},{"style":4749},[6615],{"type":3209,"value":5398},{"type":3204,"tag":3487,"props":6617,"children":6618},{"style":3723},[6619],{"type":3209,"value":5403},{"type":3204,"tag":3487,"props":6621,"children":6622},{"style":3561},[6623],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":6625,"children":6626},{"style":3566},[6627],{"type":3209,"value":5413},{"type":3204,"tag":3487,"props":6629,"children":6630},{"class":3489,"line":3129},[6631,6636,6640,6645,6649,6653,6657,6662],{"type":3204,"tag":3487,"props":6632,"children":6633},{"style":3632},[6634],{"type":3209,"value":6635},"  modules",{"type":3204,"tag":3487,"props":6637,"children":6638},{"style":3566},[6639],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":6641,"children":6642},{"style":3561},[6643],{"type":3209,"value":6644}," [",{"type":3204,"tag":3487,"props":6646,"children":6647},{"style":3566},[6648],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":6650,"children":6651},{"style":3499},[6652],{"type":3209,"value":3076},{"type":3204,"tag":3487,"props":6654,"children":6655},{"style":3566},[6656],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":6658,"children":6659},{"style":3561},[6660],{"type":3209,"value":6661},"]",{"type":3204,"tag":3487,"props":6663,"children":6664},{"style":3566},[6665],{"type":3209,"value":5499},{"type":3204,"tag":3487,"props":6667,"children":6668},{"class":3489,"line":3113},[6669,6674,6678],{"type":3204,"tag":3487,"props":6670,"children":6671},{"style":3632},[6672],{"type":3209,"value":6673},"  auth",{"type":3204,"tag":3487,"props":6675,"children":6676},{"style":3566},[6677],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":6679,"children":6680},{"style":3566},[6681],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":6683,"children":6684},{"class":3489,"line":3750},[6685,6690,6694],{"type":3204,"tag":3487,"props":6686,"children":6687},{"style":3632},[6688],{"type":3209,"value":6689},"    hash",{"type":3204,"tag":3487,"props":6691,"children":6692},{"style":3566},[6693],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":6695,"children":6696},{"style":3566},[6697],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":6699,"children":6700},{"class":3489,"line":3759},[6701,6706,6710],{"type":3204,"tag":3487,"props":6702,"children":6703},{"style":3632},[6704],{"type":3209,"value":6705},"      scrypt",{"type":3204,"tag":3487,"props":6707,"children":6708},{"style":3566},[6709],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":6711,"children":6712},{"style":3566},[6713],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":6715,"children":6716},{"class":3489,"line":3776},[6717],{"type":3204,"tag":3487,"props":6718,"children":6719},{"style":3552},[6720],{"type":3209,"value":6721},"        \u002F\u002F See https:\u002F\u002Fgithub.com\u002Fadonisjs\u002Fhash\u002Fblob\u002F94637029cd526783ac0a763ec581306d98db2036\u002Fsrc\u002Ftypes.ts#L144\n",{"type":3204,"tag":3487,"props":6723,"children":6724},{"class":3489,"line":3109},[6725],{"type":3204,"tag":3487,"props":6726,"children":6727},{"style":3566},[6728],{"type":3209,"value":5531},{"type":3204,"tag":3487,"props":6730,"children":6731},{"class":3489,"line":3105},[6732],{"type":3204,"tag":3487,"props":6733,"children":6734},{"style":3566},[6735],{"type":3209,"value":5539},{"type":3204,"tag":3487,"props":6737,"children":6738},{"class":3489,"line":3101},[6739],{"type":3204,"tag":3487,"props":6740,"children":6741},{"style":3566},[6742],{"type":3209,"value":5187},{"type":3204,"tag":3487,"props":6744,"children":6745},{"class":3489,"line":3938},[6746,6750],{"type":3204,"tag":3487,"props":6747,"children":6748},{"style":3566},[6749],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":6751,"children":6752},{"style":3561},[6753],{"type":3209,"value":4929},{"type":3204,"tag":3607,"props":6755,"children":6757},{"id":6756},"at-protocol",[6758],{"type":3209,"value":6759},"AT Protocol",{"type":3204,"tag":3211,"props":6761,"children":6762},{},[6763],{"type":3209,"value":6764},"Social networks that rely on AT Protocol (e.g., Bluesky) slightly differ from a regular OAuth flow.",{"type":3204,"tag":3211,"props":6766,"children":6767},{},[6768],{"type":3209,"value":6769},"To enable OAuth with AT Protocol, you need to:",{"type":3204,"tag":3461,"props":6771,"children":6772},{},[6773],{"type":3204,"tag":3265,"props":6774,"children":6775},{},[6776],{"type":3209,"value":6777},"Install the peer dependencies:",{"type":3204,"tag":3477,"props":6779,"children":6781},{"className":3479,"code":6780,"language":3481,"meta":3077,"style":3077},"npx nypm i @atproto\u002Foauth-client-node @atproto\u002Fapi\n",[6782],{"type":3204,"tag":3349,"props":6783,"children":6784},{"__ignoreMap":3077},[6785],{"type":3204,"tag":3487,"props":6786,"children":6787},{"class":3489,"line":3163},[6788,6792,6797,6802,6807],{"type":3204,"tag":3487,"props":6789,"children":6790},{"style":3493},[6791],{"type":3209,"value":3496},{"type":3204,"tag":3487,"props":6793,"children":6794},{"style":3499},[6795],{"type":3209,"value":6796}," nypm",{"type":3204,"tag":3487,"props":6798,"children":6799},{"style":3499},[6800],{"type":3209,"value":6801}," i",{"type":3204,"tag":3487,"props":6803,"children":6804},{"style":3499},[6805],{"type":3209,"value":6806}," @atproto\u002Foauth-client-node",{"type":3204,"tag":3487,"props":6808,"children":6809},{"style":3499},[6810],{"type":3209,"value":6811}," @atproto\u002Fapi\n",{"type":3204,"tag":3461,"props":6813,"children":6814},{"start":3129},[6815],{"type":3204,"tag":3265,"props":6816,"children":6817},{},[6818,6820],{"type":3209,"value":6819},"Enable it in your ",{"type":3204,"tag":3349,"props":6821,"children":6823},{"className":6822},[],[6824],{"type":3209,"value":233},{"type":3204,"tag":3477,"props":6826,"children":6828},{"className":4165,"code":6827,"language":4167,"meta":3077,"style":3077},"export default defineNuxtConfig({\n  auth: {\n    atproto: true\n  }\n})\n",[6829],{"type":3204,"tag":3349,"props":6830,"children":6831},{"__ignoreMap":3077},[6832,6855,6870,6886,6893],{"type":3204,"tag":3487,"props":6833,"children":6834},{"class":3489,"line":3163},[6835,6839,6843,6847,6851],{"type":3204,"tag":3487,"props":6836,"children":6837},{"style":4749},[6838],{"type":3209,"value":5283},{"type":3204,"tag":3487,"props":6840,"children":6841},{"style":4749},[6842],{"type":3209,"value":5398},{"type":3204,"tag":3487,"props":6844,"children":6845},{"style":3723},[6846],{"type":3209,"value":5403},{"type":3204,"tag":3487,"props":6848,"children":6849},{"style":3561},[6850],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":6852,"children":6853},{"style":3566},[6854],{"type":3209,"value":5413},{"type":3204,"tag":3487,"props":6856,"children":6857},{"class":3489,"line":3129},[6858,6862,6866],{"type":3204,"tag":3487,"props":6859,"children":6860},{"style":3632},[6861],{"type":3209,"value":6673},{"type":3204,"tag":3487,"props":6863,"children":6864},{"style":3566},[6865],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":6867,"children":6868},{"style":3566},[6869],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":6871,"children":6872},{"class":3489,"line":3113},[6873,6878,6882],{"type":3204,"tag":3487,"props":6874,"children":6875},{"style":3632},[6876],{"type":3209,"value":6877},"    atproto",{"type":3204,"tag":3487,"props":6879,"children":6880},{"style":3566},[6881],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":6883,"children":6884},{"style":5933},[6885],{"type":3209,"value":5936},{"type":3204,"tag":3487,"props":6887,"children":6888},{"class":3489,"line":3750},[6889],{"type":3204,"tag":3487,"props":6890,"children":6891},{"style":3566},[6892],{"type":3209,"value":5187},{"type":3204,"tag":3487,"props":6894,"children":6895},{"class":3489,"line":3759},[6896,6900],{"type":3204,"tag":3487,"props":6897,"children":6898},{"style":3566},[6899],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":6901,"children":6902},{"style":3561},[6903],{"type":3209,"value":4929},{"type":3204,"tag":3607,"props":6905,"children":6907},{"id":6906},"webauthn-passkey",[6908],{"type":3209,"value":3340},{"type":3204,"tag":3211,"props":6910,"children":6911},{},[6912],{"type":3209,"value":6913},"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":3204,"tag":3211,"props":6915,"children":6916},{},[6917],{"type":3209,"value":6918},"To enable WebAuthn you need to:",{"type":3204,"tag":3461,"props":6920,"children":6921},{},[6922],{"type":3204,"tag":3265,"props":6923,"children":6924},{},[6925],{"type":3209,"value":6777},{"type":3204,"tag":3477,"props":6927,"children":6929},{"className":3479,"code":6928,"language":3481,"meta":3077,"style":3077},"npx nypm i @simplewebauthn\u002Fserver@11 @simplewebauthn\u002Fbrowser@11\n",[6930],{"type":3204,"tag":3349,"props":6931,"children":6932},{"__ignoreMap":3077},[6933],{"type":3204,"tag":3487,"props":6934,"children":6935},{"class":3489,"line":3163},[6936,6940,6944,6948,6953],{"type":3204,"tag":3487,"props":6937,"children":6938},{"style":3493},[6939],{"type":3209,"value":3496},{"type":3204,"tag":3487,"props":6941,"children":6942},{"style":3499},[6943],{"type":3209,"value":6796},{"type":3204,"tag":3487,"props":6945,"children":6946},{"style":3499},[6947],{"type":3209,"value":6801},{"type":3204,"tag":3487,"props":6949,"children":6950},{"style":3499},[6951],{"type":3209,"value":6952}," @simplewebauthn\u002Fserver@11",{"type":3204,"tag":3487,"props":6954,"children":6955},{"style":3499},[6956],{"type":3209,"value":6957}," @simplewebauthn\u002Fbrowser@11\n",{"type":3204,"tag":3461,"props":6959,"children":6960},{"start":3129},[6961],{"type":3204,"tag":3265,"props":6962,"children":6963},{},[6964,6965],{"type":3209,"value":6819},{"type":3204,"tag":3349,"props":6966,"children":6968},{"className":6967},[],[6969],{"type":3209,"value":233},{"type":3204,"tag":3477,"props":6971,"children":6973},{"className":4165,"code":6972,"language":4167,"meta":3077,"style":3077},"export default defineNuxtConfig({\n  auth: {\n    webAuthn: true\n  }\n})\n",[6974],{"type":3204,"tag":3349,"props":6975,"children":6976},{"__ignoreMap":3077},[6977,7000,7015,7031,7038],{"type":3204,"tag":3487,"props":6978,"children":6979},{"class":3489,"line":3163},[6980,6984,6988,6992,6996],{"type":3204,"tag":3487,"props":6981,"children":6982},{"style":4749},[6983],{"type":3209,"value":5283},{"type":3204,"tag":3487,"props":6985,"children":6986},{"style":4749},[6987],{"type":3209,"value":5398},{"type":3204,"tag":3487,"props":6989,"children":6990},{"style":3723},[6991],{"type":3209,"value":5403},{"type":3204,"tag":3487,"props":6993,"children":6994},{"style":3561},[6995],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":6997,"children":6998},{"style":3566},[6999],{"type":3209,"value":5413},{"type":3204,"tag":3487,"props":7001,"children":7002},{"class":3489,"line":3129},[7003,7007,7011],{"type":3204,"tag":3487,"props":7004,"children":7005},{"style":3632},[7006],{"type":3209,"value":6673},{"type":3204,"tag":3487,"props":7008,"children":7009},{"style":3566},[7010],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":7012,"children":7013},{"style":3566},[7014],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":7016,"children":7017},{"class":3489,"line":3113},[7018,7023,7027],{"type":3204,"tag":3487,"props":7019,"children":7020},{"style":3632},[7021],{"type":3209,"value":7022},"    webAuthn",{"type":3204,"tag":3487,"props":7024,"children":7025},{"style":3566},[7026],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":7028,"children":7029},{"style":5933},[7030],{"type":3209,"value":5936},{"type":3204,"tag":3487,"props":7032,"children":7033},{"class":3489,"line":3750},[7034],{"type":3204,"tag":3487,"props":7035,"children":7036},{"style":3566},[7037],{"type":3209,"value":5187},{"type":3204,"tag":3487,"props":7039,"children":7040},{"class":3489,"line":3759},[7041,7045],{"type":3204,"tag":3487,"props":7042,"children":7043},{"style":3566},[7044],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":7046,"children":7047},{"style":3561},[7048],{"type":3209,"value":4929},{"type":3204,"tag":5593,"props":7050,"children":7052},{"id":7051},"example-1",[7053],{"type":3209,"value":5860},{"type":3204,"tag":3211,"props":7055,"children":7056},{},[7057],{"type":3209,"value":7058},"In this example we will implement the very basic steps to register and authenticate a credential.",{"type":3204,"tag":3211,"props":7060,"children":7061},{},[7062,7064,7071],{"type":3209,"value":7063},"The full code can be found in the ",{"type":3204,"tag":3215,"props":7065,"children":7068},{"href":7066,"rel":7067},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn",[3219],[7069],{"type":3209,"value":7070},"playground",{"type":3209,"value":7072},". The example uses a SQLite database with the following minimal tables:",{"type":3204,"tag":3477,"props":7074,"children":7078},{"className":7075,"code":7076,"language":7077,"meta":3077,"style":3077},"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",[7079],{"type":3204,"tag":3349,"props":7080,"children":7081},{"__ignoreMap":3077},[7082,7106,7129,7147,7155,7162,7193,7234,7258,7278,7299,7319,7339,7386],{"type":3204,"tag":3487,"props":7083,"children":7084},{"class":3489,"line":3163},[7085,7091,7096,7101],{"type":3204,"tag":3487,"props":7086,"children":7088},{"style":7087},"--shiki-light:#F76D47;--shiki-default:#F76D47;--shiki-dark:#F78C6C",[7089],{"type":3209,"value":7090},"CREATE",{"type":3204,"tag":3487,"props":7092,"children":7093},{"style":7087},[7094],{"type":3209,"value":7095}," TABLE",{"type":3204,"tag":3487,"props":7097,"children":7098},{"style":3723},[7099],{"type":3209,"value":7100}," users",{"type":3204,"tag":3487,"props":7102,"children":7103},{"style":3561},[7104],{"type":3209,"value":7105}," (\n",{"type":3204,"tag":3487,"props":7107,"children":7108},{"class":3489,"line":3129},[7109,7114,7119,7124],{"type":3204,"tag":3487,"props":7110,"children":7111},{"style":3561},[7112],{"type":3209,"value":7113},"  id ",{"type":3204,"tag":3487,"props":7115,"children":7116},{"style":3638},[7117],{"type":3209,"value":7118},"INTEGER",{"type":3204,"tag":3487,"props":7120,"children":7121},{"style":3638},[7122],{"type":3209,"value":7123}," PRIMARY KEY",{"type":3204,"tag":3487,"props":7125,"children":7126},{"style":3561},[7127],{"type":3209,"value":7128}," AUTOINCREMENT,\n",{"type":3204,"tag":3487,"props":7130,"children":7131},{"class":3489,"line":3113},[7132,7137,7142],{"type":3204,"tag":3487,"props":7133,"children":7134},{"style":3561},[7135],{"type":3209,"value":7136},"  email ",{"type":3204,"tag":3487,"props":7138,"children":7139},{"style":3638},[7140],{"type":3209,"value":7141},"TEXT",{"type":3204,"tag":3487,"props":7143,"children":7144},{"style":7087},[7145],{"type":3209,"value":7146}," NOT NULL\n",{"type":3204,"tag":3487,"props":7148,"children":7149},{"class":3489,"line":3750},[7150],{"type":3204,"tag":3487,"props":7151,"children":7152},{"style":3561},[7153],{"type":3209,"value":7154},");\n",{"type":3204,"tag":3487,"props":7156,"children":7157},{"class":3489,"line":3759},[7158],{"type":3204,"tag":3487,"props":7159,"children":7160},{"emptyLinePlaceholder":1208},[7161],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":7163,"children":7164},{"class":3489,"line":3776},[7165,7169,7173,7178,7183,7188],{"type":3204,"tag":3487,"props":7166,"children":7167},{"style":7087},[7168],{"type":3209,"value":7090},{"type":3204,"tag":3487,"props":7170,"children":7171},{"style":7087},[7172],{"type":3209,"value":7095},{"type":3204,"tag":3487,"props":7174,"children":7175},{"style":3723},[7176],{"type":3209,"value":7177}," IF",{"type":3204,"tag":3487,"props":7179,"children":7180},{"style":7087},[7181],{"type":3209,"value":7182}," NOT",{"type":3204,"tag":3487,"props":7184,"children":7185},{"style":7087},[7186],{"type":3209,"value":7187}," EXISTS",{"type":3204,"tag":3487,"props":7189,"children":7190},{"style":3561},[7191],{"type":3209,"value":7192}," credentials (\n",{"type":3204,"tag":3487,"props":7194,"children":7195},{"class":3489,"line":3109},[7196,7201,7205,7210,7215,7220,7225,7230],{"type":3204,"tag":3487,"props":7197,"children":7198},{"style":3561},[7199],{"type":3209,"value":7200},"  userId ",{"type":3204,"tag":3487,"props":7202,"children":7203},{"style":3638},[7204],{"type":3209,"value":7118},{"type":3204,"tag":3487,"props":7206,"children":7207},{"style":7087},[7208],{"type":3209,"value":7209}," NOT NULL",{"type":3204,"tag":3487,"props":7211,"children":7212},{"style":3638},[7213],{"type":3209,"value":7214}," REFERENCES",{"type":3204,"tag":3487,"props":7216,"children":7217},{"style":3561},[7218],{"type":3209,"value":7219}," users(id) ",{"type":3204,"tag":3487,"props":7221,"children":7222},{"style":3638},[7223],{"type":3209,"value":7224},"ON DELETE CASCADE",{"type":3204,"tag":3487,"props":7226,"children":7227},{"style":3638},[7228],{"type":3209,"value":7229}," ON UPDATE CASCADE",{"type":3204,"tag":3487,"props":7231,"children":7232},{"style":3561},[7233],{"type":3209,"value":5499},{"type":3204,"tag":3487,"props":7235,"children":7236},{"class":3489,"line":3105},[7237,7241,7245,7250,7254],{"type":3204,"tag":3487,"props":7238,"children":7239},{"style":3561},[7240],{"type":3209,"value":7113},{"type":3204,"tag":3487,"props":7242,"children":7243},{"style":3638},[7244],{"type":3209,"value":7141},{"type":3204,"tag":3487,"props":7246,"children":7247},{"style":7087},[7248],{"type":3209,"value":7249}," UNIQUE",{"type":3204,"tag":3487,"props":7251,"children":7252},{"style":7087},[7253],{"type":3209,"value":7209},{"type":3204,"tag":3487,"props":7255,"children":7256},{"style":3561},[7257],{"type":3209,"value":5499},{"type":3204,"tag":3487,"props":7259,"children":7260},{"class":3489,"line":3101},[7261,7266,7270,7274],{"type":3204,"tag":3487,"props":7262,"children":7263},{"style":3561},[7264],{"type":3209,"value":7265},"  publicKey ",{"type":3204,"tag":3487,"props":7267,"children":7268},{"style":3638},[7269],{"type":3209,"value":7141},{"type":3204,"tag":3487,"props":7271,"children":7272},{"style":7087},[7273],{"type":3209,"value":7209},{"type":3204,"tag":3487,"props":7275,"children":7276},{"style":3561},[7277],{"type":3209,"value":5499},{"type":3204,"tag":3487,"props":7279,"children":7280},{"class":3489,"line":3938},[7281,7286,7291,7295],{"type":3204,"tag":3487,"props":7282,"children":7283},{"style":7087},[7284],{"type":3209,"value":7285},"  counter",{"type":3204,"tag":3487,"props":7287,"children":7288},{"style":3638},[7289],{"type":3209,"value":7290}," INTEGER",{"type":3204,"tag":3487,"props":7292,"children":7293},{"style":7087},[7294],{"type":3209,"value":7209},{"type":3204,"tag":3487,"props":7296,"children":7297},{"style":3561},[7298],{"type":3209,"value":5499},{"type":3204,"tag":3487,"props":7300,"children":7301},{"class":3489,"line":3192},[7302,7307,7311,7315],{"type":3204,"tag":3487,"props":7303,"children":7304},{"style":3561},[7305],{"type":3209,"value":7306},"  backedUp ",{"type":3204,"tag":3487,"props":7308,"children":7309},{"style":3638},[7310],{"type":3209,"value":7118},{"type":3204,"tag":3487,"props":7312,"children":7313},{"style":7087},[7314],{"type":3209,"value":7209},{"type":3204,"tag":3487,"props":7316,"children":7317},{"style":3561},[7318],{"type":3209,"value":5499},{"type":3204,"tag":3487,"props":7320,"children":7321},{"class":3489,"line":3975},[7322,7327,7331,7335],{"type":3204,"tag":3487,"props":7323,"children":7324},{"style":3561},[7325],{"type":3209,"value":7326},"  transports ",{"type":3204,"tag":3487,"props":7328,"children":7329},{"style":3638},[7330],{"type":3209,"value":7141},{"type":3204,"tag":3487,"props":7332,"children":7333},{"style":7087},[7334],{"type":3209,"value":7209},{"type":3204,"tag":3487,"props":7336,"children":7337},{"style":3561},[7338],{"type":3209,"value":5499},{"type":3204,"tag":3487,"props":7340,"children":7341},{"class":3489,"line":4008},[7342,7347,7351,7355,7360,7364,7369,7373,7378,7382],{"type":3204,"tag":3487,"props":7343,"children":7344},{"style":3638},[7345],{"type":3209,"value":7346},"  PRIMARY KEY",{"type":3204,"tag":3487,"props":7348,"children":7349},{"style":3561},[7350],{"type":3209,"value":4578},{"type":3204,"tag":3487,"props":7352,"children":7353},{"style":3566},[7354],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":7356,"children":7357},{"style":3499},[7358],{"type":3209,"value":7359},"userId",{"type":3204,"tag":3487,"props":7361,"children":7362},{"style":3566},[7363],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":7365,"children":7366},{"style":3561},[7367],{"type":3209,"value":7368},", ",{"type":3204,"tag":3487,"props":7370,"children":7371},{"style":3566},[7372],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":7374,"children":7375},{"style":3499},[7376],{"type":3209,"value":7377},"id",{"type":3204,"tag":3487,"props":7379,"children":7380},{"style":3566},[7381],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":7383,"children":7384},{"style":3561},[7385],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":7387,"children":7388},{"class":3489,"line":4063},[7389],{"type":3204,"tag":3487,"props":7390,"children":7391},{"style":3561},[7392],{"type":3209,"value":7154},{"type":3204,"tag":3261,"props":7394,"children":7395},{},[7396,7409],{"type":3204,"tag":3265,"props":7397,"children":7398},{},[7399,7401,7407],{"type":3209,"value":7400},"For the ",{"type":3204,"tag":3349,"props":7402,"children":7404},{"className":7403},[],[7405],{"type":3209,"value":7406},"users",{"type":3209,"value":7408}," 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":3204,"tag":3265,"props":7410,"children":7411},{},[7412,7413,7419,7421],{"type":3209,"value":5357},{"type":3204,"tag":3349,"props":7414,"children":7416},{"className":7415},[],[7417],{"type":3209,"value":7418},"credentials",{"type":3209,"value":7420}," table stores:\n",{"type":3204,"tag":3261,"props":7422,"children":7423},{},[7424,7442,7454,7464,7493,7514],{"type":3204,"tag":3265,"props":7425,"children":7426},{},[7427,7428,7433,7435,7440],{"type":3209,"value":5357},{"type":3204,"tag":3349,"props":7429,"children":7431},{"className":7430},[],[7432],{"type":3209,"value":7359},{"type":3209,"value":7434}," from the ",{"type":3204,"tag":3349,"props":7436,"children":7438},{"className":7437},[],[7439],{"type":3209,"value":7406},{"type":3209,"value":7441}," table.",{"type":3204,"tag":3265,"props":7443,"children":7444},{},[7445,7447,7452],{"type":3209,"value":7446},"The credential ",{"type":3204,"tag":3349,"props":7448,"children":7450},{"className":7449},[],[7451],{"type":3209,"value":7377},{"type":3209,"value":7453}," (as unique index)",{"type":3204,"tag":3265,"props":7455,"children":7456},{},[7457,7458],{"type":3209,"value":7446},{"type":3204,"tag":3349,"props":7459,"children":7461},{"className":7460},[],[7462],{"type":3209,"value":7463},"publicKey",{"type":3204,"tag":3265,"props":7465,"children":7466},{},[7467,7469,7475,7477,7482,7484,7491],{"type":3209,"value":7468},"A ",{"type":3204,"tag":3349,"props":7470,"children":7472},{"className":7471},[],[7473],{"type":3209,"value":7474},"counter",{"type":3209,"value":7476},". Each time a credential is used, the counter is incremented. We can use this value to perform extra security checks. More about ",{"type":3204,"tag":3349,"props":7478,"children":7480},{"className":7479},[],[7481],{"type":3209,"value":7474},{"type":3209,"value":7483}," can be read ",{"type":3204,"tag":3215,"props":7485,"children":7488},{"href":7486,"rel":7487},"https:\u002F\u002Fsimplewebauthn.dev\u002Fdocs\u002Fpackages\u002Fserver#3-post-registration-responsibilities",[3219],[7489],{"type":3209,"value":7490},"here",{"type":3209,"value":7492},". For this example, we won't be using the counter. But you should update the counter in your database with the new value.",{"type":3204,"tag":3265,"props":7494,"children":7495},{},[7496,7497,7503,7505,7512],{"type":3209,"value":7468},{"type":3204,"tag":3349,"props":7498,"children":7500},{"className":7499},[],[7501],{"type":3209,"value":7502},"backedUp",{"type":3209,"value":7504}," 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":3204,"tag":3215,"props":7506,"children":7509},{"href":7507,"rel":7508},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fugaemxot",[3219],[7510],{"type":3209,"value":7511},"this section",{"type":3209,"value":7513}," for more details.",{"type":3204,"tag":3265,"props":7515,"children":7516},{},[7517,7518,7524,7526,7532],{"type":3209,"value":7446},{"type":3204,"tag":3349,"props":7519,"children":7521},{"className":7520},[],[7522],{"type":3209,"value":7523},"transports",{"type":3209,"value":7525},". 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":3204,"tag":3215,"props":7527,"children":7530},{"href":7528,"rel":7529},"https:\u002F\u002Farc.net\u002Fl\u002Fquote\u002Fycxtiorp",[3219],[7531],{"type":3209,"value":7511},{"type":3209,"value":7513},{"type":3204,"tag":3211,"props":7534,"children":7535},{},[7536,7538,7545,7546,7553,7555,7562],{"type":3209,"value":7537},"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":3204,"tag":3215,"props":7539,"children":7542},{"href":7540,"rel":7541},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fregister.post.ts",[3219],[7543],{"type":3209,"value":7544},"registration",{"type":3209,"value":7368},{"type":3204,"tag":3215,"props":7547,"children":7550},{"href":7548,"rel":7549},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts",[3219],[7551],{"type":3209,"value":7552},"authentication",{"type":3209,"value":7554}," and the ",{"type":3204,"tag":3215,"props":7556,"children":7559},{"href":7557,"rel":7558},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fserver\u002Fplugins\u002Fdatabase.ts",[3219],[7560],{"type":3209,"value":7561},"database setup",{"type":3209,"value":3442},{"type":3204,"tag":3477,"props":7564,"children":7566},{"className":4165,"code":7565,"language":4167,"meta":3077,"style":3077},"\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",[7567],{"type":3204,"tag":3349,"props":7568,"children":7569},{"__ignoreMap":3077},[7570,7578,7618,7642,7650,7688,7696,7704,7712,7748,7837,7907,7914,7921,7929,7957,7965,8007,8039,8046,8094,8102,8110,8135,8142,8150,8197,8226,8234,8274,8281,8289,8298,8330,8338,8347,8375,8391,8416,8425,8459,8471,8479],{"type":3204,"tag":3487,"props":7571,"children":7572},{"class":3489,"line":3163},[7573],{"type":3204,"tag":3487,"props":7574,"children":7575},{"style":3552},[7576],{"type":3209,"value":7577},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fregister.post.ts\n",{"type":3204,"tag":3487,"props":7579,"children":7580},{"class":3489,"line":3129},[7581,7586,7590,7595,7600,7605,7609,7614],{"type":3204,"tag":3487,"props":7582,"children":7583},{"style":4749},[7584],{"type":3209,"value":7585},"import",{"type":3204,"tag":3487,"props":7587,"children":7588},{"style":3566},[7589],{"type":3209,"value":3659},{"type":3204,"tag":3487,"props":7591,"children":7592},{"style":3561},[7593],{"type":3209,"value":7594}," z",{"type":3204,"tag":3487,"props":7596,"children":7597},{"style":3566},[7598],{"type":3209,"value":7599}," }",{"type":3204,"tag":3487,"props":7601,"children":7602},{"style":4749},[7603],{"type":3209,"value":7604}," from",{"type":3204,"tag":3487,"props":7606,"children":7607},{"style":3566},[7608],{"type":3209,"value":4810},{"type":3204,"tag":3487,"props":7610,"children":7611},{"style":3499},[7612],{"type":3209,"value":7613},"zod",{"type":3204,"tag":3487,"props":7615,"children":7616},{"style":3566},[7617],{"type":3209,"value":4819},{"type":3204,"tag":3487,"props":7619,"children":7620},{"class":3489,"line":3113},[7621,7625,7629,7634,7638],{"type":3204,"tag":3487,"props":7622,"children":7623},{"style":4749},[7624],{"type":3209,"value":5283},{"type":3204,"tag":3487,"props":7626,"children":7627},{"style":4749},[7628],{"type":3209,"value":5398},{"type":3204,"tag":3487,"props":7630,"children":7631},{"style":3723},[7632],{"type":3209,"value":7633}," defineWebAuthnRegisterEventHandler",{"type":3204,"tag":3487,"props":7635,"children":7636},{"style":3561},[7637],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":7639,"children":7640},{"style":3566},[7641],{"type":3209,"value":5413},{"type":3204,"tag":3487,"props":7643,"children":7644},{"class":3489,"line":3750},[7645],{"type":3204,"tag":3487,"props":7646,"children":7647},{"style":3552},[7648],{"type":3209,"value":7649},"  \u002F\u002F optional\n",{"type":3204,"tag":3487,"props":7651,"children":7652},{"class":3489,"line":3759},[7653,7657,7662,7666,7671,7675,7680,7684],{"type":3204,"tag":3487,"props":7654,"children":7655},{"style":3638},[7656],{"type":3209,"value":5951},{"type":3204,"tag":3487,"props":7658,"children":7659},{"style":3632},[7660],{"type":3209,"value":7661}," validateUser",{"type":3204,"tag":3487,"props":7663,"children":7664},{"style":3566},[7665],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":7667,"children":7668},{"style":4581},[7669],{"type":3209,"value":7670},"userBody",{"type":3204,"tag":3487,"props":7672,"children":7673},{"style":3566},[7674],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":7676,"children":7677},{"style":4581},[7678],{"type":3209,"value":7679}," event",{"type":3204,"tag":3487,"props":7681,"children":7682},{"style":3566},[7683],{"type":3209,"value":6169},{"type":3204,"tag":3487,"props":7685,"children":7686},{"style":3566},[7687],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":7689,"children":7690},{"class":3489,"line":3776},[7691],{"type":3204,"tag":3487,"props":7692,"children":7693},{"style":3552},[7694],{"type":3209,"value":7695},"    \u002F\u002F bonus: check if the user is already authenticated to link a credential to his account\n",{"type":3204,"tag":3487,"props":7697,"children":7698},{"class":3489,"line":3109},[7699],{"type":3204,"tag":3487,"props":7700,"children":7701},{"style":3552},[7702],{"type":3209,"value":7703},"    \u002F\u002F We first check if the user is already authenticated by getting the session\n",{"type":3204,"tag":3487,"props":7705,"children":7706},{"class":3489,"line":3105},[7707],{"type":3204,"tag":3487,"props":7708,"children":7709},{"style":3552},[7710],{"type":3209,"value":7711},"    \u002F\u002F And verify that the email is the same as the one in session\n",{"type":3204,"tag":3487,"props":7713,"children":7714},{"class":3489,"line":3101},[7715,7720,7724,7728,7732,7736,7740,7744],{"type":3204,"tag":3487,"props":7716,"children":7717},{"style":3638},[7718],{"type":3209,"value":7719},"    const",{"type":3204,"tag":3487,"props":7721,"children":7722},{"style":3561},[7723],{"type":3209,"value":3683},{"type":3204,"tag":3487,"props":7725,"children":7726},{"style":3566},[7727],{"type":3209,"value":3720},{"type":3204,"tag":3487,"props":7729,"children":7730},{"style":4749},[7731],{"type":3209,"value":5005},{"type":3204,"tag":3487,"props":7733,"children":7734},{"style":3723},[7735],{"type":3209,"value":5010},{"type":3204,"tag":3487,"props":7737,"children":7738},{"style":3632},[7739],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":7741,"children":7742},{"style":3561},[7743],{"type":3209,"value":5965},{"type":3204,"tag":3487,"props":7745,"children":7746},{"style":3632},[7747],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":7749,"children":7750},{"class":3489,"line":3938},[7751,7756,7760,7765,7769,7774,7779,7784,7789,7793,7797,7801,7805,7809,7814,7819,7823,7828,7833],{"type":3204,"tag":3487,"props":7752,"children":7753},{"style":4749},[7754],{"type":3209,"value":7755},"    if",{"type":3204,"tag":3487,"props":7757,"children":7758},{"style":3632},[7759],{"type":3209,"value":4578},{"type":3204,"tag":3487,"props":7761,"children":7762},{"style":3561},[7763],{"type":3209,"value":7764},"session",{"type":3204,"tag":3487,"props":7766,"children":7767},{"style":3566},[7768],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":7770,"children":7771},{"style":3561},[7772],{"type":3209,"value":7773},"user",{"type":3204,"tag":3487,"props":7775,"children":7776},{"style":3566},[7777],{"type":3209,"value":7778},"?.",{"type":3204,"tag":3487,"props":7780,"children":7781},{"style":3561},[7782],{"type":3209,"value":7783},"email",{"type":3204,"tag":3487,"props":7785,"children":7786},{"style":3566},[7787],{"type":3209,"value":7788}," &&",{"type":3204,"tag":3487,"props":7790,"children":7791},{"style":3561},[7792],{"type":3209,"value":3683},{"type":3204,"tag":3487,"props":7794,"children":7795},{"style":3566},[7796],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":7798,"children":7799},{"style":3561},[7800],{"type":3209,"value":7773},{"type":3204,"tag":3487,"props":7802,"children":7803},{"style":3566},[7804],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":7806,"children":7807},{"style":3561},[7808],{"type":3209,"value":7783},{"type":3204,"tag":3487,"props":7810,"children":7811},{"style":3566},[7812],{"type":3209,"value":7813}," !==",{"type":3204,"tag":3487,"props":7815,"children":7816},{"style":3561},[7817],{"type":3209,"value":7818}," userBody",{"type":3204,"tag":3487,"props":7820,"children":7821},{"style":3566},[7822],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":7824,"children":7825},{"style":3561},[7826],{"type":3209,"value":7827},"userName",{"type":3204,"tag":3487,"props":7829,"children":7830},{"style":3632},[7831],{"type":3209,"value":7832},") ",{"type":3204,"tag":3487,"props":7834,"children":7835},{"style":3566},[7836],{"type":3209,"value":5413},{"type":3204,"tag":3487,"props":7838,"children":7839},{"class":3489,"line":3192},[7840,7845,7850,7854,7859,7864,7868,7873,7877,7882,7886,7890,7895,7899,7903],{"type":3204,"tag":3487,"props":7841,"children":7842},{"style":4749},[7843],{"type":3209,"value":7844},"      throw",{"type":3204,"tag":3487,"props":7846,"children":7847},{"style":3723},[7848],{"type":3209,"value":7849}," createError",{"type":3204,"tag":3487,"props":7851,"children":7852},{"style":3632},[7853],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":7855,"children":7856},{"style":3566},[7857],{"type":3209,"value":7858},"{",{"type":3204,"tag":3487,"props":7860,"children":7861},{"style":3632},[7862],{"type":3209,"value":7863}," statusCode",{"type":3204,"tag":3487,"props":7865,"children":7866},{"style":3566},[7867],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":7869,"children":7870},{"style":7087},[7871],{"type":3209,"value":7872}," 400",{"type":3204,"tag":3487,"props":7874,"children":7875},{"style":3566},[7876],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":7878,"children":7879},{"style":3632},[7880],{"type":3209,"value":7881}," message",{"type":3204,"tag":3487,"props":7883,"children":7884},{"style":3566},[7885],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":7887,"children":7888},{"style":3566},[7889],{"type":3209,"value":4810},{"type":3204,"tag":3487,"props":7891,"children":7892},{"style":3499},[7893],{"type":3209,"value":7894},"Email not matching current session",{"type":3204,"tag":3487,"props":7896,"children":7897},{"style":3566},[7898],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":7900,"children":7901},{"style":3566},[7902],{"type":3209,"value":7599},{"type":3204,"tag":3487,"props":7904,"children":7905},{"style":3632},[7906],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":7908,"children":7909},{"class":3489,"line":3975},[7910],{"type":3204,"tag":3487,"props":7911,"children":7912},{"style":3566},[7913],{"type":3209,"value":5539},{"type":3204,"tag":3487,"props":7915,"children":7916},{"class":3489,"line":4008},[7917],{"type":3204,"tag":3487,"props":7918,"children":7919},{"emptyLinePlaceholder":1208},[7920],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":7922,"children":7923},{"class":3489,"line":4063},[7924],{"type":3204,"tag":3487,"props":7925,"children":7926},{"style":3552},[7927],{"type":3209,"value":7928},"    \u002F\u002F If he registers a new account with credentials\n",{"type":3204,"tag":3487,"props":7930,"children":7931},{"class":3489,"line":4072},[7932,7936,7940,7944,7949,7953],{"type":3204,"tag":3487,"props":7933,"children":7934},{"style":4749},[7935],{"type":3209,"value":6090},{"type":3204,"tag":3487,"props":7937,"children":7938},{"style":3561},[7939],{"type":3209,"value":7594},{"type":3204,"tag":3487,"props":7941,"children":7942},{"style":3566},[7943],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":7945,"children":7946},{"style":3723},[7947],{"type":3209,"value":7948},"object",{"type":3204,"tag":3487,"props":7950,"children":7951},{"style":3632},[7952],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":7954,"children":7955},{"style":3566},[7956],{"type":3209,"value":5413},{"type":3204,"tag":3487,"props":7958,"children":7959},{"class":3489,"line":3097},[7960],{"type":3204,"tag":3487,"props":7961,"children":7962},{"style":3552},[7963],{"type":3209,"value":7964},"      \u002F\u002F we want the userName to be a valid email\n",{"type":3204,"tag":3487,"props":7966,"children":7967},{"class":3489,"line":4140},[7968,7973,7977,7981,7985,7990,7995,7999,8003],{"type":3204,"tag":3487,"props":7969,"children":7970},{"style":3632},[7971],{"type":3209,"value":7972},"      userName",{"type":3204,"tag":3487,"props":7974,"children":7975},{"style":3566},[7976],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":7978,"children":7979},{"style":3561},[7980],{"type":3209,"value":7594},{"type":3204,"tag":3487,"props":7982,"children":7983},{"style":3566},[7984],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":7986,"children":7987},{"style":3723},[7988],{"type":3209,"value":7989},"string",{"type":3204,"tag":3487,"props":7991,"children":7992},{"style":3632},[7993],{"type":3209,"value":7994},"()",{"type":3204,"tag":3487,"props":7996,"children":7997},{"style":3566},[7998],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":8000,"children":8001},{"style":3723},[8002],{"type":3209,"value":7783},{"type":3204,"tag":3487,"props":8004,"children":8005},{"style":3632},[8006],{"type":3209,"value":3731},{"type":3204,"tag":3487,"props":8008,"children":8009},{"class":3489,"line":4410},[8010,8014,8018,8022,8027,8031,8035],{"type":3204,"tag":3487,"props":8011,"children":8012},{"style":3566},[8013],{"type":3209,"value":6078},{"type":3204,"tag":3487,"props":8015,"children":8016},{"style":3632},[8017],{"type":3209,"value":6169},{"type":3204,"tag":3487,"props":8019,"children":8020},{"style":3566},[8021],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":8023,"children":8024},{"style":3723},[8025],{"type":3209,"value":8026},"parse",{"type":3204,"tag":3487,"props":8028,"children":8029},{"style":3632},[8030],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":8032,"children":8033},{"style":3561},[8034],{"type":3209,"value":7670},{"type":3204,"tag":3487,"props":8036,"children":8037},{"style":3632},[8038],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":8040,"children":8041},{"class":3489,"line":4418},[8042],{"type":3204,"tag":3487,"props":8043,"children":8044},{"style":3566},[8045],{"type":3209,"value":4827},{"type":3204,"tag":3487,"props":8047,"children":8048},{"class":3489,"line":4427},[8049,8053,8057,8061,8065,8069,8073,8078,8082,8086,8090],{"type":3204,"tag":3487,"props":8050,"children":8051},{"style":3638},[8052],{"type":3209,"value":5951},{"type":3204,"tag":3487,"props":8054,"children":8055},{"style":3632},[8056],{"type":3209,"value":5956},{"type":3204,"tag":3487,"props":8058,"children":8059},{"style":3566},[8060],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":8062,"children":8063},{"style":4581},[8064],{"type":3209,"value":5965},{"type":3204,"tag":3487,"props":8066,"children":8067},{"style":3566},[8068],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":8070,"children":8071},{"style":3566},[8072],{"type":3209,"value":3659},{"type":3204,"tag":3487,"props":8074,"children":8075},{"style":4581},[8076],{"type":3209,"value":8077}," credential",{"type":3204,"tag":3487,"props":8079,"children":8080},{"style":3566},[8081],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":8083,"children":8084},{"style":4581},[8085],{"type":3209,"value":3674},{"type":3204,"tag":3487,"props":8087,"children":8088},{"style":3566},[8089],{"type":3209,"value":4647},{"type":3204,"tag":3487,"props":8091,"children":8092},{"style":3566},[8093],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":8095,"children":8096},{"class":3489,"line":4435},[8097],{"type":3204,"tag":3487,"props":8098,"children":8099},{"style":3552},[8100],{"type":3209,"value":8101},"    \u002F\u002F The credential creation has been successful\n",{"type":3204,"tag":3487,"props":8103,"children":8104},{"class":3489,"line":4476},[8105],{"type":3204,"tag":3487,"props":8106,"children":8107},{"style":3552},[8108],{"type":3209,"value":8109},"    \u002F\u002F We need to create a user if it does not exist\n",{"type":3204,"tag":3487,"props":8111,"children":8112},{"class":3489,"line":4484},[8113,8117,8122,8126,8131],{"type":3204,"tag":3487,"props":8114,"children":8115},{"style":3638},[8116],{"type":3209,"value":7719},{"type":3204,"tag":3487,"props":8118,"children":8119},{"style":3561},[8120],{"type":3209,"value":8121}," db",{"type":3204,"tag":3487,"props":8123,"children":8124},{"style":3566},[8125],{"type":3209,"value":3720},{"type":3204,"tag":3487,"props":8127,"children":8128},{"style":3723},[8129],{"type":3209,"value":8130}," useDatabase",{"type":3204,"tag":3487,"props":8132,"children":8133},{"style":3632},[8134],{"type":3209,"value":3731},{"type":3204,"tag":3487,"props":8136,"children":8137},{"class":3489,"line":4493},[8138],{"type":3204,"tag":3487,"props":8139,"children":8140},{"emptyLinePlaceholder":1208},[8141],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":8143,"children":8144},{"class":3489,"line":4501},[8145],{"type":3204,"tag":3487,"props":8146,"children":8147},{"style":3552},[8148],{"type":3209,"value":8149},"    \u002F\u002F Get the user from the database\n",{"type":3204,"tag":3487,"props":8151,"children":8152},{"class":3489,"line":4538},[8153,8158,8163,8167,8171,8175,8179,8183,8188,8192],{"type":3204,"tag":3487,"props":8154,"children":8155},{"style":3638},[8156],{"type":3209,"value":8157},"    let",{"type":3204,"tag":3487,"props":8159,"children":8160},{"style":3561},[8161],{"type":3209,"value":8162}," dbUser",{"type":3204,"tag":3487,"props":8164,"children":8165},{"style":3566},[8166],{"type":3209,"value":3720},{"type":3204,"tag":3487,"props":8168,"children":8169},{"style":4749},[8170],{"type":3209,"value":5005},{"type":3204,"tag":3487,"props":8172,"children":8173},{"style":3561},[8174],{"type":3209,"value":8121},{"type":3204,"tag":3487,"props":8176,"children":8177},{"style":3566},[8178],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":8180,"children":8181},{"style":3723},[8182],{"type":3209,"value":7077},{"type":3204,"tag":3487,"props":8184,"children":8185},{"style":3566},[8186],{"type":3209,"value":8187},"`",{"type":3204,"tag":3487,"props":8189,"children":8190},{"style":3499},[8191],{"type":3209,"value":5490},{"type":3204,"tag":3487,"props":8193,"children":8194},{"style":3566},[8195],{"type":3209,"value":8196},"`\n",{"type":3204,"tag":3487,"props":8198,"children":8199},{"class":3489,"line":4546},[8200,8204,8208,8213,8218,8222],{"type":3204,"tag":3487,"props":8201,"children":8202},{"style":4749},[8203],{"type":3209,"value":7755},{"type":3204,"tag":3487,"props":8205,"children":8206},{"style":3632},[8207],{"type":3209,"value":4578},{"type":3204,"tag":3487,"props":8209,"children":8210},{"style":3566},[8211],{"type":3209,"value":8212},"!",{"type":3204,"tag":3487,"props":8214,"children":8215},{"style":3561},[8216],{"type":3209,"value":8217},"dbUser",{"type":3204,"tag":3487,"props":8219,"children":8220},{"style":3632},[8221],{"type":3209,"value":7832},{"type":3204,"tag":3487,"props":8223,"children":8224},{"style":3566},[8225],{"type":3209,"value":5413},{"type":3204,"tag":3487,"props":8227,"children":8228},{"class":3489,"line":4555},[8229],{"type":3204,"tag":3487,"props":8230,"children":8231},{"style":3552},[8232],{"type":3209,"value":8233},"      \u002F\u002F Store new user in database & its credentials\n",{"type":3204,"tag":3487,"props":8235,"children":8236},{"class":3489,"line":4563},[8237,8242,8246,8250,8254,8258,8262,8266,8270],{"type":3204,"tag":3487,"props":8238,"children":8239},{"style":3561},[8240],{"type":3209,"value":8241},"      dbUser",{"type":3204,"tag":3487,"props":8243,"children":8244},{"style":3566},[8245],{"type":3209,"value":3720},{"type":3204,"tag":3487,"props":8247,"children":8248},{"style":4749},[8249],{"type":3209,"value":5005},{"type":3204,"tag":3487,"props":8251,"children":8252},{"style":3561},[8253],{"type":3209,"value":8121},{"type":3204,"tag":3487,"props":8255,"children":8256},{"style":3566},[8257],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":8259,"children":8260},{"style":3723},[8261],{"type":3209,"value":7077},{"type":3204,"tag":3487,"props":8263,"children":8264},{"style":3566},[8265],{"type":3209,"value":8187},{"type":3204,"tag":3487,"props":8267,"children":8268},{"style":3499},[8269],{"type":3209,"value":5490},{"type":3204,"tag":3487,"props":8271,"children":8272},{"style":3566},[8273],{"type":3209,"value":8196},{"type":3204,"tag":3487,"props":8275,"children":8276},{"class":3489,"line":4659},[8277],{"type":3204,"tag":3487,"props":8278,"children":8279},{"style":3566},[8280],{"type":3209,"value":5539},{"type":3204,"tag":3487,"props":8282,"children":8284},{"class":3489,"line":8283},31,[8285],{"type":3204,"tag":3487,"props":8286,"children":8287},{"emptyLinePlaceholder":1208},[8288],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":8290,"children":8292},{"class":3489,"line":8291},32,[8293],{"type":3204,"tag":3487,"props":8294,"children":8295},{"style":3552},[8296],{"type":3209,"value":8297},"    \u002F\u002F we now need to store the credential in our database and link it to the user\n",{"type":3204,"tag":3487,"props":8299,"children":8301},{"class":3489,"line":8300},33,[8302,8306,8310,8314,8318,8322,8326],{"type":3204,"tag":3487,"props":8303,"children":8304},{"style":4749},[8305],{"type":3209,"value":6002},{"type":3204,"tag":3487,"props":8307,"children":8308},{"style":3561},[8309],{"type":3209,"value":8121},{"type":3204,"tag":3487,"props":8311,"children":8312},{"style":3566},[8313],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":8315,"children":8316},{"style":3723},[8317],{"type":3209,"value":7077},{"type":3204,"tag":3487,"props":8319,"children":8320},{"style":3566},[8321],{"type":3209,"value":8187},{"type":3204,"tag":3487,"props":8323,"children":8324},{"style":3499},[8325],{"type":3209,"value":5490},{"type":3204,"tag":3487,"props":8327,"children":8328},{"style":3566},[8329],{"type":3209,"value":8196},{"type":3204,"tag":3487,"props":8331,"children":8333},{"class":3489,"line":8332},34,[8334],{"type":3204,"tag":3487,"props":8335,"children":8336},{"emptyLinePlaceholder":1208},[8337],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":8339,"children":8341},{"class":3489,"line":8340},35,[8342],{"type":3204,"tag":3487,"props":8343,"children":8344},{"style":3552},[8345],{"type":3209,"value":8346},"    \u002F\u002F Set the user session\n",{"type":3204,"tag":3487,"props":8348,"children":8350},{"class":3489,"line":8349},36,[8351,8355,8359,8363,8367,8371],{"type":3204,"tag":3487,"props":8352,"children":8353},{"style":4749},[8354],{"type":3209,"value":6002},{"type":3204,"tag":3487,"props":8356,"children":8357},{"style":3723},[8358],{"type":3209,"value":4757},{"type":3204,"tag":3487,"props":8360,"children":8361},{"style":3632},[8362],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":8364,"children":8365},{"style":3561},[8366],{"type":3209,"value":5965},{"type":3204,"tag":3487,"props":8368,"children":8369},{"style":3566},[8370],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":8372,"children":8373},{"style":3566},[8374],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":8376,"children":8378},{"class":3489,"line":8377},37,[8379,8383,8387],{"type":3204,"tag":3487,"props":8380,"children":8381},{"style":3632},[8382],{"type":3209,"value":6030},{"type":3204,"tag":3487,"props":8384,"children":8385},{"style":3566},[8386],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":8388,"children":8389},{"style":3566},[8390],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":8392,"children":8394},{"class":3489,"line":8393},38,[8395,8400,8404,8408,8412],{"type":3204,"tag":3487,"props":8396,"children":8397},{"style":3632},[8398],{"type":3209,"value":8399},"        id",{"type":3204,"tag":3487,"props":8401,"children":8402},{"style":3566},[8403],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":8405,"children":8406},{"style":3561},[8407],{"type":3209,"value":8162},{"type":3204,"tag":3487,"props":8409,"children":8410},{"style":3566},[8411],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":8413,"children":8414},{"style":3561},[8415],{"type":3209,"value":6063},{"type":3204,"tag":3487,"props":8417,"children":8419},{"class":3489,"line":8418},39,[8420],{"type":3204,"tag":3487,"props":8421,"children":8422},{"style":3566},[8423],{"type":3209,"value":8424},"      },\n",{"type":3204,"tag":3487,"props":8426,"children":8428},{"class":3489,"line":8427},40,[8429,8434,8438,8442,8446,8451,8455],{"type":3204,"tag":3487,"props":8430,"children":8431},{"style":3632},[8432],{"type":3209,"value":8433},"      loggedInAt",{"type":3204,"tag":3487,"props":8435,"children":8436},{"style":3566},[8437],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":8439,"children":8440},{"style":3561},[8441],{"type":3209,"value":4913},{"type":3204,"tag":3487,"props":8443,"children":8444},{"style":3566},[8445],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":8447,"children":8448},{"style":3723},[8449],{"type":3209,"value":8450},"now",{"type":3204,"tag":3487,"props":8452,"children":8453},{"style":3632},[8454],{"type":3209,"value":7994},{"type":3204,"tag":3487,"props":8456,"children":8457},{"style":3566},[8458],{"type":3209,"value":5499},{"type":3204,"tag":3487,"props":8460,"children":8462},{"class":3489,"line":8461},41,[8463,8467],{"type":3204,"tag":3487,"props":8464,"children":8465},{"style":3566},[8466],{"type":3209,"value":6078},{"type":3204,"tag":3487,"props":8468,"children":8469},{"style":3632},[8470],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":8472,"children":8474},{"class":3489,"line":8473},42,[8475],{"type":3204,"tag":3487,"props":8476,"children":8477},{"style":3566},[8478],{"type":3209,"value":4827},{"type":3204,"tag":3487,"props":8480,"children":8482},{"class":3489,"line":8481},43,[8483,8487],{"type":3204,"tag":3487,"props":8484,"children":8485},{"style":3566},[8486],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":8488,"children":8489},{"style":3561},[8490],{"type":3209,"value":4929},{"type":3204,"tag":4667,"props":8492,"children":8493},{},[8494],{"type":3204,"tag":3211,"props":8495,"children":8496},{},[8497,8502,8504,8511,8513,8519,8521],{"type":3204,"tag":3487,"props":8498,"children":8499},{},[8500],{"type":3209,"value":8501},"!TIP",{"type":3209,"value":8503},"\nIf you want to plug in and use the ",{"type":3204,"tag":3215,"props":8505,"children":8508},{"href":8506,"rel":8507},"https:\u002F\u002Fgithub.com\u002Fpasskeydeveloper\u002Fpasskey-authenticator-aaguids",[3219],[8509],{"type":3209,"value":8510},"Community sourced list of AAGUIDS",{"type":3209,"value":8512}," to decorate your display of added passkeys, you can access the the ID via ",{"type":3204,"tag":3349,"props":8514,"children":8516},{"className":8515},[],[8517],{"type":3209,"value":8518},"credential.aaguid",{"type":3209,"value":8520}," inside ",{"type":3204,"tag":3349,"props":8522,"children":8524},{"className":8523},[],[8525],{"type":3209,"value":5342},{"type":3204,"tag":3477,"props":8527,"children":8529},{"className":4165,"code":8528,"language":4167,"meta":3077,"style":3077},"\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",[8530],{"type":3204,"tag":3349,"props":8531,"children":8532},{"__ignoreMap":3077},[8533,8541,8565,8573,8610,8658,8666,8698,8762,8769,8777,8785,8793,8805,8813,8820,8857,8865,8912,8919,8927,8951,9015,9022,9034,9041,9089,9097,9105,9128,9171,9178,9186,9217,9224,9231,9258,9273,9296,9303,9334,9345,9352],{"type":3204,"tag":3487,"props":8534,"children":8535},{"class":3489,"line":3163},[8536],{"type":3204,"tag":3487,"props":8537,"children":8538},{"style":3552},[8539],{"type":3209,"value":8540},"\u002F\u002F server\u002Fapi\u002Fwebauthn\u002Fauthenticate.post.ts\n",{"type":3204,"tag":3487,"props":8542,"children":8543},{"class":3489,"line":3129},[8544,8548,8552,8557,8561],{"type":3204,"tag":3487,"props":8545,"children":8546},{"style":4749},[8547],{"type":3209,"value":5283},{"type":3204,"tag":3487,"props":8549,"children":8550},{"style":4749},[8551],{"type":3209,"value":5398},{"type":3204,"tag":3487,"props":8553,"children":8554},{"style":3723},[8555],{"type":3209,"value":8556}," defineWebAuthnAuthenticateEventHandler",{"type":3204,"tag":3487,"props":8558,"children":8559},{"style":3561},[8560],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":8562,"children":8563},{"style":3566},[8564],{"type":3209,"value":5413},{"type":3204,"tag":3487,"props":8566,"children":8567},{"class":3489,"line":3113},[8568],{"type":3204,"tag":3487,"props":8569,"children":8570},{"style":3552},[8571],{"type":3209,"value":8572},"  \u002F\u002F Optionally, we can prefetch the credentials if the user gives their userName during login\n",{"type":3204,"tag":3487,"props":8574,"children":8575},{"class":3489,"line":3750},[8576,8580,8585,8589,8593,8597,8602,8606],{"type":3204,"tag":3487,"props":8577,"children":8578},{"style":3638},[8579],{"type":3209,"value":5951},{"type":3204,"tag":3487,"props":8581,"children":8582},{"style":3632},[8583],{"type":3209,"value":8584}," allowCredentials",{"type":3204,"tag":3487,"props":8586,"children":8587},{"style":3566},[8588],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":8590,"children":8591},{"style":4581},[8592],{"type":3209,"value":5965},{"type":3204,"tag":3487,"props":8594,"children":8595},{"style":3566},[8596],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":8598,"children":8599},{"style":4581},[8600],{"type":3209,"value":8601}," userName",{"type":3204,"tag":3487,"props":8603,"children":8604},{"style":3566},[8605],{"type":3209,"value":6169},{"type":3204,"tag":3487,"props":8607,"children":8608},{"style":3566},[8609],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":8611,"children":8612},{"class":3489,"line":3759},[8613,8617,8622,8626,8630,8634,8638,8642,8646,8650,8654],{"type":3204,"tag":3487,"props":8614,"children":8615},{"style":3638},[8616],{"type":3209,"value":7719},{"type":3204,"tag":3487,"props":8618,"children":8619},{"style":3561},[8620],{"type":3209,"value":8621}," credentials",{"type":3204,"tag":3487,"props":8623,"children":8624},{"style":3566},[8625],{"type":3209,"value":3720},{"type":3204,"tag":3487,"props":8627,"children":8628},{"style":4749},[8629],{"type":3209,"value":5005},{"type":3204,"tag":3487,"props":8631,"children":8632},{"style":3723},[8633],{"type":3209,"value":8130},{"type":3204,"tag":3487,"props":8635,"children":8636},{"style":3632},[8637],{"type":3209,"value":7994},{"type":3204,"tag":3487,"props":8639,"children":8640},{"style":3566},[8641],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":8643,"children":8644},{"style":3723},[8645],{"type":3209,"value":7077},{"type":3204,"tag":3487,"props":8647,"children":8648},{"style":3566},[8649],{"type":3209,"value":8187},{"type":3204,"tag":3487,"props":8651,"children":8652},{"style":3499},[8653],{"type":3209,"value":5490},{"type":3204,"tag":3487,"props":8655,"children":8656},{"style":3566},[8657],{"type":3209,"value":8196},{"type":3204,"tag":3487,"props":8659,"children":8660},{"class":3489,"line":3776},[8661],{"type":3204,"tag":3487,"props":8662,"children":8663},{"style":3552},[8664],{"type":3209,"value":8665},"    \u002F\u002F If no credentials are found, the authentication cannot be completed\n",{"type":3204,"tag":3487,"props":8667,"children":8668},{"class":3489,"line":3109},[8669,8673,8677,8681,8685,8689,8694],{"type":3204,"tag":3487,"props":8670,"children":8671},{"style":4749},[8672],{"type":3209,"value":7755},{"type":3204,"tag":3487,"props":8674,"children":8675},{"style":3632},[8676],{"type":3209,"value":4578},{"type":3204,"tag":3487,"props":8678,"children":8679},{"style":3566},[8680],{"type":3209,"value":8212},{"type":3204,"tag":3487,"props":8682,"children":8683},{"style":3561},[8684],{"type":3209,"value":7418},{"type":3204,"tag":3487,"props":8686,"children":8687},{"style":3566},[8688],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":8690,"children":8691},{"style":3561},[8692],{"type":3209,"value":8693},"length",{"type":3204,"tag":3487,"props":8695,"children":8696},{"style":3632},[8697],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":8699,"children":8700},{"class":3489,"line":3105},[8701,8705,8709,8713,8717,8721,8725,8729,8733,8737,8741,8745,8750,8754,8758],{"type":3204,"tag":3487,"props":8702,"children":8703},{"style":4749},[8704],{"type":3209,"value":7844},{"type":3204,"tag":3487,"props":8706,"children":8707},{"style":3723},[8708],{"type":3209,"value":7849},{"type":3204,"tag":3487,"props":8710,"children":8711},{"style":3632},[8712],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":8714,"children":8715},{"style":3566},[8716],{"type":3209,"value":7858},{"type":3204,"tag":3487,"props":8718,"children":8719},{"style":3632},[8720],{"type":3209,"value":7863},{"type":3204,"tag":3487,"props":8722,"children":8723},{"style":3566},[8724],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":8726,"children":8727},{"style":7087},[8728],{"type":3209,"value":7872},{"type":3204,"tag":3487,"props":8730,"children":8731},{"style":3566},[8732],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":8734,"children":8735},{"style":3632},[8736],{"type":3209,"value":7881},{"type":3204,"tag":3487,"props":8738,"children":8739},{"style":3566},[8740],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":8742,"children":8743},{"style":3566},[8744],{"type":3209,"value":4810},{"type":3204,"tag":3487,"props":8746,"children":8747},{"style":3499},[8748],{"type":3209,"value":8749},"User not found",{"type":3204,"tag":3487,"props":8751,"children":8752},{"style":3566},[8753],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":8755,"children":8756},{"style":3566},[8757],{"type":3209,"value":7599},{"type":3204,"tag":3487,"props":8759,"children":8760},{"style":3632},[8761],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":8763,"children":8764},{"class":3489,"line":3101},[8765],{"type":3204,"tag":3487,"props":8766,"children":8767},{"emptyLinePlaceholder":1208},[8768],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":8770,"children":8771},{"class":3489,"line":3938},[8772],{"type":3204,"tag":3487,"props":8773,"children":8774},{"style":3552},[8775],{"type":3209,"value":8776},"    \u002F\u002F If user is found, only allow credentials that are registered\n",{"type":3204,"tag":3487,"props":8778,"children":8779},{"class":3489,"line":3192},[8780],{"type":3204,"tag":3487,"props":8781,"children":8782},{"style":3552},[8783],{"type":3209,"value":8784},"    \u002F\u002F The browser will automatically try to use the credential that it knows about\n",{"type":3204,"tag":3487,"props":8786,"children":8787},{"class":3489,"line":3975},[8788],{"type":3204,"tag":3487,"props":8789,"children":8790},{"style":3552},[8791],{"type":3209,"value":8792},"    \u002F\u002F Skipping the step for the user to select a credential for a better user experience\n",{"type":3204,"tag":3487,"props":8794,"children":8795},{"class":3489,"line":4008},[8796,8800],{"type":3204,"tag":3487,"props":8797,"children":8798},{"style":4749},[8799],{"type":3209,"value":6090},{"type":3204,"tag":3487,"props":8801,"children":8802},{"style":3561},[8803],{"type":3209,"value":8804}," credentials\n",{"type":3204,"tag":3487,"props":8806,"children":8807},{"class":3489,"line":4063},[8808],{"type":3204,"tag":3487,"props":8809,"children":8810},{"style":3552},[8811],{"type":3209,"value":8812},"    \u002F\u002F example: [{ id: '...' }]\n",{"type":3204,"tag":3487,"props":8814,"children":8815},{"class":3489,"line":4072},[8816],{"type":3204,"tag":3487,"props":8817,"children":8818},{"style":3566},[8819],{"type":3209,"value":4827},{"type":3204,"tag":3487,"props":8821,"children":8822},{"class":3489,"line":3097},[8823,8827,8832,8836,8840,8844,8849,8853],{"type":3204,"tag":3487,"props":8824,"children":8825},{"style":3638},[8826],{"type":3209,"value":5951},{"type":3204,"tag":3487,"props":8828,"children":8829},{"style":3632},[8830],{"type":3209,"value":8831}," getCredential",{"type":3204,"tag":3487,"props":8833,"children":8834},{"style":3566},[8835],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":8837,"children":8838},{"style":4581},[8839],{"type":3209,"value":5965},{"type":3204,"tag":3487,"props":8841,"children":8842},{"style":3566},[8843],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":8845,"children":8846},{"style":4581},[8847],{"type":3209,"value":8848}," credentialId",{"type":3204,"tag":3487,"props":8850,"children":8851},{"style":3566},[8852],{"type":3209,"value":6169},{"type":3204,"tag":3487,"props":8854,"children":8855},{"style":3566},[8856],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":8858,"children":8859},{"class":3489,"line":4140},[8860],{"type":3204,"tag":3487,"props":8861,"children":8862},{"style":3552},[8863],{"type":3209,"value":8864},"    \u002F\u002F Look for the credential in our database\n",{"type":3204,"tag":3487,"props":8866,"children":8867},{"class":3489,"line":4410},[8868,8872,8876,8880,8884,8888,8892,8896,8900,8904,8908],{"type":3204,"tag":3487,"props":8869,"children":8870},{"style":3638},[8871],{"type":3209,"value":7719},{"type":3204,"tag":3487,"props":8873,"children":8874},{"style":3561},[8875],{"type":3209,"value":8077},{"type":3204,"tag":3487,"props":8877,"children":8878},{"style":3566},[8879],{"type":3209,"value":3720},{"type":3204,"tag":3487,"props":8881,"children":8882},{"style":4749},[8883],{"type":3209,"value":5005},{"type":3204,"tag":3487,"props":8885,"children":8886},{"style":3723},[8887],{"type":3209,"value":8130},{"type":3204,"tag":3487,"props":8889,"children":8890},{"style":3632},[8891],{"type":3209,"value":7994},{"type":3204,"tag":3487,"props":8893,"children":8894},{"style":3566},[8895],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":8897,"children":8898},{"style":3723},[8899],{"type":3209,"value":7077},{"type":3204,"tag":3487,"props":8901,"children":8902},{"style":3566},[8903],{"type":3209,"value":8187},{"type":3204,"tag":3487,"props":8905,"children":8906},{"style":3499},[8907],{"type":3209,"value":5490},{"type":3204,"tag":3487,"props":8909,"children":8910},{"style":3566},[8911],{"type":3209,"value":8196},{"type":3204,"tag":3487,"props":8913,"children":8914},{"class":3489,"line":4418},[8915],{"type":3204,"tag":3487,"props":8916,"children":8917},{"emptyLinePlaceholder":1208},[8918],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":8920,"children":8921},{"class":3489,"line":4427},[8922],{"type":3204,"tag":3487,"props":8923,"children":8924},{"style":3552},[8925],{"type":3209,"value":8926},"    \u002F\u002F If the credential is not found, there is no account to log in to\n",{"type":3204,"tag":3487,"props":8928,"children":8929},{"class":3489,"line":4435},[8930,8934,8938,8942,8947],{"type":3204,"tag":3487,"props":8931,"children":8932},{"style":4749},[8933],{"type":3209,"value":7755},{"type":3204,"tag":3487,"props":8935,"children":8936},{"style":3632},[8937],{"type":3209,"value":4578},{"type":3204,"tag":3487,"props":8939,"children":8940},{"style":3566},[8941],{"type":3209,"value":8212},{"type":3204,"tag":3487,"props":8943,"children":8944},{"style":3561},[8945],{"type":3209,"value":8946},"credential",{"type":3204,"tag":3487,"props":8948,"children":8949},{"style":3632},[8950],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":8952,"children":8953},{"class":3489,"line":4476},[8954,8958,8962,8966,8970,8974,8978,8982,8986,8990,8994,8998,9003,9007,9011],{"type":3204,"tag":3487,"props":8955,"children":8956},{"style":4749},[8957],{"type":3209,"value":7844},{"type":3204,"tag":3487,"props":8959,"children":8960},{"style":3723},[8961],{"type":3209,"value":7849},{"type":3204,"tag":3487,"props":8963,"children":8964},{"style":3632},[8965],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":8967,"children":8968},{"style":3566},[8969],{"type":3209,"value":7858},{"type":3204,"tag":3487,"props":8971,"children":8972},{"style":3632},[8973],{"type":3209,"value":7863},{"type":3204,"tag":3487,"props":8975,"children":8976},{"style":3566},[8977],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":8979,"children":8980},{"style":7087},[8981],{"type":3209,"value":7872},{"type":3204,"tag":3487,"props":8983,"children":8984},{"style":3566},[8985],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":8987,"children":8988},{"style":3632},[8989],{"type":3209,"value":7881},{"type":3204,"tag":3487,"props":8991,"children":8992},{"style":3566},[8993],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":8995,"children":8996},{"style":3566},[8997],{"type":3209,"value":4810},{"type":3204,"tag":3487,"props":8999,"children":9000},{"style":3499},[9001],{"type":3209,"value":9002},"Credential not found",{"type":3204,"tag":3487,"props":9004,"children":9005},{"style":3566},[9006],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":9008,"children":9009},{"style":3566},[9010],{"type":3209,"value":7599},{"type":3204,"tag":3487,"props":9012,"children":9013},{"style":3632},[9014],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":9016,"children":9017},{"class":3489,"line":4484},[9018],{"type":3204,"tag":3487,"props":9019,"children":9020},{"emptyLinePlaceholder":1208},[9021],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":9023,"children":9024},{"class":3489,"line":4493},[9025,9029],{"type":3204,"tag":3487,"props":9026,"children":9027},{"style":4749},[9028],{"type":3209,"value":6090},{"type":3204,"tag":3487,"props":9030,"children":9031},{"style":3561},[9032],{"type":3209,"value":9033}," credential\n",{"type":3204,"tag":3487,"props":9035,"children":9036},{"class":3489,"line":4501},[9037],{"type":3204,"tag":3487,"props":9038,"children":9039},{"style":3566},[9040],{"type":3209,"value":4827},{"type":3204,"tag":3487,"props":9042,"children":9043},{"class":3489,"line":4538},[9044,9048,9052,9056,9060,9064,9068,9072,9076,9081,9085],{"type":3204,"tag":3487,"props":9045,"children":9046},{"style":3638},[9047],{"type":3209,"value":5951},{"type":3204,"tag":3487,"props":9049,"children":9050},{"style":3632},[9051],{"type":3209,"value":5956},{"type":3204,"tag":3487,"props":9053,"children":9054},{"style":3566},[9055],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":9057,"children":9058},{"style":4581},[9059],{"type":3209,"value":5965},{"type":3204,"tag":3487,"props":9061,"children":9062},{"style":3566},[9063],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":9065,"children":9066},{"style":3566},[9067],{"type":3209,"value":3659},{"type":3204,"tag":3487,"props":9069,"children":9070},{"style":4581},[9071],{"type":3209,"value":8077},{"type":3204,"tag":3487,"props":9073,"children":9074},{"style":3566},[9075],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":9077,"children":9078},{"style":4581},[9079],{"type":3209,"value":9080}," authenticationInfo",{"type":3204,"tag":3487,"props":9082,"children":9083},{"style":3566},[9084],{"type":3209,"value":4647},{"type":3204,"tag":3487,"props":9086,"children":9087},{"style":3566},[9088],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":9090,"children":9091},{"class":3489,"line":4546},[9092],{"type":3204,"tag":3487,"props":9093,"children":9094},{"style":3552},[9095],{"type":3209,"value":9096},"    \u002F\u002F The credential authentication has been successful\n",{"type":3204,"tag":3487,"props":9098,"children":9099},{"class":3489,"line":4555},[9100],{"type":3204,"tag":3487,"props":9101,"children":9102},{"style":3552},[9103],{"type":3209,"value":9104},"    \u002F\u002F We can look it up in our database and get the corresponding user\n",{"type":3204,"tag":3487,"props":9106,"children":9107},{"class":3489,"line":4563},[9108,9112,9116,9120,9124],{"type":3204,"tag":3487,"props":9109,"children":9110},{"style":3638},[9111],{"type":3209,"value":7719},{"type":3204,"tag":3487,"props":9113,"children":9114},{"style":3561},[9115],{"type":3209,"value":8121},{"type":3204,"tag":3487,"props":9117,"children":9118},{"style":3566},[9119],{"type":3209,"value":3720},{"type":3204,"tag":3487,"props":9121,"children":9122},{"style":3723},[9123],{"type":3209,"value":8130},{"type":3204,"tag":3487,"props":9125,"children":9126},{"style":3632},[9127],{"type":3209,"value":3731},{"type":3204,"tag":3487,"props":9129,"children":9130},{"class":3489,"line":4659},[9131,9135,9139,9143,9147,9151,9155,9159,9163,9167],{"type":3204,"tag":3487,"props":9132,"children":9133},{"style":3638},[9134],{"type":3209,"value":7719},{"type":3204,"tag":3487,"props":9136,"children":9137},{"style":3561},[9138],{"type":3209,"value":3674},{"type":3204,"tag":3487,"props":9140,"children":9141},{"style":3566},[9142],{"type":3209,"value":3720},{"type":3204,"tag":3487,"props":9144,"children":9145},{"style":4749},[9146],{"type":3209,"value":5005},{"type":3204,"tag":3487,"props":9148,"children":9149},{"style":3561},[9150],{"type":3209,"value":8121},{"type":3204,"tag":3487,"props":9152,"children":9153},{"style":3566},[9154],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":9156,"children":9157},{"style":3723},[9158],{"type":3209,"value":7077},{"type":3204,"tag":3487,"props":9160,"children":9161},{"style":3566},[9162],{"type":3209,"value":8187},{"type":3204,"tag":3487,"props":9164,"children":9165},{"style":3499},[9166],{"type":3209,"value":5490},{"type":3204,"tag":3487,"props":9168,"children":9169},{"style":3566},[9170],{"type":3209,"value":8196},{"type":3204,"tag":3487,"props":9172,"children":9173},{"class":3489,"line":8283},[9174],{"type":3204,"tag":3487,"props":9175,"children":9176},{"emptyLinePlaceholder":1208},[9177],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":9179,"children":9180},{"class":3489,"line":8291},[9181],{"type":3204,"tag":3487,"props":9182,"children":9183},{"style":3552},[9184],{"type":3209,"value":9185},"    \u002F\u002F Update the counter in the database (authenticationInfo.newCounter)\n",{"type":3204,"tag":3487,"props":9187,"children":9188},{"class":3489,"line":8300},[9189,9193,9197,9201,9205,9209,9213],{"type":3204,"tag":3487,"props":9190,"children":9191},{"style":4749},[9192],{"type":3209,"value":6002},{"type":3204,"tag":3487,"props":9194,"children":9195},{"style":3561},[9196],{"type":3209,"value":8121},{"type":3204,"tag":3487,"props":9198,"children":9199},{"style":3566},[9200],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":9202,"children":9203},{"style":3723},[9204],{"type":3209,"value":7077},{"type":3204,"tag":3487,"props":9206,"children":9207},{"style":3566},[9208],{"type":3209,"value":8187},{"type":3204,"tag":3487,"props":9210,"children":9211},{"style":3499},[9212],{"type":3209,"value":5490},{"type":3204,"tag":3487,"props":9214,"children":9215},{"style":3566},[9216],{"type":3209,"value":8196},{"type":3204,"tag":3487,"props":9218,"children":9219},{"class":3489,"line":8332},[9220],{"type":3204,"tag":3487,"props":9221,"children":9222},{"emptyLinePlaceholder":1208},[9223],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":9225,"children":9226},{"class":3489,"line":8340},[9227],{"type":3204,"tag":3487,"props":9228,"children":9229},{"style":3552},[9230],{"type":3209,"value":8346},{"type":3204,"tag":3487,"props":9232,"children":9233},{"class":3489,"line":8349},[9234,9238,9242,9246,9250,9254],{"type":3204,"tag":3487,"props":9235,"children":9236},{"style":4749},[9237],{"type":3209,"value":6002},{"type":3204,"tag":3487,"props":9239,"children":9240},{"style":3723},[9241],{"type":3209,"value":4757},{"type":3204,"tag":3487,"props":9243,"children":9244},{"style":3632},[9245],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":9247,"children":9248},{"style":3561},[9249],{"type":3209,"value":5965},{"type":3204,"tag":3487,"props":9251,"children":9252},{"style":3566},[9253],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":9255,"children":9256},{"style":3566},[9257],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":9259,"children":9260},{"class":3489,"line":8377},[9261,9265,9269],{"type":3204,"tag":3487,"props":9262,"children":9263},{"style":3632},[9264],{"type":3209,"value":6030},{"type":3204,"tag":3487,"props":9266,"children":9267},{"style":3566},[9268],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":9270,"children":9271},{"style":3566},[9272],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":9274,"children":9275},{"class":3489,"line":8393},[9276,9280,9284,9288,9292],{"type":3204,"tag":3487,"props":9277,"children":9278},{"style":3632},[9279],{"type":3209,"value":8399},{"type":3204,"tag":3487,"props":9281,"children":9282},{"style":3566},[9283],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":9285,"children":9286},{"style":3561},[9287],{"type":3209,"value":3674},{"type":3204,"tag":3487,"props":9289,"children":9290},{"style":3566},[9291],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":9293,"children":9294},{"style":3561},[9295],{"type":3209,"value":6063},{"type":3204,"tag":3487,"props":9297,"children":9298},{"class":3489,"line":8418},[9299],{"type":3204,"tag":3487,"props":9300,"children":9301},{"style":3566},[9302],{"type":3209,"value":8424},{"type":3204,"tag":3487,"props":9304,"children":9305},{"class":3489,"line":8427},[9306,9310,9314,9318,9322,9326,9330],{"type":3204,"tag":3487,"props":9307,"children":9308},{"style":3632},[9309],{"type":3209,"value":8433},{"type":3204,"tag":3487,"props":9311,"children":9312},{"style":3566},[9313],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":9315,"children":9316},{"style":3561},[9317],{"type":3209,"value":4913},{"type":3204,"tag":3487,"props":9319,"children":9320},{"style":3566},[9321],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":9323,"children":9324},{"style":3723},[9325],{"type":3209,"value":8450},{"type":3204,"tag":3487,"props":9327,"children":9328},{"style":3632},[9329],{"type":3209,"value":7994},{"type":3204,"tag":3487,"props":9331,"children":9332},{"style":3566},[9333],{"type":3209,"value":5499},{"type":3204,"tag":3487,"props":9335,"children":9336},{"class":3489,"line":8461},[9337,9341],{"type":3204,"tag":3487,"props":9338,"children":9339},{"style":3566},[9340],{"type":3209,"value":6078},{"type":3204,"tag":3487,"props":9342,"children":9343},{"style":3632},[9344],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":9346,"children":9347},{"class":3489,"line":8473},[9348],{"type":3204,"tag":3487,"props":9349,"children":9350},{"style":3566},[9351],{"type":3209,"value":4827},{"type":3204,"tag":3487,"props":9353,"children":9354},{"class":3489,"line":8481},[9355,9359],{"type":3204,"tag":3487,"props":9356,"children":9357},{"style":3566},[9358],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":9360,"children":9361},{"style":3561},[9362],{"type":3209,"value":4929},{"type":3204,"tag":4667,"props":9364,"children":9365},{},[9366],{"type":3204,"tag":3211,"props":9367,"children":9368},{},[9369,9373,9375,9380,9382,9388,9389,9395],{"type":3204,"tag":3487,"props":9370,"children":9371},{},[9372],{"type":3209,"value":4677},{"type":3209,"value":9374},"\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":3204,"tag":4158,"props":9376,"children":9377},{},[9378],{"type":3209,"value":9379},"which is highly recommended",{"type":3209,"value":9381},"), the ",{"type":3204,"tag":3349,"props":9383,"children":9385},{"className":9384},[],[9386],{"type":3209,"value":9387},"storeChallenge",{"type":3209,"value":6319},{"type":3204,"tag":3349,"props":9390,"children":9392},{"className":9391},[],[9393],{"type":3209,"value":9394},"getChallenge",{"type":3209,"value":9396}," 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":3204,"tag":4667,"props":9398,"children":9399},{},[9400],{"type":3204,"tag":3477,"props":9401,"children":9403},{"className":4165,"code":9402,"language":4167,"meta":3077,"style":3077},"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",[9404],{"type":3204,"tag":3349,"props":9405,"children":9406},{"__ignoreMap":3077},[9407,9430,9476,9484,9549,9556,9592,9656,9663,9671,9723,9730,9754,9818,9825,9837,9844,9884,9892,9899],{"type":3204,"tag":3487,"props":9408,"children":9409},{"class":3489,"line":3163},[9410,9414,9418,9422,9426],{"type":3204,"tag":3487,"props":9411,"children":9412},{"style":4749},[9413],{"type":3209,"value":5283},{"type":3204,"tag":3487,"props":9415,"children":9416},{"style":4749},[9417],{"type":3209,"value":5398},{"type":3204,"tag":3487,"props":9419,"children":9420},{"style":3723},[9421],{"type":3209,"value":8556},{"type":3204,"tag":3487,"props":9423,"children":9424},{"style":3561},[9425],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":9427,"children":9428},{"style":3566},[9429],{"type":3209,"value":5413},{"type":3204,"tag":3487,"props":9431,"children":9432},{"class":3489,"line":3129},[9433,9437,9442,9446,9450,9454,9459,9463,9468,9472],{"type":3204,"tag":3487,"props":9434,"children":9435},{"style":3638},[9436],{"type":3209,"value":5951},{"type":3204,"tag":3487,"props":9438,"children":9439},{"style":3632},[9440],{"type":3209,"value":9441}," storeChallenge",{"type":3204,"tag":3487,"props":9443,"children":9444},{"style":3566},[9445],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":9447,"children":9448},{"style":4581},[9449],{"type":3209,"value":5965},{"type":3204,"tag":3487,"props":9451,"children":9452},{"style":3566},[9453],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":9455,"children":9456},{"style":4581},[9457],{"type":3209,"value":9458}," challenge",{"type":3204,"tag":3487,"props":9460,"children":9461},{"style":3566},[9462],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":9464,"children":9465},{"style":4581},[9466],{"type":3209,"value":9467}," attemptId",{"type":3204,"tag":3487,"props":9469,"children":9470},{"style":3566},[9471],{"type":3209,"value":6169},{"type":3204,"tag":3487,"props":9473,"children":9474},{"style":3566},[9475],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":9477,"children":9478},{"class":3489,"line":3113},[9479],{"type":3204,"tag":3487,"props":9480,"children":9481},{"style":3552},[9482],{"type":3209,"value":9483},"    \u002F\u002F Store the challenge in a KV store or DB\n",{"type":3204,"tag":3487,"props":9485,"children":9486},{"class":3489,"line":3750},[9487,9491,9496,9500,9504,9509,9513,9517,9522,9527,9532,9537,9541,9545],{"type":3204,"tag":3487,"props":9488,"children":9489},{"style":4749},[9490],{"type":3209,"value":6002},{"type":3204,"tag":3487,"props":9492,"children":9493},{"style":3723},[9494],{"type":3209,"value":9495}," useStorage",{"type":3204,"tag":3487,"props":9497,"children":9498},{"style":3632},[9499],{"type":3209,"value":7994},{"type":3204,"tag":3487,"props":9501,"children":9502},{"style":3566},[9503],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":9505,"children":9506},{"style":3723},[9507],{"type":3209,"value":9508},"setItem",{"type":3204,"tag":3487,"props":9510,"children":9511},{"style":3632},[9512],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":9514,"children":9515},{"style":3566},[9516],{"type":3209,"value":8187},{"type":3204,"tag":3487,"props":9518,"children":9519},{"style":3499},[9520],{"type":3209,"value":9521},"attempt:",{"type":3204,"tag":3487,"props":9523,"children":9524},{"style":3566},[9525],{"type":3209,"value":9526},"${",{"type":3204,"tag":3487,"props":9528,"children":9529},{"style":3561},[9530],{"type":3209,"value":9531},"attemptId",{"type":3204,"tag":3487,"props":9533,"children":9534},{"style":3566},[9535],{"type":3209,"value":9536},"}`",{"type":3204,"tag":3487,"props":9538,"children":9539},{"style":3566},[9540],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":9542,"children":9543},{"style":3561},[9544],{"type":3209,"value":9458},{"type":3204,"tag":3487,"props":9546,"children":9547},{"style":3632},[9548],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":9550,"children":9551},{"class":3489,"line":3759},[9552],{"type":3204,"tag":3487,"props":9553,"children":9554},{"style":3566},[9555],{"type":3209,"value":4827},{"type":3204,"tag":3487,"props":9557,"children":9558},{"class":3489,"line":3776},[9559,9563,9568,9572,9576,9580,9584,9588],{"type":3204,"tag":3487,"props":9560,"children":9561},{"style":3638},[9562],{"type":3209,"value":5951},{"type":3204,"tag":3487,"props":9564,"children":9565},{"style":3632},[9566],{"type":3209,"value":9567}," getChallenge",{"type":3204,"tag":3487,"props":9569,"children":9570},{"style":3566},[9571],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":9573,"children":9574},{"style":4581},[9575],{"type":3209,"value":5965},{"type":3204,"tag":3487,"props":9577,"children":9578},{"style":3566},[9579],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":9581,"children":9582},{"style":4581},[9583],{"type":3209,"value":9467},{"type":3204,"tag":3487,"props":9585,"children":9586},{"style":3566},[9587],{"type":3209,"value":6169},{"type":3204,"tag":3487,"props":9589,"children":9590},{"style":3566},[9591],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":9593,"children":9594},{"class":3489,"line":3109},[9595,9599,9603,9607,9611,9615,9619,9623,9628,9632,9636,9640,9644,9648,9652],{"type":3204,"tag":3487,"props":9596,"children":9597},{"style":3638},[9598],{"type":3209,"value":7719},{"type":3204,"tag":3487,"props":9600,"children":9601},{"style":3561},[9602],{"type":3209,"value":9458},{"type":3204,"tag":3487,"props":9604,"children":9605},{"style":3566},[9606],{"type":3209,"value":3720},{"type":3204,"tag":3487,"props":9608,"children":9609},{"style":4749},[9610],{"type":3209,"value":5005},{"type":3204,"tag":3487,"props":9612,"children":9613},{"style":3723},[9614],{"type":3209,"value":9495},{"type":3204,"tag":3487,"props":9616,"children":9617},{"style":3632},[9618],{"type":3209,"value":7994},{"type":3204,"tag":3487,"props":9620,"children":9621},{"style":3566},[9622],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":9624,"children":9625},{"style":3723},[9626],{"type":3209,"value":9627},"getItem",{"type":3204,"tag":3487,"props":9629,"children":9630},{"style":3632},[9631],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":9633,"children":9634},{"style":3566},[9635],{"type":3209,"value":8187},{"type":3204,"tag":3487,"props":9637,"children":9638},{"style":3499},[9639],{"type":3209,"value":9521},{"type":3204,"tag":3487,"props":9641,"children":9642},{"style":3566},[9643],{"type":3209,"value":9526},{"type":3204,"tag":3487,"props":9645,"children":9646},{"style":3561},[9647],{"type":3209,"value":9531},{"type":3204,"tag":3487,"props":9649,"children":9650},{"style":3566},[9651],{"type":3209,"value":9536},{"type":3204,"tag":3487,"props":9653,"children":9654},{"style":3632},[9655],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":9657,"children":9658},{"class":3489,"line":3105},[9659],{"type":3204,"tag":3487,"props":9660,"children":9661},{"emptyLinePlaceholder":1208},[9662],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":9664,"children":9665},{"class":3489,"line":3101},[9666],{"type":3204,"tag":3487,"props":9667,"children":9668},{"style":3552},[9669],{"type":3209,"value":9670},"    \u002F\u002F Make sure to always remove the attempt because they are single use only!\n",{"type":3204,"tag":3487,"props":9672,"children":9673},{"class":3489,"line":3938},[9674,9678,9682,9686,9690,9695,9699,9703,9707,9711,9715,9719],{"type":3204,"tag":3487,"props":9675,"children":9676},{"style":4749},[9677],{"type":3209,"value":6002},{"type":3204,"tag":3487,"props":9679,"children":9680},{"style":3723},[9681],{"type":3209,"value":9495},{"type":3204,"tag":3487,"props":9683,"children":9684},{"style":3632},[9685],{"type":3209,"value":7994},{"type":3204,"tag":3487,"props":9687,"children":9688},{"style":3566},[9689],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":9691,"children":9692},{"style":3723},[9693],{"type":3209,"value":9694},"removeItem",{"type":3204,"tag":3487,"props":9696,"children":9697},{"style":3632},[9698],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":9700,"children":9701},{"style":3566},[9702],{"type":3209,"value":8187},{"type":3204,"tag":3487,"props":9704,"children":9705},{"style":3499},[9706],{"type":3209,"value":9521},{"type":3204,"tag":3487,"props":9708,"children":9709},{"style":3566},[9710],{"type":3209,"value":9526},{"type":3204,"tag":3487,"props":9712,"children":9713},{"style":3561},[9714],{"type":3209,"value":9531},{"type":3204,"tag":3487,"props":9716,"children":9717},{"style":3566},[9718],{"type":3209,"value":9536},{"type":3204,"tag":3487,"props":9720,"children":9721},{"style":3632},[9722],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":9724,"children":9725},{"class":3489,"line":3192},[9726],{"type":3204,"tag":3487,"props":9727,"children":9728},{"emptyLinePlaceholder":1208},[9729],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":9731,"children":9732},{"class":3489,"line":3975},[9733,9737,9741,9745,9750],{"type":3204,"tag":3487,"props":9734,"children":9735},{"style":4749},[9736],{"type":3209,"value":7755},{"type":3204,"tag":3487,"props":9738,"children":9739},{"style":3632},[9740],{"type":3209,"value":4578},{"type":3204,"tag":3487,"props":9742,"children":9743},{"style":3566},[9744],{"type":3209,"value":8212},{"type":3204,"tag":3487,"props":9746,"children":9747},{"style":3561},[9748],{"type":3209,"value":9749},"challenge",{"type":3204,"tag":3487,"props":9751,"children":9752},{"style":3632},[9753],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":9755,"children":9756},{"class":3489,"line":4008},[9757,9761,9765,9769,9773,9777,9781,9785,9789,9793,9797,9801,9806,9810,9814],{"type":3204,"tag":3487,"props":9758,"children":9759},{"style":4749},[9760],{"type":3209,"value":7844},{"type":3204,"tag":3487,"props":9762,"children":9763},{"style":3723},[9764],{"type":3209,"value":7849},{"type":3204,"tag":3487,"props":9766,"children":9767},{"style":3632},[9768],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":9770,"children":9771},{"style":3566},[9772],{"type":3209,"value":7858},{"type":3204,"tag":3487,"props":9774,"children":9775},{"style":3632},[9776],{"type":3209,"value":7863},{"type":3204,"tag":3487,"props":9778,"children":9779},{"style":3566},[9780],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":9782,"children":9783},{"style":7087},[9784],{"type":3209,"value":7872},{"type":3204,"tag":3487,"props":9786,"children":9787},{"style":3566},[9788],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":9790,"children":9791},{"style":3632},[9792],{"type":3209,"value":7881},{"type":3204,"tag":3487,"props":9794,"children":9795},{"style":3566},[9796],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":9798,"children":9799},{"style":3566},[9800],{"type":3209,"value":4810},{"type":3204,"tag":3487,"props":9802,"children":9803},{"style":3499},[9804],{"type":3209,"value":9805},"Challenge expired",{"type":3204,"tag":3487,"props":9807,"children":9808},{"style":3566},[9809],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":9811,"children":9812},{"style":3566},[9813],{"type":3209,"value":7599},{"type":3204,"tag":3487,"props":9815,"children":9816},{"style":3632},[9817],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":9819,"children":9820},{"class":3489,"line":4063},[9821],{"type":3204,"tag":3487,"props":9822,"children":9823},{"emptyLinePlaceholder":1208},[9824],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":9826,"children":9827},{"class":3489,"line":4072},[9828,9832],{"type":3204,"tag":3487,"props":9829,"children":9830},{"style":4749},[9831],{"type":3209,"value":6090},{"type":3204,"tag":3487,"props":9833,"children":9834},{"style":3561},[9835],{"type":3209,"value":9836}," challenge\n",{"type":3204,"tag":3487,"props":9838,"children":9839},{"class":3489,"line":3097},[9840],{"type":3204,"tag":3487,"props":9841,"children":9842},{"style":3566},[9843],{"type":3209,"value":4827},{"type":3204,"tag":3487,"props":9845,"children":9846},{"class":3489,"line":4140},[9847,9851,9855,9859,9863,9867,9871,9876,9880],{"type":3204,"tag":3487,"props":9848,"children":9849},{"style":3638},[9850],{"type":3209,"value":5951},{"type":3204,"tag":3487,"props":9852,"children":9853},{"style":3632},[9854],{"type":3209,"value":5956},{"type":3204,"tag":3487,"props":9856,"children":9857},{"style":3566},[9858],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":9860,"children":9861},{"style":4581},[9862],{"type":3209,"value":5965},{"type":3204,"tag":3487,"props":9864,"children":9865},{"style":3566},[9866],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":9868,"children":9869},{"style":3566},[9870],{"type":3209,"value":3659},{"type":3204,"tag":3487,"props":9872,"children":9873},{"style":4581},[9874],{"type":3209,"value":9875}," authenticator",{"type":3204,"tag":3487,"props":9877,"children":9878},{"style":3566},[9879],{"type":3209,"value":4647},{"type":3204,"tag":3487,"props":9881,"children":9882},{"style":3566},[9883],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":9885,"children":9886},{"class":3489,"line":4410},[9887],{"type":3204,"tag":3487,"props":9888,"children":9889},{"style":3552},[9890],{"type":3209,"value":9891},"    \u002F\u002F ...\n",{"type":3204,"tag":3487,"props":9893,"children":9894},{"class":3489,"line":4418},[9895],{"type":3204,"tag":3487,"props":9896,"children":9897},{"style":3566},[9898],{"type":3209,"value":4827},{"type":3204,"tag":3487,"props":9900,"children":9901},{"class":3489,"line":4427},[9902,9906],{"type":3204,"tag":3487,"props":9903,"children":9904},{"style":3566},[9905],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":9907,"children":9908},{"style":3561},[9909],{"type":3209,"value":4929},{"type":3204,"tag":3211,"props":9911,"children":9912},{},[9913],{"type":3209,"value":9914},"On the frontend it is as simple as:",{"type":3204,"tag":3477,"props":9916,"children":9918},{"className":3615,"code":9917,"language":3617,"meta":3077,"style":3077},"\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",[9919],{"type":3204,"tag":3349,"props":9920,"children":9921},{"__ignoreMap":3077},[9922,9962,10008,10042,10075,10086,10126,10133,10167,10193,10242,10273,10280,10287,10311,10343,10370,10377,10392,10399,10414,10452,10512,10566,10581,10617,10672,10724,10739],{"type":3204,"tag":3487,"props":9923,"children":9924},{"class":3489,"line":3163},[9925,9929,9933,9937,9942,9946,9950,9954,9958],{"type":3204,"tag":3487,"props":9926,"children":9927},{"style":3566},[9928],{"type":3209,"value":3629},{"type":3204,"tag":3487,"props":9930,"children":9931},{"style":3632},[9932],{"type":3209,"value":3635},{"type":3204,"tag":3487,"props":9934,"children":9935},{"style":3638},[9936],{"type":3209,"value":3641},{"type":3204,"tag":3487,"props":9938,"children":9939},{"style":3638},[9940],{"type":3209,"value":9941}," lang",{"type":3204,"tag":3487,"props":9943,"children":9944},{"style":3566},[9945],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":9947,"children":9948},{"style":3566},[9949],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":9951,"children":9952},{"style":3499},[9953],{"type":3209,"value":4167},{"type":3204,"tag":3487,"props":9955,"children":9956},{"style":3566},[9957],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":9959,"children":9960},{"style":3566},[9961],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":9963,"children":9964},{"class":3489,"line":3129},[9965,9969,9973,9978,9982,9987,9991,9995,10000,10004],{"type":3204,"tag":3487,"props":9966,"children":9967},{"style":3638},[9968],{"type":3209,"value":3654},{"type":3204,"tag":3487,"props":9970,"children":9971},{"style":3566},[9972],{"type":3209,"value":3659},{"type":3204,"tag":3487,"props":9974,"children":9975},{"style":3561},[9976],{"type":3209,"value":9977}," register",{"type":3204,"tag":3487,"props":9979,"children":9980},{"style":3566},[9981],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":9983,"children":9984},{"style":3561},[9985],{"type":3209,"value":9986}," authenticate ",{"type":3204,"tag":3487,"props":9988,"children":9989},{"style":3566},[9990],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":9992,"children":9993},{"style":3566},[9994],{"type":3209,"value":3720},{"type":3204,"tag":3487,"props":9996,"children":9997},{"style":3723},[9998],{"type":3209,"value":9999}," useWebAuthn",{"type":3204,"tag":3487,"props":10001,"children":10002},{"style":3561},[10003],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":10005,"children":10006},{"style":3566},[10007],{"type":3209,"value":5413},{"type":3204,"tag":3487,"props":10009,"children":10010},{"class":3489,"line":3113},[10011,10016,10020,10024,10029,10033,10037],{"type":3204,"tag":3487,"props":10012,"children":10013},{"style":3632},[10014],{"type":3209,"value":10015},"  registerEndpoint",{"type":3204,"tag":3487,"props":10017,"children":10018},{"style":3566},[10019],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":10021,"children":10022},{"style":3566},[10023],{"type":3209,"value":4810},{"type":3204,"tag":3487,"props":10025,"children":10026},{"style":3499},[10027],{"type":3209,"value":10028},"\u002Fapi\u002Fwebauthn\u002Fregister",{"type":3204,"tag":3487,"props":10030,"children":10031},{"style":3566},[10032],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":10034,"children":10035},{"style":3566},[10036],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":10038,"children":10039},{"style":3552},[10040],{"type":3209,"value":10041}," \u002F\u002F Default\n",{"type":3204,"tag":3487,"props":10043,"children":10044},{"class":3489,"line":3750},[10045,10050,10054,10058,10063,10067,10071],{"type":3204,"tag":3487,"props":10046,"children":10047},{"style":3632},[10048],{"type":3209,"value":10049},"  authenticateEndpoint",{"type":3204,"tag":3487,"props":10051,"children":10052},{"style":3566},[10053],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":10055,"children":10056},{"style":3566},[10057],{"type":3209,"value":4810},{"type":3204,"tag":3487,"props":10059,"children":10060},{"style":3499},[10061],{"type":3209,"value":10062},"\u002Fapi\u002Fwebauthn\u002Fauthenticate",{"type":3204,"tag":3487,"props":10064,"children":10065},{"style":3566},[10066],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":10068,"children":10069},{"style":3566},[10070],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":10072,"children":10073},{"style":3552},[10074],{"type":3209,"value":10041},{"type":3204,"tag":3487,"props":10076,"children":10077},{"class":3489,"line":3759},[10078,10082],{"type":3204,"tag":3487,"props":10079,"children":10080},{"style":3566},[10081],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":10083,"children":10084},{"style":3561},[10085],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":10087,"children":10088},{"class":3489,"line":3776},[10089,10093,10097,10101,10105,10110,10114,10118,10122],{"type":3204,"tag":3487,"props":10090,"children":10091},{"style":3638},[10092],{"type":3209,"value":3654},{"type":3204,"tag":3487,"props":10094,"children":10095},{"style":3566},[10096],{"type":3209,"value":3659},{"type":3204,"tag":3487,"props":10098,"children":10099},{"style":3632},[10100],{"type":3209,"value":3692},{"type":3204,"tag":3487,"props":10102,"children":10103},{"style":3566},[10104],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":10106,"children":10107},{"style":3561},[10108],{"type":3209,"value":10109}," fetchUserSession ",{"type":3204,"tag":3487,"props":10111,"children":10112},{"style":3566},[10113],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":10115,"children":10116},{"style":3566},[10117],{"type":3209,"value":3720},{"type":3204,"tag":3487,"props":10119,"children":10120},{"style":3723},[10121],{"type":3209,"value":3726},{"type":3204,"tag":3487,"props":10123,"children":10124},{"style":3561},[10125],{"type":3209,"value":3731},{"type":3204,"tag":3487,"props":10127,"children":10128},{"class":3489,"line":3109},[10129],{"type":3204,"tag":3487,"props":10130,"children":10131},{"emptyLinePlaceholder":1208},[10132],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":10134,"children":10135},{"class":3489,"line":3105},[10136,10140,10145,10149,10154,10158,10163],{"type":3204,"tag":3487,"props":10137,"children":10138},{"style":3638},[10139],{"type":3209,"value":3654},{"type":3204,"tag":3487,"props":10141,"children":10142},{"style":3561},[10143],{"type":3209,"value":10144}," userName ",{"type":3204,"tag":3487,"props":10146,"children":10147},{"style":3566},[10148],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":10150,"children":10151},{"style":3723},[10152],{"type":3209,"value":10153}," ref",{"type":3204,"tag":3487,"props":10155,"children":10156},{"style":3561},[10157],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":10159,"children":10160},{"style":3566},[10161],{"type":3209,"value":10162},"''",{"type":3204,"tag":3487,"props":10164,"children":10165},{"style":3561},[10166],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":10168,"children":10169},{"class":3489,"line":3101},[10170,10175,10180,10185,10189],{"type":3204,"tag":3487,"props":10171,"children":10172},{"style":3638},[10173],{"type":3209,"value":10174},"async",{"type":3204,"tag":3487,"props":10176,"children":10177},{"style":3638},[10178],{"type":3209,"value":10179}," function",{"type":3204,"tag":3487,"props":10181,"children":10182},{"style":3723},[10183],{"type":3209,"value":10184}," signUp",{"type":3204,"tag":3487,"props":10186,"children":10187},{"style":3566},[10188],{"type":3209,"value":7994},{"type":3204,"tag":3487,"props":10190,"children":10191},{"style":3566},[10192],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":10194,"children":10195},{"class":3489,"line":3938},[10196,10201,10205,10209,10213,10217,10221,10225,10229,10234,10238],{"type":3204,"tag":3487,"props":10197,"children":10198},{"style":4749},[10199],{"type":3209,"value":10200},"  await",{"type":3204,"tag":3487,"props":10202,"children":10203},{"style":3723},[10204],{"type":3209,"value":9977},{"type":3204,"tag":3487,"props":10206,"children":10207},{"style":3632},[10208],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":10210,"children":10211},{"style":3566},[10212],{"type":3209,"value":7858},{"type":3204,"tag":3487,"props":10214,"children":10215},{"style":3632},[10216],{"type":3209,"value":8601},{"type":3204,"tag":3487,"props":10218,"children":10219},{"style":3566},[10220],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":10222,"children":10223},{"style":3561},[10224],{"type":3209,"value":8601},{"type":3204,"tag":3487,"props":10226,"children":10227},{"style":3566},[10228],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":10230,"children":10231},{"style":3561},[10232],{"type":3209,"value":10233},"value",{"type":3204,"tag":3487,"props":10235,"children":10236},{"style":3566},[10237],{"type":3209,"value":7599},{"type":3204,"tag":3487,"props":10239,"children":10240},{"style":3632},[10241],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":10243,"children":10244},{"class":3489,"line":3192},[10245,10250,10255,10259,10264,10268],{"type":3204,"tag":3487,"props":10246,"children":10247},{"style":3566},[10248],{"type":3209,"value":10249},"    .",{"type":3204,"tag":3487,"props":10251,"children":10252},{"style":3723},[10253],{"type":3209,"value":10254},"then",{"type":3204,"tag":3487,"props":10256,"children":10257},{"style":3632},[10258],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":10260,"children":10261},{"style":3561},[10262],{"type":3209,"value":10263},"fetchUserSession",{"type":3204,"tag":3487,"props":10265,"children":10266},{"style":3632},[10267],{"type":3209,"value":7832},{"type":3204,"tag":3487,"props":10269,"children":10270},{"style":3552},[10271],{"type":3209,"value":10272},"\u002F\u002F refetch the user session\n",{"type":3204,"tag":3487,"props":10274,"children":10275},{"class":3489,"line":3975},[10276],{"type":3204,"tag":3487,"props":10277,"children":10278},{"style":3566},[10279],{"type":3209,"value":4665},{"type":3204,"tag":3487,"props":10281,"children":10282},{"class":3489,"line":4008},[10283],{"type":3204,"tag":3487,"props":10284,"children":10285},{"emptyLinePlaceholder":1208},[10286],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":10288,"children":10289},{"class":3489,"line":4063},[10290,10294,10298,10303,10307],{"type":3204,"tag":3487,"props":10291,"children":10292},{"style":3638},[10293],{"type":3209,"value":10174},{"type":3204,"tag":3487,"props":10295,"children":10296},{"style":3638},[10297],{"type":3209,"value":10179},{"type":3204,"tag":3487,"props":10299,"children":10300},{"style":3723},[10301],{"type":3209,"value":10302}," signIn",{"type":3204,"tag":3487,"props":10304,"children":10305},{"style":3566},[10306],{"type":3209,"value":7994},{"type":3204,"tag":3487,"props":10308,"children":10309},{"style":3566},[10310],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":10312,"children":10313},{"class":3489,"line":4072},[10314,10318,10323,10327,10331,10335,10339],{"type":3204,"tag":3487,"props":10315,"children":10316},{"style":4749},[10317],{"type":3209,"value":10200},{"type":3204,"tag":3487,"props":10319,"children":10320},{"style":3723},[10321],{"type":3209,"value":10322}," authenticate",{"type":3204,"tag":3487,"props":10324,"children":10325},{"style":3632},[10326],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":10328,"children":10329},{"style":3561},[10330],{"type":3209,"value":7827},{"type":3204,"tag":3487,"props":10332,"children":10333},{"style":3566},[10334],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":10336,"children":10337},{"style":3561},[10338],{"type":3209,"value":10233},{"type":3204,"tag":3487,"props":10340,"children":10341},{"style":3632},[10342],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":10344,"children":10345},{"class":3489,"line":3097},[10346,10350,10354,10358,10362,10366],{"type":3204,"tag":3487,"props":10347,"children":10348},{"style":3566},[10349],{"type":3209,"value":10249},{"type":3204,"tag":3487,"props":10351,"children":10352},{"style":3723},[10353],{"type":3209,"value":10254},{"type":3204,"tag":3487,"props":10355,"children":10356},{"style":3632},[10357],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":10359,"children":10360},{"style":3561},[10361],{"type":3209,"value":10263},{"type":3204,"tag":3487,"props":10363,"children":10364},{"style":3632},[10365],{"type":3209,"value":7832},{"type":3204,"tag":3487,"props":10367,"children":10368},{"style":3552},[10369],{"type":3209,"value":10272},{"type":3204,"tag":3487,"props":10371,"children":10372},{"class":3489,"line":4140},[10373],{"type":3204,"tag":3487,"props":10374,"children":10375},{"style":3566},[10376],{"type":3209,"value":4665},{"type":3204,"tag":3487,"props":10378,"children":10379},{"class":3489,"line":4410},[10380,10384,10388],{"type":3204,"tag":3487,"props":10381,"children":10382},{"style":3566},[10383],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":10385,"children":10386},{"style":3632},[10387],{"type":3209,"value":3635},{"type":3204,"tag":3487,"props":10389,"children":10390},{"style":3566},[10391],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":10393,"children":10394},{"class":3489,"line":4418},[10395],{"type":3204,"tag":3487,"props":10396,"children":10397},{"emptyLinePlaceholder":1208},[10398],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":10400,"children":10401},{"class":3489,"line":4427},[10402,10406,10410],{"type":3204,"tag":3487,"props":10403,"children":10404},{"style":3566},[10405],{"type":3209,"value":3629},{"type":3204,"tag":3487,"props":10407,"children":10408},{"style":3632},[10409],{"type":3209,"value":3769},{"type":3204,"tag":3487,"props":10411,"children":10412},{"style":3566},[10413],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":10415,"children":10416},{"class":3489,"line":4435},[10417,10421,10426,10431,10435,10439,10444,10448],{"type":3204,"tag":3487,"props":10418,"children":10419},{"style":3566},[10420],{"type":3209,"value":3782},{"type":3204,"tag":3487,"props":10422,"children":10423},{"style":3632},[10424],{"type":3209,"value":10425},"form",{"type":3204,"tag":3487,"props":10427,"children":10428},{"style":3638},[10429],{"type":3209,"value":10430}," @submit.prevent",{"type":3204,"tag":3487,"props":10432,"children":10433},{"style":3566},[10434],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":10436,"children":10437},{"style":3566},[10438],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":10440,"children":10441},{"style":3499},[10442],{"type":3209,"value":10443},"signUp",{"type":3204,"tag":3487,"props":10445,"children":10446},{"style":3566},[10447],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":10449,"children":10450},{"style":3566},[10451],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":10453,"children":10454},{"class":3489,"line":4476},[10455,10459,10464,10469,10473,10477,10481,10485,10490,10494,10498,10503,10507],{"type":3204,"tag":3487,"props":10456,"children":10457},{"style":3566},[10458],{"type":3209,"value":3822},{"type":3204,"tag":3487,"props":10460,"children":10461},{"style":3632},[10462],{"type":3209,"value":10463},"input",{"type":3204,"tag":3487,"props":10465,"children":10466},{"style":3638},[10467],{"type":3209,"value":10468}," v-model",{"type":3204,"tag":3487,"props":10470,"children":10471},{"style":3566},[10472],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":10474,"children":10475},{"style":3566},[10476],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":10478,"children":10479},{"style":3499},[10480],{"type":3209,"value":7827},{"type":3204,"tag":3487,"props":10482,"children":10483},{"style":3566},[10484],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":10486,"children":10487},{"style":3638},[10488],{"type":3209,"value":10489}," placeholder",{"type":3204,"tag":3487,"props":10491,"children":10492},{"style":3566},[10493],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":10495,"children":10496},{"style":3566},[10497],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":10499,"children":10500},{"style":3499},[10501],{"type":3209,"value":10502},"Email or username",{"type":3204,"tag":3487,"props":10504,"children":10505},{"style":3566},[10506],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":10508,"children":10509},{"style":3566},[10510],{"type":3209,"value":10511}," \u002F>\n",{"type":3204,"tag":3487,"props":10513,"children":10514},{"class":3489,"line":4484},[10515,10519,10523,10528,10532,10536,10541,10545,10549,10554,10558,10562],{"type":3204,"tag":3487,"props":10516,"children":10517},{"style":3566},[10518],{"type":3209,"value":3822},{"type":3204,"tag":3487,"props":10520,"children":10521},{"style":3632},[10522],{"type":3209,"value":3892},{"type":3204,"tag":3487,"props":10524,"children":10525},{"style":3638},[10526],{"type":3209,"value":10527}," type",{"type":3204,"tag":3487,"props":10529,"children":10530},{"style":3566},[10531],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":10533,"children":10534},{"style":3566},[10535],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":10537,"children":10538},{"style":3499},[10539],{"type":3209,"value":10540},"submit",{"type":3204,"tag":3487,"props":10542,"children":10543},{"style":3566},[10544],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":10546,"children":10547},{"style":3566},[10548],{"type":3209,"value":3831},{"type":3204,"tag":3487,"props":10550,"children":10551},{"style":3561},[10552],{"type":3209,"value":10553},"Sign up",{"type":3204,"tag":3487,"props":10555,"children":10556},{"style":3566},[10557],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":10559,"children":10560},{"style":3632},[10561],{"type":3209,"value":3892},{"type":3204,"tag":3487,"props":10563,"children":10564},{"style":3566},[10565],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":10567,"children":10568},{"class":3489,"line":4493},[10569,10573,10577],{"type":3204,"tag":3487,"props":10570,"children":10571},{"style":3566},[10572],{"type":3209,"value":3944},{"type":3204,"tag":3487,"props":10574,"children":10575},{"style":3632},[10576],{"type":3209,"value":10425},{"type":3204,"tag":3487,"props":10578,"children":10579},{"style":3566},[10580],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":10582,"children":10583},{"class":3489,"line":4501},[10584,10588,10592,10596,10600,10604,10609,10613],{"type":3204,"tag":3487,"props":10585,"children":10586},{"style":3566},[10587],{"type":3209,"value":3782},{"type":3204,"tag":3487,"props":10589,"children":10590},{"style":3632},[10591],{"type":3209,"value":10425},{"type":3204,"tag":3487,"props":10593,"children":10594},{"style":3638},[10595],{"type":3209,"value":10430},{"type":3204,"tag":3487,"props":10597,"children":10598},{"style":3566},[10599],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":10601,"children":10602},{"style":3566},[10603],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":10605,"children":10606},{"style":3499},[10607],{"type":3209,"value":10608},"signIn",{"type":3204,"tag":3487,"props":10610,"children":10611},{"style":3566},[10612],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":10614,"children":10615},{"style":3566},[10616],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":10618,"children":10619},{"class":3489,"line":4538},[10620,10624,10628,10632,10636,10640,10644,10648,10652,10656,10660,10664,10668],{"type":3204,"tag":3487,"props":10621,"children":10622},{"style":3566},[10623],{"type":3209,"value":3822},{"type":3204,"tag":3487,"props":10625,"children":10626},{"style":3632},[10627],{"type":3209,"value":10463},{"type":3204,"tag":3487,"props":10629,"children":10630},{"style":3638},[10631],{"type":3209,"value":10468},{"type":3204,"tag":3487,"props":10633,"children":10634},{"style":3566},[10635],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":10637,"children":10638},{"style":3566},[10639],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":10641,"children":10642},{"style":3499},[10643],{"type":3209,"value":7827},{"type":3204,"tag":3487,"props":10645,"children":10646},{"style":3566},[10647],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":10649,"children":10650},{"style":3638},[10651],{"type":3209,"value":10489},{"type":3204,"tag":3487,"props":10653,"children":10654},{"style":3566},[10655],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":10657,"children":10658},{"style":3566},[10659],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":10661,"children":10662},{"style":3499},[10663],{"type":3209,"value":10502},{"type":3204,"tag":3487,"props":10665,"children":10666},{"style":3566},[10667],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":10669,"children":10670},{"style":3566},[10671],{"type":3209,"value":10511},{"type":3204,"tag":3487,"props":10673,"children":10674},{"class":3489,"line":4546},[10675,10679,10683,10687,10691,10695,10699,10703,10707,10712,10716,10720],{"type":3204,"tag":3487,"props":10676,"children":10677},{"style":3566},[10678],{"type":3209,"value":3822},{"type":3204,"tag":3487,"props":10680,"children":10681},{"style":3632},[10682],{"type":3209,"value":3892},{"type":3204,"tag":3487,"props":10684,"children":10685},{"style":3638},[10686],{"type":3209,"value":10527},{"type":3204,"tag":3487,"props":10688,"children":10689},{"style":3566},[10690],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":10692,"children":10693},{"style":3566},[10694],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":10696,"children":10697},{"style":3499},[10698],{"type":3209,"value":10540},{"type":3204,"tag":3487,"props":10700,"children":10701},{"style":3566},[10702],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":10704,"children":10705},{"style":3566},[10706],{"type":3209,"value":3831},{"type":3204,"tag":3487,"props":10708,"children":10709},{"style":3561},[10710],{"type":3209,"value":10711},"Sign in",{"type":3204,"tag":3487,"props":10713,"children":10714},{"style":3566},[10715],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":10717,"children":10718},{"style":3632},[10719],{"type":3209,"value":3892},{"type":3204,"tag":3487,"props":10721,"children":10722},{"style":3566},[10723],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":10725,"children":10726},{"class":3489,"line":4555},[10727,10731,10735],{"type":3204,"tag":3487,"props":10728,"children":10729},{"style":3566},[10730],{"type":3209,"value":3944},{"type":3204,"tag":3487,"props":10732,"children":10733},{"style":3632},[10734],{"type":3209,"value":10425},{"type":3204,"tag":3487,"props":10736,"children":10737},{"style":3566},[10738],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":10740,"children":10741},{"class":3489,"line":4563},[10742,10746,10750],{"type":3204,"tag":3487,"props":10743,"children":10744},{"style":3566},[10745],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":10747,"children":10748},{"style":3632},[10749],{"type":3209,"value":3769},{"type":3204,"tag":3487,"props":10751,"children":10752},{"style":3566},[10753],{"type":3209,"value":3646},{"type":3204,"tag":3211,"props":10755,"children":10756},{},[10757,10759,10770],{"type":3209,"value":10758},"Take a look at the ",{"type":3204,"tag":3215,"props":10760,"children":10763},{"href":10761,"rel":10762},"https:\u002F\u002Fgithub.com\u002Fatinux\u002Fnuxt-auth-utils\u002Fblob\u002Fmain\u002Fplayground\u002Fcomponents\u002FWebAuthnModal.vue",[3219],[10764],{"type":3204,"tag":3349,"props":10765,"children":10767},{"className":10766},[],[10768],{"type":3209,"value":10769},"WebAuthnModal.vue",{"type":3209,"value":10771}," for a full example.",{"type":3204,"tag":5593,"props":10773,"children":10775},{"id":10774},"demo",[10776],{"type":3209,"value":10777},"Demo",{"type":3204,"tag":3211,"props":10779,"children":10780},{},[10781,10783,10789,10791,10798,10799,10806],{"type":3209,"value":10782},"A full demo can be found on ",{"type":3204,"tag":3215,"props":10784,"children":10787},{"href":10785,"rel":10786},"https:\u002F\u002Ftodo-passkeys.nuxt.dev",[3219],[10788],{"type":3209,"value":10785},{"type":3209,"value":10790}," using ",{"type":3204,"tag":3215,"props":10792,"children":10795},{"href":10793,"rel":10794},"https:\u002F\u002Form.drizzle.team\u002F",[3219],[10796],{"type":3209,"value":10797},"Drizzle ORM",{"type":3209,"value":6319},{"type":3204,"tag":3215,"props":10800,"children":10803},{"href":10801,"rel":10802},"https:\u002F\u002Fhub.nuxt.com",[3219],[10804],{"type":3209,"value":10805},"NuxtHub",{"type":3209,"value":3442},{"type":3204,"tag":3211,"props":10808,"children":10809},{},[10810,10812,10817],{"type":3209,"value":10811},"The source code of the demo is available on ",{"type":3204,"tag":3215,"props":10813,"children":10815},{"href":3289,"rel":10814},[3219],[10816],{"type":3209,"value":3289},{"type":3209,"value":3442},{"type":3204,"tag":3607,"props":10819,"children":10821},{"id":10820},"extend-session",[10822],{"type":3209,"value":10823},"Extend Session",{"type":3204,"tag":3211,"props":10825,"children":10826},{},[10827],{"type":3209,"value":10828},"We leverage hooks to let you extend the session data with your own data or log when the user clears the session.",{"type":3204,"tag":3477,"props":10830,"children":10832},{"className":4165,"code":10831,"language":4167,"meta":3077,"style":3077},"\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",[10833],{"type":3204,"tag":3349,"props":10834,"children":10835},{"__ignoreMap":3077},[10836,10844,10876,10884,10892,10963,10971,10979,10987,10999,11006,11014,11081,11089,11100],{"type":3204,"tag":3487,"props":10837,"children":10838},{"class":3489,"line":3163},[10839],{"type":3204,"tag":3487,"props":10840,"children":10841},{"style":3552},[10842],{"type":3209,"value":10843},"\u002F\u002F server\u002Fplugins\u002Fsession.ts\n",{"type":3204,"tag":3487,"props":10845,"children":10846},{"class":3489,"line":3129},[10847,10851,10855,10860,10864,10868,10872],{"type":3204,"tag":3487,"props":10848,"children":10849},{"style":4749},[10850],{"type":3209,"value":5283},{"type":3204,"tag":3487,"props":10852,"children":10853},{"style":4749},[10854],{"type":3209,"value":5398},{"type":3204,"tag":3487,"props":10856,"children":10857},{"style":3723},[10858],{"type":3209,"value":10859}," defineNitroPlugin",{"type":3204,"tag":3487,"props":10861,"children":10862},{"style":3561},[10863],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":10865,"children":10866},{"style":3566},[10867],{"type":3209,"value":7994},{"type":3204,"tag":3487,"props":10869,"children":10870},{"style":3638},[10871],{"type":3209,"value":4455},{"type":3204,"tag":3487,"props":10873,"children":10874},{"style":3566},[10875],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":10877,"children":10878},{"class":3489,"line":3113},[10879],{"type":3204,"tag":3487,"props":10880,"children":10881},{"style":3552},[10882],{"type":3209,"value":10883},"  \u002F\u002F Called when the session is fetched during SSR for the Vue composable (\u002Fapi\u002F_auth\u002Fsession)\n",{"type":3204,"tag":3487,"props":10885,"children":10886},{"class":3489,"line":3750},[10887],{"type":3204,"tag":3487,"props":10888,"children":10889},{"style":3552},[10890],{"type":3209,"value":10891},"  \u002F\u002F Or when we call useUserSession().fetch()\n",{"type":3204,"tag":3487,"props":10893,"children":10894},{"class":3489,"line":3759},[10895,10900,10904,10909,10913,10917,10922,10926,10930,10935,10939,10943,10947,10951,10955,10959],{"type":3204,"tag":3487,"props":10896,"children":10897},{"style":3561},[10898],{"type":3209,"value":10899},"  sessionHooks",{"type":3204,"tag":3487,"props":10901,"children":10902},{"style":3566},[10903],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":10905,"children":10906},{"style":3723},[10907],{"type":3209,"value":10908},"hook",{"type":3204,"tag":3487,"props":10910,"children":10911},{"style":3632},[10912],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":10914,"children":10915},{"style":3566},[10916],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":10918,"children":10919},{"style":3499},[10920],{"type":3209,"value":10921},"fetch",{"type":3204,"tag":3487,"props":10923,"children":10924},{"style":3566},[10925],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":10927,"children":10928},{"style":3566},[10929],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":10931,"children":10932},{"style":3638},[10933],{"type":3209,"value":10934}," async",{"type":3204,"tag":3487,"props":10936,"children":10937},{"style":3566},[10938],{"type":3209,"value":4578},{"type":3204,"tag":3487,"props":10940,"children":10941},{"style":4581},[10942],{"type":3209,"value":7764},{"type":3204,"tag":3487,"props":10944,"children":10945},{"style":3566},[10946],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":10948,"children":10949},{"style":4581},[10950],{"type":3209,"value":7679},{"type":3204,"tag":3487,"props":10952,"children":10953},{"style":3566},[10954],{"type":3209,"value":6169},{"type":3204,"tag":3487,"props":10956,"children":10957},{"style":3638},[10958],{"type":3209,"value":4455},{"type":3204,"tag":3487,"props":10960,"children":10961},{"style":3566},[10962],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":10964,"children":10965},{"class":3489,"line":3776},[10966],{"type":3204,"tag":3487,"props":10967,"children":10968},{"style":3552},[10969],{"type":3209,"value":10970},"    \u002F\u002F extend User Session by calling your database\n",{"type":3204,"tag":3487,"props":10972,"children":10973},{"class":3489,"line":3109},[10974],{"type":3204,"tag":3487,"props":10975,"children":10976},{"style":3552},[10977],{"type":3209,"value":10978},"    \u002F\u002F or\n",{"type":3204,"tag":3487,"props":10980,"children":10981},{"class":3489,"line":3105},[10982],{"type":3204,"tag":3487,"props":10983,"children":10984},{"style":3552},[10985],{"type":3209,"value":10986},"    \u002F\u002F throw createError({ ... }) if session is invalid for example\n",{"type":3204,"tag":3487,"props":10988,"children":10989},{"class":3489,"line":3101},[10990,10995],{"type":3204,"tag":3487,"props":10991,"children":10992},{"style":3566},[10993],{"type":3209,"value":10994},"  }",{"type":3204,"tag":3487,"props":10996,"children":10997},{"style":3632},[10998],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":11000,"children":11001},{"class":3489,"line":3938},[11002],{"type":3204,"tag":3487,"props":11003,"children":11004},{"emptyLinePlaceholder":1208},[11005],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":11007,"children":11008},{"class":3489,"line":3192},[11009],{"type":3204,"tag":3487,"props":11010,"children":11011},{"style":3552},[11012],{"type":3209,"value":11013},"  \u002F\u002F Called when we call useUserSession().clear() or clearUserSession(event)\n",{"type":3204,"tag":3487,"props":11015,"children":11016},{"class":3489,"line":3975},[11017,11021,11025,11029,11033,11037,11041,11045,11049,11053,11057,11061,11065,11069,11073,11077],{"type":3204,"tag":3487,"props":11018,"children":11019},{"style":3561},[11020],{"type":3209,"value":10899},{"type":3204,"tag":3487,"props":11022,"children":11023},{"style":3566},[11024],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":11026,"children":11027},{"style":3723},[11028],{"type":3209,"value":10908},{"type":3204,"tag":3487,"props":11030,"children":11031},{"style":3632},[11032],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":11034,"children":11035},{"style":3566},[11036],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":11038,"children":11039},{"style":3499},[11040],{"type":3209,"value":3910},{"type":3204,"tag":3487,"props":11042,"children":11043},{"style":3566},[11044],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":11046,"children":11047},{"style":3566},[11048],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":11050,"children":11051},{"style":3638},[11052],{"type":3209,"value":10934},{"type":3204,"tag":3487,"props":11054,"children":11055},{"style":3566},[11056],{"type":3209,"value":4578},{"type":3204,"tag":3487,"props":11058,"children":11059},{"style":4581},[11060],{"type":3209,"value":7764},{"type":3204,"tag":3487,"props":11062,"children":11063},{"style":3566},[11064],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":11066,"children":11067},{"style":4581},[11068],{"type":3209,"value":7679},{"type":3204,"tag":3487,"props":11070,"children":11071},{"style":3566},[11072],{"type":3209,"value":6169},{"type":3204,"tag":3487,"props":11074,"children":11075},{"style":3638},[11076],{"type":3209,"value":4455},{"type":3204,"tag":3487,"props":11078,"children":11079},{"style":3566},[11080],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":11082,"children":11083},{"class":3489,"line":4008},[11084],{"type":3204,"tag":3487,"props":11085,"children":11086},{"style":3552},[11087],{"type":3209,"value":11088},"    \u002F\u002F Log that user logged out\n",{"type":3204,"tag":3487,"props":11090,"children":11091},{"class":3489,"line":4063},[11092,11096],{"type":3204,"tag":3487,"props":11093,"children":11094},{"style":3566},[11095],{"type":3209,"value":10994},{"type":3204,"tag":3487,"props":11097,"children":11098},{"style":3632},[11099],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":11101,"children":11102},{"class":3489,"line":4072},[11103,11107],{"type":3204,"tag":3487,"props":11104,"children":11105},{"style":3566},[11106],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":11108,"children":11109},{"style":3561},[11110],{"type":3209,"value":4929},{"type":3204,"tag":3295,"props":11112,"children":11114},{"id":11113},"server-side-rendering",[11115],{"type":3209,"value":11116},"Server-Side Rendering",{"type":3204,"tag":3211,"props":11118,"children":11119},{},[11120,11122,11128,11130],{"type":3209,"value":11121},"You can make authenticated requests both from the client and the server. However, you must use ",{"type":3204,"tag":3349,"props":11123,"children":11125},{"className":11124},[],[11126],{"type":3209,"value":11127},"useRequestFetch()",{"type":3209,"value":11129}," to make authenticated requests during SSR if you are not using ",{"type":3204,"tag":3349,"props":11131,"children":11133},{"className":11132},[],[11134],{"type":3209,"value":11135},"useFetch()",{"type":3204,"tag":3477,"props":11137,"children":11139},{"className":3615,"code":11138,"language":3617,"meta":3077,"style":3077},"\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",[11140],{"type":3204,"tag":3349,"props":11141,"children":11142},{"__ignoreMap":3077},[11143,11182,11190,11280,11287,11295,11347],{"type":3204,"tag":3487,"props":11144,"children":11145},{"class":3489,"line":3163},[11146,11150,11154,11158,11162,11166,11170,11174,11178],{"type":3204,"tag":3487,"props":11147,"children":11148},{"style":3566},[11149],{"type":3209,"value":3629},{"type":3204,"tag":3487,"props":11151,"children":11152},{"style":3632},[11153],{"type":3209,"value":3635},{"type":3204,"tag":3487,"props":11155,"children":11156},{"style":3638},[11157],{"type":3209,"value":3641},{"type":3204,"tag":3487,"props":11159,"children":11160},{"style":3638},[11161],{"type":3209,"value":9941},{"type":3204,"tag":3487,"props":11163,"children":11164},{"style":3566},[11165],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":11167,"children":11168},{"style":3566},[11169],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":11171,"children":11172},{"style":3499},[11173],{"type":3209,"value":4167},{"type":3204,"tag":3487,"props":11175,"children":11176},{"style":3566},[11177],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":11179,"children":11180},{"style":3566},[11181],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":11183,"children":11184},{"class":3489,"line":3129},[11185],{"type":3204,"tag":3487,"props":11186,"children":11187},{"style":3552},[11188],{"type":3209,"value":11189},"\u002F\u002F When using useAsyncData\n",{"type":3204,"tag":3487,"props":11191,"children":11192},{"class":3489,"line":3113},[11193,11197,11201,11206,11210,11214,11218,11223,11227,11231,11236,11240,11244,11248,11252,11257,11262,11266,11271,11275],{"type":3204,"tag":3487,"props":11194,"children":11195},{"style":3638},[11196],{"type":3209,"value":3654},{"type":3204,"tag":3487,"props":11198,"children":11199},{"style":3566},[11200],{"type":3209,"value":3659},{"type":3204,"tag":3487,"props":11202,"children":11203},{"style":3561},[11204],{"type":3209,"value":11205}," data ",{"type":3204,"tag":3487,"props":11207,"children":11208},{"style":3566},[11209],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":11211,"children":11212},{"style":3566},[11213],{"type":3209,"value":3720},{"type":3204,"tag":3487,"props":11215,"children":11216},{"style":4749},[11217],{"type":3209,"value":5005},{"type":3204,"tag":3487,"props":11219,"children":11220},{"style":3723},[11221],{"type":3209,"value":11222}," useAsyncData",{"type":3204,"tag":3487,"props":11224,"children":11225},{"style":3561},[11226],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":11228,"children":11229},{"style":3566},[11230],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":11232,"children":11233},{"style":3499},[11234],{"type":3209,"value":11235},"team",{"type":3204,"tag":3487,"props":11237,"children":11238},{"style":3566},[11239],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":11241,"children":11242},{"style":3566},[11243],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":11245,"children":11246},{"style":3566},[11247],{"type":3209,"value":4450},{"type":3204,"tag":3487,"props":11249,"children":11250},{"style":3638},[11251],{"type":3209,"value":4455},{"type":3204,"tag":3487,"props":11253,"children":11254},{"style":3723},[11255],{"type":3209,"value":11256}," useRequestFetch",{"type":3204,"tag":3487,"props":11258,"children":11259},{"style":3561},[11260],{"type":3209,"value":11261},"()(",{"type":3204,"tag":3487,"props":11263,"children":11264},{"style":3566},[11265],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":11267,"children":11268},{"style":3499},[11269],{"type":3209,"value":11270},"\u002Fapi\u002Fprotected-endpoint",{"type":3204,"tag":3487,"props":11272,"children":11273},{"style":3566},[11274],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":11276,"children":11277},{"style":3561},[11278],{"type":3209,"value":11279},"))\n",{"type":3204,"tag":3487,"props":11281,"children":11282},{"class":3489,"line":3750},[11283],{"type":3204,"tag":3487,"props":11284,"children":11285},{"emptyLinePlaceholder":1208},[11286],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":11288,"children":11289},{"class":3489,"line":3759},[11290],{"type":3204,"tag":3487,"props":11291,"children":11292},{"style":3552},[11293],{"type":3209,"value":11294},"\u002F\u002F useFetch will automatically use useRequestFetch during SSR\n",{"type":3204,"tag":3487,"props":11296,"children":11297},{"class":3489,"line":3776},[11298,11302,11306,11310,11314,11318,11322,11327,11331,11335,11339,11343],{"type":3204,"tag":3487,"props":11299,"children":11300},{"style":3638},[11301],{"type":3209,"value":3654},{"type":3204,"tag":3487,"props":11303,"children":11304},{"style":3566},[11305],{"type":3209,"value":3659},{"type":3204,"tag":3487,"props":11307,"children":11308},{"style":3561},[11309],{"type":3209,"value":11205},{"type":3204,"tag":3487,"props":11311,"children":11312},{"style":3566},[11313],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":11315,"children":11316},{"style":3566},[11317],{"type":3209,"value":3720},{"type":3204,"tag":3487,"props":11319,"children":11320},{"style":4749},[11321],{"type":3209,"value":5005},{"type":3204,"tag":3487,"props":11323,"children":11324},{"style":3723},[11325],{"type":3209,"value":11326}," useFetch",{"type":3204,"tag":3487,"props":11328,"children":11329},{"style":3561},[11330],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":11332,"children":11333},{"style":3566},[11334],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":11336,"children":11337},{"style":3499},[11338],{"type":3209,"value":11270},{"type":3204,"tag":3487,"props":11340,"children":11341},{"style":3566},[11342],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":11344,"children":11345},{"style":3561},[11346],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":11348,"children":11349},{"class":3489,"line":3109},[11350,11354,11358],{"type":3204,"tag":3487,"props":11351,"children":11352},{"style":3566},[11353],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":11355,"children":11356},{"style":3632},[11357],{"type":3209,"value":3635},{"type":3204,"tag":3487,"props":11359,"children":11360},{"style":3566},[11361],{"type":3209,"value":3646},{"type":3204,"tag":4667,"props":11363,"children":11364},{},[11365],{"type":3204,"tag":3211,"props":11366,"children":11367},{},[11368,11370,11377,11379,11384],{"type":3209,"value":11369},"There's ",{"type":3204,"tag":3215,"props":11371,"children":11374},{"href":11372,"rel":11373},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fnuxt\u002Fissues\u002F24813",[3219],[11375],{"type":3209,"value":11376},"an open issue",{"type":3209,"value":11378}," to include credentials in ",{"type":3204,"tag":3349,"props":11380,"children":11382},{"className":11381},[],[11383],{"type":3209,"value":634},{"type":3209,"value":11385}," in Nuxt.",{"type":3204,"tag":3295,"props":11387,"children":11389},{"id":11388},"hybrid-rendering",[11390],{"type":3209,"value":3311},{"type":3204,"tag":3211,"props":11392,"children":11393},{},[11394,11396,11409],{"type":3209,"value":11395},"When using ",{"type":3204,"tag":3215,"props":11397,"children":11400},{"href":11398,"rel":11399},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fguide\u002Fconcepts\u002Frendering#hybrid-rendering",[3219],[11401,11403],{"type":3209,"value":11402},"Nuxt ",{"type":3204,"tag":3349,"props":11404,"children":11406},{"className":11405},[],[11407],{"type":3209,"value":11408},"routeRules",{"type":3209,"value":11410}," 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":3204,"tag":3211,"props":11412,"children":11413},{},[11414],{"type":3209,"value":11415},"This is because the user session is stored in a secure cookie and cannot be accessed during prerendering.",{"type":3204,"tag":3211,"props":11417,"children":11418},{},[11419],{"type":3204,"tag":4158,"props":11420,"children":11421},{},[11422],{"type":3209,"value":11423},"This means that you should not rely on the user session during prerendering.",{"type":3204,"tag":3211,"props":11425,"children":11426},{},[11427,11429,11435,11437,11442],{"type":3209,"value":11428},"You may also choose to instruct Nuxt Auth Utils to fetch the user session only on the client side, with the ",{"type":3204,"tag":3349,"props":11430,"children":11432},{"className":11431},[],[11433],{"type":3209,"value":11434},"loadStrategy",{"type":3209,"value":11436}," option in your ",{"type":3204,"tag":3349,"props":11438,"children":11440},{"className":11439},[],[11441],{"type":3209,"value":233},{"type":3209,"value":4226},{"type":3204,"tag":3477,"props":11444,"children":11446},{"className":4165,"code":11445,"language":4167,"meta":3077,"style":3077},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'client-only'\n  }\n})\n",[11447],{"type":3204,"tag":3349,"props":11448,"children":11449},{"__ignoreMap":3077},[11450,11473,11488,11513,11520],{"type":3204,"tag":3487,"props":11451,"children":11452},{"class":3489,"line":3163},[11453,11457,11461,11465,11469],{"type":3204,"tag":3487,"props":11454,"children":11455},{"style":4749},[11456],{"type":3209,"value":5283},{"type":3204,"tag":3487,"props":11458,"children":11459},{"style":4749},[11460],{"type":3209,"value":5398},{"type":3204,"tag":3487,"props":11462,"children":11463},{"style":3723},[11464],{"type":3209,"value":5403},{"type":3204,"tag":3487,"props":11466,"children":11467},{"style":3561},[11468],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":11470,"children":11471},{"style":3566},[11472],{"type":3209,"value":5413},{"type":3204,"tag":3487,"props":11474,"children":11475},{"class":3489,"line":3129},[11476,11480,11484],{"type":3204,"tag":3487,"props":11477,"children":11478},{"style":3632},[11479],{"type":3209,"value":6673},{"type":3204,"tag":3487,"props":11481,"children":11482},{"style":3566},[11483],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":11485,"children":11486},{"style":3566},[11487],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":11489,"children":11490},{"class":3489,"line":3113},[11491,11496,11500,11504,11509],{"type":3204,"tag":3487,"props":11492,"children":11493},{"style":3632},[11494],{"type":3209,"value":11495},"    loadStrategy",{"type":3204,"tag":3487,"props":11497,"children":11498},{"style":3566},[11499],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":11501,"children":11502},{"style":3566},[11503],{"type":3209,"value":4810},{"type":3204,"tag":3487,"props":11505,"children":11506},{"style":3499},[11507],{"type":3209,"value":11508},"client-only",{"type":3204,"tag":3487,"props":11510,"children":11511},{"style":3566},[11512],{"type":3209,"value":4819},{"type":3204,"tag":3487,"props":11514,"children":11515},{"class":3489,"line":3750},[11516],{"type":3204,"tag":3487,"props":11517,"children":11518},{"style":3566},[11519],{"type":3209,"value":5187},{"type":3204,"tag":3487,"props":11521,"children":11522},{"class":3489,"line":3759},[11523,11527],{"type":3204,"tag":3487,"props":11524,"children":11525},{"style":3566},[11526],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":11528,"children":11529},{"style":3561},[11530],{"type":3209,"value":4929},{"type":3204,"tag":3211,"props":11532,"children":11533},{},[11534,11536,11541,11543,11548,11549,11555],{"type":3209,"value":11535},"When using the ",{"type":3204,"tag":3349,"props":11537,"children":11539},{"className":11538},[],[11540],{"type":3209,"value":11508},{"type":3209,"value":11542}," load strategy, the user session can still be manually fetched on the server side by calling ",{"type":3204,"tag":3349,"props":11544,"children":11546},{"className":11545},[],[11547],{"type":3209,"value":10921},{"type":3209,"value":7434},{"type":3204,"tag":3349,"props":11550,"children":11552},{"className":11551},[],[11553],{"type":3209,"value":11554},"useUserSession",{"type":3209,"value":11556}," composable.",{"type":3204,"tag":3607,"props":11558,"children":11560},{"id":11559},"disable-session-loading",[11561],{"type":3209,"value":11562},"Disable session loading",{"type":3204,"tag":3211,"props":11564,"children":11565},{},[11566,11568,11573,11574,11579],{"type":3209,"value":11567},"You may also choose to disable session loading entirely, with the ",{"type":3204,"tag":3349,"props":11569,"children":11571},{"className":11570},[],[11572],{"type":3209,"value":11434},{"type":3209,"value":11436},{"type":3204,"tag":3349,"props":11575,"children":11577},{"className":11576},[],[11578],{"type":3209,"value":233},{"type":3209,"value":4226},{"type":3204,"tag":3477,"props":11581,"children":11583},{"className":4165,"code":11582,"language":4167,"meta":3077,"style":3077},"export default defineNuxtConfig({\n  auth: {\n    loadStrategy: 'none'\n  }\n})\n",[11584],{"type":3204,"tag":3349,"props":11585,"children":11586},{"__ignoreMap":3077},[11587,11610,11625,11649,11656],{"type":3204,"tag":3487,"props":11588,"children":11589},{"class":3489,"line":3163},[11590,11594,11598,11602,11606],{"type":3204,"tag":3487,"props":11591,"children":11592},{"style":4749},[11593],{"type":3209,"value":5283},{"type":3204,"tag":3487,"props":11595,"children":11596},{"style":4749},[11597],{"type":3209,"value":5398},{"type":3204,"tag":3487,"props":11599,"children":11600},{"style":3723},[11601],{"type":3209,"value":5403},{"type":3204,"tag":3487,"props":11603,"children":11604},{"style":3561},[11605],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":11607,"children":11608},{"style":3566},[11609],{"type":3209,"value":5413},{"type":3204,"tag":3487,"props":11611,"children":11612},{"class":3489,"line":3129},[11613,11617,11621],{"type":3204,"tag":3487,"props":11614,"children":11615},{"style":3632},[11616],{"type":3209,"value":6673},{"type":3204,"tag":3487,"props":11618,"children":11619},{"style":3566},[11620],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":11622,"children":11623},{"style":3566},[11624],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":11626,"children":11627},{"class":3489,"line":3113},[11628,11632,11636,11640,11645],{"type":3204,"tag":3487,"props":11629,"children":11630},{"style":3632},[11631],{"type":3209,"value":11495},{"type":3204,"tag":3487,"props":11633,"children":11634},{"style":3566},[11635],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":11637,"children":11638},{"style":3566},[11639],{"type":3209,"value":4810},{"type":3204,"tag":3487,"props":11641,"children":11642},{"style":3499},[11643],{"type":3209,"value":11644},"none",{"type":3204,"tag":3487,"props":11646,"children":11647},{"style":3566},[11648],{"type":3209,"value":4819},{"type":3204,"tag":3487,"props":11650,"children":11651},{"class":3489,"line":3750},[11652],{"type":3204,"tag":3487,"props":11653,"children":11654},{"style":3566},[11655],{"type":3209,"value":5187},{"type":3204,"tag":3487,"props":11657,"children":11658},{"class":3489,"line":3759},[11659,11663],{"type":3204,"tag":3487,"props":11660,"children":11661},{"style":3566},[11662],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":11664,"children":11665},{"style":3561},[11666],{"type":3209,"value":4929},{"type":3204,"tag":3211,"props":11668,"children":11669},{},[11670,11671,11676,11678,11684],{"type":3209,"value":11535},{"type":3204,"tag":3349,"props":11672,"children":11674},{"className":11673},[],[11675],{"type":3209,"value":11644},{"type":3209,"value":11677}," load strategy, the user session can still be manually fetched by calling ",{"type":3204,"tag":3349,"props":11679,"children":11681},{"className":11680},[],[11682],{"type":3209,"value":11683},"useUserSession().fetch()",{"type":3209,"value":3442},{"type":3204,"tag":3607,"props":11686,"children":11688},{"id":11687},"authstate-component",[11689,11694],{"type":3204,"tag":3349,"props":11690,"children":11692},{"className":11691},[],[11693],{"type":3209,"value":3378},{"type":3209,"value":3380},{"type":3204,"tag":3211,"props":11696,"children":11697},{},[11698,11700,11705],{"type":3209,"value":11699},"You can use the ",{"type":3204,"tag":3349,"props":11701,"children":11703},{"className":11702},[],[11704],{"type":3209,"value":3378},{"type":3209,"value":11706}," component to safely display auth-related data in your components without worrying about the rendering mode.",{"type":3204,"tag":3211,"props":11708,"children":11709},{},[11710],{"type":3209,"value":11711},"One common use case if the Login button in the header:",{"type":3204,"tag":3477,"props":11713,"children":11715},{"className":3615,"code":11714,"language":3617,"meta":3077,"style":3077},"\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",[11716],{"type":3204,"tag":3349,"props":11717,"children":11718},{"__ignoreMap":3077},[11719,11734,11750,11804,11876,11935,11951,11966],{"type":3204,"tag":3487,"props":11720,"children":11721},{"class":3489,"line":3163},[11722,11726,11730],{"type":3204,"tag":3487,"props":11723,"children":11724},{"style":3566},[11725],{"type":3209,"value":3629},{"type":3204,"tag":3487,"props":11727,"children":11728},{"style":3632},[11729],{"type":3209,"value":3769},{"type":3204,"tag":3487,"props":11731,"children":11732},{"style":3566},[11733],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":11735,"children":11736},{"class":3489,"line":3129},[11737,11741,11746],{"type":3204,"tag":3487,"props":11738,"children":11739},{"style":3566},[11740],{"type":3209,"value":3782},{"type":3204,"tag":3487,"props":11742,"children":11743},{"style":3632},[11744],{"type":3209,"value":11745},"header",{"type":3204,"tag":3487,"props":11747,"children":11748},{"style":3566},[11749],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":11751,"children":11752},{"class":3489,"line":3113},[11753,11757,11762,11767,11771,11775,11780,11784,11788,11792,11796,11800],{"type":3204,"tag":3487,"props":11754,"children":11755},{"style":3566},[11756],{"type":3209,"value":3822},{"type":3204,"tag":3487,"props":11758,"children":11759},{"style":3632},[11760],{"type":3209,"value":11761},"AuthState",{"type":3204,"tag":3487,"props":11763,"children":11764},{"style":3638},[11765],{"type":3209,"value":11766}," v-slot",{"type":3204,"tag":3487,"props":11768,"children":11769},{"style":3566},[11770],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":11772,"children":11773},{"style":3566},[11774],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":11776,"children":11777},{"style":3566},[11778],{"type":3209,"value":11779},"{ ",{"type":3204,"tag":3487,"props":11781,"children":11782},{"style":3561},[11783],{"type":3209,"value":3806},{"type":3204,"tag":3487,"props":11785,"children":11786},{"style":3566},[11787],{"type":3209,"value":7368},{"type":3204,"tag":3487,"props":11789,"children":11790},{"style":3561},[11791],{"type":3209,"value":3910},{"type":3204,"tag":3487,"props":11793,"children":11794},{"style":3566},[11795],{"type":3209,"value":7599},{"type":3204,"tag":3487,"props":11797,"children":11798},{"style":3566},[11799],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":11801,"children":11802},{"style":3566},[11803],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":11805,"children":11806},{"class":3489,"line":3750},[11807,11812,11816,11820,11824,11828,11832,11836,11840,11844,11848,11852,11856,11860,11864,11868,11872],{"type":3204,"tag":3487,"props":11808,"children":11809},{"style":3566},[11810],{"type":3209,"value":11811},"      \u003C",{"type":3204,"tag":3487,"props":11813,"children":11814},{"style":3632},[11815],{"type":3209,"value":3892},{"type":3204,"tag":3487,"props":11817,"children":11818},{"style":3638},[11819],{"type":3209,"value":3792},{"type":3204,"tag":3487,"props":11821,"children":11822},{"style":3566},[11823],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":11825,"children":11826},{"style":3566},[11827],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":11829,"children":11830},{"style":3499},[11831],{"type":3209,"value":3806},{"type":3204,"tag":3487,"props":11833,"children":11834},{"style":3566},[11835],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":11837,"children":11838},{"style":3638},[11839],{"type":3209,"value":3897},{"type":3204,"tag":3487,"props":11841,"children":11842},{"style":3566},[11843],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":11845,"children":11846},{"style":3566},[11847],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":11849,"children":11850},{"style":3499},[11851],{"type":3209,"value":3910},{"type":3204,"tag":3487,"props":11853,"children":11854},{"style":3566},[11855],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":11857,"children":11858},{"style":3566},[11859],{"type":3209,"value":3831},{"type":3204,"tag":3487,"props":11861,"children":11862},{"style":3561},[11863],{"type":3209,"value":3923},{"type":3204,"tag":3487,"props":11865,"children":11866},{"style":3566},[11867],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":11869,"children":11870},{"style":3632},[11871],{"type":3209,"value":3892},{"type":3204,"tag":3487,"props":11873,"children":11874},{"style":3566},[11875],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":11877,"children":11878},{"class":3489,"line":3759},[11879,11883,11888,11892,11897,11901,11905,11910,11914,11918,11923,11927,11931],{"type":3204,"tag":3487,"props":11880,"children":11881},{"style":3566},[11882],{"type":3209,"value":11811},{"type":3204,"tag":3487,"props":11884,"children":11885},{"style":3632},[11886],{"type":3209,"value":11887},"NuxtLink",{"type":3204,"tag":3487,"props":11889,"children":11890},{"style":4749},[11891],{"type":3209,"value":3968},{"type":3204,"tag":3487,"props":11893,"children":11894},{"style":3638},[11895],{"type":3209,"value":11896}," to",{"type":3204,"tag":3487,"props":11898,"children":11899},{"style":3566},[11900],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":11902,"children":11903},{"style":3566},[11904],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":11906,"children":11907},{"style":3499},[11908],{"type":3209,"value":11909},"\u002Flogin",{"type":3204,"tag":3487,"props":11911,"children":11912},{"style":3566},[11913],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":11915,"children":11916},{"style":3566},[11917],{"type":3209,"value":3831},{"type":3204,"tag":3487,"props":11919,"children":11920},{"style":3561},[11921],{"type":3209,"value":11922},"Login",{"type":3204,"tag":3487,"props":11924,"children":11925},{"style":3566},[11926],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":11928,"children":11929},{"style":3632},[11930],{"type":3209,"value":11887},{"type":3204,"tag":3487,"props":11932,"children":11933},{"style":3566},[11934],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":11936,"children":11937},{"class":3489,"line":3776},[11938,11943,11947],{"type":3204,"tag":3487,"props":11939,"children":11940},{"style":3566},[11941],{"type":3209,"value":11942},"    \u003C\u002F",{"type":3204,"tag":3487,"props":11944,"children":11945},{"style":3632},[11946],{"type":3209,"value":11761},{"type":3204,"tag":3487,"props":11948,"children":11949},{"style":3566},[11950],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":11952,"children":11953},{"class":3489,"line":3109},[11954,11958,11962],{"type":3204,"tag":3487,"props":11955,"children":11956},{"style":3566},[11957],{"type":3209,"value":3944},{"type":3204,"tag":3487,"props":11959,"children":11960},{"style":3632},[11961],{"type":3209,"value":11745},{"type":3204,"tag":3487,"props":11963,"children":11964},{"style":3566},[11965],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":11967,"children":11968},{"class":3489,"line":3105},[11969,11973,11977],{"type":3204,"tag":3487,"props":11970,"children":11971},{"style":3566},[11972],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":11974,"children":11975},{"style":3632},[11976],{"type":3209,"value":3769},{"type":3204,"tag":3487,"props":11978,"children":11979},{"style":3566},[11980],{"type":3209,"value":3646},{"type":3204,"tag":3211,"props":11982,"children":11983},{},[11984,11986,11991],{"type":3209,"value":11985},"If the page is cached or prerendered or the load strategy set as ",{"type":3204,"tag":3349,"props":11987,"children":11989},{"className":11988},[],[11990],{"type":3209,"value":11508},{"type":3209,"value":11992},", nothing will be rendered until the user session is fetched on the client-side.",{"type":3204,"tag":3211,"props":11994,"children":11995},{},[11996,11997,12003],{"type":3209,"value":11699},{"type":3204,"tag":3349,"props":11998,"children":12000},{"className":11999},[],[12001],{"type":3209,"value":12002},"placeholder",{"type":3209,"value":12004}," slot to show a placeholder on server-side and while the user session is being fetched on client-side for the prerendered pages:",{"type":3204,"tag":3477,"props":12006,"children":12008},{"className":3615,"code":12007,"language":3617,"meta":3077,"style":3077},"\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",[12009],{"type":3204,"tag":3349,"props":12010,"children":12011},{"__ignoreMap":3077},[12012,12027,12042,12057,12115,12187,12242,12258,12281,12318,12333,12348,12363],{"type":3204,"tag":3487,"props":12013,"children":12014},{"class":3489,"line":3163},[12015,12019,12023],{"type":3204,"tag":3487,"props":12016,"children":12017},{"style":3566},[12018],{"type":3209,"value":3629},{"type":3204,"tag":3487,"props":12020,"children":12021},{"style":3632},[12022],{"type":3209,"value":3769},{"type":3204,"tag":3487,"props":12024,"children":12025},{"style":3566},[12026],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":12028,"children":12029},{"class":3489,"line":3129},[12030,12034,12038],{"type":3204,"tag":3487,"props":12031,"children":12032},{"style":3566},[12033],{"type":3209,"value":3782},{"type":3204,"tag":3487,"props":12035,"children":12036},{"style":3632},[12037],{"type":3209,"value":11745},{"type":3204,"tag":3487,"props":12039,"children":12040},{"style":3566},[12041],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":12043,"children":12044},{"class":3489,"line":3113},[12045,12049,12053],{"type":3204,"tag":3487,"props":12046,"children":12047},{"style":3566},[12048],{"type":3209,"value":3822},{"type":3204,"tag":3487,"props":12050,"children":12051},{"style":3632},[12052],{"type":3209,"value":11761},{"type":3204,"tag":3487,"props":12054,"children":12055},{"style":3566},[12056],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":12058,"children":12059},{"class":3489,"line":3750},[12060,12064,12068,12073,12078,12082,12086,12090,12094,12098,12103,12107,12111],{"type":3204,"tag":3487,"props":12061,"children":12062},{"style":3566},[12063],{"type":3209,"value":11811},{"type":3204,"tag":3487,"props":12065,"children":12066},{"style":3632},[12067],{"type":3209,"value":3769},{"type":3204,"tag":3487,"props":12069,"children":12070},{"style":3566},[12071],{"type":3209,"value":12072}," #",{"type":3204,"tag":3487,"props":12074,"children":12075},{"style":3638},[12076],{"type":3209,"value":12077},"default",{"type":3204,"tag":3487,"props":12079,"children":12080},{"style":3566},[12081],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":12083,"children":12084},{"style":3566},[12085],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":12087,"children":12088},{"style":3566},[12089],{"type":3209,"value":7858},{"type":3204,"tag":3487,"props":12091,"children":12092},{"style":3561},[12093],{"type":3209,"value":3664},{"type":3204,"tag":3487,"props":12095,"children":12096},{"style":3566},[12097],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":12099,"children":12100},{"style":3561},[12101],{"type":3209,"value":12102}," clear ",{"type":3204,"tag":3487,"props":12104,"children":12105},{"style":3566},[12106],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":12108,"children":12109},{"style":3566},[12110],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":12112,"children":12113},{"style":3566},[12114],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":12116,"children":12117},{"class":3489,"line":3759},[12118,12123,12127,12131,12135,12139,12143,12147,12151,12155,12159,12163,12167,12171,12175,12179,12183],{"type":3204,"tag":3487,"props":12119,"children":12120},{"style":3566},[12121],{"type":3209,"value":12122},"        \u003C",{"type":3204,"tag":3487,"props":12124,"children":12125},{"style":3632},[12126],{"type":3209,"value":3892},{"type":3204,"tag":3487,"props":12128,"children":12129},{"style":3638},[12130],{"type":3209,"value":3792},{"type":3204,"tag":3487,"props":12132,"children":12133},{"style":3566},[12134],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":12136,"children":12137},{"style":3566},[12138],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":12140,"children":12141},{"style":3499},[12142],{"type":3209,"value":3806},{"type":3204,"tag":3487,"props":12144,"children":12145},{"style":3566},[12146],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":12148,"children":12149},{"style":3638},[12150],{"type":3209,"value":3897},{"type":3204,"tag":3487,"props":12152,"children":12153},{"style":3566},[12154],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":12156,"children":12157},{"style":3566},[12158],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":12160,"children":12161},{"style":3499},[12162],{"type":3209,"value":3910},{"type":3204,"tag":3487,"props":12164,"children":12165},{"style":3566},[12166],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":12168,"children":12169},{"style":3566},[12170],{"type":3209,"value":3831},{"type":3204,"tag":3487,"props":12172,"children":12173},{"style":3561},[12174],{"type":3209,"value":3923},{"type":3204,"tag":3487,"props":12176,"children":12177},{"style":3566},[12178],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":12180,"children":12181},{"style":3632},[12182],{"type":3209,"value":3892},{"type":3204,"tag":3487,"props":12184,"children":12185},{"style":3566},[12186],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":12188,"children":12189},{"class":3489,"line":3776},[12190,12194,12198,12202,12206,12210,12214,12218,12222,12226,12230,12234,12238],{"type":3204,"tag":3487,"props":12191,"children":12192},{"style":3566},[12193],{"type":3209,"value":12122},{"type":3204,"tag":3487,"props":12195,"children":12196},{"style":3632},[12197],{"type":3209,"value":11887},{"type":3204,"tag":3487,"props":12199,"children":12200},{"style":4749},[12201],{"type":3209,"value":3968},{"type":3204,"tag":3487,"props":12203,"children":12204},{"style":3638},[12205],{"type":3209,"value":11896},{"type":3204,"tag":3487,"props":12207,"children":12208},{"style":3566},[12209],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":12211,"children":12212},{"style":3566},[12213],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":12215,"children":12216},{"style":3499},[12217],{"type":3209,"value":11909},{"type":3204,"tag":3487,"props":12219,"children":12220},{"style":3566},[12221],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":12223,"children":12224},{"style":3566},[12225],{"type":3209,"value":3831},{"type":3204,"tag":3487,"props":12227,"children":12228},{"style":3561},[12229],{"type":3209,"value":11922},{"type":3204,"tag":3487,"props":12231,"children":12232},{"style":3566},[12233],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":12235,"children":12236},{"style":3632},[12237],{"type":3209,"value":11887},{"type":3204,"tag":3487,"props":12239,"children":12240},{"style":3566},[12241],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":12243,"children":12244},{"class":3489,"line":3109},[12245,12250,12254],{"type":3204,"tag":3487,"props":12246,"children":12247},{"style":3566},[12248],{"type":3209,"value":12249},"      \u003C\u002F",{"type":3204,"tag":3487,"props":12251,"children":12252},{"style":3632},[12253],{"type":3209,"value":3769},{"type":3204,"tag":3487,"props":12255,"children":12256},{"style":3566},[12257],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":12259,"children":12260},{"class":3489,"line":3105},[12261,12265,12269,12273,12277],{"type":3204,"tag":3487,"props":12262,"children":12263},{"style":3566},[12264],{"type":3209,"value":11811},{"type":3204,"tag":3487,"props":12266,"children":12267},{"style":3632},[12268],{"type":3209,"value":3769},{"type":3204,"tag":3487,"props":12270,"children":12271},{"style":3566},[12272],{"type":3209,"value":12072},{"type":3204,"tag":3487,"props":12274,"children":12275},{"style":3638},[12276],{"type":3209,"value":12002},{"type":3204,"tag":3487,"props":12278,"children":12279},{"style":3566},[12280],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":12282,"children":12283},{"class":3489,"line":3101},[12284,12288,12292,12297,12301,12306,12310,12314],{"type":3204,"tag":3487,"props":12285,"children":12286},{"style":3566},[12287],{"type":3209,"value":12122},{"type":3204,"tag":3487,"props":12289,"children":12290},{"style":3632},[12291],{"type":3209,"value":3892},{"type":3204,"tag":3487,"props":12293,"children":12294},{"style":3638},[12295],{"type":3209,"value":12296}," disabled",{"type":3204,"tag":3487,"props":12298,"children":12299},{"style":3566},[12300],{"type":3209,"value":3831},{"type":3204,"tag":3487,"props":12302,"children":12303},{"style":3561},[12304],{"type":3209,"value":12305},"Loading...",{"type":3204,"tag":3487,"props":12307,"children":12308},{"style":3566},[12309],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":12311,"children":12312},{"style":3632},[12313],{"type":3209,"value":3892},{"type":3204,"tag":3487,"props":12315,"children":12316},{"style":3566},[12317],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":12319,"children":12320},{"class":3489,"line":3938},[12321,12325,12329],{"type":3204,"tag":3487,"props":12322,"children":12323},{"style":3566},[12324],{"type":3209,"value":12249},{"type":3204,"tag":3487,"props":12326,"children":12327},{"style":3632},[12328],{"type":3209,"value":3769},{"type":3204,"tag":3487,"props":12330,"children":12331},{"style":3566},[12332],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":12334,"children":12335},{"class":3489,"line":3192},[12336,12340,12344],{"type":3204,"tag":3487,"props":12337,"children":12338},{"style":3566},[12339],{"type":3209,"value":11942},{"type":3204,"tag":3487,"props":12341,"children":12342},{"style":3632},[12343],{"type":3209,"value":11761},{"type":3204,"tag":3487,"props":12345,"children":12346},{"style":3566},[12347],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":12349,"children":12350},{"class":3489,"line":3975},[12351,12355,12359],{"type":3204,"tag":3487,"props":12352,"children":12353},{"style":3566},[12354],{"type":3209,"value":3944},{"type":3204,"tag":3487,"props":12356,"children":12357},{"style":3632},[12358],{"type":3209,"value":11745},{"type":3204,"tag":3487,"props":12360,"children":12361},{"style":3566},[12362],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":12364,"children":12365},{"class":3489,"line":4008},[12366,12370,12374],{"type":3204,"tag":3487,"props":12367,"children":12368},{"style":3566},[12369],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":12371,"children":12372},{"style":3632},[12373],{"type":3209,"value":3769},{"type":3204,"tag":3487,"props":12375,"children":12376},{"style":3566},[12377],{"type":3209,"value":3646},{"type":3204,"tag":3211,"props":12379,"children":12380},{},[12381,12383,12388,12390,12396,12398,12404],{"type":3209,"value":12382},"If you are caching your routes with ",{"type":3204,"tag":3349,"props":12384,"children":12386},{"className":12385},[],[12387],{"type":3209,"value":11408},{"type":3209,"value":12389},", please make sure to use ",{"type":3204,"tag":3215,"props":12391,"children":12394},{"href":12392,"rel":12393},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fnitro",[3219],[12395],{"type":3209,"value":845},{"type":3209,"value":12397}," >= ",{"type":3204,"tag":3349,"props":12399,"children":12401},{"className":12400},[],[12402],{"type":3209,"value":12403},"2.9.7",{"type":3209,"value":12405}," to support the client-side fetching of the user session.",{"type":3204,"tag":3295,"props":12407,"children":12409},{"id":12408},"websocket-support",[12410],{"type":3209,"value":12411},"WebSocket Support",{"type":3204,"tag":3211,"props":12413,"children":12414},{},[12415,12417,12424],{"type":3209,"value":12416},"Nuxt Auth Utils is compatible with ",{"type":3204,"tag":3215,"props":12418,"children":12421},{"href":12419,"rel":12420},"https:\u002F\u002Fnitro.build\u002Fguide\u002Fwebsocket",[3219],[12422],{"type":3209,"value":12423},"Nitro WebSockets",{"type":3209,"value":3442},{"type":3204,"tag":3211,"props":12426,"children":12427},{},[12428,12430,12436,12437,12442],{"type":3209,"value":12429},"Make sure to enable the ",{"type":3204,"tag":3349,"props":12431,"children":12433},{"className":12432},[],[12434],{"type":3209,"value":12435},"experimental.websocket",{"type":3209,"value":11436},{"type":3204,"tag":3349,"props":12438,"children":12440},{"className":12439},[],[12441],{"type":3209,"value":233},{"type":3209,"value":4226},{"type":3204,"tag":3477,"props":12444,"children":12446},{"className":4165,"code":12445,"language":4167,"meta":3077,"style":3077},"export default defineNuxtConfig({\n  nitro: {\n    experimental: {\n      websocket: true\n    }\n  }\n})\n",[12447],{"type":3204,"tag":3349,"props":12448,"children":12449},{"__ignoreMap":3077},[12450,12473,12489,12505,12521,12528,12535],{"type":3204,"tag":3487,"props":12451,"children":12452},{"class":3489,"line":3163},[12453,12457,12461,12465,12469],{"type":3204,"tag":3487,"props":12454,"children":12455},{"style":4749},[12456],{"type":3209,"value":5283},{"type":3204,"tag":3487,"props":12458,"children":12459},{"style":4749},[12460],{"type":3209,"value":5398},{"type":3204,"tag":3487,"props":12462,"children":12463},{"style":3723},[12464],{"type":3209,"value":5403},{"type":3204,"tag":3487,"props":12466,"children":12467},{"style":3561},[12468],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":12470,"children":12471},{"style":3566},[12472],{"type":3209,"value":5413},{"type":3204,"tag":3487,"props":12474,"children":12475},{"class":3489,"line":3129},[12476,12481,12485],{"type":3204,"tag":3487,"props":12477,"children":12478},{"style":3632},[12479],{"type":3209,"value":12480},"  nitro",{"type":3204,"tag":3487,"props":12482,"children":12483},{"style":3566},[12484],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":12486,"children":12487},{"style":3566},[12488],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":12490,"children":12491},{"class":3489,"line":3113},[12492,12497,12501],{"type":3204,"tag":3487,"props":12493,"children":12494},{"style":3632},[12495],{"type":3209,"value":12496},"    experimental",{"type":3204,"tag":3487,"props":12498,"children":12499},{"style":3566},[12500],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":12502,"children":12503},{"style":3566},[12504],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":12506,"children":12507},{"class":3489,"line":3750},[12508,12513,12517],{"type":3204,"tag":3487,"props":12509,"children":12510},{"style":3632},[12511],{"type":3209,"value":12512},"      websocket",{"type":3204,"tag":3487,"props":12514,"children":12515},{"style":3566},[12516],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":12518,"children":12519},{"style":5933},[12520],{"type":3209,"value":5936},{"type":3204,"tag":3487,"props":12522,"children":12523},{"class":3489,"line":3759},[12524],{"type":3204,"tag":3487,"props":12525,"children":12526},{"style":3566},[12527],{"type":3209,"value":5539},{"type":3204,"tag":3487,"props":12529,"children":12530},{"class":3489,"line":3776},[12531],{"type":3204,"tag":3487,"props":12532,"children":12533},{"style":3566},[12534],{"type":3209,"value":5187},{"type":3204,"tag":3487,"props":12536,"children":12537},{"class":3489,"line":3109},[12538,12542],{"type":3204,"tag":3487,"props":12539,"children":12540},{"style":3566},[12541],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":12543,"children":12544},{"style":3561},[12545],{"type":3209,"value":4929},{"type":3204,"tag":3211,"props":12547,"children":12548},{},[12549,12550,12556,12558,12564],{"type":3209,"value":11699},{"type":3204,"tag":3349,"props":12551,"children":12553},{"className":12552},[],[12554],{"type":3209,"value":12555},"requireUserSession",{"type":3209,"value":12557}," function in the ",{"type":3204,"tag":3349,"props":12559,"children":12561},{"className":12560},[],[12562],{"type":3209,"value":12563},"upgrade",{"type":3209,"value":12565}," function to check if the user is authenticated before upgrading the WebSocket connection.",{"type":3204,"tag":3477,"props":12567,"children":12569},{"className":4165,"code":12568,"language":4167,"meta":3077,"style":3077},"\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",[12570],{"type":3204,"tag":3349,"props":12571,"children":12572},{"__ignoreMap":3077},[12573,12581,12605,12634,12642,12665,12672,12701,12744,12751,12814,12821,12853,12898,12905],{"type":3204,"tag":3487,"props":12574,"children":12575},{"class":3489,"line":3163},[12576],{"type":3204,"tag":3487,"props":12577,"children":12578},{"style":3552},[12579],{"type":3209,"value":12580},"\u002F\u002F server\u002Froutes\u002Fws.ts\n",{"type":3204,"tag":3487,"props":12582,"children":12583},{"class":3489,"line":3129},[12584,12588,12592,12597,12601],{"type":3204,"tag":3487,"props":12585,"children":12586},{"style":4749},[12587],{"type":3209,"value":5283},{"type":3204,"tag":3487,"props":12589,"children":12590},{"style":4749},[12591],{"type":3209,"value":5398},{"type":3204,"tag":3487,"props":12593,"children":12594},{"style":3723},[12595],{"type":3209,"value":12596}," defineWebSocketHandler",{"type":3204,"tag":3487,"props":12598,"children":12599},{"style":3561},[12600],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":12602,"children":12603},{"style":3566},[12604],{"type":3209,"value":5413},{"type":3204,"tag":3487,"props":12606,"children":12607},{"class":3489,"line":3113},[12608,12612,12617,12621,12626,12630],{"type":3204,"tag":3487,"props":12609,"children":12610},{"style":3638},[12611],{"type":3209,"value":5951},{"type":3204,"tag":3487,"props":12613,"children":12614},{"style":3632},[12615],{"type":3209,"value":12616}," upgrade",{"type":3204,"tag":3487,"props":12618,"children":12619},{"style":3566},[12620],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":12622,"children":12623},{"style":4581},[12624],{"type":3209,"value":12625},"request",{"type":3204,"tag":3487,"props":12627,"children":12628},{"style":3566},[12629],{"type":3209,"value":6169},{"type":3204,"tag":3487,"props":12631,"children":12632},{"style":3566},[12633],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":12635,"children":12636},{"class":3489,"line":3750},[12637],{"type":3204,"tag":3487,"props":12638,"children":12639},{"style":3552},[12640],{"type":3209,"value":12641},"    \u002F\u002F Make sure the user is authenticated before upgrading the WebSocket connection\n",{"type":3204,"tag":3487,"props":12643,"children":12644},{"class":3489,"line":3759},[12645,12649,12653,12657,12661],{"type":3204,"tag":3487,"props":12646,"children":12647},{"style":4749},[12648],{"type":3209,"value":6002},{"type":3204,"tag":3487,"props":12650,"children":12651},{"style":3723},[12652],{"type":3209,"value":5085},{"type":3204,"tag":3487,"props":12654,"children":12655},{"style":3632},[12656],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":12658,"children":12659},{"style":3561},[12660],{"type":3209,"value":12625},{"type":3204,"tag":3487,"props":12662,"children":12663},{"style":3632},[12664],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":12666,"children":12667},{"class":3489,"line":3776},[12668],{"type":3204,"tag":3487,"props":12669,"children":12670},{"style":3566},[12671],{"type":3209,"value":4827},{"type":3204,"tag":3487,"props":12673,"children":12674},{"class":3489,"line":3109},[12675,12679,12684,12688,12693,12697],{"type":3204,"tag":3487,"props":12676,"children":12677},{"style":3638},[12678],{"type":3209,"value":5951},{"type":3204,"tag":3487,"props":12680,"children":12681},{"style":3632},[12682],{"type":3209,"value":12683}," open",{"type":3204,"tag":3487,"props":12685,"children":12686},{"style":3566},[12687],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":12689,"children":12690},{"style":4581},[12691],{"type":3209,"value":12692},"peer",{"type":3204,"tag":3487,"props":12694,"children":12695},{"style":3566},[12696],{"type":3209,"value":6169},{"type":3204,"tag":3487,"props":12698,"children":12699},{"style":3566},[12700],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":12702,"children":12703},{"class":3489,"line":3105},[12704,12708,12712,12716,12720,12724,12728,12732,12736,12740],{"type":3204,"tag":3487,"props":12705,"children":12706},{"style":3638},[12707],{"type":3209,"value":7719},{"type":3204,"tag":3487,"props":12709,"children":12710},{"style":3566},[12711],{"type":3209,"value":3659},{"type":3204,"tag":3487,"props":12713,"children":12714},{"style":3561},[12715],{"type":3209,"value":3674},{"type":3204,"tag":3487,"props":12717,"children":12718},{"style":3566},[12719],{"type":3209,"value":7599},{"type":3204,"tag":3487,"props":12721,"children":12722},{"style":3566},[12723],{"type":3209,"value":3720},{"type":3204,"tag":3487,"props":12725,"children":12726},{"style":4749},[12727],{"type":3209,"value":5005},{"type":3204,"tag":3487,"props":12729,"children":12730},{"style":3723},[12731],{"type":3209,"value":5085},{"type":3204,"tag":3487,"props":12733,"children":12734},{"style":3632},[12735],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":12737,"children":12738},{"style":3561},[12739],{"type":3209,"value":12692},{"type":3204,"tag":3487,"props":12741,"children":12742},{"style":3632},[12743],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":12745,"children":12746},{"class":3489,"line":3101},[12747],{"type":3204,"tag":3487,"props":12748,"children":12749},{"emptyLinePlaceholder":1208},[12750],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":12752,"children":12753},{"class":3489,"line":3938},[12754,12759,12763,12768,12772,12776,12781,12785,12789,12793,12798,12802,12806,12810],{"type":3204,"tag":3487,"props":12755,"children":12756},{"style":3561},[12757],{"type":3209,"value":12758},"    peer",{"type":3204,"tag":3487,"props":12760,"children":12761},{"style":3566},[12762],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":12764,"children":12765},{"style":3723},[12766],{"type":3209,"value":12767},"send",{"type":3204,"tag":3487,"props":12769,"children":12770},{"style":3632},[12771],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":12773,"children":12774},{"style":3566},[12775],{"type":3209,"value":8187},{"type":3204,"tag":3487,"props":12777,"children":12778},{"style":3499},[12779],{"type":3209,"value":12780},"Hello, ",{"type":3204,"tag":3487,"props":12782,"children":12783},{"style":3566},[12784],{"type":3209,"value":9526},{"type":3204,"tag":3487,"props":12786,"children":12787},{"style":3561},[12788],{"type":3209,"value":7773},{"type":3204,"tag":3487,"props":12790,"children":12791},{"style":3566},[12792],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":12794,"children":12795},{"style":3561},[12796],{"type":3209,"value":12797},"name",{"type":3204,"tag":3487,"props":12799,"children":12800},{"style":3566},[12801],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":12803,"children":12804},{"style":3499},[12805],{"type":3209,"value":8212},{"type":3204,"tag":3487,"props":12807,"children":12808},{"style":3566},[12809],{"type":3209,"value":8187},{"type":3204,"tag":3487,"props":12811,"children":12812},{"style":3632},[12813],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":12815,"children":12816},{"class":3489,"line":3192},[12817],{"type":3204,"tag":3487,"props":12818,"children":12819},{"style":3566},[12820],{"type":3209,"value":4827},{"type":3204,"tag":3487,"props":12822,"children":12823},{"class":3489,"line":3975},[12824,12829,12833,12837,12841,12845,12849],{"type":3204,"tag":3487,"props":12825,"children":12826},{"style":3632},[12827],{"type":3209,"value":12828},"  message",{"type":3204,"tag":3487,"props":12830,"children":12831},{"style":3566},[12832],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":12834,"children":12835},{"style":4581},[12836],{"type":3209,"value":12692},{"type":3204,"tag":3487,"props":12838,"children":12839},{"style":3566},[12840],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":12842,"children":12843},{"style":4581},[12844],{"type":3209,"value":7881},{"type":3204,"tag":3487,"props":12846,"children":12847},{"style":3566},[12848],{"type":3209,"value":6169},{"type":3204,"tag":3487,"props":12850,"children":12851},{"style":3566},[12852],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":12854,"children":12855},{"class":3489,"line":4008},[12856,12860,12864,12868,12872,12876,12881,12885,12890,12894],{"type":3204,"tag":3487,"props":12857,"children":12858},{"style":3561},[12859],{"type":3209,"value":12758},{"type":3204,"tag":3487,"props":12861,"children":12862},{"style":3566},[12863],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":12865,"children":12866},{"style":3723},[12867],{"type":3209,"value":12767},{"type":3204,"tag":3487,"props":12869,"children":12870},{"style":3632},[12871],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":12873,"children":12874},{"style":3566},[12875],{"type":3209,"value":8187},{"type":3204,"tag":3487,"props":12877,"children":12878},{"style":3499},[12879],{"type":3209,"value":12880},"Echo: ",{"type":3204,"tag":3487,"props":12882,"children":12883},{"style":3566},[12884],{"type":3209,"value":9526},{"type":3204,"tag":3487,"props":12886,"children":12887},{"style":3561},[12888],{"type":3209,"value":12889},"message",{"type":3204,"tag":3487,"props":12891,"children":12892},{"style":3566},[12893],{"type":3209,"value":9536},{"type":3204,"tag":3487,"props":12895,"children":12896},{"style":3632},[12897],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":12899,"children":12900},{"class":3489,"line":4063},[12901],{"type":3204,"tag":3487,"props":12902,"children":12903},{"style":3566},[12904],{"type":3209,"value":4827},{"type":3204,"tag":3487,"props":12906,"children":12907},{"class":3489,"line":4072},[12908,12912],{"type":3204,"tag":3487,"props":12909,"children":12910},{"style":3566},[12911],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":12913,"children":12914},{"style":3561},[12915],{"type":3209,"value":4929},{"type":3204,"tag":3211,"props":12917,"children":12918},{},[12919,12921,12928],{"type":3209,"value":12920},"Then, in your application, you can use the ",{"type":3204,"tag":3215,"props":12922,"children":12925},{"href":12923,"rel":12924},"https:\u002F\u002Fvueuse.org\u002Fcore\u002FuseWebSocket\u002F",[3219],[12926],{"type":3209,"value":12927},"useWebSocket",{"type":3209,"value":12929}," composable to connect to the WebSocket:",{"type":3204,"tag":3477,"props":12931,"children":12933},{"className":3615,"code":12932,"language":3617,"meta":3077,"style":3077},"\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",[12934],{"type":3204,"tag":3349,"props":12935,"children":12936},{"__ignoreMap":3077},[12937,12956,13067,13074,13082,13095,13110,13117,13132,13147,13179,13211,13226,13279,13332,13385,13400,13415],{"type":3204,"tag":3487,"props":12938,"children":12939},{"class":3489,"line":3163},[12940,12944,12948,12952],{"type":3204,"tag":3487,"props":12941,"children":12942},{"style":3566},[12943],{"type":3209,"value":3629},{"type":3204,"tag":3487,"props":12945,"children":12946},{"style":3632},[12947],{"type":3209,"value":3635},{"type":3204,"tag":3487,"props":12949,"children":12950},{"style":3638},[12951],{"type":3209,"value":3641},{"type":3204,"tag":3487,"props":12953,"children":12954},{"style":3566},[12955],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":12957,"children":12958},{"class":3489,"line":3129},[12959,12963,12967,12972,12976,12981,12985,12990,12994,12998,13002,13007,13011,13015,13020,13024,13028,13033,13037,13041,13045,13050,13054,13059,13063],{"type":3204,"tag":3487,"props":12960,"children":12961},{"style":3638},[12962],{"type":3209,"value":3654},{"type":3204,"tag":3487,"props":12964,"children":12965},{"style":3566},[12966],{"type":3209,"value":3659},{"type":3204,"tag":3487,"props":12968,"children":12969},{"style":3561},[12970],{"type":3209,"value":12971}," status",{"type":3204,"tag":3487,"props":12973,"children":12974},{"style":3566},[12975],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":12977,"children":12978},{"style":3561},[12979],{"type":3209,"value":12980}," data",{"type":3204,"tag":3487,"props":12982,"children":12983},{"style":3566},[12984],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":12986,"children":12987},{"style":3561},[12988],{"type":3209,"value":12989}," send",{"type":3204,"tag":3487,"props":12991,"children":12992},{"style":3566},[12993],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":12995,"children":12996},{"style":3561},[12997],{"type":3209,"value":12683},{"type":3204,"tag":3487,"props":12999,"children":13000},{"style":3566},[13001],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":13003,"children":13004},{"style":3561},[13005],{"type":3209,"value":13006}," close ",{"type":3204,"tag":3487,"props":13008,"children":13009},{"style":3566},[13010],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":13012,"children":13013},{"style":3566},[13014],{"type":3209,"value":3720},{"type":3204,"tag":3487,"props":13016,"children":13017},{"style":3723},[13018],{"type":3209,"value":13019}," useWebSocket",{"type":3204,"tag":3487,"props":13021,"children":13022},{"style":3561},[13023],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":13025,"children":13026},{"style":3566},[13027],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":13029,"children":13030},{"style":3499},[13031],{"type":3209,"value":13032},"\u002Fws",{"type":3204,"tag":3487,"props":13034,"children":13035},{"style":3566},[13036],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":13038,"children":13039},{"style":3566},[13040],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":13042,"children":13043},{"style":3566},[13044],{"type":3209,"value":3659},{"type":3204,"tag":3487,"props":13046,"children":13047},{"style":3632},[13048],{"type":3209,"value":13049}," immediate",{"type":3204,"tag":3487,"props":13051,"children":13052},{"style":3566},[13053],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":13055,"children":13056},{"style":5933},[13057],{"type":3209,"value":13058}," false",{"type":3204,"tag":3487,"props":13060,"children":13061},{"style":3566},[13062],{"type":3209,"value":7599},{"type":3204,"tag":3487,"props":13064,"children":13065},{"style":3561},[13066],{"type":3209,"value":4929},{"type":3204,"tag":3487,"props":13068,"children":13069},{"class":3489,"line":3113},[13070],{"type":3204,"tag":3487,"props":13071,"children":13072},{"emptyLinePlaceholder":1208},[13073],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":13075,"children":13076},{"class":3489,"line":3750},[13077],{"type":3204,"tag":3487,"props":13078,"children":13079},{"style":3552},[13080],{"type":3209,"value":13081},"\u002F\u002F Only open the websocket after the page is hydrated (client-only)\n",{"type":3204,"tag":3487,"props":13083,"children":13084},{"class":3489,"line":3759},[13085,13090],{"type":3204,"tag":3487,"props":13086,"children":13087},{"style":3723},[13088],{"type":3209,"value":13089},"onMounted",{"type":3204,"tag":3487,"props":13091,"children":13092},{"style":3561},[13093],{"type":3209,"value":13094},"(open)\n",{"type":3204,"tag":3487,"props":13096,"children":13097},{"class":3489,"line":3776},[13098,13102,13106],{"type":3204,"tag":3487,"props":13099,"children":13100},{"style":3566},[13101],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":13103,"children":13104},{"style":3632},[13105],{"type":3209,"value":3635},{"type":3204,"tag":3487,"props":13107,"children":13108},{"style":3566},[13109],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":13111,"children":13112},{"class":3489,"line":3109},[13113],{"type":3204,"tag":3487,"props":13114,"children":13115},{"emptyLinePlaceholder":1208},[13116],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":13118,"children":13119},{"class":3489,"line":3105},[13120,13124,13128],{"type":3204,"tag":3487,"props":13121,"children":13122},{"style":3566},[13123],{"type":3209,"value":3629},{"type":3204,"tag":3487,"props":13125,"children":13126},{"style":3632},[13127],{"type":3209,"value":3769},{"type":3204,"tag":3487,"props":13129,"children":13130},{"style":3566},[13131],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":13133,"children":13134},{"class":3489,"line":3101},[13135,13139,13143],{"type":3204,"tag":3487,"props":13136,"children":13137},{"style":3566},[13138],{"type":3209,"value":3782},{"type":3204,"tag":3487,"props":13140,"children":13141},{"style":3632},[13142],{"type":3209,"value":3787},{"type":3204,"tag":3487,"props":13144,"children":13145},{"style":3566},[13146],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":13148,"children":13149},{"class":3489,"line":3938},[13150,13154,13158,13162,13167,13171,13175],{"type":3204,"tag":3487,"props":13151,"children":13152},{"style":3566},[13153],{"type":3209,"value":3822},{"type":3204,"tag":3487,"props":13155,"children":13156},{"style":3632},[13157],{"type":3209,"value":3211},{"type":3204,"tag":3487,"props":13159,"children":13160},{"style":3566},[13161],{"type":3209,"value":3831},{"type":3204,"tag":3487,"props":13163,"children":13164},{"style":3561},[13165],{"type":3209,"value":13166},"Status: {{ status }}",{"type":3204,"tag":3487,"props":13168,"children":13169},{"style":3566},[13170],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":13172,"children":13173},{"style":3632},[13174],{"type":3209,"value":3211},{"type":3204,"tag":3487,"props":13176,"children":13177},{"style":3566},[13178],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":13180,"children":13181},{"class":3489,"line":3192},[13182,13186,13190,13194,13199,13203,13207],{"type":3204,"tag":3487,"props":13183,"children":13184},{"style":3566},[13185],{"type":3209,"value":3822},{"type":3204,"tag":3487,"props":13187,"children":13188},{"style":3632},[13189],{"type":3209,"value":3211},{"type":3204,"tag":3487,"props":13191,"children":13192},{"style":3566},[13193],{"type":3209,"value":3831},{"type":3204,"tag":3487,"props":13195,"children":13196},{"style":3561},[13197],{"type":3209,"value":13198},"Data: {{ data }}",{"type":3204,"tag":3487,"props":13200,"children":13201},{"style":3566},[13202],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":13204,"children":13205},{"style":3632},[13206],{"type":3209,"value":3211},{"type":3204,"tag":3487,"props":13208,"children":13209},{"style":3566},[13210],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":13212,"children":13213},{"class":3489,"line":3975},[13214,13218,13222],{"type":3204,"tag":3487,"props":13215,"children":13216},{"style":3566},[13217],{"type":3209,"value":3822},{"type":3204,"tag":3487,"props":13219,"children":13220},{"style":3632},[13221],{"type":3209,"value":3211},{"type":3204,"tag":3487,"props":13223,"children":13224},{"style":3566},[13225],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":13227,"children":13228},{"class":3489,"line":4008},[13229,13233,13237,13241,13245,13249,13254,13258,13262,13267,13271,13275],{"type":3204,"tag":3487,"props":13230,"children":13231},{"style":3566},[13232],{"type":3209,"value":11811},{"type":3204,"tag":3487,"props":13234,"children":13235},{"style":3632},[13236],{"type":3209,"value":3892},{"type":3204,"tag":3487,"props":13238,"children":13239},{"style":3638},[13240],{"type":3209,"value":3897},{"type":3204,"tag":3487,"props":13242,"children":13243},{"style":3566},[13244],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":13246,"children":13247},{"style":3566},[13248],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":13250,"children":13251},{"style":3499},[13252],{"type":3209,"value":13253},"open",{"type":3204,"tag":3487,"props":13255,"children":13256},{"style":3566},[13257],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":13259,"children":13260},{"style":3566},[13261],{"type":3209,"value":3831},{"type":3204,"tag":3487,"props":13263,"children":13264},{"style":3561},[13265],{"type":3209,"value":13266},"Open",{"type":3204,"tag":3487,"props":13268,"children":13269},{"style":3566},[13270],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":13272,"children":13273},{"style":3632},[13274],{"type":3209,"value":3892},{"type":3204,"tag":3487,"props":13276,"children":13277},{"style":3566},[13278],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":13280,"children":13281},{"class":3489,"line":4063},[13282,13286,13290,13294,13298,13302,13307,13311,13315,13320,13324,13328],{"type":3204,"tag":3487,"props":13283,"children":13284},{"style":3566},[13285],{"type":3209,"value":11811},{"type":3204,"tag":3487,"props":13287,"children":13288},{"style":3632},[13289],{"type":3209,"value":3892},{"type":3204,"tag":3487,"props":13291,"children":13292},{"style":3638},[13293],{"type":3209,"value":3897},{"type":3204,"tag":3487,"props":13295,"children":13296},{"style":3566},[13297],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":13299,"children":13300},{"style":3566},[13301],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":13303,"children":13304},{"style":3499},[13305],{"type":3209,"value":13306},"close(1000, 'Closing')",{"type":3204,"tag":3487,"props":13308,"children":13309},{"style":3566},[13310],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":13312,"children":13313},{"style":3566},[13314],{"type":3209,"value":3831},{"type":3204,"tag":3487,"props":13316,"children":13317},{"style":3561},[13318],{"type":3209,"value":13319},"Close",{"type":3204,"tag":3487,"props":13321,"children":13322},{"style":3566},[13323],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":13325,"children":13326},{"style":3632},[13327],{"type":3209,"value":3892},{"type":3204,"tag":3487,"props":13329,"children":13330},{"style":3566},[13331],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":13333,"children":13334},{"class":3489,"line":4072},[13335,13339,13343,13347,13351,13355,13360,13364,13368,13373,13377,13381],{"type":3204,"tag":3487,"props":13336,"children":13337},{"style":3566},[13338],{"type":3209,"value":11811},{"type":3204,"tag":3487,"props":13340,"children":13341},{"style":3632},[13342],{"type":3209,"value":3892},{"type":3204,"tag":3487,"props":13344,"children":13345},{"style":3638},[13346],{"type":3209,"value":3897},{"type":3204,"tag":3487,"props":13348,"children":13349},{"style":3566},[13350],{"type":3209,"value":3569},{"type":3204,"tag":3487,"props":13352,"children":13353},{"style":3566},[13354],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":13356,"children":13357},{"style":3499},[13358],{"type":3209,"value":13359},"send('hello')",{"type":3204,"tag":3487,"props":13361,"children":13362},{"style":3566},[13363],{"type":3209,"value":3801},{"type":3204,"tag":3487,"props":13365,"children":13366},{"style":3566},[13367],{"type":3209,"value":3831},{"type":3204,"tag":3487,"props":13369,"children":13370},{"style":3561},[13371],{"type":3209,"value":13372},"Send hello",{"type":3204,"tag":3487,"props":13374,"children":13375},{"style":3566},[13376],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":13378,"children":13379},{"style":3632},[13380],{"type":3209,"value":3892},{"type":3204,"tag":3487,"props":13382,"children":13383},{"style":3566},[13384],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":13386,"children":13387},{"class":3489,"line":3097},[13388,13392,13396],{"type":3204,"tag":3487,"props":13389,"children":13390},{"style":3566},[13391],{"type":3209,"value":11942},{"type":3204,"tag":3487,"props":13393,"children":13394},{"style":3632},[13395],{"type":3209,"value":3211},{"type":3204,"tag":3487,"props":13397,"children":13398},{"style":3566},[13399],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":13401,"children":13402},{"class":3489,"line":4140},[13403,13407,13411],{"type":3204,"tag":3487,"props":13404,"children":13405},{"style":3566},[13406],{"type":3209,"value":3944},{"type":3204,"tag":3487,"props":13408,"children":13409},{"style":3632},[13410],{"type":3209,"value":3787},{"type":3204,"tag":3487,"props":13412,"children":13413},{"style":3566},[13414],{"type":3209,"value":3646},{"type":3204,"tag":3487,"props":13416,"children":13417},{"class":3489,"line":4410},[13418,13422,13426],{"type":3204,"tag":3487,"props":13419,"children":13420},{"style":3566},[13421],{"type":3209,"value":3739},{"type":3204,"tag":3487,"props":13423,"children":13424},{"style":3632},[13425],{"type":3209,"value":3769},{"type":3204,"tag":3487,"props":13427,"children":13428},{"style":3566},[13429],{"type":3209,"value":3646},{"type":3204,"tag":3295,"props":13431,"children":13433},{"id":13432},"configuration",[13434],{"type":3209,"value":29},{"type":3204,"tag":3211,"props":13436,"children":13437},{},[13438,13440,13446,13448,13461],{"type":3209,"value":13439},"We leverage ",{"type":3204,"tag":3349,"props":13441,"children":13443},{"className":13442},[],[13444],{"type":3209,"value":13445},"runtimeConfig.session",{"type":3209,"value":13447}," to give the defaults option to ",{"type":3204,"tag":3215,"props":13449,"children":13452},{"href":13450,"rel":13451},"https:\u002F\u002Fh3.unjs.io\u002Fexamples\u002Fhandle-session",[3219],[13453,13455],{"type":3209,"value":13454},"h3 ",{"type":3204,"tag":3349,"props":13456,"children":13458},{"className":13457},[],[13459],{"type":3209,"value":13460},"useSession",{"type":3209,"value":3442},{"type":3204,"tag":3211,"props":13463,"children":13464},{},[13465,13467,13472],{"type":3209,"value":13466},"You can overwrite the options in your ",{"type":3204,"tag":3349,"props":13468,"children":13470},{"className":13469},[],[13471],{"type":3209,"value":233},{"type":3209,"value":4226},{"type":3204,"tag":3477,"props":13474,"children":13476},{"className":4165,"code":13475,"language":4167,"meta":3077,"style":3077},"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",[13477],{"type":3204,"tag":3349,"props":13478,"children":13479},{"__ignoreMap":3077},[13480,13503,13538,13553,13569,13618,13625,13632],{"type":3204,"tag":3487,"props":13481,"children":13482},{"class":3489,"line":3163},[13483,13487,13491,13495,13499],{"type":3204,"tag":3487,"props":13484,"children":13485},{"style":4749},[13486],{"type":3209,"value":5283},{"type":3204,"tag":3487,"props":13488,"children":13489},{"style":4749},[13490],{"type":3209,"value":5398},{"type":3204,"tag":3487,"props":13492,"children":13493},{"style":3723},[13494],{"type":3209,"value":5403},{"type":3204,"tag":3487,"props":13496,"children":13497},{"style":3561},[13498],{"type":3209,"value":5408},{"type":3204,"tag":3487,"props":13500,"children":13501},{"style":3566},[13502],{"type":3209,"value":5413},{"type":3204,"tag":3487,"props":13504,"children":13505},{"class":3489,"line":3129},[13506,13510,13514,13518,13522,13526,13530,13534],{"type":3204,"tag":3487,"props":13507,"children":13508},{"style":3632},[13509],{"type":3209,"value":6635},{"type":3204,"tag":3487,"props":13511,"children":13512},{"style":3566},[13513],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":13515,"children":13516},{"style":3561},[13517],{"type":3209,"value":6644},{"type":3204,"tag":3487,"props":13519,"children":13520},{"style":3566},[13521],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":13523,"children":13524},{"style":3499},[13525],{"type":3209,"value":3076},{"type":3204,"tag":3487,"props":13527,"children":13528},{"style":3566},[13529],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":13531,"children":13532},{"style":3561},[13533],{"type":3209,"value":6661},{"type":3204,"tag":3487,"props":13535,"children":13536},{"style":3566},[13537],{"type":3209,"value":5499},{"type":3204,"tag":3487,"props":13539,"children":13540},{"class":3489,"line":3113},[13541,13545,13549],{"type":3204,"tag":3487,"props":13542,"children":13543},{"style":3632},[13544],{"type":3209,"value":5421},{"type":3204,"tag":3487,"props":13546,"children":13547},{"style":3566},[13548],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":13550,"children":13551},{"style":3566},[13552],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":13554,"children":13555},{"class":3489,"line":3750},[13556,13561,13565],{"type":3204,"tag":3487,"props":13557,"children":13558},{"style":3632},[13559],{"type":3209,"value":13560},"    session",{"type":3204,"tag":3487,"props":13562,"children":13563},{"style":3566},[13564],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":13566,"children":13567},{"style":3566},[13568],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":13570,"children":13571},{"class":3489,"line":3759},[13572,13577,13581,13586,13591,13595,13599,13604,13608,13613],{"type":3204,"tag":3487,"props":13573,"children":13574},{"style":3632},[13575],{"type":3209,"value":13576},"      maxAge",{"type":3204,"tag":3487,"props":13578,"children":13579},{"style":3566},[13580],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":13582,"children":13583},{"style":7087},[13584],{"type":3209,"value":13585}," 60",{"type":3204,"tag":3487,"props":13587,"children":13588},{"style":3566},[13589],{"type":3209,"value":13590}," *",{"type":3204,"tag":3487,"props":13592,"children":13593},{"style":7087},[13594],{"type":3209,"value":13585},{"type":3204,"tag":3487,"props":13596,"children":13597},{"style":3566},[13598],{"type":3209,"value":13590},{"type":3204,"tag":3487,"props":13600,"children":13601},{"style":7087},[13602],{"type":3209,"value":13603}," 24",{"type":3204,"tag":3487,"props":13605,"children":13606},{"style":3566},[13607],{"type":3209,"value":13590},{"type":3204,"tag":3487,"props":13609,"children":13610},{"style":7087},[13611],{"type":3209,"value":13612}," 7",{"type":3204,"tag":3487,"props":13614,"children":13615},{"style":3552},[13616],{"type":3209,"value":13617}," \u002F\u002F 1 week\n",{"type":3204,"tag":3487,"props":13619,"children":13620},{"class":3489,"line":3776},[13621],{"type":3204,"tag":3487,"props":13622,"children":13623},{"style":3566},[13624],{"type":3209,"value":5539},{"type":3204,"tag":3487,"props":13626,"children":13627},{"class":3489,"line":3109},[13628],{"type":3204,"tag":3487,"props":13629,"children":13630},{"style":3566},[13631],{"type":3209,"value":5187},{"type":3204,"tag":3487,"props":13633,"children":13634},{"class":3489,"line":3105},[13635,13639],{"type":3204,"tag":3487,"props":13636,"children":13637},{"style":3566},[13638],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":13640,"children":13641},{"style":3561},[13642],{"type":3209,"value":4929},{"type":3204,"tag":3211,"props":13644,"children":13645},{},[13646],{"type":3209,"value":13647},"Our defaults are:",{"type":3204,"tag":3477,"props":13649,"children":13651},{"className":4165,"code":13650,"language":4167,"meta":3077,"style":3077},"{\n  name: 'nuxt-session',\n  password: process.env.NUXT_SESSION_PASSWORD || '',\n  cookie: {\n    sameSite: 'lax'\n  }\n}\n",[13652],{"type":3204,"tag":3349,"props":13653,"children":13654},{"__ignoreMap":3077},[13655,13662,13691,13739,13755,13780,13787],{"type":3204,"tag":3487,"props":13656,"children":13657},{"class":3489,"line":3163},[13658],{"type":3204,"tag":3487,"props":13659,"children":13660},{"style":3566},[13661],{"type":3209,"value":5413},{"type":3204,"tag":3487,"props":13663,"children":13664},{"class":3489,"line":3129},[13665,13670,13674,13678,13683,13687],{"type":3204,"tag":3487,"props":13666,"children":13667},{"style":3493},[13668],{"type":3209,"value":13669},"  name",{"type":3204,"tag":3487,"props":13671,"children":13672},{"style":3566},[13673],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":13675,"children":13676},{"style":3566},[13677],{"type":3209,"value":4810},{"type":3204,"tag":3487,"props":13679,"children":13680},{"style":3499},[13681],{"type":3209,"value":13682},"nuxt-session",{"type":3204,"tag":3487,"props":13684,"children":13685},{"style":3566},[13686],{"type":3209,"value":5150},{"type":3204,"tag":3487,"props":13688,"children":13689},{"style":3566},[13690],{"type":3209,"value":5499},{"type":3204,"tag":3487,"props":13692,"children":13693},{"class":3489,"line":3113},[13694,13699,13703,13708,13712,13717,13721,13725,13730,13735],{"type":3204,"tag":3487,"props":13695,"children":13696},{"style":3493},[13697],{"type":3209,"value":13698},"  password",{"type":3204,"tag":3487,"props":13700,"children":13701},{"style":3566},[13702],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":13704,"children":13705},{"style":3561},[13706],{"type":3209,"value":13707}," process",{"type":3204,"tag":3487,"props":13709,"children":13710},{"style":3566},[13711],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":13713,"children":13714},{"style":3561},[13715],{"type":3209,"value":13716},"env",{"type":3204,"tag":3487,"props":13718,"children":13719},{"style":3566},[13720],{"type":3209,"value":3442},{"type":3204,"tag":3487,"props":13722,"children":13723},{"style":3561},[13724],{"type":3209,"value":3531},{"type":3204,"tag":3487,"props":13726,"children":13727},{"style":3566},[13728],{"type":3209,"value":13729}," ||",{"type":3204,"tag":3487,"props":13731,"children":13732},{"style":3566},[13733],{"type":3209,"value":13734}," ''",{"type":3204,"tag":3487,"props":13736,"children":13737},{"style":3566},[13738],{"type":3209,"value":5499},{"type":3204,"tag":3487,"props":13740,"children":13741},{"class":3489,"line":3750},[13742,13747,13751],{"type":3204,"tag":3487,"props":13743,"children":13744},{"style":3493},[13745],{"type":3209,"value":13746},"  cookie",{"type":3204,"tag":3487,"props":13748,"children":13749},{"style":3566},[13750],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":13752,"children":13753},{"style":3566},[13754],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":13756,"children":13757},{"class":3489,"line":3759},[13758,13763,13767,13771,13776],{"type":3204,"tag":3487,"props":13759,"children":13760},{"style":3493},[13761],{"type":3209,"value":13762},"    sameSite",{"type":3204,"tag":3487,"props":13764,"children":13765},{"style":3566},[13766],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":13768,"children":13769},{"style":3566},[13770],{"type":3209,"value":4810},{"type":3204,"tag":3487,"props":13772,"children":13773},{"style":3499},[13774],{"type":3209,"value":13775},"lax",{"type":3204,"tag":3487,"props":13777,"children":13778},{"style":3566},[13779],{"type":3209,"value":4819},{"type":3204,"tag":3487,"props":13781,"children":13782},{"class":3489,"line":3776},[13783],{"type":3204,"tag":3487,"props":13784,"children":13785},{"style":3566},[13786],{"type":3209,"value":5187},{"type":3204,"tag":3487,"props":13788,"children":13789},{"class":3489,"line":3109},[13790],{"type":3204,"tag":3487,"props":13791,"children":13792},{"style":3566},[13793],{"type":3209,"value":4665},{"type":3204,"tag":3211,"props":13795,"children":13796},{},[13797,13799,13805,13806,13812],{"type":3209,"value":13798},"You can also overwrite the session config by passing it as 3rd argument of the ",{"type":3204,"tag":3349,"props":13800,"children":13802},{"className":13801},[],[13803],{"type":3209,"value":13804},"setUserSession",{"type":3209,"value":6319},{"type":3204,"tag":3349,"props":13807,"children":13809},{"className":13808},[],[13810],{"type":3209,"value":13811},"replaceUserSession",{"type":3209,"value":13813}," functions:",{"type":3204,"tag":3477,"props":13815,"children":13817},{"className":4165,"code":13816,"language":4167,"meta":3077,"style":3077},"await setUserSession(event, { ... } , {\n  maxAge: 60 * 60 * 24 * 7 \u002F\u002F 1 week\n})\n",[13818],{"type":3204,"tag":3349,"props":13819,"children":13820},{"__ignoreMap":3077},[13821,13862,13906],{"type":3204,"tag":3487,"props":13822,"children":13823},{"class":3489,"line":3163},[13824,13828,13832,13836,13840,13844,13849,13853,13858],{"type":3204,"tag":3487,"props":13825,"children":13826},{"style":4749},[13827],{"type":3209,"value":4752},{"type":3204,"tag":3487,"props":13829,"children":13830},{"style":3723},[13831],{"type":3209,"value":4757},{"type":3204,"tag":3487,"props":13833,"children":13834},{"style":3561},[13835],{"type":3209,"value":4762},{"type":3204,"tag":3487,"props":13837,"children":13838},{"style":3566},[13839],{"type":3209,"value":3669},{"type":3204,"tag":3487,"props":13841,"children":13842},{"style":3566},[13843],{"type":3209,"value":3659},{"type":3204,"tag":3487,"props":13845,"children":13846},{"style":3566},[13847],{"type":3209,"value":13848}," ...",{"type":3204,"tag":3487,"props":13850,"children":13851},{"style":3566},[13852],{"type":3209,"value":7599},{"type":3204,"tag":3487,"props":13854,"children":13855},{"style":3566},[13856],{"type":3209,"value":13857}," ,",{"type":3204,"tag":3487,"props":13859,"children":13860},{"style":3566},[13861],{"type":3209,"value":4189},{"type":3204,"tag":3487,"props":13863,"children":13864},{"class":3489,"line":3129},[13865,13870,13874,13878,13882,13886,13890,13894,13898,13902],{"type":3204,"tag":3487,"props":13866,"children":13867},{"style":3632},[13868],{"type":3209,"value":13869},"  maxAge",{"type":3204,"tag":3487,"props":13871,"children":13872},{"style":3566},[13873],{"type":3209,"value":4226},{"type":3204,"tag":3487,"props":13875,"children":13876},{"style":7087},[13877],{"type":3209,"value":13585},{"type":3204,"tag":3487,"props":13879,"children":13880},{"style":3566},[13881],{"type":3209,"value":13590},{"type":3204,"tag":3487,"props":13883,"children":13884},{"style":7087},[13885],{"type":3209,"value":13585},{"type":3204,"tag":3487,"props":13887,"children":13888},{"style":3566},[13889],{"type":3209,"value":13590},{"type":3204,"tag":3487,"props":13891,"children":13892},{"style":7087},[13893],{"type":3209,"value":13603},{"type":3204,"tag":3487,"props":13895,"children":13896},{"style":3566},[13897],{"type":3209,"value":13590},{"type":3204,"tag":3487,"props":13899,"children":13900},{"style":7087},[13901],{"type":3209,"value":13612},{"type":3204,"tag":3487,"props":13903,"children":13904},{"style":3552},[13905],{"type":3209,"value":13617},{"type":3204,"tag":3487,"props":13907,"children":13908},{"class":3489,"line":3113},[13909,13913],{"type":3204,"tag":3487,"props":13910,"children":13911},{"style":3566},[13912],{"type":3209,"value":3715},{"type":3204,"tag":3487,"props":13914,"children":13915},{"style":3561},[13916],{"type":3209,"value":4929},{"type":3204,"tag":3211,"props":13918,"children":13919},{},[13920,13922,13933],{"type":3209,"value":13921},"Checkout the ",{"type":3204,"tag":3215,"props":13923,"children":13926},{"href":13924,"rel":13925},"https:\u002F\u002Fgithub.com\u002Funjs\u002Fh3\u002Fblob\u002Fc04c458810e34eb15c1647e1369e7d7ef19f567d\u002Fsrc\u002Futils\u002Fsession.ts#L20",[3219],[13927],{"type":3204,"tag":3349,"props":13928,"children":13930},{"className":13929},[],[13931],{"type":3209,"value":13932},"SessionConfig",{"type":3209,"value":13934}," for all options.",{"type":3204,"tag":3295,"props":13936,"children":13938},{"id":13937},"more",[13939],{"type":3209,"value":13940},"More",{"type":3204,"tag":3261,"props":13942,"children":13943},{},[13944],{"type":3204,"tag":3265,"props":13945,"children":13946},{},[13947,13954,13956],{"type":3204,"tag":3215,"props":13948,"children":13951},{"href":13949,"rel":13950},"https:\u002F\u002Fgithub.com\u002Fbarbapapazes\u002Fnuxt-authorization",[3219],[13952],{"type":3209,"value":13953},"nuxt-authorization",{"type":3209,"value":13955},": Authorization module for managing permissions inside a Nuxt app, compatible with ",{"type":3204,"tag":3349,"props":13957,"children":13959},{"className":13958},[],[13960],{"type":3209,"value":3076},{"type":3204,"tag":3295,"props":13962,"children":13964},{"id":13963},"development",[13965],{"type":3209,"value":13966},"Development",{"type":3204,"tag":3477,"props":13968,"children":13970},{"className":3479,"code":13969,"language":3481,"meta":3077,"style":3077},"# 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",[13971],{"type":3204,"tag":3349,"props":13972,"children":13973},{"__ignoreMap":3077},[13974,13982,13995,14002,14010,14027,14034,14042,14058,14065,14073,14089,14096,14104,14120,14127,14135,14151,14167,14174,14182],{"type":3204,"tag":3487,"props":13975,"children":13976},{"class":3489,"line":3163},[13977],{"type":3204,"tag":3487,"props":13978,"children":13979},{"style":3552},[13980],{"type":3209,"value":13981},"# Install dependencies\n",{"type":3204,"tag":3487,"props":13983,"children":13984},{"class":3489,"line":3129},[13985,13990],{"type":3204,"tag":3487,"props":13986,"children":13987},{"style":3493},[13988],{"type":3209,"value":13989},"pnpm",{"type":3204,"tag":3487,"props":13991,"children":13992},{"style":3499},[13993],{"type":3209,"value":13994}," install\n",{"type":3204,"tag":3487,"props":13996,"children":13997},{"class":3489,"line":3113},[13998],{"type":3204,"tag":3487,"props":13999,"children":14000},{"emptyLinePlaceholder":1208},[14001],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":14003,"children":14004},{"class":3489,"line":3750},[14005],{"type":3204,"tag":3487,"props":14006,"children":14007},{"style":3552},[14008],{"type":3209,"value":14009},"# Generate type stubs\n",{"type":3204,"tag":3487,"props":14011,"children":14012},{"class":3489,"line":3759},[14013,14017,14022],{"type":3204,"tag":3487,"props":14014,"children":14015},{"style":3493},[14016],{"type":3209,"value":13989},{"type":3204,"tag":3487,"props":14018,"children":14019},{"style":3499},[14020],{"type":3209,"value":14021}," run",{"type":3204,"tag":3487,"props":14023,"children":14024},{"style":3499},[14025],{"type":3209,"value":14026}," dev:prepare\n",{"type":3204,"tag":3487,"props":14028,"children":14029},{"class":3489,"line":3776},[14030],{"type":3204,"tag":3487,"props":14031,"children":14032},{"emptyLinePlaceholder":1208},[14033],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":14035,"children":14036},{"class":3489,"line":3109},[14037],{"type":3204,"tag":3487,"props":14038,"children":14039},{"style":3552},[14040],{"type":3209,"value":14041},"# Develop with the playground\n",{"type":3204,"tag":3487,"props":14043,"children":14044},{"class":3489,"line":3105},[14045,14049,14053],{"type":3204,"tag":3487,"props":14046,"children":14047},{"style":3493},[14048],{"type":3209,"value":13989},{"type":3204,"tag":3487,"props":14050,"children":14051},{"style":3499},[14052],{"type":3209,"value":14021},{"type":3204,"tag":3487,"props":14054,"children":14055},{"style":3499},[14056],{"type":3209,"value":14057}," dev\n",{"type":3204,"tag":3487,"props":14059,"children":14060},{"class":3489,"line":3101},[14061],{"type":3204,"tag":3487,"props":14062,"children":14063},{"emptyLinePlaceholder":1208},[14064],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":14066,"children":14067},{"class":3489,"line":3938},[14068],{"type":3204,"tag":3487,"props":14069,"children":14070},{"style":3552},[14071],{"type":3209,"value":14072},"# Build the playground\n",{"type":3204,"tag":3487,"props":14074,"children":14075},{"class":3489,"line":3192},[14076,14080,14084],{"type":3204,"tag":3487,"props":14077,"children":14078},{"style":3493},[14079],{"type":3209,"value":13989},{"type":3204,"tag":3487,"props":14081,"children":14082},{"style":3499},[14083],{"type":3209,"value":14021},{"type":3204,"tag":3487,"props":14085,"children":14086},{"style":3499},[14087],{"type":3209,"value":14088}," dev:build\n",{"type":3204,"tag":3487,"props":14090,"children":14091},{"class":3489,"line":3975},[14092],{"type":3204,"tag":3487,"props":14093,"children":14094},{"emptyLinePlaceholder":1208},[14095],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":14097,"children":14098},{"class":3489,"line":4008},[14099],{"type":3204,"tag":3487,"props":14100,"children":14101},{"style":3552},[14102],{"type":3209,"value":14103},"# Run ESLint\n",{"type":3204,"tag":3487,"props":14105,"children":14106},{"class":3489,"line":4063},[14107,14111,14115],{"type":3204,"tag":3487,"props":14108,"children":14109},{"style":3493},[14110],{"type":3209,"value":13989},{"type":3204,"tag":3487,"props":14112,"children":14113},{"style":3499},[14114],{"type":3209,"value":14021},{"type":3204,"tag":3487,"props":14116,"children":14117},{"style":3499},[14118],{"type":3209,"value":14119}," lint\n",{"type":3204,"tag":3487,"props":14121,"children":14122},{"class":3489,"line":4072},[14123],{"type":3204,"tag":3487,"props":14124,"children":14125},{"emptyLinePlaceholder":1208},[14126],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":14128,"children":14129},{"class":3489,"line":3097},[14130],{"type":3204,"tag":3487,"props":14131,"children":14132},{"style":3552},[14133],{"type":3209,"value":14134},"# Run Vitest\n",{"type":3204,"tag":3487,"props":14136,"children":14137},{"class":3489,"line":4140},[14138,14142,14146],{"type":3204,"tag":3487,"props":14139,"children":14140},{"style":3493},[14141],{"type":3209,"value":13989},{"type":3204,"tag":3487,"props":14143,"children":14144},{"style":3499},[14145],{"type":3209,"value":14021},{"type":3204,"tag":3487,"props":14147,"children":14148},{"style":3499},[14149],{"type":3209,"value":14150}," test\n",{"type":3204,"tag":3487,"props":14152,"children":14153},{"class":3489,"line":4410},[14154,14158,14162],{"type":3204,"tag":3487,"props":14155,"children":14156},{"style":3493},[14157],{"type":3209,"value":13989},{"type":3204,"tag":3487,"props":14159,"children":14160},{"style":3499},[14161],{"type":3209,"value":14021},{"type":3204,"tag":3487,"props":14163,"children":14164},{"style":3499},[14165],{"type":3209,"value":14166}," test:watch\n",{"type":3204,"tag":3487,"props":14168,"children":14169},{"class":3489,"line":4418},[14170],{"type":3204,"tag":3487,"props":14171,"children":14172},{"emptyLinePlaceholder":1208},[14173],{"type":3209,"value":3756},{"type":3204,"tag":3487,"props":14175,"children":14176},{"class":3489,"line":4427},[14177],{"type":3204,"tag":3487,"props":14178,"children":14179},{"style":3552},[14180],{"type":3209,"value":14181},"# Release new version\n",{"type":3204,"tag":3487,"props":14183,"children":14184},{"class":3489,"line":4435},[14185,14189,14193],{"type":3204,"tag":3487,"props":14186,"children":14187},{"style":3493},[14188],{"type":3209,"value":13989},{"type":3204,"tag":3487,"props":14190,"children":14191},{"style":3499},[14192],{"type":3209,"value":14021},{"type":3204,"tag":3487,"props":14194,"children":14195},{"style":3499},[14196],{"type":3209,"value":14197}," release\n",{"type":3204,"tag":14199,"props":14200,"children":14201},"style",{},[14202],{"type":3209,"value":14203},"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":3077,"searchDepth":3129,"depth":3129,"links":14205},[14206,14207,14208,14209,14212,14220,14221,14226,14227,14228,14229],{"id":3297,"depth":3129,"text":399},{"id":3415,"depth":3129,"text":3418},{"id":3456,"depth":3129,"text":3459},{"id":3597,"depth":3129,"text":3600,"children":14210},[14211],{"id":3609,"depth":3113,"text":3612},{"id":4690,"depth":3129,"text":4693,"children":14213},[14214,14215,14216,14217,14218,14219],{"id":4709,"depth":3113,"text":4712},{"id":5303,"depth":3113,"text":5306},{"id":6304,"depth":3113,"text":3331},{"id":6756,"depth":3113,"text":6759},{"id":6906,"depth":3113,"text":3340},{"id":10820,"depth":3113,"text":10823},{"id":11113,"depth":3129,"text":11116},{"id":11388,"depth":3129,"text":3311,"children":14222},[14223,14224],{"id":11559,"depth":3113,"text":11562},{"id":11687,"depth":3113,"text":14225},"\u003CAuthState> component",{"id":12408,"depth":3129,"text":12411},{"id":13432,"depth":3129,"text":29},{"id":13937,"depth":3129,"text":13940},{"id":13963,"depth":3129,"text":13966},{"v5":14231,"v4":14232,"v3":14233,"v2":14234},"5 (nightly)","4.5.2","3.21.11","2.18.1"]